软件工程课件 第三章.ppt

上传人:max****ui 文档编号:15029127 上传时间:2020-08-03 格式:PPT 页数:55 大小:406KB
收藏 版权申诉 举报 下载
软件工程课件 第三章.ppt_第1页
第1页 / 共55页
软件工程课件 第三章.ppt_第2页
第2页 / 共55页
软件工程课件 第三章.ppt_第3页
第3页 / 共55页
资源描述:

《软件工程课件 第三章.ppt》由会员分享,可在线阅读,更多相关《软件工程课件 第三章.ppt(55页珍藏版)》请在装配图网上搜索。

1、2020年8月3日星期一,Software Enginerring,1,软件工程 (Software Engineering),第三章 需求分析,2020年8月3日星期一,Software Enginerring,2,需求分析概述,需求(requirement)分析基本任务是对目标系统提出完整、准确、清晰、具体的要求。 需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。,2020年8月3日星期一,Software Enginerring,3,需求分析概述,软件需求:指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 需求分析:包括调研、建模。 调研:需求获取、需求捕

2、捉。 分析:功能建模、信息建模和行为建模。 需求规格说明书:对分析结果的形式描述。 需求规格说明是软件设计、实现、测试直至维护的主要基础。,2020年8月3日星期一,Software Enginerring,4,需求分析的任务,基本任务:准确回答:“系统必须做什么?”-对目标系统提出完整、准确、清晰、具体的要求。,2020年8月3日星期一,Software Enginerring,5,确定对系统的综合要求,系统功能要求:确定系统必须完成的所有功能。 系统性能要求:如系统联机响应时间、吞吐率、可靠性、安全性、易用性(操作简便)等。 运行要求:系统运行时所处环境的要求,如硬件平台、软件平台、网络环

3、境、通信接口等。 扩展性要求:应明确列出将来可能会提出来的扩展要求。这是设计目标系统时要考虑的因素。,2020年8月3日星期一,Software Enginerring,6,数据需求-数据建模,任何一个软件系统,其本质都是信息处理系统,信息处理的要求决定了系统的性质。因此,分析系统的数据要求是需求分析的一项重要任务。 分析系统的数据要求包括: 建立数据模型:主要是数据概念模型 数据结构规范化:减少冗余、避免操作错误 建立数据字典:全面准确地定义数据。,2020年8月3日星期一,Software Enginerring,7,逻辑建模-功能建模,功能建模就是对系统“做什么”进行完整、准确地描述。

4、结构化分析 :数据流图和数据字典。 业务分析 :用例模型。 面向对象分析 :领域对象模型。,2020年8月3日星期一,Software Enginerring,8,需求分析的步骤,1、需求获取:识别用户需求 通过调研,获取用户对系统的功能需求和非功能需求。 2、需求分析:全面、准确理解用户需求 通过对用户需求分析和综合,消除用户需求的模糊性、歧义性和不一致性。建立系统逻辑(功能)模型。 3、需求描述:准确地表达用户的需求 用规范化的语言和格式生成需求规格说明。 4、需求文档评审 通过对需求规格说明等文档进行技术审查和管理复审,确保需求描述与软件合同的要求的一致性,确保软件需求的全面性、精确性和

5、一致性。,2020年8月3日星期一,Software Enginerring,9,前一页,需求分析过程,借助当前系统的逻辑模型导出目标系统的逻辑模型。,2020年8月3日星期一,Software Enginerring,10,前一页,需求分析的步骤,1、获得当前系统的物理模型:当前系统是怎样做的。 表达工具:组织结构图、业务流程图、系统流程图 2、抽象出当前系统的逻辑模型:当前系统做了什么 表达工具:数据流程图。 3、建立目标系统的逻辑模型:对当前系统的逻辑模型进行调整,加进变化的部分和对目标系统的新要求部分,得到目标系统的逻辑模型。-系统功能模型 表达工具:数据流程图、用例模型、类&对象模型

