软件工程课件:第4章 软件需求2_第1页
软件工程课件:第4章 软件需求2_第2页
软件工程课件:第4章 软件需求2_第3页
软件工程课件:第4章 软件需求2_第4页
软件工程课件:第4章 软件需求2_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章软件需求(2)1软件工程 - 2013 - 第四章 软件需求第四章内容概要软件需求概述软件需求过程软件需求的表达方法2软件工程 - 2013 - 第四章 软件需求软件需求的表达方法系统模型软件需求的静态、动态表达方法传统结构化分析方法数据及数据库需求的表达方法3软件工程 - 2013 - 第四章 软件需求需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题系统模型4软件工程 - 2013 - 第四章 软件需求通常软件开发项目是要实现目标系统的物理模型。目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的。导出目标系统

2、的逻辑模型的过程中,对系统进行建模有着不可替代的作用。系统模型5软件工程 - 2013 - 第四章 软件需求在需求分析阶段创建模型的作用模型帮助分析员理解系统的信息、功能和行为,因此,使得需求分析任务更容易、更系统;模型是评审的焦点,因此,也成为确定规约的完整性、一致性和精确性的关键;模型是设计的基础。系统模型6软件工程 - 2013 - 第四章 软件需求系统模型:描述系统的某个特殊方面,是自然语言描述的补充需求定义和系统模型通常同时开发;系统某一方面的需求间相互关系的统一表达;常常可看作是需求规约的具体化,视开发方对系统模型的重视程度和开发任务的分配情况而定。系统模型本质:开发方根据从应用域

3、中提取的需求,以自己的形式表达的理解。系统模型7软件工程 - 2013 - 第四章 软件需求系统模型的分类:行为模型:这个概念包括系统的所有过程层面的内容。功能模型:描述数据的功能转换。有两种方式。其一,数据被认为在功能处理元素间流动,如数据流图(DFD)。其二,领域实体被建模成对象,通过事件触发相应的服务来处理数据元素,如面向对象方法。动态模型:描述与时间有关的变化。结构模型(静态模型):描述系统的实体结构。系统模型8软件工程 - 2013 - 第四章 软件需求软件需求的表达方法系统模型软件需求的静态、动态表达方法传统结构化分析方法数据及数据库需求的表达方法9软件工程 - 2013 - 第四

4、章 软件需求最基本形式自然语言描述因可能存在二义性,所以应在合适情况下选用合适的符号进行精确描述。静态描述实体关系图(ER图)数据抽象对象模型需求的表达形式10软件工程 - 2013 - 第四章 软件需求动态描述判定表状态迁移图时序图Petri网层次技术Warnier图需求的表达形式11软件工程 - 2013 - 第四章 软件需求系统的需求规格说明通常可以用自然语言来叙述,但是用自然语言描述往往会出现歧义性;为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。系统的动态分析12软件工程 - 2013 - 第四章 软件需求状态迁移图时序图Petri网最常用的动态分析

5、方法13软件工程 - 2013 - 第四章 软件需求状态迁移图是描述系统的状态如何响应外部的信号进行推移的一种图形表示。 圆圈“”表示可得到的系统状态; 箭头“”表示从一种状态向另一种状态的迁移。箭头上要标明导致迁移的信号的或事件的名字;状态迁移图所表示的关系还可以用表格形式表达,称之为状态迁移表。状态迁移图14软件工程 - 2013 - 第四章 软件需求状态迁移图状态迁移图和与其等价的状态迁移表示例15软件工程 - 2013 - 第四章 软件需求如何设置系统的状态,需要根据分析的目标和表达的目的而定。例如,操作系统中根据调度的要求需要设置进程的状态,当有多个申请占用CPU运行的进程时,有关C

6、PU分配的进程的状态就可以用下图表示:状态迁移图16软件工程 - 2013 - 第四章 软件需求可得到的状态就绪,运行,等待 就绪(Ready):等待分配CPU 运行(Running):正在CPU上做处理 等待(Wait):放弃CPU生成的事件t1,t2, t3, t4t1:因I/O等事件发生而要求中断t2:中断事件已处理t3:分配CPUt4:已用完分配的CPU时间状态迁移图17软件工程 - 2013 - 第四章 软件需求状态之间的关系能够直观地捕捉到,可以检查所有可能的状态是否都已纳入到图中,是否存在不必要的状态等。由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具,回答

