软件工程—第3章软件需要分析课件.ppt

上传人:牧羊曲112 文档编号:3916745 上传时间:2023-03-27 格式:PPT 页数:236 大小:2.11MB
返回 下载 相关 举报
软件工程—第3章软件需要分析课件.ppt_第1页
第1页 / 共236页
软件工程—第3章软件需要分析课件.ppt_第2页
第2页 / 共236页
软件工程—第3章软件需要分析课件.ppt_第3页
第3页 / 共236页
软件工程—第3章软件需要分析课件.ppt_第4页
第4页 / 共236页
软件工程—第3章软件需要分析课件.ppt_第5页
第5页 / 共236页
点击查看更多>>
资源描述

《软件工程—第3章软件需要分析课件.ppt》由会员分享,可在线阅读,更多相关《软件工程—第3章软件需要分析课件.ppt(236页珍藏版)》请在三一办公上搜索。

1、第三章 软件需求分析,为什么要进行需求分析?,目的:对开发者进行指导 开发人员对用户的要求理解 用户理解开发人员 测试部门有理可依,原因:信息收集不全 功能不明确 需求文档不完善 开发者急于求成,教学内容,3.1 需求分析的任务和步骤 3.2 需求获取的常用方法 3.3 分析建模 3.4 软件需求说明 3.5 结构化分析方法 3.6 面向对象分析方法,教学目的及要求,深刻理解需求分析阶段的概念和任务;熟练掌握数据流图;了解面向过程分析方法和面向对象的分析方法。,1.需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。让用户和开发者

2、共同明确将要开发的是一个什么样的系统(做什么:What)。具体而言,两个任务:建立分析模型 编写需求说明(P30-P31),3.1 需求分析的任务和步骤,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。,需求分析的任务,对象系统,模型系统,抽象(映射),模型应用,模型构造的过程,逻辑模型和物理模型,模型是对对象系统的形式化的特征抽象,概括性或近似地表示;形式化语言、数学语言、图形等构造模型的过程是一个抽象、分析的过程。,逻辑模型和物理模型,2.需求分析的步骤,需求获取需求提炼:分析建模需求描述:编写需求验证,3.1 需求分析的任务和步骤,需求分

3、析过程示意,学生,购书申请,购书单,发票,领书单,书,107刘,教务科,206王,会计室,206李,出纳员,303赵,教材,学生购买教材的具体模型,(1)通过对现实环境的调查,获当前系统的具体模型(物理模型),学生,需求分析过程示意,(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,学生购买教材的逻辑模型,需求分析过程示意,(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。,计算机售书系统的逻辑模型,学生,学生,购书单,发票,领书单,审查并开发票,开领,书单,无效书单,需求分析过程示意,(4)对目标系统进行完善和补充,并写出完整的需求说明;(5)对需求说明进行复审,直到确认

4、文档齐全,并且符合用户的全部需求为止。,3.2 需求获取的常用方法,1.需求获取的目的 清楚地理解所要解决的问题 完整地获取用户需求,2.需求获取面临的挑战,问题的复杂性和对问题空间理解的不完备性与不一致性 交流障碍 需求易变性,3.2 需求获取的常用方法,3.需求获取的常用方法(P34-P35),建立联合分析小组 客户访谈 问题分析与确认,3.2 需求获取的常用方法,建立联合分析小组,1)联合分析小组的人员主要包括:用户、领域专家、系统分析员 2)通过联合分析小组的工作,可以极大地方便系统开发人员和用户之间的沟通。,3.需求获取的常用方法,客户访谈,在与用户接触之前,先要进行充分的准备:,注

5、意:在与用户交流时,应遵循循序渐进、逐步逼近的原则,切不可急于求成否则欲速则不达。,3.需求获取的常用方法,首先,必须对问题的背景和问题所在系统的环境有全面的了解;其次,尽可能了解将要会谈用户的个性特点及任务状况;第三,事先准备一些问题。,问题分析与确认,不能期望用户在一两次交谈中,就会对目标软件的要求阐述清楚,也不能限制用户在回答问题过程中的自由发挥。在每次访谈之后,要及时进行整理,分析用户提供的信息,去掉错误的、无关的部分,整理有用的内容,以便在下一次与用户见面时由用户确认;同时,准备下一次访谈时的进一步更细节的问题。如此循环,一般需要2-5个来回。,3.需求获取的常用方法,举例:某出版社