6、。 4、确定用户对目标系统的约束(性能需求、安全性、可靠性、可操作性等)-系统行为模型,2020年8月3日星期一,Software Enginerring,11,需求分析方法,1、结构化分析方法 SA-Structured Analisys 2、面向对象分析方法 OOAObject_Oriented Analysis,2020年8月3日星期一,Software Enginerring,12,结构化分析方法,通过数据的加工变换与传递把它们有机地连成一个整体。 结构化分析方法是面向数据流的、自顶向下逐步求精进行需求分析的方法。 数据流图:从数据加工的角度来描述一个组织的业务活动。数据流图就是系统逻

7、辑模型的一种图形表示。结构化分析方法就是基于数据流的分析方法。 自顶向下逐步求精是结构化系列方法的核心和精髓,其基本思想是按问题的概念抽象级从高到低逐层分解和展开。 结构化分析方法特别适合数据处理类型软件的需求分析。利用图形来表达需求,显得清晰简明,易于学习和掌握。 使用的工具有:数据流图、数据字典。,2020年8月3日星期一,Software Enginerring,13,基本图形符号,2020年8月3日星期一,Software Enginerring,14,基本图形符号说明,数据源点 :发出(产生)数据的地方,数据的发源地。 数据终点 :数据的归缩。 处理框 :代表一个处理。 数据存储 :

8、静止状态的数据,是需要长期保存的数据。 数据流 :运动状态的数据。 数据流的方向:从加工加工 加工数据存储 数据存储加工 源点加工 加工终点 数据流图的基本要点是描述“做什么”,而不考虑“怎么做”。,2020年8月3日星期一,Software Enginerring,15,数据流图绘制,基本思想: 自外向内,自顶向下,逐层求精 即从抽象到具体的过程。开始画出的数据流图中的加工比较抽象,只大概知道“做什么”,具体应该“做什么”还比较模糊,还必须进一步描述(细化),直到每个数据流和数据存储包含的具体内容是什么,每个加工应该怎样实现,都基本清楚为止。,2020年8月3日星期一,Software En

9、ginerring,16,前一页,数据流图的画法,具体步骤: 1、先找系统数据源点和汇点,确定系统与外界的接口。 2、找出外部实体的输出数据流和输入数据流。 3、在图的边上画出系统的外部实体。 4、从外部实体的输出数据流(汇点)出发进行回溯,按照系统的逻辑逐步画出一系列的逻辑加工,直到找到外部实体所需的输入数据流(源点),形成数据流的封闭。 5、检查和修改所画数据流图,保证数据流图的正确性。 6、按照上述步骤,再从各加工出发,画出所需子图。,2020年8月3日星期一,Software Enginerring,17,数据流图细化的方法,1、改变原图:把原图的某一加工扩展成几个加工。 2、原图不变

10、,把某一个加工用分图进行进一步描述。这种分解称为分层细化(分解)。 数据流图细化基本原则是:每一个加工应完成的功能在分析员和用户之间都不会产生模糊不清的看法为止,即每个加工如何去实现已心中有数。,2020年8月3日星期一,Software Enginerring,18,前一页,数据流图细化的方法,分层分解的原则: 1、主图必须包含四种基本元素,缺一不可,并且必须封闭在外部实体之间。 2、一张流图应该在一张纸上画完,加工不应超过9个(72)。 3、各加工的抽象级应该相同。 4、对流图的细分,必须保持信息的连续性,即把一个加工分解成多个加工时,分解前后的输入输出数据流必须相同。 5、流图各层分解加

11、工的标识,应前后对照,保持一致性,如1.1,1.2 ,2.1,2.2,。,2020年8月3日星期一,Software Enginerring,19,应用实例,例:一家工厂采购部每天需要一张定货报表,报表中列出所有需要再定货的零件。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统,当某种零件的库存量少于库存临界值时,就应该产生定货。,2020年8月3日星期一,Software Enginerring,20,应用实例(续1),定货系统至少要做两项工作:事务处理和产生报表。,2020年8月3日星期一,Software Enginerring,21,前一页,应用实例(续2),“事

