《软件需求分析-数据流.ppt》由会员分享,可在线阅读,更多相关《软件需求分析-数据流.ppt(19页珍藏版)》请在金锄头文库上搜索。
1、2.1.2 2.1.2 需求工程过程需求工程过程 问题识别问题识别分析与综合分析与综合编写文档编写文档分析评审分析评审2.1.2 2.1.2 需求分析过程需求分析过程可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求系统需求需求文挡需求文挡 2.2.1 SA2.2.1 SA法概述法概述分分解解:对对于于一一个个复复杂杂的的系系统统,为为了了将将复复杂杂性性降降低低到到可可以以掌掌握握的的程程度度,可可以以把把大大问问题题分分解解成成若若干干小小问问题题,然然后后分分别别解解决决(如如右右图
2、图)。一、一、一、一、SASA法的基本思想法的基本思想法的基本思想法的基本思想 结构化分析方法的基本思想是结构化分析方法的基本思想是“分解分解”和和“抽象抽象”。抽抽象象:分分解解可可以以分分层层进进行行,即即先先考考虑虑问问题题最最本本质质的的属属性性,暂暂把把细细节节略略去去, ,以以后后再再逐逐层层添添加加细细节节,直直至至涉涉及及到到最最详详细细的的内内容容,这这种种用用最最本本质质的的属属性性表表示示一一个个系系统统的的方方法法就就是是“抽抽象象”。2.2.1 SA2.2.1 SA法的概述法的概述1.11.21.3x2132.12.22.31.11.3顾顾客客出出版版社社验证验证订单
3、订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件DFD图(图(数据流数据流图图)的例子)的例子加工名加工名编号编号加工名加工名编号编号文件名文件名文件名文件名顾顾客客出出版版社社验证验证订单订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件画图步骤画图步骤 : 1 1、确定外部实体及输入、输出
4、数据流。、确定外部实体及输入、输出数据流。 2 2、确定分解顶层的加工。、确定分解顶层的加工。 3 3、确定使用的文件。、确定使用的文件。 4 4、用数据流将各部分连接起来,形成数据封闭。、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。注意:标注各加工框及数据流名称。例例1 1:图书预定系统:图书预定系统(顶层(顶层DFDDFD图)图)2.2.2 2.2.2 数据流图数据流图数数据据流流图图(Data Data Flow Flow DiagramDiagram,DFDDFD)是是描描述述系系统统中中数数据据流流程程的的图图形形工工具具,它它标标识识了了一一个个系系统统
5、的的逻逻辑辑输输入入和和逻逻辑辑输输出出,以以及及把把逻逻辑输入转换为逻辑输出所需的加工处理。辑输入转换为逻辑输出所需的加工处理。数据存储数据存储数据源点数据源点或终点或终点加加 工工加工名加工名数据流数据流数据流名数据流名文件名文件名实体名实体名箭箭 头头圆或椭圆圆或椭圆单或双杠单或双杠矩形框矩形框还有一些辅助的图例还有一些辅助的图例: :2.2.2 2.2.2 分层的数据流图分层的数据流图一、数据流图的图符一、数据流图的图符四种基本图形符号:四种基本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+* 与与 + 或或互斥互斥+ “先全局后局部先全局后局部, ,先整体后细
6、节先整体后细节, ,先抽象后具体先抽象后具体” 通常可将这种分层的通常可将这种分层的DFDDFD图图, ,分为顶层、中间层、底层。分为顶层、中间层、底层。 具体步骤:具体步骤: 1 1。先确定系统范围,画出顶层的。先确定系统范围,画出顶层的DFDDFD图。图。 2 2。逐层分解顶层。逐层分解顶层DFDDFD图,获得若干中间层图,获得若干中间层DFDDFD图。图。 3 3。画出底层的。画出底层的DFDDFD图。图。 2.2.3 2.2.3 画分层画分层DFDDFD图的方法图的方法 顶顶层层图图说说明明了了系系统统的的边边界界, ,即即系系统统的的输输入入和和输输出出数数据据流流,顶顶层层图图只只
7、有有一一张张。底底层层图图由由一一些些不不能能再再分分解解的的加加工工组组成成,这这些些加加工工都都已已足足够够简简单单,称称为为基基本本加加工工。在在顶顶层层和和底底层层之之间间的的是是中中间间层层。中中间间层层的的数数据据流流图图描描述述了了某某个个加工的分解,而它的组成部分又要进一步分解。加工的分解,而它的组成部分又要进一步分解。 画各层画各层DFDDFD图时,图时,“由外向内由外向内”。X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶顶层层中中 间间 层层底底 层层先全局后局部先全局后局部, ,先整体后细节先
8、整体后细节, ,先抽象后具体先抽象后具体. .0图图1图图2图图1.1图图2.1图图2.2图图分层DFD 图经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1 1、监视病员的病症(血压、体温、脉搏等)。、监视病员的病症(血压、体温、脉搏等)。2 2、定时更新病历。、定时更新病历。3 3、病员出现异常情况时报警。、病员出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。2.2.4 实例:医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历2.2.4 2.2.4 实例:医院病房监护系统实例:医院病房监护系统系统功
9、能要求:系统功能要求: 1 1、监视病员的病症(血压、体温、脉搏等)、监视病员的病症(血压、体温、脉搏等) 2 2、定时更新病历、定时更新病历 3 3、病员出现异常情况时报警。、病员出现异常情况时报警。 4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。顶层:顶层:病员病员护士护士护士护士病员监病员监护系统护系统病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警例例2 2 医院病房监护系统医院病房监护系统第一层:第一层:病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报
10、告生成报告病员极限病员极限更新日志更新日志病员数据病员数据格式化格式化病员数据病员数据生理信号生理信号极限值极限值1324日志数据日志数据日志数据日志数据医院病房监护系统顶层医院病房监护系统顶层DFDDFD图图第二层:加工第二层:加工“中央监视中央监视”分解分解计算超过计算超过极限值否极限值否病员病员数据数据超过超过极限值极限值报警报警开解信号开解信号产生产生报警信息报警信息病员极限病员极限格式化格式化病员数据病员数据体温体温血压、体温血压、体温脉搏脉搏生理信号生理信号极限值极限值时间时间脉搏脉搏血压血压日期日期时钟时钟格式化格式化病员数据病员数据3.13.23.23.33.33.43.4医院
11、病房监护系统二层医院病房监护系统二层DFDDFD图图计算超过计算超过极限值否极限值否病员病员数据数据超过超过极限值极限值报警报警开解信号开解信号产生产生报警信息报警信息病员极限病员极限格式化格式化病员数据病员数据体温体温血压、体温、血压、体温、脉搏脉搏生理信号生理信号极限值极限值时间时间脉搏脉搏血压血压日期日期时钟时钟格式化格式化病员数据病员数据3.13.23.23.33.33.43.4第二层:加工第二层:加工“中央监视中央监视”分解分解医院病房监护系统分层医院病房监护系统分层医院病房监护系统分层医院病房监护系统分层DFDDFDDFDDFD图图图图图图 2.15第一层第一层格式化格式化病员数据
12、病员数据生理信号生理信号极限值极限值病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志病员病员数据数据1324日志数据日志数据图图 2.16加工分解的原则加工分解的原则自然性自然性:概念上合理、清晰;概念上合理、清晰; 均均匀匀性性:理理想想的的分分解解是是将将一一个个问问题题分分解解成成大大小小均均匀匀的的几几个部分;个部分;分分解解度度:一一般般每每一一个个加加工工每每次次分分解解最最多多不不要要超超过过个个子子加工加工, ,分解应分解到基本加工为止。分解应分解到基
13、本加工为止。2.2.5 2.2.5 画分层画分层DFDDFD图的基本原则图的基本原则数据守恒与数据封闭原则数据守恒与数据封闭原则 所所谓谓数数据据守守恒恒是是指指加加工工的的输输入入输输出出数数据据流流是是否否匹匹配配,即即每每一一个个加加工工既既有有输输入入数数据据流流又又有有输输出出数数据据流流。或或者者说说一一个加工至少有一个输入数据流,一个输出数据流。个加工至少有一个输入数据流,一个输出数据流。 数据封闭是对整个系统而言。数据封闭是对整个系统而言。合理使用文件合理使用文件 当当文文件件作作为为某某些些加加工工之之间间的的交交界界面面时时,文文件件必必须须画画出出来来,一一旦旦文文件件作
14、作为为数数据据流流图图中中的的一一个个独独立立成成份份画画出出来来了,那么他同其他成份之间的联系也应同时表达出来。了,那么他同其他成份之间的联系也应同时表达出来。DFDDFDDFDDFD图不是流程图图不是流程图图不是流程图图不是流程图, , , ,不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。2.2.5 2.2.5 画分层画分层DFDDFD图的基本原则图的基本原则子图与父图的子图与父图的“平衡平衡”父图中某个加工的输入输出数据流应该同相应的子父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同图的输入输出相同( (相对应),分层数据流图的这种特
15、相对应),分层数据流图的这种特点称为子图与父图点称为子图与父图“平衡平衡”。2.2.6 分层DFD图的改进 DFD图必须经过图必须经过反复修改反复修改,才能获得最终的目标系统的,才能获得最终的目标系统的逻辑模型(目标系统的逻辑模型(目标系统的DFD图)。可从以下方面考虑图)。可从以下方面考虑DFD图图的改进:的改进: 1 1、检查数据流的正确性、检查数据流的正确性 数据数据守恒守恒 子图、父图的平衡子图、父图的平衡 文件使用是否合理。特别注意输入文件使用是否合理。特别注意输入/ /出文件的数据流。出文件的数据流。 2 2、改进、改进DFDDFD图的易理解性图的易理解性 简化加工之间的联系(加工
16、间的数据流越少,独立性越简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。强,易理解性越好)。 改进分解的均匀性。改进分解的均匀性。 适当命名(各成分名称无二义性,准确、具体)。适当命名(各成分名称无二义性,准确、具体)。 结构化语言是介于自然语言和形式语言之间的一种半形结构化语言是介于自然语言和形式语言之间的一种半形式语言,它是自然语言的一个受限制的子集。一般分为两层式语言,它是自然语言的一个受限制的子集。一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环)结构:外层语法较具体,为控制结构(顺序、选择、循环), ,内层较灵活,表达内层较灵活,表达“做什么做什么”
17、。一、一、 结构化语言结构化语言例如:外层可为以下结构:例如:外层可为以下结构:1、顺序结构、顺序结构2、选择结构、选择结构 IFTHEN-ELSE; CASE-OF-ENDCASE;3、循环结构、循环结构 WHILE-DO; REPEAT-UNTIL YYNNYN快速快速原型化开发过程原型化开发过程2.3.2 2.3.2 快速原型开发模型快速原型开发模型 快速建立系统原型进行系统的快速建立系统原型进行系统的分析和构造有如下优点:分析和构造有如下优点: 1 1、增进软件开发人员和用户、增进软件开发人员和用户对系统需求的理解。便于将用户对系统需求的理解。便于将用户模糊的功能需求明确化。模糊的功能
18、需求明确化。2 2、为为用用户户提提供供了了一一种种强强有有力力的学习手段。的学习手段。3 3、易于确定系统的性能,是、易于确定系统的性能,是理解和确认软件需求规格说明的理解和确认软件需求规格说明的工具。工具。4 4、按照、按照RCPRCP 法建立的原型即法建立的原型即为最终的产品。为最终的产品。 细化的原型化模型需求工程小结需求工程小结需求工程小结最初,需求工程仅仅是软件工程的一个组成部分,是软件最初,需求工程仅仅是软件工程的一个组成部分,是软件最初,需求工程仅仅是软件工程的一个组成部分,是软件最初,需求工程仅仅是软件工程的一个组成部分,是软件生命周期的第一个阶段。生命周期的第一个阶段。生命
19、周期的第一个阶段。生命周期的第一个阶段。在传统软件工程生命周期中,涉及需求的阶段称作需求分在传统软件工程生命周期中,涉及需求的阶段称作需求分在传统软件工程生命周期中,涉及需求的阶段称作需求分在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:析。一般来说,需求分析的作用是:析。一般来说,需求分析的作用是:析。一般来说,需求分析的作用是: 系统工程师说明软件的功能和性能,指明软件和其他系系统工程师说明软件的功能和性能,指明软件和其他系系统工程师说明软件的功能和性能,指明软件和其他系系统工程师说明软件的功能和性能,指明软件和其他系统成分的接口,并定义软件必须满足的约束
20、;统成分的接口,并定义软件必须满足的约束;统成分的接口,并定义软件必须满足的约束;统成分的接口,并定义软件必须满足的约束; 软件工程师求精软件的配置,建立数据模型、功能模型软件工程师求精软件的配置,建立数据模型、功能模型软件工程师求精软件的配置,建立数据模型、功能模型软件工程师求精软件的配置,建立数据模型、功能模型和行为模型;和行为模型;和行为模型;和行为模型; 为软件设计者提供可用于转换为数据设计、体系结构设为软件设计者提供可用于转换为数据设计、体系结构设为软件设计者提供可用于转换为数据设计、体系结构设为软件设计者提供可用于转换为数据设计、体系结构设计、界面设计和过程设计的模型;计、界面设计
21、和过程设计的模型;计、界面设计和过程设计的模型;计、界面设计和过程设计的模型; 提供开发人员和客户需求规格说明,用于作为评估软件提供开发人员和客户需求规格说明,用于作为评估软件提供开发人员和客户需求规格说明,用于作为评估软件提供开发人员和客户需求规格说明,用于作为评估软件质量的依据。质量的依据。质量的依据。质量的依据。需求工程小结需求工程小结 需求工程是系统工程和软件工程的一个交叉分支,涉及到需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需要和软件能力之间以及系统进化之间的关系。它也提供现实需要和软件能力之间的桥梁。的桥梁。 需求工程的基本活动包括:需求工程的基本活动包括:需求工程的基本活动包括:需求工程的基本活动包括: 抽取需求;抽取需求; 模拟和分析需求;模拟和分析需求; 传递需求;传递需求; 认可需求;认可需求; 进化需求。进化需求。