软件需求工程(精品).ppt
软件需求工程软件需求工程2 2第二第二 章章第二章第二章 软件需求工程软件需求工程2 22.1 2.1 软件需求分析的基本概念软件需求分析的基本概念2.2 2.2 结构化分析方法结构化分析方法2.32.3 原型化方法原型化方法(维护报告)开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型瀑布模型瀑布模型瀑布模型软件需求分析是软件生命期中重要的一步,也是决定性的一步。软件需求分析是软件生命期中重要的一步,也是决定性的一步。2.1 2.1 2.1 软件需求分析的基本概念软件需求分析的基本概念软件需求分析的基本概念 对对系系统统应应该该提提供供的的服服务务和和所所受受到到的的约约束束进进行行理理解解、分分析、建立文档、检验的过程析、建立文档、检验的过程需求工程需求工程1.1.什么是软件需求工程?什么是软件需求工程?2.2.软件需求分析的任务是什么?软件需求分析的任务是什么?3.3.需求工程过程需求工程过程4.4.软件需求分析方法软件需求分析方法2.1 软件需求分析的基本概念 2.1.1 软件需求分析的任务需求分析阶段的任务:需求分析阶段的任务:在在可可行行性性分分析析的的基基础础上上,进进一一步步了了解解确确定定用用户户需需求求。准准确确地地回回答答 “系统必须做什么?系统必须做什么?”的问题。获得需求规格说明书。的问题。获得需求规格说明书。Boehm对软件需求的定义:对软件需求的定义:研研究究一一种种无无二二义义性性的的表表达达工工具具,它它能能为为用用户户和和软软件件人人员员双双方方都都接接受受并能够把并能够把“需求需求”严格地、形式地表达出来。严格地、形式地表达出来。由于需求分析方法不同,描述形式不同。其实现步骤如下图所示:由于需求分析方法不同,描述形式不同。其实现步骤如下图所示:当前系统当前系统模型化模型化目标系统目标系统物理模型物理模型具体化具体化物理模型物理模型抽象化抽象化逻辑模型逻辑模型实例化实例化逻辑模型逻辑模型做做什么什么导导出出理理解解需需求求 表表达达需需求求2.1.1 软件需求分析的任务软软 件需件需 求求用用 户需户需 求求系系 统需统需 求求功能功能需求需求非功能非功能需求需求领域领域需求需求2.1.2 2.1.2 需求工程过程需求工程过程 问题识别问题识别分析与综合分析与综合编写文档编写文档分析评审分析评审2.1.2 需求分析过程可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求系统需求需求文挡需求文挡近近几几年年来来已已提提出出许许多多软软件件需需求求分分析析与与说说明明的的方方法法,每每一一种种分分析析方法都有独特的观点和表示方法,但都适用下面的基本原则。方法都有独特的观点和表示方法,但都适用下面的基本原则。2.1.3 2.1.3 需求分析的原则需求分析的原则2.1.3 需求分析的原则1 1、能够表达和理解问题的信息域和功能域、能够表达和理解问题的信息域和功能域对对于于计计算算机机程程序序处处理理的的数数据据,其其信信息息域域包包括括信信息息流流(如如下下图图,即即数数据据通通过过一一个个系系统统时时的的变变化化方方式式)、信信息息内内容容和和信信息息结结构构,而而功功能能域反映上述三方面的控制信息。域反映上述三方面的控制信息。数据存储数据存储转换转换1 1转换转换2 2附加附加数据数据输入数据输入数据中间数据中间数据结果数据结果数据2.1.3 需求分析的原则2 2、能够对问题进行分解和不断细化,建立问题的层次结构。、能够对问题进行分解和不断细化,建立问题的层次结构。3 3、需要给出系统的逻辑视图和物理视图、需要给出系统的逻辑视图和物理视图软软件件需需求求的的逻逻辑辑视视图图给给出出的的是是软软件件要要达达到到的的功功能能和和要要处处理理信息之间的关系,而不是实现的细节。信息之间的关系,而不是实现的细节。软软件件需需求求的的物物理理视视图图给给出出的的是是处处理理功功能能和和信信息息结结构构的的实实际际表现形式,这往往是由设备本身决定的。表现形式,这往往是由设备本身决定的。2.1.4 2.1.4 需求分析方法需求分析方法不同的开发方法,需求分析的方法也有所不同,常见的分析方法有:不同的开发方法,需求分析的方法也有所不同,常见的分析方法有:2.1.4 需求分析方法功能分析方法功能分析方法 将将系系统统看看作作若若干干功功能能模模块块的的集集合合,每每个个功功能能又又可可以以分分解解为为若若干干子子功功能能,子功能还可继续分解子功能还可继续分解,分解的结果已经是系统的雏形。分解的结果已经是系统的雏形。面向对象的分析方法面向对象的分析方法 面面向向对对象象的的分分析析方方法法(OOA)的的关关键键是是识识别别问问题题域域内内的的对对象象,分分析析它它们之间的关系,并建立起三类模型。们之间的关系,并建立起三类模型。信息建模法信息建模法 是从数据的角度对现实世界建立模型的是从数据的角度对现实世界建立模型的,基本工具是基本工具是ERER图。图。结构化分析方法结构化分析方法 是是一一种种以以数数据据、数数据据的的封封闭闭性性为为基基础础,从从问问题题空空间间到到某某种种表表示示的的映映射方法,由数据流图(射方法,由数据流图(DFD图)表示。图)表示。结构化开发方法结构化开发方法结构化开发方法结构化开发方法(Structured Developing MethodStructured Developing Method)是是现现有有的的软软件件开开发发方方法法中中最最成成熟熟,应应用用最最广广泛泛的的方方法法,主主要特点是快速,自然和方便。要特点是快速,自然和方便。结结构构化化方方法法总总的的指指导导思思想想自自顶顶向向下下、逐逐步步求求精精。它它的的基基本本原则是功能的分解与抽象。原则是功能的分解与抽象。2.2 2.2 结构化分析方法结构化分析方法结构化开发方法的组成结构化开发方法的组成 7070年代初年代初 结构化程序设计方法结构化程序设计方法 SP法(法(Structured Program)7070年代中年代中 结构化设计方法结构化设计方法 SD法(法(Structured Design)7070年代末年代末 结构化分析方法结构化分析方法 SA法(法(Structured Analysis)SA,SD,SP 法法相相互互衔衔接接,形形成成了了一一整整套套开开发发方方法法。若若将将SA,SD 法法结结合合起起来来,又又称称为为结结构构化化分分析析与与设设计计技技术术(SADT 技术)。技术)。2.2.1 SA2.2.1 SA法概述法概述分分解解:对对于于一一个个复复杂杂的的系系统统,为为了了将将复复杂杂性性降降低低到到可可以以掌掌握握的的程程度度,可可以以把把大大问问题题分分解解成成若若干干小小问问题题,然然后后分分别别解解决决(如如右右图图)。一、一、一、一、SASA法的基本思想法的基本思想法的基本思想法的基本思想 结构化分析方法的基本思想是结构化分析方法的基本思想是“分解分解”和和“抽象抽象”。抽抽象象:分分解解可可以以分分层层进进行行,即即先先考考虑虑问问题题最最本本质质的的属属性性,暂暂把把细细节节略略去去,以以后后再再逐逐层层添添加加细细节节,直直至至涉涉及及到到最最详详细细的的内内容容,这这种种用用最最本本质质的的属属性性表表示示一一个个系系统统的的方方法法就就是是“抽抽象象”。2.2.1 SA法的概述1.11.21.3x2132.12.22.31.11.31 1、建立当前系统的、建立当前系统的“具体模型具体模型”。基本思想与步骤基本思想与步骤三、三、三、三、SASASASA法的描述方法法的描述方法法的描述方法法的描述方法1 1、分层的数据流图、分层的数据流图2 2、数据词典、数据词典3 3、描述加工逻辑的结构化语言、判定表及判定树、描述加工逻辑的结构化语言、判定表及判定树2.2.1 SA法的概念二、二、二、二、SASASASA法的步骤法的步骤法的步骤法的步骤4 4、为为了了对对目目标标系系统统做做完完整整的的描描述述,还还需需要要考考虑虑人人机机界界面面和和其他一些问题。其他一些问题。3 3、建立目标系统的逻辑模型。、建立目标系统的逻辑模型。2 2、抽象出当前系统的逻辑模型。、抽象出当前系统的逻辑模型。顾客出版社验证验证订单订单汇总汇总订单订单订单出版社 订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确订单一批订单出版社档案文件出版社档案文件订货存根文件订货存根文件DFD图的图的例子例子加工名加工名编号编号加工名加工名编号编号文件名文件名文件名文件名顾顾客客出出版版社社验证验证订单订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件画图步骤画图步骤 :1 1、确定外部实体及输入、输出数据流。、确定外部实体及输入、输出数据流。2 2、确定分解顶层的加工。、确定分解顶层的加工。3 3、确定使用的文件。、确定使用的文件。4 4、用数据流将各部分连接起来,形成数据封闭。、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。注意:标注各加工框及数据流名称。例例1 1:图书预定系统:图书预定系统(顶层(顶层DFDDFD图)图)P26 图图2.7 2.2.2 2.2.2 数据流图数据流图数数据据流流图图(Data Data Flow Flow DiagramDiagram,DFDDFD)是是描描述述系系统统中中数数据据流流程程的的图图形形工工具具,它它标标识识了了一一个个系系统统的的逻逻辑辑输输入入和和逻逻辑辑输输出出,以以及及把把逻逻辑输入转换为逻辑输出所需的加工处理。辑输入转换为逻辑输出所需的加工处理。数据存储数据存储数据源点数据源点或终点或终点加加 工工加工名数据流数据流数据流名文件名实体名箭箭 头头圆或椭圆圆或椭圆单或单或双杠双杠矩形框矩形框还有一些辅助的图例还有一些辅助的图例:2.2.2 分层的数据流图一、数据流图的图符一、数据流图的图符四种基本图形符号:四种基本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+*与与+或或互斥+“先全局后局部先全局后局部,先整体后细节先整体后细节,先抽象后具体先抽象后具体”通常可将这种分层的通常可将这种分层的DFDDFD图图,分为顶层、中间层、底层。分为顶层、中间层、底层。具体步骤:具体步骤:1 1。先确定系统范围,画出顶层的。先确定系统范围,画出顶层的DFDDFD图。图。2 2。逐层分解顶层。逐层分解顶层DFDDFD图,获得若干中间层图,获得若干中间层DFDDFD图。图。3 3。画出底层的。画出底层的DFDDFD图。图。2.2.3 2.2.3 画分层画分层DFDDFD图的方法图的方法 顶顶层层图图说说明明了了系系统统的的边边界界,即即系系统统的的输输入入和和输输出出数数据据流流,顶顶层层图图只只有有一一张张。底底层层图图由由一一些些不不能能再再分分解解的的加加工工组组成成,这这些些加加工工都都已已足足够够简简单单,称称为为基基本本加加工工。在在顶顶层层和和底底层层之之间间的的是是中中间间层层。中中间间层层的的数数据据流流图图描描述述了了某某个个加工的分解,而它的组成部分又要进一步分解。加工的分解,而它的组成部分又要进一步分解。画各层画各层DFDDFD图时,图时,“由外向内由外向内”。X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶顶层层中中 间间 层层底底 层层先全局后局部先全局后局部,先整体后细节先整体后细节,先抽象后具体先抽象后具体.0图1图2图1.1图2.1图2.2图分层DFD 图经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1 1、监视病员的病症(血压、体温、脉搏等)。、监视病员的病症(血压、体温、脉搏等)。2 2、定时更新病历。、定时更新病历。3 3、病员出现异常情况时报警。、病员出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。2.2.4 实例:医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历2.2.4 实例:医院病房监护系统系统功能要求:系统功能要求:1 1、监视病员的病症(血压、体温、脉搏等)、监视病员的病症(血压、体温、脉搏等)2 2、定时更新病历、定时更新病历 3 3、病员出现异常情况时报警。、病员出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。顶层:顶层:病员病员护士护士护士护士病员监病员监护系统护系统病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警例例2 2 医院病房监护系统医院病房监护系统第一层:第一层:病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志病员数据病员数据格式化格式化病员数据病员数据生理信号生理信号极限值极限值1324日志数据日志数据日志数据日志数据医院病房监护系统顶层医院病房监护系统顶层DFDDFD图图第二层:加工第二层:加工“中央监视中央监视”分解分解计算超过计算超过极限值否极限值否病员数据据超过极限值报警开解信号开解信号产生产生报警信息报警信息病员极限病员极限格式化格式化病员数据病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期时钟时钟格式化病员数据3.13.23.23.33.33.43.4医院病房监护系统二层医院病房监护系统二层DFDDFD图图计算超过计算超过极限值否极限值否病员数据超过极限值报警开解信号开解信号产生产生报警信息报警信息病员极限病员极限格式化格式化病员数据病员数据体温血压、体温、脉搏生理信号极限值时间脉搏血压日期时钟时钟格式化病员数据3.13.23.23.33.33.43.4第二层:加工第二层:加工“中央监视中央监视”分解分解医院病房监护系统分层医院病房监护系统分层医院病房监护系统分层医院病房监护系统分层DFDDFDDFDDFD图图图图图 2.15第一层第一层格式化格式化病员数据病员数据生理信号生理信号极限值极限值病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志病员病员数据数据1324日志数据日志数据图 2.16加工分解的原则加工分解的原则自然性自然性:概念上合理、清晰;概念上合理、清晰;均均匀匀性性:理理想想的的分分解解是是将将一一个个问问题题分分解解成成大大小小均均匀匀的的几几个部分;个部分;分分解解度度:一一般般每每一一个个加加工工每每次次分分解解最最多多不不要要超超过过个个子子加工加工,分解应分解到基本加工为止。分解应分解到基本加工为止。2.2.5 2.2.5 画分层画分层DFDDFD图的基本原则图的基本原则数据守恒与数据封闭原则数据守恒与数据封闭原则 所所谓谓数数据据守守恒恒是是指指加加工工的的输输入入输输出出数数据据流流是是否否匹匹配配,即即每每一一个个加加工工既既有有输输入入数数据据流流又又有有输输出出数数据据流流。或或者者说说一一个加工至少有一个输入数据流,一个输出数据流。个加工至少有一个输入数据流,一个输出数据流。数据封闭是对整个系统而言。数据封闭是对整个系统而言。合理使用文件合理使用文件 当当文文件件作作为为某某些些加加工工之之间间的的交交界界面面时时,文文件件必必须须画画出出来来,一一旦旦文文件件作作为为数数据据流流图图中中的的一一个个独独立立成成份份画画出出来来了,那么他同其他成份之间的联系也应同时表达出来。了,那么他同其他成份之间的联系也应同时表达出来。DFDDFDDFDDFD图不是流程图图不是流程图图不是流程图图不是流程图,不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。2.2.5 2.2.5 画分层画分层DFDDFD图的基本原则图的基本原则子图与父图的子图与父图的“平衡平衡”父图中某个加工的输入输出数据流应该同相应的子父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同图的输入输出相同(相对应),分层数据流图的这种特相对应),分层数据流图的这种特点称为子图与父图点称为子图与父图“平衡平衡”。2.2.6 分层DFD图的改进 DFD图必须经过图必须经过反复修改反复修改,才能获得最终的目标系统的,才能获得最终的目标系统的逻辑模型(目标系统的逻辑模型(目标系统的DFD图)。可从以下方面考虑图)。可从以下方面考虑DFD图图的改进:的改进:1 1、检查数据流的正确性、检查数据流的正确性 数据数据守恒守恒 子图、父图的平衡子图、父图的平衡 文件使用是否合理。特别注意输入文件使用是否合理。特别注意输入/出文件的数据流。出文件的数据流。2 2、改进、改进DFDDFD图的易理解性图的易理解性 简化加工之间的联系(加工间的数据流越少,独立性越简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。强,易理解性越好)。改进分解的均匀性。改进分解的均匀性。适当命名(各成分名称无二义性,准确、具体)。适当命名(各成分名称无二义性,准确、具体)。分分层层数数据据流流图图只只是是表表达达了了系系统统的的“分分解解”,为为了了完完整整地地描描述述这这个个系系统统,还还需需借借助助“数数据据词词典典”和和“小小说说明明”对图中的每个数据和加工给出解释。对图中的每个数据和加工给出解释。对对数数据据流流图图中中包包含含的的所所有有元元素素的的定定义义的的集集合合构构成成了了数数据词典。词典中可有以下四种类型的条目据词典。词典中可有以下四种类型的条目:2.2.7 2.2.7 2.2.7 2.2.7 数据词典数据词典数据词典数据词典(DD)(DD)(DD)(DD)数据流数据流 文件文件 数据项数据项 加工加工 A、数据流条目数据流条目给出某个数据流的定义,通常是列出该给出某个数据流的定义,通常是列出该 数据流的各组成数据项。数据流的各组成数据项。例如:报名单姓名单位名年龄性别课程名例如:报名单姓名单位名年龄性别课程名 常用符号:、()、常用符号:、()、C、数据项条目数据项条目 数数据据项项条条目目给给出出某某个个数数据据单单项项的的定定义义,通通常常是是数数据据项项的的值类型,允许的取值范围。值类型,允许的取值范围。B、文件条目文件条目给出某个文件的定义,同数据流一样,文件给出某个文件的定义,同数据流一样,文件的定义通常是列出文件记录的组成数据流的定义通常是列出文件记录的组成数据流例如某销售系统的订单文件:例如某销售系统的订单文件:订单文件订单编号顾客名称产品名称订货数量交货日期订单文件订单编号顾客名称产品名称订货数量交货日期D.加工条目加工条目加工类条目就是加工类条目就是“加工小说明加工小说明”。一般应该单独列出。一般应该单独列出。2.2.8 2.2.8 2.2.8 2.2.8 加工说明加工说明加工说明加工说明结构化语言结构化语言判定表判定表判定树判定树 对数据流图中每一个不能再分解的基本加工都必须有对数据流图中每一个不能再分解的基本加工都必须有一个一个小说明小说明给出这个加工的精确描述。小说明中应精确地给出这个加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,是指用户对这错处理等。加工逻辑是其中最基本的部分,是指用户对这个加工的逻辑要求。个加工的逻辑要求。对基本加工说明有三种描述方式:对基本加工说明有三种描述方式:结构化语言是介于自然语言和形式语言之间的一种半形结构化语言是介于自然语言和形式语言之间的一种半形式语言,它是自然语言的一个受限制的子集。一般分为两层式语言,它是自然语言的一个受限制的子集。一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环)结构:外层语法较具体,为控制结构(顺序、选择、循环),内层较灵活,表达内层较灵活,表达“做什么做什么”。一、一、结构化语言结构化语言例如:外层可为以下结构:例如:外层可为以下结构:1、顺序结构、顺序结构2、选择结构、选择结构 IFTHEN-ELSE;CASE-OF-ENDCASE;3、循环结构循环结构 WHILE-DO;REPEAT-UNTIL 例:一图书销售系统,其中一加工为例:一图书销售系统,其中一加工为“优惠处理优惠处理”,条件是:,条件是:顾客的营业额大于顾客的营业额大于10001000元,同时必须信誉好,或者虽然信誉元,同时必须信誉好,或者虽然信誉不好,但是不好,但是2020年以上的老主顾。年以上的老主顾。应用举例应用举例用结构化语言来描述:用结构化语言来描述:如果如果 营业额大于营业额大于10001000元元 同时同时 如果信誉好如果信誉好 则则 优惠处理。优惠处理。否则否则 正常处理。正常处理。否则否则 信誉不好信誉不好 但是但是2020年以上的老主顾,则优惠处理。年以上的老主顾,则优惠处理。否则否则 营业额小于、等于营业额小于、等于10001000元元 则则 正常处理。正常处理。显然,用结构化语言来描述组合条件不清晰。显然,用结构化语言来描述组合条件不清晰。判定表是一种二维的表格,常用于较复杂的组合条件判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。(与结构化语言比较)。条件框条件框 条件条目条件条目 操作框操作框 操作条目操作条目二、二、二、二、判定表判定表特点:可处理较复杂的组合条件,但不易理解特点:可处理较复杂的组合条件,但不易理解.不易输入计不易输入计算机。算机。通常由四部分组成。通常由四部分组成。条件框条件框 条件定义。条件定义。操作框操作框 操作的定义。操作的定义。条件条目条件条目 各条件的取值及组合。各条件的取值及组合。操作条目操作条目 在各条件取值组合下所执行的操作。在各条件取值组合下所执行的操作。例如例如:对商店每天的营业额所收税率对商店每天的营业额所收税率营业额营业额X()1000X50005000 X 10001000元元 Y Y Y Y N Y Y N 信誉好信誉好 Y N N -Y N N -20 20 年年 -Y N -Y N -优优 惠惠 X X X X 正正 常常 X X X X 化化简简后后 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8 10001000元元 Y Y Y Y Y N N N N Y Y Y N N N N 信誉好信誉好 Y Y N N Y Y N NY Y N N Y Y N N 20 20 年年 Y N Y N Y N Y NY N Y N Y N Y N优优 惠惠 X X XX X X正正 常常 X X X X XX X X X XY-Y-满足条件满足条件 N N-不满足条件不满足条件 X-X-选中判定的结论选中判定的结论判定表判定表判定表判定表应用举例应用举例应用举例应用举例特点特点:描述一般组合条件较清晰,易理解。不易输入描述一般组合条件较清晰,易理解。不易输入计算机。计算机。营业额营业额 10001000元元 10001000元元 正常处理正常处理好的支付信誉好的支付信誉 优惠处理优惠处理坏的支付信誉坏的支付信誉 20 20年年 优惠处理优惠处理 20 20年年 正常处理正常处理如上例如上例三、三、判定树判定树按按照照传传统统的的瀑瀑布布模模型型进进行行软软件件开开发发,由由于于将将软软件件开开发发这这样样一一个个充充满满回回朔朔的的过过程程硬硬性性地地割割裂裂开开,虽虽然然强强调调各各个个阶阶段段的的复复审审,而而用用户户所所提提出出的的需需求求往往往往是是模模糊糊的的,因因此此很很难难得得到到一一个个完完整整精精确确的的规规格格说说明,直接影响到后期的开发,针对其主要缺点推出了原型化方法明,直接影响到后期的开发,针对其主要缺点推出了原型化方法。2.3 2.3 原型化方法原型化方法 2.3 原型化方法什么是原型化方法什么是原型化方法(Prototyping MethodPrototyping MethodPrototyping MethodPrototyping Method)?原原型型是是软软件件开开发发过过程程中中,软软件件的的一一个个早早期期可可运运行行的的版版本本,它它反反映映了最终系统的部分重要特性。了最终系统的部分重要特性。原原型型化化方方法法的的基基本本思思想想是是花花费费少少量量代代价价建建立立一一个个可可运运行行的的系系统统,使使用用户户及及早早获获得得学学习习的的机机会会,原原型型化化方方法法又又称称速速成成原原型型法法(Rapid Rapid PrototypingPrototyping),强强调调的的是是软软件件开开发发人人员员与与用用户户的的不不断断交交互互,通通过过原原型型的的演演进进不不断断适适应应用用户户任任务务改改变变的的需需求求。将将维维护护和和修修改改阶阶段段的的工工作作尽尽早进行,使用户验收提前,从而使软件产品更加适用。早进行,使用户验收提前,从而使软件产品更加适用。由于软件项目的特点和运行原型的目的不同,分为两种类型:由于软件项目的特点和运行原型的目的不同,分为两种类型:2.3.1 2.3.1 软件原型的分类软件原型的分类2.3.1 软件原型的分类2 2、追加(、追加(add onadd on)型型也也称称快快快快速速速速建建建建立立立立渐渐渐渐进进进进原原原原型型型型RCPRCPRCPRCP法法法法(Rapid Rapid Rapid Rapid Cyclic Cyclic Cyclic Cyclic PrototypingPrototypingPrototypingPrototyping)法法采采用用循循环环渐渐进进的的开开发发方方式式,对对系系统统模模型型作作连连续续精精化化,即即先先构构造造一一个个功功能能简简单单而而且且质质量量要要求求不不高高的的模模型型系系统统,将将系系统统需需要要具具备备的的性性质质逐逐步步添添加加上上去去,通通过过不不断断地地扩扩充充修修改改,逐逐步步追追加加新新的的要要求求,直直至至所所有有性性质全部满足,此时的原型模型也就是最终的产品。质全部满足,此时的原型模型也就是最终的产品。1 1、废弃(、废弃(throw awaythrow away)型型也也 称称 为为 快快快快 速速速速 建建建建 立立立立 需需需需 求求求求 规规规规 格格格格 原原原原 型型型型 RSPRSPRSPRSP法法法法(Rapid Rapid Rapid Rapid Specific Specific Specific Specific PrototypingPrototypingPrototypingPrototyping),先先构构造造一一个个功功能能简简单单而而且且质质量量要要求求不不高高的的模模型型系系统统,针针对对这这个个模模型型系系统统反反复复进进行行分分析析修修改改,让让用用户户学学习习。待待需需求求说说明明书书一旦确定,原型将被废弃,后阶段的工作仍按照瀑布模型开发。一旦确定,原型将被废弃,后阶段的工作仍按照瀑布模型开发。1.1.快速分析快速分析 2.2.快快速速确确定定软软件件系系统统的的基基本本要要求求,确确定定原原型型所所要要体体现现的的特特性性(总总体体结结构构,功功能能,性性能能、界界面面等)。等)。3.3.2.2.构造原型构造原型 4.4.根根据据基基本本规规格格说说明明,忽忽略略细细节节,只只考考虑虑主主要要特特性性,快快速速构构造造一一个个可可运运行行的的系系统统。有有三三类类原原型:用户界面原型,功能原型,性能原型。型:用户界面原型,功能原型,性能原型。3.3.运行和评价原型运行和评价原型用用户户试试用用原原型型并并与与开开发发者者之之间间频频繁繁交交流流,发发现问题,目的是验证原型的正确性现问题,目的是验证原型的正确性。4.4.修正与改进修正与改进 对原型进行修改,增删。对原型进行修改,增删。运运 行行评价评价 构造构造快速快速分析或修改分析或修改 2.3.2 2.3.2 快速原型开发模型快速原型开发模型快速原型法的工作模型如图所示,按以下步骤循环执行。快速原型法的工作模型如图所示,按以下步骤循环执行。原型化模型2.3.2 快速原型开发模型YYNYN快速原型化开发过程2.3.2 快速原型开发模型 快速建立系统原型进行系统的快速建立系统原型进行系统的分析和构造有如下优点:分析和构造有如下优点:1 1、增进软件开发人员和用户、增进软件开发人员和用户对系统需求的理解。便于将用户对系统需求的理解。便于将用户模糊的功能需求明确化。模糊的功能需求明确化。2 2、为为用用户户提提供供了了一一种种强强有有力力的学习手段。的学习手段。3 3、易于确定系统的性能,是、易于确定系统的性能,是理解和确认软件需求规格说明的理解和确认软件需求规格说明的工具。工具。4 4、按照、按照RCPRCP 法法建立的原型即建立的原型即为最终的产品。为最终的产品。细化的原型化模型需求工程小结需求工程小结最初,需求工程仅仅是软件工程的一个组成部分,是软件最初,需求工程仅仅是软件工程的一个组成部分,是软件最初,需求工程仅仅是软件工程的一个组成部分,是软件最初,需求工程仅仅是软件工程的一个组成部分,是软件生命周期的第一个阶段。生命周期的第一个阶段。生命周期的第一个阶段。生命周期的第一个阶段。在传统软件工程生命周期中,涉及需求的阶段称作需求分在传统软件工程生命周期中,涉及需求的阶段称作需求分在传统软件工程生命周期中,涉及需求的阶段称作需求分在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:析。一般来说,需求分析的作用是:析。一般来说,需求分析的作用是:析。一般来说,需求分析的作用是:系统工程师说明软件的功能和性能,指明软件和其他系系统工程师说明软件的功能和性能,指明软件和其他系系统工程师说明软件的功能和性能,指明软件和其他系系统工程师说明软件的功能和性能,指明软件和其他系统成分的接口,并定义软件必须满足的约束;统成分的接口,并定义软件必须满足的约束;统成分的接口,并定义软件必须满足的约束;统成分的接口,并定义软件必须满足的约束;软件工程师求精软件的配置,建立数据模型、功能模型软件工程师求精软件的配置,建立数据模型、功能模型软件工程师求精软件的配置,建立数据模型、功能模型软件工程师求精软件的配置,建立数据模型、功能模型和行为模型;和行为模型;和行为模型;和行为模型;为软件设计者提供可用于转换为数据设计、体系结构设为软件设计者提供可用于转换为数据设计、体系结构设为软件设计者提供可用于转换为数据设计、体系结构设为软件设计者提供可用于转换为数据设计、体系结构设计、界面设计和过程设计的模型;计、界面设计和过程设计的模型;计、界面设计和过程设计的模型;计、界面设计和过程设计的模型;提供开发人员和客户需求规格说明,用于作为评估软件提供开发人员和客户需求规格说明,用于作为评估软件提供开发人员和客户需求规格说明,用于作为评估软件提供开发人员和客户需求规格说明,用于作为评估软件质量的依据。质量的依据。质量的依据。质量的依据。需求工程小结需求工程小结软件需求分析的工作,是软件开发人员与用户密切配合,软件需求分析的工作,是软件开发人员与用户密切配合,软件需求分析的工作,是软件开发人员与用户密切配合,软件需求分析的工作,是软件开发人员与用户密切配合,充分交换意见,达到对需求分析一致的意见。在开发人员充分交换意见,达到对需求分析一致的意见。在开发人员充分交换意见,达到对需求分析一致的意见。在开发人员充分交换意见,达到对需求分析一致的意见。在开发人员一方,进行需求分析工作的主要是系统分析员和系统工程一方,进行需求分析工作的主要是系统分析员和系统工程一方,进行需求分析工作的主要是系统分析员和系统工程一方,进行需求分析工作的主要是系统分析员和系统工程师等,他们处于用户和高级程序员之间,负责沟通用户和师等,他们处于用户和高级程序员之间,负责沟通用户和师等,他们处于用户和高级程序员之间,负责沟通用户和师等,他们处于用户和高级程序员之间,负责沟通用户和开发人员的认识和见解,起着桥梁作用,是需求分析的主开发人员的认识和见解,起着桥梁作用,是需求分析的主开发人员的认识和见解,起着桥梁作用,是需求分析的主开发人员的认识和见解,起着桥梁作用,是需求分析的主要角色。要角色。要角色。要角色。需求分析阶段的最终任务是要完成目标系统的需求规格需求分析阶段的最终任务是要完成目标系统的需求规格需求分析阶段的最终任务是要完成目标系统的需求规格需求分析阶段的最终任务是要完成目标系统的需求规格说明,确定系统的功能和性能,为后阶段的开发打下基础。说明,确定系统的功能和性能,为后阶段的开发打下基础。说明,确定系统的功能和性能,为后阶段的开发打下基础。说明,确定系统的功能和性能,为后阶段的开发打下基础。需求分析的方法和技术因具体的系统而定,常用的有需求分析的方法和技术因具体的系统而定,常用的有需求分析的方法和技术因具体的系统而定,常用的有需求分析的方法和技术因具体的系统而定,常用的有SASA法,原型法,法,原型法,法,原型法,法,原型法,OOAOOA法等。法等。法等。法等。需求工程小结 需求工程是系统工程和软件工程的一个交叉分支,涉及到需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需要和软件能力之间以及系统进化之间的关系。它也提供现实需要和软件能力之间的桥梁。的桥梁。需求工程的基本活动包括:需求工程的基本活动包括:需求工程的基本活动包括:需求工程的基本活动包括:抽取需求;抽取需求;模拟和分析需求;模拟和分析需求;传递需求;传递需求;认可需求;认可需求;进化需求。进化需求。需求工程小结一、需求抽取一、需求抽取一、需求抽取一、需求抽取 非常困难,主要原因有:非常困难,主要原因有:缺乏领域知识,应用领域的问题常常是模糊的、不精确的;缺乏领域知识,应用领域的问题常常是模糊的、不精确的;存在默认的知识,即难以描述的日常知识(常识问题);存在默认的知识,即难以描述的日常知识(常识问题);存在多个知识源,而且多知识源之间可能有冲突;存在多个知识源,而且多知识源之间可能有冲突;面对的客户可能有偏见,如不能提供你需要了解什么或不想面对的客户可能有偏见,如不能提供你需要了解什么或不想告知你需要了解的事情。告知你需要了解的事情。需求抽取的方法一般有问卷法、面谈法、数据采集法、用需求抽取的方法一般有问卷法、面谈法、数据采集法、用况法、情景实例法以及基于目标的方法等,还有知识工程方法,况法、情景实例法以及基于目标的方法等,还有知识工程方法,如:场记分析法、卡片分类法、分类表格技术和基于模型的知如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。识获取等。需求工程小结二、二、二、二、模拟和分析需求模拟和分析需求 指导抽取;指导抽取;帮助需求工程师了解进展;帮助需求工程师了解进展;帮助发现问题;帮助发现问题;帮助检查对问题的理解。帮助检查对问题的理解。需求分析和模拟又包含三个层次的工作。需求分析和模拟又包含三个层次的工作。1 1、需求建模、需求建模2 2、需求模拟(分为企业模拟、功能需求模拟和非功能需、需求模拟(分为企业模拟、功能需求模拟和非功能需求