6、系统调查表,举例:某出版社系统调查表,软件需求分析的通信途径,需求分析流程,4.需求获取的内容,(1)功能性需求:定义了系统做什么(描述系统必须支持的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标),用户需求分类,两类需求包括的内容,(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证,4.需求获取的内容,(1)功能需求,系统做什么?系统何时做什么?系统何时及如何修改或升级?,(2)性能需求,软件开发的技术性指标例如:存储容量限制 执行速度、相应时间 吞

7、吐量,(3)环境需求,硬件设备:机型、外设、接口、地 点、分布、温度、湿度、磁场干扰等软件:操作系统 网络 数据库,(4)界面需求,有来自其它系统的输入吗?到自其它系统的输出吗?对数据格式有规定吗?对数据存储介质有规定吗?,需求包括的内容,(5)用户或人的因素,用户类型?各种用户熟练程度?需受何种训练?用户理解、使用系统的难度?用户错误操作系统的可能性?,(6)文档需求,需哪些文档?文档针对哪些读者?,(7)数据需求,输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?,(8)资源需求,软件运行时所需的数据、软件、内存空间等资源。软件开发、维护所需的人力

8、、支撑软件、开发设备等。,需求包括的内容,(9)安全保密要求,需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?系统备份要求?,(10)软件成本消耗与开发进度需求,开发有规定的时间表吗?软硬件投资有无限制?,(11)质量保证,系统的可靠性要求?系统必须监测和隔离错误吗?规定系统平均出错时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?,需求包括的内容,原型(原型指“快速软件原型”)是一个可实地运行的模型,有正式产品的主要特征,但不是全部特征。软件原型是软件系统的最初版本,以最少的费用,最短的时间开

9、发出的、以反映最后软件的主要特征的系统。,5.快速原型法在需求分析中的应用,原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。,原型的定义,原型的作用,问题:开发初期很难确定用户需求规格解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。,原型的特性,是一个可实际工作的系统;没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统;可服务于不同的目的,从需求分析到最终产品都可做原型;建立必须快,便宜;是包含修改、评价在内的完整重复过程,需求分析和定义规格说明 作为软件设计的一种工

10、具 作为一种解决不确定性的工具 作为一种实验工具 系统开发同时,作为同步培训工具 作为开发方法,利用原型演化为最终系统 作为软件维护的辅助工具,原型化开发的应用领域,原型开发的步骤,(1)利用各种分析技术和方法,生成一个建华的需求规格说明。(2)对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等。(3)在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;(4)将原型提交给用户评估并征求用户的修改意见;(5)重复上述过程,直到原型得到用户的认可。,原型化的开发环境,(1)试验性原型 原型用来确认对需求的理解是否正确,应在与实际产品环境相近的环境上开发原

11、型。(2)试用性原型 原型用来帮助用户在试用中使自己的模糊的需求明确起来确,可在与实际产品环境完全 无关的环境上开发运行。,仅对屏幕的原型化使用购买的软件系统作为初始模型可行性分析中的原型子系统原型化,原型化策略,功能原型开发用户界面原型开发,原型开发技术,原型化工具,面向应用的第四代语言(4GL)Delphi VBPowerBuilder Visual C+等,原型法效果,保证产品有较好的可维护性改善用户与开发人员的信息交流和思想沟通,给用户修改的机会减少或消灭下游返工的可能,改进了瀑布模型的弊病原型系统可作为培训环境,有利于用户培训和开发同步。开发成本降低,周期缩短。,原型法局限性,需工具

12、支持,否则开发工作量大;只能缩短用户与软件需求定义间的距离,并不能消灭这个距离;考虑你的项目是否适合用原型法来开发时,有几个因素是要权衡的。Boehm,Gray,和Seewaldt(1984)研究了项目是否适合用原型来开发的问题。他们发现用原型法开发项目,可以少花费45%的努力,还可以减少40%的代码。而且,开发出的产品的速度和效率与用传统方法开发出的差不多。,是否要选择原型法?,由于开发一个原型需要花费一定的人力、物力、财力和时间,而且用于确定需求的原型在完成使命后一般就被丢弃。因此,是否使用快速原型法必须考虑软件系统的特点、可用的开发技术和工具等方面。,Andriole提出的一下6个问题,

13、可用来帮助判断是否要选择原型法。,需求已经建立,并且可以预见是相当稳定吗?(肯定回答,不采用原型法)软件开发人员和用户已经理解了目标软件的应用领域吗?问题是否可被模型化?用户能否清楚地确定基本的系统需求?有任何需求是含糊的吗?已知的需求中存在矛盾吗?(以上5个问题肯定回答,用原型法),3.3 分析建模,两种分析模型结构化分析模型面向对象分析模型,结构化分析模型的组成结构,结构化分析模型的组成结构,模型的核心是DD(Data Dictionary,数据字典),它是系统所涉及的各种数据对象的总和。从DD出发可构建3种图:E-R图(Entity-Relation Diagram,实体-关系图)用于描

14、述数据对象间的关系,他代表软件的数据模型,在实体-关系图中出现的每个数据对象的属性均可用数据对象说明来描述;DFD图(Data Flow Diagram,数据流图),其主要作用是指明系统中数据是如何流动和变换的,以及描述是数据流进行变换的功能,在DFD图中出现的每个功能的描述则写在(PSPEC)中,它们一起构成功能模型;STD(Status Transfer Diaram,状态-变迁图),用于指明系统在外部时间的作用下将会如何动作,表明了系统的各种状态以及各种状态间的变迁,从而构成为行为模型的基础,关于软件控制方面的附加信息则包含在控制说明(CSPEC)。,面向对象分析模型的组成结构,面向对象

15、分析模型的组成结构,使用实例,处于OOA模型核心的是“使用实例”(Use Case),简称“用例”。获得软件的需求后,软件分析员既可据此创建一组“场景”(Scenario),每个场景包含一个使用实例。从这些用例出发,进一步抽取和定义OOA模型的3种模型,即类-对象模型,描述系统所涉及的全部类-对象,每个类-对象都通过属性、操作和写作者来进行进一步描述;对象-关系模型,描述对象之间的静态关系,同时定义了系统中所有重要的消息路径,它也可以具体化到对象的属性、操作和协作者;对象-行为模型,描述了系统的动态行为,即对湘杂特定的状态下如何反映外界的事件。,数据流图(DFD)数据字典(DD)加工说明控制流

16、图(CFD)与控制说明(CSPEC)状态转换图(STD)E-R图用例图对象关系图(Object-Relationship,O-R)对象行为图,2.分析模型的组成与描述工具,分析模型的组成与描述工具,DFD、DD和PSPEC:是早期结构化分析模型 的基本组成部分;CFD、CSPEC和STD是扩展成分用以适应实时的建模需要;E-R图:适用于描述具有复杂数据结构的软件数据模型;用例图、对象关系图和对象行为图适用于OOA的分析模型。,数据流图(DFD),任何软件系统(或计算机系统)从根本上说,都是对数据进行加工或变换的工具,指明数据在系统中移动时如何被变换;描述对数据流进行变换的功能;DFD中每个功能

17、的描述包含在加工规约小说明)中。,数据存储(文件或数据库),数据流图的四个基本成分,数据流(数据对象),位于被建模系统之外的信息生产者或消费者,称为外部项。说明数据输入的源点(数据源)或数据输出的汇点(数据池),数据处理(加工),数据流,表示数据和数据流向,三个重要属性:流向(从加工出发或流向加工)数据组成数据流名字,数据流命名方法和注意事项,用名词或名词词组,不要使用意义空洞的名词;尽量使用现实系统已有名字,当命名出现困难,考虑是否数据流划分不恰当;不要把控制流作为数据流指明作为外部事件的结果,系统将如何动作。,举例:,数据字典(DD,Data Dictionary)模型核心(中心库),一个