7、诸如“指定事件序列P、状态A和B,可以因为P从A向B迁移吗?”、“找出经过所有状态的事件序列”之类的问题。状态迁移图的优点18软件工程 - 2013 - 第四章 软件需求在系统分析中,时序图用于对比在系统中处理事件的时序和相应的处理时间在下图中, 对于事件e,功能1功能3的处理时间总计为 (T1T2T3),其中功能间切换时间为0时序图19软件工程 - 2013 - 第四章 软件需求采用扩充时序图可表示进程间的通信流, 用于分析几个 事件的交错现象。如右图,C1与C2,R1与R2是交错的。因此,可以做如下分析:“HOST1 在等待C1的回答R1期间要能接收从HOST2发出的命令C2。”时序图20

8、软件工程 - 2013 - 第四章 软件需求Petri网最早是作为表达异步系统的控制规则的图形表示法提出来的,现在已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。Petri网21软件工程 - 2013 - 第四章 软件需求Petri网简称PNG (Petri Net Graph),是一种有向图,它有两种结点:位置( place ):符号为“”,它用来表示系统的状态。转移( transition ):符号为“” 或“”,它用来表示系统中的事件。图中的有向边表示对转移的输入,或由转移的输出:“”表示事件发生的前提,即对转移(事件)的输

9、入,“”表示事件的结果,即由转移(事件)的输出。Petri网22软件工程 - 2013 - 第四章 软件需求称转移的启动为激发或开火(fire),它是转移的输出;只有当作为输入的所有位置的条件都满足时才能引起激发:Petri网23软件工程 - 2013 - 第四章 软件需求标记,或称令牌(token),是表明系统当前处于什么状态的标志Petri网24软件工程 - 2013 - 第四章 软件需求25软件工程 - 2013 - 第四章 软件需求26软件工程 - 2013 - 第四章 软件需求 处理两个进程的同步问题27软件工程 - 2013 - 第四章 软件需求28软件工程 - 2013 - 第四

10、章 软件需求软件需求的表达方法系统模型软件需求的静态、动态表达方法传统结构化分析方法数据及数据库需求的表达方法29软件工程 - 2013 - 第四章 软件需求结构化分析方法最初由Douglas Ross提出,由DeMarco推广,由Ward和Mellor以及后来的Hatley和Pirbhai扩充,形成了今天的结构化分析方法的框架。结构化分析方法30软件工程 - 2013 - 第四章 软件需求结构化分析方法的分析模型数据字典实体关系图数据流图状态变迁图数据对象描述加工规格说明控制规格说明31软件工程 - 2013 - 第四章 软件需求核心:数据字典实体关系图(ERD):描述数据对象和对象之间的关

11、系数据建模数据流图(DFD):描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能)功能建模状态变迁图(STD):描述系统对外部事件如何响应,如何动作行为建模结构化分析方法的分析模型32软件工程 - 2013 - 第四章 软件需求面向数据流进行需求分析的方法。传统结构化分析方法适合于数据处理类型软件的需求分析。具体来说,传统结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。传统结构化分析方法33软件工程 - 2013 - 第四章 软件需求传统结构化分析方法使用工具: 数据流图(Data F

12、low Diagram) 数据词典(Data Dictionary) Warnier图 结构化英语 判定表与判定树传统结构化分析方法34软件工程 - 2013 - 第四章 软件需求数据流图(DFD)的符号或数据的源点/终点或变换数据的处理/加工/变换或数据存储(文件)数据流35软件工程 - 2013 - 第四章 软件需求源点和终点源点和终点是系统之外的实体,可以是人、物或其他软件系统。源点和终点是为了帮助理解系统接口而引入的。加工/变换对数据进行处理的单元。在分层数据流图中,要对加工进行编号,以便于管理。加工也要选取适当的名字,以提高数据流图的易读性。DFD的符号36软件工程 - 2013 -

13、 第四章 软件需求数据流由一组数据项组成。例如,数据流“订票单”由姓名、住址、电话、航班号、日期、始点、终点等数据项组成;数据流“航班”由航班号、日期和姓名等数据项组成数据流可以从加工流向加工,如“航班”、“费用”;可以从源点流向加工,或从加工流向终点;可以从加工流向数据存储或从数据存储流向加工DFD的符号37软件工程 - 2013 - 第四章 软件需求文件用来暂时存储数据的。如果加工要读文件,则数据流的方向是从文件到加工;如果加工要写文件,则数据流的方向是从加工到文件;如果加工既要读文件又要写文件,则数据流的方向是双向的DFD的符号38软件工程 - 2013 - 第四章 软件需求旅行社旅客预

