CH3软件工程课件.ppt

上传人:本田雅阁 文档编号:2140880 上传时间:2019-02-21 格式:PPT 页数:85 大小:1.39MB
返回 下载 相关 举报
CH3软件工程课件.ppt_第1页
第1页 / 共85页
CH3软件工程课件.ppt_第2页
第2页 / 共85页
CH3软件工程课件.ppt_第3页
第3页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《CH3软件工程课件.ppt》由会员分享,可在线阅读,更多相关《CH3软件工程课件.ppt(85页珍藏版)》请在三一文库上搜索。

1、,第三章 需求分析 (Requirements Analysis),需求分析,需求分析是软件定义时期的最后一个阶段 仍然回答“What”,而不是“How”。但回答“系统必须做什么?”的问题 且更细致、完整、准确、清晰、具体 需求分析是一项十分艰巨复杂的工作,真的很重要吗? 例: Our real-time example is based on the embedded software in the Ariane-5, a space rocket belonging to the European Space Agency (ESA). On June 4, 1996, on its ma

2、iden flight, the Ariane-5 was launched and performed perfectly for approximately 40 seconds. Then, it began to veer off course. At the direction of an Ariane ground controller, the rocket was destroyed by remote control. The destruction of the uninsured rocket was a loss not only of the rocket itsel

3、f, but also of the four satellites it contained; the total cost of the disaster was $500 million (Newsbytes home page 1996; Lions et al. 1996).,第三章 需求分析,The reason: there was no discussion in the requirements documents of the ways in which the Ariane-5 trajectory would be different from Ariane-4.,统计

4、资料: In 1994, the Standish Group surveyed over 350 companies about their over 8000 software projects to find out how well they were faring. The results are sobering. Thirty-one percent of the software projects were canceled before they were completed. Moreover, in large companies, only 9% of the proj

5、ects were delivered on time and cost what they were budgeted, and 16% met those criteria in small companies (Standish 1994).,第三章 需求分析,需求分析的重要性,5点事实 软件生命周期中,一个错误发现得越晚,修复错误的费用越高,需求分析的重要性,许多错误是潜伏的,并且在错误产生后很长一段时间才被检查出来 在需求过程中会产生很多错误 DeMarco在一份研究报告中指出,被检查出来的错误的56产生的根源可以追溯到需求阶段。 AIRMICS所进行的一项调查发现,在一份美国军方大

6、型管理信息系统的需求规格说明书(SRS)中存在着500多个错误,当然这仅仅是一个软件项目中的一次调查。 在需求阶段,代表性的错误为疏忽、不一致和二义性 美国海军研究实验室从20世纪70年代起就对软件开发技术不断地进行研究。他们对海军A7E它机上的”宅行操作程序进行实地测试,以验证许多新设想的可行性。得出的研究数据表明:A7E项目中77的需求错误特点是不明确:疏忽、不一致和二义性。按错误类型对这些错误分布进行分析的结果是: 49不正确的事实,31疏忽,l 3不一致,5二义性,需求分析的重要性,需求错误是可以被检查出来的,需求分析的重要性,在需求过程中会产生很多错误(事实3和4)。 许多错误并没有

7、在早期被发现(事实2)。 这样的错误是能够在产生的初期被检查出来的(事实5)。 如果没有及时检查出来这些错误,软件费用会直线上升(事实1),需求分析的特点 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义, 再由需求定义转换到形式功能规约(需求规格说明)的过程。 需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。在计算机发展的早期,所求解问题的规模较小,需求分析常被忽视。,随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出,从而也愈加困难,它的难点主要体现在以下几个方面:

8、 (1) 问题的复杂性。 这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等。 (2) 交流障碍。需求分析涉及人员较多, 如软件系统用户、 问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识,处于不同的角度, 扮演不同角色,造成了相互之间交注的困难。,需求管理的困难性,(3) 不完备性和不一致性:由于各种原因, 用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾,需求分析要消除其矛盾,形成完备及一致的定义。 (4) 需求易变性。用户需求的变动是一个极为普便的问题, 即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。 为了克服上述困难,人们

9、主要围绕着需求分析的方法及自动化工具(如CASE技术)等方面进行研究。,容易产生的问题,交流障碍 误解 各方缺乏共同的语言 “完整性”问题 需求永远会变化 用户本身的意见不一致 错误的要求 认识上混淆目标和需求,需求工程,需求是什么?需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。 需求工程一般指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述出待开发系统及其行为特征和相关约束;通常是一些过程的集合:需求获取(需求引出)、需求分析和编写软件规格说明书(SRS)及验证(包括鉴定和证实)。,1. 需求分析的任务,1. 需求分析的任务,1

10、、确定综合要求 功能要求(functional requirements):系统必须做什么? 性能要求(performance requirements):做得怎样? 例:response time , memory , back-up memory , security , 可靠性需求。 出错处理需求。,1. 需求分析的任务,(5)接口需求:用户接口、硬件接口、软件接口、通信接口 (6) 约束:工具、语言、标准等的约束 (7) 逆向需求。 (8) 未来可能的扩充要求(possible evolution):如HDIS各组的合并,3维虚拟现实的效果等等。,1. 需求分析的任务,2、分析数据 建