18、软件系统含有许多数据。数据字典的作用,就是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。由字典统一给出的所有数据的定义与属性,已成为结构化分析中分析建模的基础。,数据词典与数据流图配合,能清楚地表达数据处理的要求词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等,数据字典,DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解,DFD中的数据流、数据存储表示某个有组织的数据集合,它们要由SA的其他描述工具-需求字典(数

19、据字典)来描述,包括:词条描述、数据结构描述、加工逻辑说明,作用:,数据字典,数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合,数据字典的内容,数据流 数据流分量 数据存储 处理,数据处理:用 IPO图或PDL描述比较方便直观。数据元素的别名:,定义数据的方法,由数据元素组成数据的方式的三种基本类型顺序+:以确定次序连接两个或多个分量 a+b+c 选择|,:从两个或多个可能的元素中选取一个 a|b|c 重复:把指定的分量重复零次或多次 a 可选:一个分量是可有可无的(重复零次或一次),(a),例子,定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供

20、应者零件编号=8字符8定货数量=1数字5,数据流词条描述,数据流名:说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量,数据元素词条描述,数据元素名:类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:,数据文件词条描述,数据文件名:简述:存放的是什么数据输入数据:输出数据:数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:,加工逻辑词条描述,加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序,F1:航班信

21、息文件航空公司名称航班号起点终点日期 起飞时间降落时间航空公司名称2字母4 航班号3十进制数字3 字母“A”“Z”十进制数字“0”“9”起点终点1汉字10 起飞时间降落时间时分 时“00”“23”分“00”“59”日期年月日 年2000200120022004 月“01”“12”日“01”“31”,重复项:起点终点1汉字10 航空公司名称2字母4 航班号3十进制数字3 组合项:日期年月日 起飞时间降落时间时分选择项:年2000200120022004原数据项:字母“A”“Z”十进制数字“0”“9”时“00”“23”分“00”“59”月“01”“12”日“01”“31”,定义式中使用的符号,操作