14、定机票机票准备记帐航班目录记帐文件订票单航班费用帐单机票DFD的符号39软件工程 - 2013 - 第四章 软件需求描述银行取款过程的数据流图40软件工程 - 2013 - 第四章 软件需求数据流与数据加工之间的关系41软件工程 - 2013 - 第四章 软件需求为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。数据流图的层次结构42软件工程 - 2013 - 第四章 软件需求自顶向下逐层画数据流图的步骤首先建立顶层的数据流图(基本系统模型),其中只含有一个代表目标软件系统整体处理

15、功能的转换。根据软件系统与外部环境的关系确定顶层数据流图中的外部实体以及它们与软件系统之间的数据流。 43软件工程 - 2013 - 第四章 软件需求自顶向下逐层画数据流图的步骤外部实体外部实体外部实体外部实体软件系统输入数据流输入数据流输出数据流输出数据流。基本系统模型(0级图)44软件工程 - 2013 - 第四章 软件需求旅行社旅客飞机订票系统订票单机票帐单45软件工程 - 2013 - 第四章 软件需求画系统的内部:将顶层图中的处理分解成若干个处理,并用数据流将这些处理连接起来,使得顶层图中的输入数据流经一连串的加工处理后变换成顶层图中的输出数据流。这张图称为1层数据流图。又称为系统功

16、能级数据流图。 画处理的内部:把每一个处理看作一个小系统,该处理的输入输出数据流看成小系统的输入输出数据流,于是可以用画1层图同样的方法画出每个处理的DFD子图。对第3步分解出来的DFD子图中的每个处理重复第3步的分解,直至图中尚未分解的处理都足够简单为止。到此得到了一套分层的数据流图。 自顶向下逐层画数据流图的步骤46软件工程 - 2013 - 第四章 软件需求分层的数据流图源点1源点2终点2终点1G顶层0层132一层图号11.11.23.43.12.22.12.33.23.3图号2图号347软件工程 - 2013 - 第四章 软件需求为分层数据流图和加工编号的原则:(1)子图的图号就是分解

17、的父图中加工的编号(2)子图中的加工的编号是由子图号、小数点,局部顺序号组成二层图号3.3图号2.2图号3.12.2.12.2.23.3.13.3.33.3.23.1.23.1.1分层的数据流图48软件工程 - 2013 - 第四章 软件需求分层的数据流图49软件工程 - 2013 - 第四章 软件需求在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统,也被称为0层图。它的输入流是该系统的输入数据,输出流是系统所输出数据。底层流图是指其加工不需再做分解的数据流图,它处在最底层。中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。分层的数据流图50软件工程 - 201

18、3 - 第四章 软件需求数据流图中的主要图形元素:数据加工(数据变换),图中“2”为加工编号数据源点(source)或汇点(sink)数据流数据存储文件数据流图常用的另一套图形元素51软件工程 - 2013 - 第四章 软件需求数据流图示例:学校选课系统52软件工程 - 2013 - 第四章 软件需求数据流图示例:学校选课系统53软件工程 - 2013 - 第四章 软件需求一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,列出所有需要再次定货的零件。对于需要订货的零件列出其零件编号、零件名称、定货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端

19、把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定货。例1:定货系统54软件工程 - 2013 - 第四章 软件需求第一步确定系统的源点和终点仓库管理员是数据的源点;采购员是数据的终点。处理(加工)应该完成定货系统这样一个功能。数据流事务需从仓库送到系统中,显然事务是一个数据流;系统要把定货报表送给采购部,定货报表也是一个数据流。例1:定货系统55软件工程 - 2013 - 第四章 软件需求定货系统基本数据流图例1:定货系统仓库管理员事务定货系统定货报表采购员定货系统的基本系统模型56软件工程 - 2013 - 第四章 软件需求 第二步将处理(加工)定货系统进行功能分解成事务处理