11、立概念模型(conceptual models): E-R Diagram 形象描绘数据结构: Data Hierarchy, Warnier Diagram, IPO 数据结构规范化(Normalization),3、导出逻辑模型: DFD + DD + E-R+STD,4、修正计划:重估成本、进度等,2.需求分析方法,1、访谈: (1)正式和非正式的访谈 (2)调查表 (3)情景分析技术: (A) 演示系统行为 (B)用户易于理解更积极主动,2.需求分析方法,2 简易的应用规格说明技术 (1)、面向团队、不分彼此、双方密切合作、共同制定需求的分析方法。主流技术 (2)、双方分别共写“产品需

12、求” (3)、发给大家,认真审查 (4)、开会讨论,列表展示、操作,2.需求分析方法,2 简易的应用规格说明技术 (5)、共创议题的组合列表。 (6)、分为小组,制定列表的小型规格说明 (7)、共同展示和确定小型规格说明 (8)、每个与会者制定产品的确认标准,并提交。 (9)、一名或多名起草需求规格说明书。,2.需求分析方法,4 快速建立软件原形 (1)、最有效、最准确、最强大的工具。 (2)、要点:用户看得见的功能、快速、易修改,“样机 试用”,C,D,G,2.需求分析方法,4 快速建立软件原形 方法: (1)第四代技术 (2) 可重用软件构件 (3) 形式化规格说明和原形环境,3.需求分析

13、建模,模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 结构化分析实质上是一种创建模型的活动。系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。,结构化分析的方法,结构化分析方法是一种建模技术。它建立的分析模型如图所示:,实体 关系图,数据 词典,状态迁移图,数据流图,数据对象描述,控制规格说明,加工规格说明,3.需求分析建模,1、数据模型:E-R图,描绘数据对象及数据对象之间

14、的关系,是用于建立数据模型的图形。 2、功能模型:DFD,描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础 3、行为模型:STD,指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行为建模的基础。,软件系统开发过程中必须考虑两方面的问题 “数据”及对数据的“处理” 为了把用户的数据要求清晰明确地表达出来,系统分析员通常建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。,4.概念模型和规范

15、化 对数据的分析,概念模型和规范化,最常用的表示概念性数据模型的方法,是实体联系方法(Entity-Relationship Approach) ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。,概念模型和规范化,例:,M,N,N,M,概念模型和规范化,功能模型、数据流图,-DFD(Data Flow Diagram),- 学生购买教材的物理模型,从物理模型到逻辑模型: 计算机售书系统,-学生购买教材的 逻辑模型,储 户,检验,付款,登录,存折,帐卡,取款 信息,办理取款手续的 DFD 图,检验不合格,现款,付款信息,取款单,存折,1、数据流图中的主要图形元素,- 转换数据流的

16、处理过程,- 可以是数据库文件或任何形式的数 据组织。箭头向内则表示写入文件 或查询文件,箭头向外则表示从文 件中读取数据或得到查询结果,数据转换,外部实体,- 位于软件系统边界之外的信息生产者 或 消费者,数据流,- 在转换之间有向流动的数据项或数据 集合,数据存储文件,- 系统逻辑模型,-学生购买教材的 逻辑模型,2、数据流图中的其它图形元素,- 有 A 则 B 或者 C,或者两者都有,- 有 A 则 B 与 C,或者两者同时有,- 有 A 则 B 或 C,但不会同时有B与C,- 标识多个数据流与加工之间关系的符号,- 当 A 或 B 有一个存在就有 C,- 只有当 A 与 B 都存在,则

17、有 C,3、分层的数据流图,第 n+2 层,人工销售教材 系统流程图,学 生,教材 购销 系统,保 管员,外部实体,外部实体,教材销售子系统,1.3 登记并开 领书单,1.2 开发票,1.1 审查 有效性,1.4 登记 缺书,1.5 补售 教材,采 购,学 生,学 生,暂缺书单,补售 书单,第 3 层,F1 书号 单价 数量,外部 项,采购 子系统,第 2 层,缺书单,2.3 修改教材库 存和待 购量,销 售,2.1 按书号汇 总缺书,2.2 按出版社统 计缺书,保 管员,. 便于实现,. 便于使用,- 采用逐步细化的扩展方法,可避免一 次引入过多的细节,有利于控制问题 的复杂度;,- 用一组

18、图代替一张总图,方便用户及 软件开发人员阅读。,4、分层 DFD 图的优点,. 注意父图和子图的平衡,5、画分层 DFD 的指导原则,. 区分局部文件和局部外部项,. 掌握分解的速度,一般来说,每一个加工每次可分为 2-4个子加工,最 多不得超过 7 个。,. 遵守加工编号规则,顶层加工不编号。第二层的加工编号为1,2,3,n号。 第三层编号为1.1,1.2,1.3n.1,n.2等号,依此类推。,局部 外部项,局部 文件,练,请画出学生成绩管理系统的 DFD 图,习,二、数据字典,- DD(Data Dictionary),1、数据字典的定义,数据流名: 说明:简要介绍作用即它产生的原因和结果