22、符 含义描述 定义为 与(顺序结构).重复(循环结构).或(选择结构).,.(.)任选 m.n 界域.,注释符,限制重复次数举例:,3,5 或,5,3,表示允许重复3-5次,3,3 或,3,3,表示恰好重复 3 次,1,表示至少出现 1 次,表示允许重复0至任意次,源点及汇(终)点词条描述,简名称:外部实体名要描述:什么外部实体有关数据流:数目:,数据结构的描述,符 号 含 义 举 例 被定义为 与 x=ab.,.或.|.或 x=a,b,x=a|b.或 m.n 重复 x=a,x=3a8(.)可选 x=(a)“.”基本数据元素 x=“a”.连结符 x=1.9,存折格式,存折户名所号帐号开户日性质

23、(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核,出现在软件中的数据可分为3种情况:,只含一个数据的数据项(或数据元素);由多个相关数据向组成的数据流;数据文件或数据库。,举例说明怎样编写各类数据的字典条目:,数据流数据文件数据项,数据流条目说明举例,数据流名:发票别名:购书发票组成:(学号)姓名书号单价数量总价 书费合计数据量:100次/天 高峰值:开学期间400次/天,数据存储条目说明举例,文件

24、名:各班学生用书表别名:组成:系编号专业和班编号 年级书号组织:按系、专业和班编号从小到大 排列存取要求:关键字是专业和班编号,数据项条目说明举例,数据项名:系编号别名:取值:2数字2注释:,*例如:01,12*,数据项条目说明举例,数据项名:专业和班编号别名:取值:3数字3注释:,*例如:305*,数据项条目说明举例,数据项名:年级别名:取值及含义:freshmen,一年级 sophomore,二年级 junjor,三年级 senior,四年级注释:F,M,J,S可分别用1,2,3,4代替,数据项条目说明举例,数据项名:书号别名:取值:字母数字注释:,*例如:,*,对数据流图的每一个基本加工

25、,必须有一个基本加工逻辑说明基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则加工逻辑说明必须描述实现加工的策略而不是实现加工的细节加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的,基本加工逻辑说明,用于写加工逻辑说明的工具,结构化英语 判定表 判定树,结构化英语,结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。,是一种介于自然语言和形式化语言之间的语言语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示其基本控制结

26、构有三种:简单陈述句结构:避免复合语句;重复结构:while_do 或 repeat_until 结构。判定结构:if_then_else 或 case_of 结构;,商店业务处理系统中“检查发货单”,if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else(欠款未超期)发批准书,发货单 else(发货单金额未超过$500)if 欠款超过60天 then 发批准书,发货单及赊欠报告 else(欠款未超期)发批准书,发货单,判定表,如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适,以“检查发货单”为例,判定树,判定树也是用来

27、表达加工逻辑的一种工具。有时侯它比判定表更直观。,检查发货单,金额$500,金额$500,欠款60天,不发出批准书,欠款60天,发货单,发出批准书、,欠款60天,发出批准书、,发货单及赊欠报告,欠款60天,发出批准书、,发货单,控制流图(CFD)与控制说明(CSPEC),CFD是为了适应实施系统地分析而提出的,通常与DFD配合使用,目的使CSPEC分析员在用DFD和PSPEC表示数据流和加工的同时,也能够用CFD和CSPEC表示控制流和控制加工。(P45-P47),数据流和控制流举例,动作警告,数据和控制模型的关系,SafeHome的控制面板,与用户交互,SAFEHOME,ARMED POWE

28、R,01,1,2,3,4,5,6,7,8,9,*,0,#,OFF ARAY STAY,MAX TEST BYPASS,INSTANT CODE CHIME,READY,panic,alarmcheckfire,awaystayinstantbypassnot ready,SafeHome的第0层,SafeHome的第1层,监控传感器的第2层,SafeHome的第一层,状态转换图(STD),描述软件状态的变迁,它是在CSPEC中常用的一种重要描述工具。(P48),电梯状态图举例,概念模型和规范化,用户的数据要求-需要哪些数据,数据之间有哪些联系,数据本身有哪些性质,数据的结构 等)。用户的处理要

29、求-对数据进行哪些处理,每个处理的逻辑功能。概念性模型(信息模型)-一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。表示概念性数据模型的最常用方法是实体-联系方法,采用用 ER图的方式,这种表示又称为ER模型。,ER模型,实体:客观世界中存在的且可区分的事物。联系:客观事物之间的联系(三类-1:1,1:N,M:N)属性:实体或联系所具有的性质。,教师,姓名,性别,职称,职务,教师号,教,1,课程,N,课程号,课名,学时,学分,学,M,学生,N,学号,姓名,性别,系,年级,成绩,范式,通常用范式定义消除数据的冗余度(略),E-R图,数据及数据库需求,在数据词典中,强调对数据存储结构的

30、逻辑设计,并用数据结构表达数据项之间的逻辑关系。但任何一个软件系统都可能有成千上万个数据项,仅仅描述这些数据项是不够的,更重要的是如何把它们以最优的方式组织起来,以满足系统对数据的要求。,E-R方法(Entity-Relationship Approach)和实体模型,在需求分析阶段进行数据库逻辑设计过程中,使用E-R图,可定义一 个实体模型。实体模型是现实世界的纯表示,它不涉及数据世界的数据结构、存取路径、存取效率等问题。因此,它可以转换成数据库中的数据模型。,E-R图中的基数表示:,在E-R图中,每个方框表示实体型或属性,方框之间的连线表示实体之间,或实体与属性之间的联系。出现在连线上的短

31、竖线可以看成是“1”,而圆圈隐含表示“0”。例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。,用E-R图描述它们之间的联系,得下图。其中,学生与课程是多对多的联系,而教师与课程的联系是零、一对多。,进一步,要确定属性。例如,学生具有学号、姓名、性别、年龄、专业(其它略)等属性;课程具有课程号、课程名、学分、学时数等属性;教师具有职工号、姓名、年龄、职称等属性。此外,学生通过学号、分数与课程发生联系。如此可得教学实体模型。,教学实体模型,数据库分析的过程,在需求分析阶段进行数据库分析的流程,为开发一个系

32、统所使用的数据库,在开始分析数据库的需求前,分析员必须了解该系统的总目标和范围。然后建立一个完整并高度细化的信息模型。此信息模型应包括一个综合的数据词典,定义所有在开发数据库时用到的数据项。接着数据库分析定义数据库的逻辑特性和物理特性。,用例是帮助分析员和用户确定系统使用情况的UML组件;一组用例就是从用户的角度出发如何使用系统的描述;可认为用例是系统的一组使用场景;每个场景描述了一个事件的序列;每个序列是由一个人、另一个系统、一个硬件设备或某段时间的流逝所发起;每个发起事件序列的实体叫做参与者(actor)或行动者,什么是用例(use case)?,用例图,用例建模,用例建模是用于描述一个系

33、统应该做什么的建模技术用例建模可用于新系统的需求获取,也可用于已有系统的升级,用例模型(use case model),一个用例模型可由若干幅用例图组成用例描述了用户和系统之间的交互,其重点是 系统为用户做什么用例模型描述全部的系统功能行为一幅用例图包含的模型元素有:用例参与者(行为者、执行者)系统,用例,参与者,系统,参与者,通信关系,用例模型表示法,销售系统用例图,POS系统用例图,参与者与它们所发起执行的过程(简要描述),用例描述实例,用例:购买商品参与者:顾客(发起者)、收款员类型:主要的描述:顾客带着所要购买商品到付款处,收款员 记录商品信息并收款。,用例:启动/关闭系统参与者:管理

34、员类型:主要的描述:管理员接通一台POS机电源,检查时间、日期正确性,检查完成后,系统处于就绪 状态,以备收款员使用。,对象关系图(Object-Relationship,O-R),对象关系图是由E-R图演变而来的。对象通过制定的关系和其他对象连接,规定连接的基数并建立整体的对象-关系网络。,金融机构类图举例:,保险机构类图举例:,销售代表 0.1,定货,nameaddress,顾客,creditRating():String,产品,雇员,1,dataReceivedisPrepaidnumber:Stringprice:Money,协作顾客,contactNamecreditRatingcr

35、editLimit,creditCard#,个人顾客,creditRating()=“poor”,定货作业线,dispatch()close(),remind()billForMonth(),Quantity:Integerprice:MoneyisSatisfied:Boolean,1,*,*,*,*,1,物品,网上商店对象模型(部分)示例(UML),对象行为图,对象行为模型用于描述对象动态行为,通常由对象状态转换图、事件轨迹图和事件流图等来描述。(P52-P53),电梯状态转换图,在一楼,上升,停滞,下降,回到一楼,回一楼,想要到达楼层,想要到达楼层,电梯行程,开始,向上,向上,向下,接电

36、话的的部分事件轨迹图:,受话者,交换机,远程交换机,受话者,拿起话筒,听通话声,拨号码,.,铃响信号,铃响,铃响停止信号,拿起话筒,铃响停止,10,d,e,a,b,c,b-a1,e-d5,c-b10,路径,文档打印系统的部分事件流图,打印机忙保存打印文件,队列,计算机,打印机空闲,打印文件,打印机,打印服务器,打印文件,4、软件需求说明书(SRS),(Software Requirement Specification)SRS的作用:开发者与用户间事实上的技术合同书开发者下一步设计和编码的基础测试验收目标系统的依据,软件需求说明(SRS),引言 信息描述 功能描述 行为描述 质量保证 接口描述

37、 其他描述,1.需求规格说明书,2.编制需求分析阶段的文档软件需求说明书数据要求说明书初步的用户手册修改、完善与确定软件开发实施计划,需求说明书由以下几部分组成:,一套分层的数据流图一本数据字典一组小说明补充材料,常用的分析方法,面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向对象的分析方法(OOA)等,3.5 结构化分析方法(Structured Analisys,SA),结构化分析就是使用DFD,DD,结构化语言,判定表和判定树等工具,来建立一种新的,称为结构化说明书的目标文档。,结构化分析的基本步骤:,由顶向下对系统进行功能分解,画出分层DF图;由后向前定

38、义系统的数据和加工,编制DD,PSPEC;最终写出SRS.,结构化分析方法使用工具:,数据流图 数据词典 结构化英语 判定表与判定树,描述银行取款过程的数据流图,画分层数据流图,软件工程技术中,控制复杂性的两个基本手段是“分解”和“抽象”。,分解?,为了将复杂性降低到人可以掌握的程度,可以把大问题分割成若干个问题,然后分别解决。,抽象?,分解也可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。,DFD可以用来表示一个系统或软件在任何层次上的抽象。较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。,数据流图的层次结

39、构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。,分层的数据流图,在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,结构化分析方法步骤示例 商店业务处理系统,这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能数据流图绘制步骤 首先确定系统的输入和输出 根据商店业务,画出顶

40、层数据流图,以反映最主要业务处理流程,经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图,第一层数据流图,加细每一个加工框 销售细化,采购细化,需求分析示例教材购销管理系统(1),问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。,学生,张秘书,购书申请,王会计,李出纳,赵保管,学生,购书证明,购书申请,购书申请,书,学生,审 查有效性,购书单,开发票,开领书单,发书,学生,有 效购书单

41、,发票,领书单,书,学生,审查并开发票,购书单,开领书单,发书,学生,发票,领书单,书,2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,1)通过对现实环境的调查研究,获得当前系统的具体模型,3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。,需求分析示例教材购销管理系统(2),学生,审查并开发票,购书单,开领书单,学生,发票,领书单,无效书单,4)对目标系统进行补充和完善,并写出完整的需求说明。,学生,1 审查并开发票,购书单,2 开领书单,学生,发票,领书单,无效书单,各班学生用书表,教材存量表,5)对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止,需求分析