20、和产生报表两部分;考虑有关数据存储问题,题中涉及到存储的信息有:库存清单、定货信息;例1:定货系统57软件工程 - 2013 - 第四章 软件需求源点/终点处理采购员仓库管理员产生报表处理事务数据流数据存储定货报表 零件编号 零件名称 定货数量 目前价格 主要供应者 次要供应者事务 零件编号 事务类型 数量定货信息 (同定货报表)库存清单 零件编号 库存量 库存量临界值58软件工程 - 2013 - 第四章 软件需求例1:定货系统定货系统功能级数据流图定货报表采购员仓库管理员事务1处理事务库存清单D1 库存清单D2 定货信息定货信息2产生报表定货信息 定货系统的功能级数据流图59软件工程 -

21、2013 - 第四章 软件需求第三步将事务处理进一步分解为接收事务、更新库存清单、处理定货三部分。画出事务处理功能分解后的数据流图。例1:定货系统60软件工程 - 2013 - 第四章 软件需求例1:定货系统 把处理事务的功能进一步分解后的数据流图仓库管理员事务1.1接收事务库存清单D1 库存清单事务1.2更新库存清单定货信息D2 定货信息定货报表采购员2产生报表1.3处理定货定货信息库存信息61软件工程 - 2013 - 第四章 软件需求由捐助者向基金会提出捐助请求,经身份确认后被接受,对捐助人进行登记并授予捐助证书,捐款存入银行。由教育单位提出用款申请,在进行相应的合法性校验和核对相应的捐

22、款储备后做出支出。每月给基金会的理事会一份财政状况报表,列出本月的收入和支出情况和资金余额。例2:教育基金会的捐助资金管理系统62软件工程 - 2013 - 第四章 软件需求例2:教育基金会的捐助资金管理系统捐助者教育单位理事会资金管理系统捐款请求财政报表用款请求基金会资金管理系统的顶层数据流图63软件工程 - 2013 - 第四章 软件需求例2:教育基金会的捐助资金管理系统理事会财政报表捐助者捐款请求教育单位用款请求D1收支状况支出处理2收入处理1功能级数据流图产生报表364软件工程 - 2013 - 第四章 软件需求经过细化的功能级数据流图捐助者教育单位接受请求1.1产生报表3支出批准2.

23、3登记收入1.3合法性检查2.2接受请求2.1合法性检 查1.2理事会D3教育单位信息D2捐助者信息捐款请求捐款要求请求用款用款合法支出合法捐助D1收支状况财务报告要求65软件工程 - 2013 - 第四章 软件需求例3:商店业务处理系统66软件工程 - 2013 - 第四章 软件需求这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能。数据流图绘制步骤: 首先确定系统的输入和输出; 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程;例3:商店业务处理系统67软件工程 - 2013 - 第四章 软件需求 经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要

24、数据流输入的源点和输出终点是顾客和供应商; 然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图:例3:商店业务处理系统68软件工程 - 2013 - 第四章 软件需求第一层数据流图69软件工程 - 2013 - 第四章 软件需求加细每一个加工框销售细化70软件工程 - 2013 - 第四章 软件需求加细每一个加工框采购细化71软件工程 - 2013 - 第四章 软件需求画数据流图不是画流程图父图和子图的平衡问题局部文件的问题分解的深度和层次问题命名问题画数据流图需要注意的几个问题72软件工程 - 2013 - 第四章 软件需求父图和子图的平衡问

25、题12435763.13.23.33.43.63.5ACBYEXWVFDGHDFGH73软件工程 - 2013 - 第四章 软件需求父图和子图的平衡问题12344.44.34.24.1AGCBFDEEHLFG1323.13.2考生成绩录取通知书考生姓名准考证号通讯地址考生成绩74软件工程 - 2013 - 第四章 软件需求文件(数据存储)总是局部于分层数据流图的某一层或某几层,所以数据流图中引入的文件都是局部文件;当数据存储的第一次出现时只与一个加工发生关系,不成为加工间的接口关系时,没有必要把它在DFD中表示出来,而应作为这一加工本身的一部分。局部文件的问题12.1322.242.3ABCA