12、务处理”既要接受输入、又要更新库存记录,还要确定产生订货信息,显得过于复杂,可以对其进行分解。重画原图:细化加工“事务处理”,2020年8月3日星期一,Software Enginerring,22,应用实例(续3),用子图细画“事务处理”,2020年8月3日星期一,Software Enginerring,23,数据流(数据存储)命名,名字应代表整个数据流(或数据存储)的内容。 不要用空洞的、泛指意义的名字,要有具体含义。 如果对某个数据流命名有困难时,应重新分解。,2020年8月3日星期一,Software Enginerring,24,前一页,数据处理命名,名字应反映整个处理的功能。 名

13、字最好由一个具体的及物动词加上一个具体的宾语组成。 通常名字中只包括一个动词。 如果对某个处理命名有困难时,应重新分解 。,2020年8月3日星期一,Software Enginerring,25,数据字典,数据字典:对数据流图中的所有元素的定义的集合。 数据流图和数据字典一起才能构成系统的规格说明。 数据字典的内容: 数据流 数据元素 数据存储 处理,2020年8月3日星期一,Software Enginerring,26,数据字典-数据流的定义,2020年8月3日星期一,Software Enginerring,27,数据字典-数据元素的定义,2、 数据元素:数据结构由数据元素组成,数据元

14、素是数据处理中最小的、不可再分的单位。 数据元素应包含的信息: 数据元素名: 别名: 数据类型: 长度 取值范围: 位置:相关的数据结构 ,2020年8月3日星期一,Software Enginerring,28,数据字典-数据存储的定义,数据存储-文件 数据文件名: 数据文件组成:数据结构 数据来源 数据去处 存储方式:顺序、直接、关键字 存取频率 简述:存储的是什么数据 ,2020年8月3日星期一,Software Enginerring,29,前一页,数据字典-数据结构的定义,数据结构的定义:描述数据结构的组成 (1)定义式 数据结构名=数据项1+数据项2+数据项n 数据定义使用的符号:

15、 = 定义为 + 和:连接两个分量 选择:表示从中选择一项。 重复:表示由0个或多个组成。 m n 重复:表示至少出现m次,至多出现n次。 ( ) 可选:表示其中的内容可出现,也可不出现。,2020年8月3日星期一,Software Enginerring,30,数据字典-数据处理的定义, 加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能描述 输入数据流: 输出数据流: 加工逻辑:简述加工程序,加工顺序 IPO图,2020年8月3日星期一,Software Enginerring,31,前一页,应用实例, 数据流名称:事务 描述:仓库的一次进库或出库操作称为事务。 定义:事务=零

16、件编号+零件名称+类型+数量 数据来源:仓库管理员,事物接收(加工) 数据去向:仓库管理员-事务接收-更新库存请单 流通量:每天平均20次 数据流名称:库存信息 别名:零件库存量 描述:通过一次更新库存请单操作后,对应零件的当前库存量 定义:库存信息=零件编号+零件名称+库存量 数据来源:更新库存请单(加工) 数据去向:定货处理(加工) 流通量:每天平均20次 ,2020年8月3日星期一,Software Enginerring,32,前一页,应用实例, 数据流名称:定货信息 描述:当某个零件的库存量低于临界值时的定货量 定义:定货信息=零件编号+零件名称+定货量 数据来源:定货处理(加工),