42、示例教材购销管理系统(3),需求分析示例教材购销管理系统(4),需求分析示例教材购销管理系统(5),2.3 修改教材库存和待购量,2.1 按 书 号 汇总缺书,F2:缺书登记表,销售子系统,书库保管员,F1:教材存量表,进书通知,3.第三层DFD图采购子系统,2.2 按出版社 统计缺书,F5:待购教材表,F6:教材一览表,进书通知,需求分析示例教材购销管理系统(6),数据字典(Data Directory-DD)领书单=学院+专业+班级+学号+姓名+书号+书名+数量+日期有效购书单=领书单发票=学号+姓名+书号+书名+单价+数量+总价+书费合计教材存量表=书号+单价+数量暂缺书单=学号+姓名+

43、书号+数量补售书单=学号+姓名+书号+数量,人事工资管理系统的顶层DFD(概图)范例,职工基本信息管理子系统,1.0,2.0,人事工资管理系统0层DFD范例,职工出缺勤信息,职工工资管理子系统,3.0,职工出缺勤管理子系统,职工基本信息,职工工资信息,人事部门,会计部门,职工,职工出缺勤报表,职工出缺勤信息,职工工资信息,职工工资报表,职工基本信息,职工工资单,建立职工出缺勤信息,3.1,人事工资管理系统1层DFD:加工3.0的分解图,职工出缺勤信息,3.2,制作职工出缺勤信息统计表,职工基本信息,职工出缺勤报表,职工出缺勤信息,实例 考务处理系统功能,(1)对考生送来的报名单进行检查;(2)