26、BCDEGFFED75软件工程 - 2013 - 第四章 软件需求一个加工的分解最好不要超过7(9)个子加工。超过七个时,可以用增加层次,减少子加工数的方法。分解在逻辑上应合理、自然,不能硬性分割。也就是说,要根据问题的逻辑特性进行分解。在保证数据流的易理解的前提下,尽量减少分解层次。这样可以减少层次的界面。分解要均匀。即在一张数据流图中,不要有这样的情况:有些加工已是基本加工,另一些加工还要分解好几层,但绝对均匀不可能,不要相差太大。分解的深度和层次问题76软件工程 - 2013 - 第四章 软件需求数据流命名名字应代表整个数据流(有时也会把现实环境中传递的一组数据中最重要的那个数据的名字作

27、为数据流的名字)命名问题考生成绩分类后的考生成绩录取分类77软件工程 - 2013 - 第四章 软件需求数据流命名(续)现实环境中,传递的一些表格、单据的名字可以直接作为数据流的名字。命名问题车间调度全厂统计生产报表统计表日报表月报表78软件工程 - 2013 - 第四章 软件需求数据流命名(续)不要使用空洞的、缺乏具体含义的名字;不要把控制流作为数据流;如果在为某个数据流命名时遇到困难,可能是数据流图分解不当,应考虑重新分解DFD。命名问题录取分类取下一个考生成绩79软件工程 - 2013 - 第四章 软件需求加工(处理)命名顶层的加工名可以是软件项目的名字;不要使用空洞的、缺乏具体含义的名

28、字;通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程;如果在为某个加工命名时遇到困难,可能是数据流图分解不当,应考虑重新分解DFD;命名问题80软件工程 - 2013 - 第四章 软件需求加工(处理)命名(续)加工的名字最好由一个谓语动词加上一个宾语组成。如“计算运费”、“准备机票”。也可以把宾语和谓语动词颠倒书写。如“运费计算”、“机票准备”;名字应该反映整个处理的功能,而不是它的一部分功能;通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。命名问题81软件工程 - 20

29、13 - 第四章 软件需求作为交流信息的工具作为分析和设计的工具用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现可以从数据流图出发映射出软件结构数据流图的用途82软件工程 - 2013 - 第四章 软件需求这种划分自动化边界的方法暗示以批量方式更新库存清单数据流图的用途83软件工程 - 2013 - 第四章 软件需求数据流图的用途另一种划分自动化边界的方法建议以联机方式更新库存清单84软件工程 - 2013 - 第四章 软件需求对于数据流图中出现的所有被

30、命名的图形元素,在数据词典中作为一个词条加以定义,使得每个图形元素都有确切解释。数据词典与数据流图配合,能清楚地表达数据处理的要求。词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有: 图形元素名字、别名或编号,分类,描述,定义,位置,其它,等。数据词典(DD)85软件工程 - 2013 - 第四章 软件需求数据流是数据结构在系统内传播的路径。一个数据流词条应有以下几项内容:数据流名说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构每个数据量的流通量:数据量,流通量(1)数据流词条描述86软件工程 - 2013 - 第四章 软

31、件需求DFD中每个数据结构都是由数据元素构成的,数据元素是数据处理中最小的、不可再分的单位,它直接反映事物的某一特征,其描述需要以下信息:数据元素名类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:(2)数据元素词条描述87软件工程 - 2013 - 第四章 软件需求数据文件是数据结构保存的地方。本类词条应有以下内容:数据文件名简述:存放的是什么数据输入数据:输出数据:数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:(3)数据文件词条描述88软件工程 - 2013 - 第四章 软件需求加工到后来就是一段程序,它的表达方式有判定表、判定树、结构化

32、英语等,在一个词条中全部描述有困难。主要内容有:加工名加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序(4)加工逻辑词条描述89软件工程 - 2013 - 第四章 软件需求对于数据处理系统来说,源点和汇点应比较少,否则就会缺少独立性,人机界面太复杂,这时应考虑减少以提高系统独立性。这类词条应包括:名称:外部实体名简要描述:什么外部实体有关数据流:数目:(5)源点及汇(终)点词条描述90软件工程 - 2013 - 第四章 软件需求常用的描述数据结构的方式有:定义式:自顶向下,逐级给出定义式,直到最后给出基本数据元素为止。Warnier

33、图:用树形结构来描绘数据结构。数据词典数据结构的描述91软件工程 - 2013 - 第四章 软件需求符号 含义 举例 “被定义为” 与 x=ab,x由a和b组成. , . 或 x=a , b, x由a或由b组成.|. 或 x=a |b, x由a或由b组成 . 重复 x = a, x由0个或多个a组成 m.n 重复 x = 3a8,x由3到8个a组成(.) 可选 x =(a),在x中a可有可无“.” 基本数据元素 x = “a”,x是取值为a的元素 . 连结符 x = 1.9,x可取1到9中任一值数据词典的定义式中出现的符号92软件工程 - 2013 - 第四章 软件需求数据结构的描述示例存折格

