1需求工程Ch05需求建模方法与技术MP:13074367546Mail:zhaohui@mail.ccut.edu.cn主讲教师:赵辉zhaohui@mail.ccut.edu.cn2第5章需求建模方法与技术需求建模主要是根据待开发软件系统的需求,利用某种建模方法建立该系统的逻辑模型(也称需求模型或分析模型),以帮助软件开发人员检测软件需求的一致性、完全性、二义性和错误等。软件建模方法特点:1.提供描述手段;2.提供基本步骤。zhaohui@mail.ccut.edu.cn3第5章需求建模方法与技术5.1什么是模型5.2软件工程中的模型5.3结构化的需求建模方法5.4面向对象的需求建模方法5.5基于图形的需求建模技术zhaohui@mail.ccut.edu.cn45.1什么是模型模型的定义1.由某些人根据其目的而对事物进行的抽象描述。2.根据实物、设计图或设想,按比例生成或其他特征制成的同实物相似的物体。3.当一个数学结构作为某个形式语言(即包括常符号、函数符号、谓词符号的集合)的解释时,称为模型。4.为了理解事物而对事物作出的一种抽象,是对事物的一种无二义性的书面描述。zhaohui@mail.ccut.edu.cn55.1什么是模型模型的分类1.描述性模型2.规约性模型3.探测性模型需求模型既是描述性模型(描述问题域),又是规约性模型(软件的需求规格说明)。zhaohui@mail.ccut.edu.cn65.2软件工程中的模型软件工程中模型的概念对客观世界的问题领域进行抽象并用某描述方法给予表示的结果称为模型。注意问题:问题域中有什么对象?应该选择什么样的关系或动作?如何用适当的模型给予表示?zhaohui@mail.ccut.edu.cn75.2软件工程中的模型软件工程中模型的分类1.开发过程模型2.信息流模型3.设计模型4.交互作用模型5.状态迁移模型6.用于构造细节的原理模型7.过程成熟度模型8.其它模型(可靠性模型,成本估算模型)zhaohui@mail.ccut.edu.cn85.3结构化的需求建模方法SA方法的特点1.表达问题时尽可能使用图形符号的方式,这样即使非计算机专业人员也易于理解;2.设计数据流图时只考虑系统必须完成的基本功能,完全不需要考虑如何具体地实现这些功能。zhaohui@mail.ccut.edu.cn95.3.1SA方法的基本思想基本思想按照由抽象到具体、逐层分解的方法,确定软件系统内部的数据流、变换(或加工)的关系,并用数据流图给予表示。复杂系统分解示例X1323.13.33.2中间层底层zhaohui@mail.ccut.edu.cn105.3.2SA方法的描述手段组成1.一套分层的数据流图2.一本词典3.其它补充材料数据流图(DFD:DataFlowDiagram)描述系统内部处理流程、用于表达软件系统需求模型的一种图形工具,亦即是描述系统中数据流程的图形工具。zhaohui@mail.ccut.edu.cn115.3.2SA方法的描述手段DFD的简例源点数据流数据加工文件终点zhaohui@mail.ccut.edu.cn125.3.2SA方法的描述手段数据流1.数据流是由一组数据项组成的数据,通常用带用带标识的有向孤给予表示。2.数据流可以加工之间,源点与加工之间,终点与加工之间,加工与文件之间流动。3.在数据流的命名中,不能使用缺乏具体含义的词如“数据”、“信息”等当作为数据流名。4.不能把控制流作为数据流。zhaohui@mail.ccut.edu.cn135.3.2SA方法的描述手段加工(变换)对数据进行的操作或变换就称为加工。加工的命名方法1.最高层的加工可以是软件系统的名字;2.加工的名字最好由一个谓语动词加上一个宾语组成;3.不能使用空洞或含糊的动词作为加工名;4.当遇到不能合适命名的加工时,可以考虑将加工分解。zhaohui@mail.ccut.edu.cn145.3.2SA方法的描述手段文件文件是存放数据的逻辑单位,且通常用图形符号“”,“”和“”分别表示加工要写文件,读文件和读写文件。另外,在这个图形符号中还要给出文件名。源点和终点源点和终点用于表示数据的来源和最终去向,且通常用图形方框给予表示。zhaohui@mail.ccut.edu.cn155.3.2SA方法的描述手段例:某培训中心管理信息系统zhaohui@mail.ccut.edu.cn165.3.2SA方法的描述手段分层的DFD对于大型而又复杂的软件系统,如果用一张DFD说出所有的数据流和加工,整个图就会变得相当复杂和难以理解,而且一张纸也难以写下这样的图。为了控制复杂性,通常可采用分层的方法。分层DFD的组成顶层、底层和中间层。zhaohui@mail.ccut.edu.cn175.3.2SA方法的描述手段画完整的分层的DFD需注意的几个问题1.在画DFD时应区别于流程图2.DFD的完整性问题3.DFD的一致性问题(示例)4.在分层DFD中文件的表示5.分解层次的深度(准则)zhaohui@mail.ccut.edu.cn185.3.2SA方法的描述手段一致性问题示例zhaohui@mail.ccut.edu.cn195.3.2SA方法的描述手段分解层次深度的应验性准则1.某个加工的分解最好不超过7~8层,尽量减少分解层次;2.分解应根据问题的逻辑特性进行,不能硬性分解;3.每个加工被分解为子加工后,子图中的子加工数不要太多,通常为7~10个;4.上层可分解快些,下层应该慢些,因为上层比较抽象,易于理解;zhaohui@mail.ccut.edu.cn205.3.2SA方法的描述手段5.分解要均匀,即在一张DFD中,有些已是基本加工,另外一些还要被分解为多层;6.分解到什么程度才能到达底层DFD呢?一般来说应满足两个条件:一个是加工能用几句或十几句话就可清楚地描述其含义。另一个是一个加工基本上只有一个输入流和一个输出流。zhaohui@mail.ccut.edu.cn215.3.2SA方法的描述手段画分层的DFD的步骤1.先确定软件系统的输入/出数据流、源点和终点;2.将基本系统模型加上源点和终点构成顶层DFD;3.画出各层的DFD。(准则)zhaohui@mail.ccut.edu.cn225.3.2SA方法的描述手段画每张DFD时,应遵循的准则1.将所有软件的输入/出数据流用一连串加工连接起来;2.应集中精力找出数据流;3.标识找到的数据流,分析该数据流的组成成分及来去方向,并将其与某加工连接,标识加工;4.当加工需要用到的共享和暂存数据时,设置文件及其标识;zhaohui@mail.ccut.edu.cn235.3.2SA方法的描述手段画每张DFD时,应遵循的准则4.分析加工的内部,如果加工还比较抽象或其内部还有数据流,则需将该加工进一步分解,直至到达底层图;5.为所有的数据流命名;6.为所有加工命名编号。zhaohui@mail.ccut.edu.cn245.3.2SA方法的描述手段在画DFD时还应注意的情况1.画图时只考虑如何描述实际情况,不要急于考虑系统应如何启动,如何工作,如何结束等与时间序列相关的问题;2.画图时可暂不考虑一些例外情况如出错处理等;3.画图的过程是一个重复的过程,一次性成功可能性较小,需要不断地修改和完善。zhaohui@mail.ccut.edu.cn255.3.2SA方法的描述手段示例某医院拟开发一个分布式患者监护系统(PMS:PatientsMonitoringSystem)。PMS将用于监视病房中每个患者的重要生理信号(如体温、血压、脉博信号等),并能定时更新和管理患者的病历。此外,当患者的生理信号超过医生规定的安全范围时,系统能立即通知护理人员,并且护理人员在需要时可随时通过系统产生某患者有关报告。zhaohui@mail.ccut.edu.cn265.3.2SA方法的描述手段PMS的主要功能为:①通过一个病床监视器实现本地监测,以获得患者的生理信号。②在护士办公室实现中央监测③更新和管理患者病历④产生患者情况的报告以及报警信息zhaohui@mail.ccut.edu.cn275.3.2SA方法的描述手段第0层数据流图zhaohui@mail.ccut.edu.cn285.3.2SA方法的描述手段第1层数据流图zhaohui@mail.ccut.edu.cn295.3.2SA方法的描述手段第2层数据流图zhaohui@mail.ccut.edu.cn305.3.2SA方法的描述手段数据字典数据词典是由DFD中所有元素的“严格定义”组成。其作用就是DFD中出现的每个元素提供详细的说明,即DFD中出现的每个数据流名、文件名和加工名都在数据词典中应有一个条目以定义相应的含义。zhaohui@mail.ccut.edu.cn315.3.2SA方法的描述手段数据词典中的条目类型1.数据流条目:用于定义数据流主要说明由哪些数据项组成数据流,采用简单的形式符号方式定义。对于复杂的数据流,可采用向顶向下逐步细化的方式定义数据项。例:订票单=顾客信息+订票日期+出发日期+航班号+……顾客信息=姓名+性别+身份证号+联系电话zhaohui@mail.ccut.edu.cn325.3.2SA方法的描述手段当数据项由多个更小的数据元素组成时,可利用集合符号“{}”给予说明。如:选修课程=课程表+教师+教材课程表={课程名+星期几+上课时间+教室}当某些数据项是几个不同的数据流的公用数据项时,可将它们列为专门的数据项条目。如:教室=101|102|……航班号=Mu712|Mu814|……数据词典中的条目类型1.数据流条目:用于定义数据流zhaohui@mail.ccut.edu.cn335.3.2SA方法的描述手段当所有出现在DFD中的数据流都给予定义后,最后的工作就是对出现在数据流中的数据项进行汇总,然后以表格的形式汇录每一数据项。如:数据词典中的条目类型1.数据流条目:用于定义数据流zhaohui@mail.ccut.edu.cn345.3.2SA方法的描述手段2.文件条目:用于定义文件除说明组成文件的所有数据项(与数据流的说明相同)外,还可说明文件的组成方式。如:航班表文件={航班号+出发地+目的地+时间}组成方式=按航班号大小排列zhaohui@mail.ccut.edu.cn355.3.2SA方法的描述手段加工条目:用于说明加工加工条目主要描述加工的处理逻辑或“做什么”。加工条目并不描述具体的处理过程,但可以按处理的顺序描述加工应完成的一些功能,而且描述加工的手段通常使用自然语言,或者结构化的人工语言,或者使用判定表或判定树的形式。zhaohui@mail.ccut.edu.cn365.3.2SA方法的描述手段实例:某培训中心管理信息系统中的“处理报名”加工描述如下:①根据报名要求查询收费标准文件,确定相应费用。②学生注册③根据选修课程登录课程统计文件④产生注册单等由所有的数据条目、文件条目和加工条目就构成一本数据词典。zhaohui@mail.ccut.edu.cn37练习某学校计算机教材购销系统有以下功能:学生买书,首先填写购书单,系统根据各班学生用书表以及售书登记表审查有效性,若有效,计算机根据教材存量表进一步判断书库是否有书,若有书,计算机把领书单返回给学生,学生凭领书单到书库领书。对脱销的教材,系统用缺书单的形式通知书库,新书购进库后,也由书库将进书通知返回给系统。请就以上系统功能画出分层的DFD图,并建立主要的文件条目的数据字典.zhaohui@mail.ccut.edu.cn385.3.3实例说明某学校拟开发一个运动会管理系统。有关运动会的业务流程如下:(1)确定运动会的举办时间和地点,设置哪些项目,报名时间等(2)确定一些限制规定,如每人最多可参加几个项目,每个项目每队最多可由多少人参加,取前几名,打破单项比赛记录后的处理等。zhaohui@mail.ccu