44、对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,顶层数据流图,二层数据流图,三层数据流图(a),三层数据流图(b),检查和修改数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素;数据流图的主图必须包括前述四种基本元素,缺一不可;数据流图的主图上的数据流必须封闭在外部实体之间;每个加工至少有一个输入数据流和一个输出数据流;,在数据流图中,需按层给加工框编号。编

45、号表明该加工所处层次及上下层的亲子关系;规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡;可以在数据流图中加入物质流,帮助用户理解数据流图;,图上每个元素都必须有名字;数据流图中不可夹带控制流;初画时可以忽略琐碎的细节,以集中精力于主要数据流。,画分层DFD的指导原则,(1)父图与子图的平衡 模型细化时必须保持数据流的连续性,即每个细化部分的输入和输出必须保持不变(父图和子图输入数据和输出数据应一致)。,父图与子图平衡的特例,(2)区分局部文件和局部外部项,.1,.2,.3,1,父图,子图,画分层DFD的指导原则,(3)遵守加工的编

46、号原则 子图的编号为父图中相应加工的编号;子图中加工的编号由子图号、小数点、局部号连接而成。,画分层DFD的指导原则,画分层DFD的指导原则,(4)分解的深度与层次 按功能情况定,一般设深度为3-5。原则:分解应自然,概念上合理、清晰;只要不影响数据流图的“易理解性”,可以适当地多分解成几部分,这样分层土的层数就可少些;一般说来,在上层可以分解的快些,而在下层则应分解的慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要。,实例:运动会管理系统,过程如下:首先决定日期、地点规模设立那些比赛项目、报名期限等,并作出一些规定,如每人最多可参加多少项目,每个项目每队最多可有多少人参加等。在