34、式93软件工程 - 2013 - 第四章 软件需求存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999” 注:三位数字帐号“00000001”.“99999999” 注:八位数字开户日年月日性质“1”.“6” 注:“1”表示普通户,“5”表示工资户等印密“0” 注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核94软件工程 - 2013 - 第四章 软件需求Warnier图示例报纸专栏的数据层次结构报纸头版部分社论部分副刊部分头条新闻国内新闻本地新闻社论(1,1)读者来信(1,3)体育新闻商业新闻广告专栏(1,3)讽刺漫画(0,1)副刊部分体育新闻商业

35、新闻广告地区队职业队拳击经营简讯雇员简讯招生招聘求助一般新闻95软件工程 - 2013 - 第四章 软件需求数据流图中每个加工框上只有简单的加工名,数据词典中关于加工的信息也不能表达加工的全部内容;随着逐层细化,加工逻辑越来越具体,到最底一层,可以详细到可实现的程度,这时的加工称为基本加工;如果能写出每个基本加工的全部详细逻辑功能,再自底向上综合,就能完成全部加工;数据流图的加工逻辑说明96软件工程 - 2013 - 第四章 软件需求对数据流图的每一个基本加工,必须有一个基本加工逻辑说明;基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则;加工逻辑说明必须描述实现加工的

36、策略而不是实现加工的细节;加工逻辑说明中包含的信息应是充足的、完备的、有用的、无冗余的。数据流图的加工逻辑说明97软件工程 - 2013 - 第四章 软件需求 结构化英语(Structured English) 判定表(Decision Table) 判定树(Decision Tree)用于写加工逻辑说明的工具98软件工程 - 2013 - 第四章 软件需求是一种介于自然语言和形式化语言之间的语言。结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等组成结构化英语99

37、软件工程 - 2013 - 第四章 软件需求语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示。其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:while_do 或 repeat_until 结构判定结构:if_then_else 或 case_of 结构结构化英语(Structured English)100软件工程 - 2013 - 第四章 软件需求if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书,发货单 else (发货单金额未超过$500) if 欠款超过60天 then 发

38、批准书,发货单及赊欠报告 else (欠款未超期) 发批准书,发货单 商店业务处理系统中“检查发货单”101软件工程 - 2013 - 第四章 软件需求如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适。判定表(Decision Table)102软件工程 - 2013 - 第四章 软件需求商店业务处理系统中“检查发货单”103软件工程 - 2013 - 第四章 软件需求判定树也是用来表达加工逻辑的一种工具。有时候它比判定表更直观。检查发货单金额$500金额$500欠款60天不发出批准书欠款60天发出批准书、发货单 欠款60天发出批准书、发货单及赊欠报告 欠款60天发出批

39、准书、发货单判定树(Decision Tree)104软件工程 - 2013 - 第四章 软件需求软件需求的表达方法系统模型软件需求的静态、动态表达方法常用的分析方法及符号系统传统结构化分析方法数据及数据库需求的表达方法105软件工程 - 2013 - 第四章 软件需求在数据词典中,强调对数据存储结构的逻辑设计,并用数据结构表达数据项之间的逻辑关系。但任何一个软件系统都可能有成千上万个数据项,仅仅描述这些数据项是不够的,更重要的是如何把它们以最优的方式组织起来,以满足系统对数据的要求。数据及数据库需求106软件工程 - 2013 - 第四章 软件需求在软件系统中需要处理的数据是现实世界中存在的

40、事物及其联系的反映。人们通常将与数据处理有关的的领域分为三个世界:现实世界信息世界数据世界有关数据库的基本概念107软件工程 - 2013 - 第四章 软件需求现实世界是存在于人们头脑之外的客观世界,现实世界中的事物可分成对象和性质两大类。对象可以是人、是物,还可以是实际的东西或概念的东西,例如,大学、城市等。对象还可以指事物与事物间的联系。性质则是指事物的性质或特征。有关数据库的基本概念108软件工程 - 2013 - 第四章 软件需求信息世界也叫做观念世界,是现实世界在人们头脑中的反映。客观世界中的事物在信息世界中叫做实体,反映事物之间联系的叫做实体模型。实体是由若干属性的属性值组成。属性