19、。 数据流来源:即该数据流来自何方。 数据流去向:去向何处。 数据流组成:数据结构。 每个数据量流通量:数据量、流通量。,(1) 数据流词条的描述,数据流名:发票 说明:用作学生已付书款的依据 数据流来源:来自加工“审查并开发票” 数据流去向:流向加工“开领书单”。 数据流组成:学号+姓名+书号+单价总价+书费合计,数据元素名: 类型:数字(离散值、连续值),文字(编码类型) 长度: 取值范围: 相关的数据元素及数据结构,(2) 数据元素词条的描述,(3) 数据文件词条的描述,数据文件名: 简述:存放的是什么数据。 输入数据: 输出数据: 数据文件组成:数据结构。 存储方式:顺序,直接,关键码

20、。 存取频率: ,加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 输入数据流: 取值范围: 相关的数据元素及数据结构 ,(4) 加工逻辑词条的描述,名称:外部实体名 简要描述:什么外部实体 有关数据流: 数目:,(5) 外部实体词条描述,2、数据字典定义符号,=,被定义为,+,与, ,x=a+b,则表示 x 由 a 和 b 组成,x=a,b,则表示 x 由 a 或由 b 组成, ,或,重复,x=a,则表示 x 由 0个或多个 a 组成,( ),可选,表示在两个 * 之间的内容为词条的注释,m n,重复,x=3a8,则表示x中至少出现3次a ,最多出现8次,*,注释符,x=(

21、a),则表示 a 在 x 中出现, 也可不出现,请为下列给出的 DFD 图编写 DD,其它数据描述图形工具,1、层次方框图 (Hierarchy) 描绘数据的结构,6.图形工具,2、Warnier Diagram:,三、加工说明,-(Process Specification),加工说明组成,加工说明 描述工具,描述把输入数据流变 换为输出数据流的加工过 程,是加工说明的主体。,自然语言+结构化形式,结构化语言,例1: 请写出下列在 DFD 图中给出的 “统计晚婚职工” 的加工说明,Count Late -Marriage Employees,Late-Marriage -Count Requ

22、est,职工名册文件,Late-Marriage-List =List-Count+Name-List,Name-List=Name,Count Late-Marriage Employees Policy For each Late-Marriage-Count request: Repeat the following; Access the staffs-Record. If status is single, If sex is maie and Age is over 30 or sex is female and Age is over 26 Write Name to Name-

23、List. Increment List-Count. Until there are no more Staff-Records. Combine List-Count and Name-List. Write Up Late-Marriage-List.,例2: 请为下列DFD中的“审查并开发票”加工点写 加工说明,把学生学号和姓名写到发票上 按购书单上学生的年级和系、专业与班号 检索“各班学生用书表”文件,获得该生当年的书单 对 购书单上的每一书号 如果 书单上无此书号 则 把书号写到出错通知单上 否则 按书号检索 “教材存量表”文件, 从而获得该书的单价与库存量 如果 库存量 购书单的

24、数量 则 将书号写到出错通知单上 否则 将书号、单价、数量、总价等项写入到发票上; 更新存书量,并写回“教材存量表” 文件; 累计书费合计 把书费合计写到发票上,对每张购书单,分房加工逻辑,判断表,1、一般职工婚后5年可参加分房 2、中级以上职称的职工婚后3年 可参加分房 3、符合正常分房条件的职工, 若再符合晚婚条件可优先分房,判断树,“检查发货单” 的判断表,三、把下列用文字叙述的内容请采判断表和判断树描述出来,设某旅游票预定系统中,在旅游旺季 7- 9、12月 份,如果订票超过 50张,则优惠票价的 15% ; 50张以 下,优惠5%。在旅游淡季1-6,10、11月份,若订票超 过 50

25、张,则优惠30%;50张以下,优惠 20%。,IPO图(Input / Process / Output):简要的算法描述,1. 校验 主记录 2. 校验 事务记录 3. 更新 主记录,旧的主文件 事务文件,有效的 主记录 有效的 事务记录 更新后的 主文件,6.其它图形工具,3、改进的IPO图,5.状态迁移图,状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此,状态图提供了行为建模机制,5.状态迁移图,状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规

26、定了系统对事件的响应方式。 系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。 在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。,5.状态迁移图,事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。 例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。 简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。,5.状态迁移图,在状态图中,初态用实心圆表示,终态用一对同心圆(内

27、圆为实心圆)表示。 中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。 活动表的语法格式如下: 事件名(参数表)/动作表达式,5.状态迁移图,在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。 中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。 活动表的语法格式如下: 事件名(参数表)/动作表达式 3种标准事件:entry,exit和do。,5.状态迁移图,状态图中使用的主要符号,5.状态迁移图,6.验证要求(Requirements Validation),方法: 人工审查 初步用户手册 Prototyping 使用软件工具 完整性、一致性,Project Part II需求规格说明书,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1