47、报名结束后,要给每个运动员编号,统计每个项目有多少运动员以及有哪些运动员参加,并根据每个项目的参加人数等具体情况派出比赛日程表。在运动会进行过程中要按各项比赛的成绩及时公布单项名次并累计团体总分。比赛全部结束后要公布团体名次。,3.6 面向对象分析方法,思考题软件开发中为什么要使用面向对象 方法?面向对象分析方法与结构化分析方 法有哪些相似之处?有何区别?面向对象方法是对过去的一个完全 突破,还是“换汤不换药”?,开发方法的组合,传统方法数据与过程是分离的,过程1,输入,输出,过程2,过程3,数据实体,属于该对象的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法封装成一个单元

48、,传统方法和面向对象方法的比较,传统方法系统是过程的集合过程与数据实体交互过程接受输入并产生输出,面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息,传统系统分析方法:面向功能,把系统看成一组功能;OOA方法:把问题当作一组相互作用的实体,并确定实体 间关系。,传统方法和面向对象方法的比较,结构化分析(传统建模方法)方法 分析模型:数据流图(DFD)数据字典(DD)小说明 E-R图(ERD)状态变迁图(STD)面向对象分析方法 分析模型:用例模型(用况模型)对象模型(概念模型)功能模型(行为模型),分析建模方法与分析模型,分析模型的主要目标,描述用户需要建立创建软件设计的