17、定货信息(数据文件) 数据去向:定货处理-定货信息(数据文件)-报表生成(加工) 流通量:每天平均8次 数据流名称:定货报表 描述:每天一次送给采购员的需要定货的零件表 定义:订货报表=零件编号+零件名称+定货数量+目前定价+主要供应者+次要供应者 数据来源:产生报表(加工) 数据去向:打印机(采购员) ,2020年8月3日星期一,Software Enginerring,33,前一页,应用实例, 数据流名称:库存清单 描述:某个零件的库存信息 定义:库存清单=零件编号+零件名称+库存量+临界值 数据来源:库存清单(数据文件)处理库存清单(加工) 数据去向:库存清单(数据文件)处理库存清单(加

18、工) 流通量:每天平均2次 数据存储名称:库存清单 描述:存储仓库中所有零件的库存信息 定义:(同数据流“库存清单”) 数据来源:处理库存清单 数据去向:处理库存清单 存储量:300种零件 ,2020年8月3日星期一,Software Enginerring,34,前一页,应用实例, 数据存储名称:定货信息 描述:存储一天中的定货信息 定义:(同数据流“定货信息”) 数据来源:处理定货 数据去向:产生报表 存储量:平均8种零件 数据元素名称:零件编号 描述:唯一标识库存清单中一个特定零件的关键域 定义:零件编号=8字符8 位置:事务,定货清单,定货信息,定货报表 ,2020年8月3日星期一,S

19、oftware Enginerring,35,应用实例, 数据元素名字:零件名称 描述:标识库存清单中一个特定零件的名字 定义:零件名字=2字符20 位置:定货报表、定货信息、库存清单,事务 数据元素名字:定货数量 描述:某个零件一次定货的数量 定义:定货数量=1数字5 位置:定货报表、定货信息 ,2020年8月3日星期一,Software Enginerring,36,应用实例, 加工名字:事务接收 加工编号:1.1 简要描述:从键盘接收事务数据 输入数据流:(来自键盘的)事务 输出数据流:(通过有效性验证后的)事务 加工逻辑:从键盘接收事务数据,并对数据进行有效性验证 加工名字:更新库存清

20、单 加工编号:1.2 描述:根据事务的类型更新零件的库存量 输入数据流:事务*库存清单 输出数据流:库存清单*库存信息 加工逻辑:根据事务数据从库存清单中读取对应零件的库存数据,修改相应库存量并写入库存清单,同时把库存信息传送到“处理定货”。 ,2020年8月3日星期一,Software Enginerring,37,IPO图,IPO(Input/process/output)图是输入/处理/输出的简称,是由IBM公司发展完善起来的一种图形工具,能方便地描绘输入数据、数据的处理和输出数据之间的关系。,2020年8月3日星期一,Software Enginerring,38,应用实例-IPO图实

21、例,库存清单文件 事务,输入,更新库存清单记录,加工,更新库存清单主文件 库存信息,输出,2020年8月3日星期一,Software Enginerring,39,改进IPO图,2020年8月3日星期一,Software Enginerring,40,前一页,开发软件原型系统,原型:指模拟某产品的原始模型,即本来面目 在软件开发过程中,根据用户对需求的描述,通过快速构造软件的工具,构造一个小型软件系统,来描述目标系统的主要功能,让用户使用,使得用户在使用过程中亲身感受和受到启发,作出反应和评价。然后开发者根据用户意见对原型加以改进。随着不断实验、纠错、使用、评价和修改,最后使得在功能上完全满足

22、用户需求。 这里开发的软件系统不是最终的目标系统,而是一个很粗糙的软件系统,它是在功能上描述了用户需求,而不考虑系统性能。,2020年8月3日星期一,Software Enginerring,41,前一页,开发原型系统的条件,1、无现存的软件系统作为定义和评价的依据; 2、用户对目标系统的要求只有模糊笼统的认识,难以准确地提出所有的系统要求。 3、软件开发者和用户之间存在通信障碍(不同专业领域之间存在相互难以理解的语言)。 4、有快速构造原型的工具。 当用户对系统需求说不清或者分析员和用户对需求的理解沟通困难时,可以采用原型法使用户接受学习和教育,逐步导出更符合实际的需求。 开发原型系统需要占