41、是实体某一方面的特征,相应于事物的性质。例如,一个学生实体是如下的一个5元组:( 951149, 袁秋慧, 女, 19, 软件)有关数据库的基本概念109软件工程 - 2013 - 第四章 软件需求5元组中每一元素是学生的某一属性的属性值。他们对应的属性集合是:(学号, 姓名, 性别, 年龄, 专业)这些属性集合表征了“学生”实体的类型,叫做实体型。同一类型的实体的集合叫做实体集。数据世界则是信息世界中信息的数据化,现实世界中的事物及其联系在数据世界中用数据模型描述。有关数据库的基本概念110软件工程 - 2013 - 第四章 软件需求描述每一实体的数据称为记录,描述属性的数据叫做数据项或字段

42、。与实体集相对应的称为文件。例如,学生文件就由多个记录组成,这些记录放在一起构成一个二维表。表中每一横排叫做一个记录或元组,每一纵列叫做一个属性。有关数据库的基本概念111软件工程 - 2013 - 第四章 软件需求有关数据库的基本概念112软件工程 - 2013 - 第四章 软件需求记录由数据项组成,正如实体由若干属性的属性值组成一样。一般数据项沿用属性名。用做属性名时表示观念信息,用做数据项名时表示数据信息。每个数据项包括两个特征:即数据类型和数据长度。若干同类型的记录构成文件。为了对文件中的记录有效组织和存取,通常指定一个数据项进行区别,这个数据项叫做关键字。有关数据库的基本概念113软

43、件工程 - 2013 - 第四章 软件需求在需求分析阶段进行数据库逻辑设计过程中,使用E-R图,可定义一 个实体模型。实体模型是现实世界的纯表示,它不涉及数据世界的数据结构、存取路径、存取效率等问题。因此,它可以转换成数据库中的数据模型。E-R方法和实体模型114软件工程 - 2013 - 第四章 软件需求数据可以按相应数据模型进行组织。E-R图中表示实体联系的符号如下:E-R方法和实体模型115软件工程 - 2013 - 第四章 软件需求在E-R图中,每个方框表示实体型或属性,方框之间的连线表示实体之间,或实体与属性之间的联系。出现在连线上的短竖线可以看成是“1”,而圆圈隐含表示“0”。例如

44、,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。E-R方法和实体模型116软件工程 - 2013 - 第四章 软件需求用E-R图描述它们之间的联系,得下图。其中,学生与课程是多对多的联系,而教师与课程的联系是一对零或多。E-R方法和实体模型117软件工程 - 2013 - 第四章 软件需求进一步,要确定属性。例如,学生具有学号、姓名、性别、年龄、专业(其它略)等属性;课程具有课程号、课程名、学分、学时数等属性;教师具有职工号、姓名、年龄、职称等属性。此外,学生通过学号、分数与课程发生联系。如此可得教学实体

45、模型。E-R方法和实体模型118软件工程 - 2013 - 第四章 软件需求E-R方法和实体模型教学实体模型119软件工程 - 2013 - 第四章 软件需求信息域分析需要确定数据的内容,每个数据项要用表格列出,最后组织成文件的逻辑结构,即面向应用而不是面向存储的结构。为了便于数据库的设计,常常要对这种结构做一些简化,其中最常见的一种方法就是规范化技术。数据结构的规范化120软件工程 - 2013 - 第四章 软件需求“规范化”将数据的逻辑结构归结为满足一定条件的二维表(关系)。 表格中每个信息项必须是一个不可分割的数据项,不可是组项。 表格中每一列 (列表示属性)中所有信息项必须是同一类型,

46、各列的名字 (属性名) 互异,列的次序任意。 表格中各行 (行表示元组) 互不相同,行的次序任意。数据结构的规范化121软件工程 - 2013 - 第四章 软件需求不满足上述要求的二维表或关系,叫做非规范化关系。对于非规范化的关系,必须将它规范化,即利用更单纯、更规则的关系来代替原来的关系。规范化的目的是:消除数据冗余,即消除表格中数据的重复;消除多义性,使关系中的属性含义清楚、单一;数据结构的规范化122软件工程 - 2013 - 第四章 软件需求使关系的“概念”单一化,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组;方便操作。使数据的插入、删除与修改操作可行并方便;使关系模式更灵活,易于实现接近自然语言的查询方式。

温馨提示

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

评论

0/150

提交评论