49、基础定义软件完成后可被确认的一组需求,OO方法的开发过程,OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。,用例建模,用例建模是用于描述一个系统应该做什么的建模技术;用例建模可用于新系统的需求获取,也可用于已有系统的升级。,发现角色(P61),通过回答下列问题,可以帮助建模者发现角色使用系统主要功能的人是谁?需要借助于系统完成日常工作的人是谁?谁来维护、管理系统,保证系统正常工作?系统控制的硬件设备有哪些?系统需要与哪些其它系统交互?对系统产生的结果感兴趣的人或事是哪些?,发

50、现用例(P61),询问以下问题角色需要从系统中获得哪种功能?角色需要做什么?角色需要读取、产生、删除、修改或存储系统中的信息吗?系统中发生的事件需要通知角色吗?如果用系统的新功能处理角色的日常工作是简化了还是提高了工作效率?,用例模型(use case model),一个用例模型可由若干幅用例图组成用例描述了用户和系统之间的交互,其重点是系 统为用户做什么用例模型描述全部的系统功能行为一幅用例图包含的模型元素有:用例参与者(行为者、执行者)系统,用例,参与者,系统,参与者,通信关系,用例模型,用例图举例,签定一份保险单,客户,保险销售人员,销售统计,客户统计,2.领域分析,目的:发现或创建一些

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号