23、用一定的成本和时间,但开发原型系统将使系统的需求更完整、准确、合理,对提高开发成功率,对提高软件质量都有很大好处。 专家系统的开发一般采用原型法。,2020年8月3日星期一,Software Enginerring,42,前一页,数据需求分析,数据流程图描述的是系统的加工逻辑,对数据流的描述实际上是对加工所需要的数据的描述。若系统涉及到复杂的和严格的数据要求,必须对系统所涉及的数据对象进行详细描述-建立系统的概念性数据模型(也称信息模型)。 表示概念数据模型的常用方法是实体联系方法。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。 用ER图表示的概念性数据模型又称ER

24、模型。,2020年8月3日星期一,Software Enginerring,43,前一页,ER模型的基本要素,ER模型包括“实体”、“联系”和“属性”三个基本部分。 实体:是客观世界中存在的且可以相互区分的 物。如:职工、教师、产品等 联系:客观世界中事物间的联系。往往表示实体间发生的某种行为。 属性:是实体或联系具有的性质,通常一个实体由若干个性质来刻画。,2020年8月3日星期一,Software Enginerring,44,ER模型实例,2020年8月3日星期一,Software Enginerring,45,数据规范化,通常用“范式”(Normal Formas)定义消除数据的冗余的

25、程度。 按照冗余程度的大小,分为第一范式(1NF)到第五范式(5FN)。 大多数情况下达到第三范式就可避免数据插入、删除和更新异常 。,2020年8月3日星期一,Software Enginerring,46,范式,第一范式:每个属性都必须是原子值,即仅仅是一个简单值而不含内部结构。 第二范式:满足第一范式条件,而且每个非关键字的属性都由整个关键字决定。 第三范式:符合第二范式条件,每个非关键字的属性仅由关键字决定,而且一个非关键字的属性值不依赖于另一个非关键字属性值。,2020年8月3日星期一,Software Enginerring,47,其它图形工具-层次方框图,采用层次的树形结构的方框

26、描述数据的层次结构。其顶层是数据,中间各层是该数据的子集,最底层的树叶是组成该数据的实际数据元素。,2020年8月3日星期一,Software Enginerring,48,其它图形工具-层次方框图,2020年8月3日星期一,Software Enginerring,49,其它图形工具-Warnier图,由法国人Warnier 提出的表示信息层次结构的一种工具。与层次方框图类似,但Warnier图提供了更丰富的描绘手段。 Warnier图可以更清楚地描述数据的逻辑组织,如信息的条件约束、重复、数量等。容易把Warnier图转变成软件设计的工具。,2020年8月3日星期一,Software En

27、ginerring,50,其它图形工具-Warnier图,2020年8月3日星期一,Software Enginerring,51,验证软件需求,需求分析的结果是软件开发的基础,一般软件系统中,大的错误主要来源于需求分析。为了提高软件质量,确保软件开发成功,降低软件开发成本,必须严格验证这些需求的正确性。,2020年8月3日星期一,Software Enginerring,52,验证需求的内容,一致性:所有需求必须是一致的,相互之间不存在矛盾。 完整性:需求必须是完整的。规格说明书应该包括用户需要的每一个功能和性能。 现时性:需求应该是用现有硬件技术和软件技术基本上是可以实现的。硬件技术的进步

28、可以预测,但软件技术的进步是难以预测的,只能从现有技术出发来判断需求的现时性。 有效性:证明需求是正确有效的,确实能解决用户面对的问题。,2020年8月3日星期一,Software Enginerring,53,验证需求的方法,一致性验证:目前需求规格说明主要用自然语言书写,只能依靠人工审查来验证。有赖于形式化描述。 现时性验证:参照类似系统来分析实现目标系统的可能性。对性能的验证,可以采用仿真或模拟技术进行辅助分析。 完整性和有效性验证:与用户密切合作完成,或开发原型系统。,2020年8月3日星期一,Software Enginerring,54,需求分析阶段的文档, 需求规格说明书 初步用户手册 软件初步测试计划,2020年8月3日星期一,Software Enginerring,55,本章内容结束,回首页,前一页,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!