第四章:软件需求分析.pdf
需求工程需求工程需求工程需求工程需求工程需求工程需求工程需求工程李傲雷李傲雷上海交通大学软件学院上海交通大学软件学院2010-04-041教学内容教学内容教学内容教学内容教学内容教学内容教学内容教学内容1 1软件需求基本理论和概念软件需求基本理论和概念1 1.软件需求基本理论和概念软件需求基本理论和概念2.2.软件需求工程过程软件需求工程过程3 3软件需求获取软件需求获取3 3.软件需求获取软件需求获取4.4.软件需求分析软件需求分析5 5软件需求规格说明软件需求规格说明5 5.软件需求规格说明软件需求规格说明6.6.软件需求验证软件需求验证7.7.软件需求管理软件需求管理7.7.软件需求管理软件需求管理8.8.软件需求实现软件需求实现9.9.软件需求工程新进展软件需求工程新进展10.10.软件需求开发与需求管理工具软件需求开发与需求管理工具11.11.其它其它上海交通大学软件学院上海交通大学软件学院2010-04-042软件需求分析软件需求分析软件需求分析软件需求分析软件需求分析软件需求分析软件需求分析软件需求分析1 1什么是需求分析什么是需求分析1 1.什么是需求分析什么是需求分析2.2.需求分析面临的困难需求分析面临的困难求析本法求析本法3.3.需需求求分分析析基基本本方方法法和工具和工具4.4.结构化分析方法结构化分析方法5.5.面向对象分析方法面向对象分析方法6.6.其它分析方法其它分析方法7.7.质量功能部署质量功能部署8.8.确定需求优先级确定需求优先级上海交通大学软件学院上海交通大学软件学院2010-04-0431 1 什么是需求分析什么是需求分析什么是需求分析什么是需求分析1.1.什么是需求分析什么是需求分析什么是需求分析什么是需求分析什么是需求分析什么是需求分析?什么是需求分析什么是需求分析?需求分析是指通过对问题域的研究,获得对该领域特性及存在于其中的待解决的问题特性的透彻理解并用文档说明;需求分析是指通过对问题域的研究,获得对该领域特性及存在于其中的待解决的问题特性的透彻理解并用文档说明;?需求分析是前面需求获取阶段的继续,通过对所获取的信息进一步加工获得对系统的更精确描述,成为转换成需求规格说明的直接信息元;需求分析是前面需求获取阶段的继续,通过对所获取的信息进一步加工获得对系统的更精确描述,成为转换成需求规格说明的直接信息元;?为什么要进行需求分析为什么要进行需求分析为什么要进行需求分析为什么要进行需求分析?软件系统开发最困难的部分就是准确的说明要开发什么;软件系统开发最困难的部分就是准确的说明要开发什么;最为困难的概念性工作便是编写出详细的需求,最为困难的概念性工作便是编写出详细的需求,这包括所有面向用户、面向机器这包括所有面向用户、面向机器和其它软件系统的界面和其它软件系统的界面同时这也是同时这也是一一旦做错旦做错将最终会给系统带来将最终会给系统带来和其它软件系统的界面和其它软件系统的界面。同时这也是旦做错同时这也是旦做错,将最终会给系统带来将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难;极大损害的部分,并且以后再对它进行修改也极为困难;?一般情况下,用户并不能准确的描述自己的需要,这就需要系统分析一般情况下,用户并不能准确的描述自己的需要,这就需要系统分析人员根据用户用自己语言的描述整理出相关的需要然后再与客户核对人员根据用户用自己语言的描述整理出相关的需要然后再与客户核对;人员根据用户用自己语言的描述整理出相关的需要然后再与客户核对人员根据用户用自己语言的描述整理出相关的需要然后再与客户核对;?系统分析员和客户必须确保所有项目涉众在所有描述需求的名词的理解上务必达成共识。系统分析员和客户必须确保所有项目涉众在所有描述需求的名词的理解上务必达成共识。上海交通大学软件学院上海交通大学软件学院2010-04-0441 1 什么是需求分析什么是需求分析什么是需求分析什么是需求分析1.1.什么是需求分析什么是需求分析什么是需求分析什么是需求分析需求分析的关键点需求分析的关键点?需求分析的关键点需求分析的关键点?问题域的结构问题域的结构问题域的数据问题域的数据?问题域的数据问题域的数据?问题域的行为问题域的行为?问题域的事件问题域的事件问题域的事件问题域的事件?问题域的状态问题域的状态?派生需求派生需求上海交通大学软件学院上海交通大学软件学院2010-04-0452 2 需求分析面临的困难需求分析面临的困难需求分析面临的困难需求分析面临的困难2.2.需求分析面临的困难需求分析面临的困难需求分析面临的困难需求分析面临的困难需求分析是个项目的开端需求分析是个项目的开端也是项目建设的基石也是项目建设的基石在在?需求分析是需求分析是一一个项目的开端个项目的开端,也是项目建设的基石也是项目建设的基石。在在失败的项目中,80是由于需求分析的不明确而造成的。失败的项目中,80是由于需求分析的不明确而造成的。因此因此一一个项目成功的关键因素之个项目成功的关键因素之一一就是对需求分析的就是对需求分析的因此个项目成功的关键因素之因此个项目成功的关键因素之,就是对需求分析的就是对需求分析的把握程度。把握程度。?由于软件项目的特殊性和行业覆盖的广阔性由于软件项目的特殊性和行业覆盖的广阔性,以及高风以及高风由于软件项目的特殊性和行业覆盖的广阔性由于软件项目的特殊性和行业覆盖的广阔性,以及高风以及高风险性,软件需求分析的重要性是不言而喻的,同时需求分析又面临着很多困难。险性,软件需求分析的重要性是不言而喻的,同时需求分析又面临着很多困难。上海交通大学软件学院上海交通大学软件学院2010-04-0463 3 需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具3.3.需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析内容包括需求分析内容包括?需求分析内容包括需求分析内容包括:?绘制关联图绘制关联图创建用户界面和技术原型创建用户界面和技术原型需求工程?创建用户界面和技术原型创建用户界面和技术原型?分析需求的可行性分析需求的可行性?确定需求的优先级确定需求的优先级需求开发需求管理确定需求的优先级确定需求的优先级?为需求建模为需求建模?创建数据字典创建数据字典?将需求分解到子系统将需求分解到子系统?应用质量功能部署应用质量功能部署获取分析分析编写规约确认软件需求工程的组成软件需求工程的组成上海交通大学软件学院上海交通大学软件学院2010-04-0473 3 需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具3.3.需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析方法需求分析方法?需求分析方法需求分析方法?结构化分析方法结构化分析方法面向对象分析方法面向对象分析方法?面向对象分析方法面向对象分析方法?需求分析模需求分析模型型描描述工述工具具需求分析模描具需求分析模描具?结构化分析结构化分析?DFD、DD和PSPEC DFD、DD和PSPEC?CFDCFDCSPECCSPEC和和STDSTD?CFDCFD、CSPECCSPEC和和STDSTD?E-R图E-R图?面向对象分析面向对象分析?用例图,类图用例图,类图?对象-关系图对象-关系图?对象-行为图对象-行为图上海交通大学软件学院上海交通大学软件学院2010-04-0483 3 需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具3.3.需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析基本方法和工具需求分析建模技术需求分析建模技术?需求分析建模技术需求分析建模技术?面向处理面向处理?Ctt diCtt di上下文图上下文图?C Conont texext t didiagram agram 上下文图上下文图?Data flow diagram(DFD)数据流图Data flow diagram(DFD)数据流图?面向数据结构面向数据结构面向数据结构面向数据结构?E-R图-Entity Relationship DiagramsE-R图-Entity Relationship Diagrams?面向对象面向对象?处理和数据相结合处理和数据相结合?Object and Class 对象和类Object and Class 对象和类上海交通大学软件学院上海交通大学软件学院2010-04-0494 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法结构化分析结构化分析(简称简称法法)?结构化分析结构化分析(Structured Analysis,Structured Analysis,简称简称SASA法法)?结构化开发方法是现有的软件开发方法中最成熟,应用最广泛结构化开发方法是现有的软件开发方法中最成熟,应用最广泛的方法的方法,主要特点是快速主要特点是快速、自然和方便自然和方便;的方法的方法,主要特点是快速主要特点是快速、自然和方便自然和方便;?由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成;由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成;结构化分析结构化分析(Sttd Ali(Sttd AliSASA 法法)方法是面向数据流的需方法是面向数据流的需?结构化分析结构化分析(St(Strucruct tureured d A Ananal lysysi is,s,SASA 法法)方法是面向数据流的需方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用;求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用;它适合于分析大型的数据处理系统它适合于分析大型的数据处理系统特别是企事业管理系统特别是企事业管理系统?它适合于分析大型的数据处理系统它适合于分析大型的数据处理系统,特别是企事业管理系统特别是企事业管理系统。上海交通大学软件学院上海交通大学软件学院2010-04-04104 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法结构化分析结构化分析(法法)的基本思想的基本思想?结构化分析结构化分析(Structured Analysis,SAStructured Analysis,SA法法)的基本思想的基本思想:“分解”和“抽象”:“分解”和“抽象”分解分解把系统的复杂性降低到可以掌握的程度把系统的复杂性降低到可以掌握的程度把大问题分解把大问题分解?分解分解:把系统的复杂性降低到可以掌握的程度把系统的复杂性降低到可以掌握的程度,把大问题分解把大问题分解成若干小问题,然后分别解决;成若干小问题,然后分别解决;?抽象:先考虑问题最本质的属性,暂把细节略去,以后再逐层抽象:先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。添加细节,直至涉及到最详细的内容。上海交通大学软件学院上海交通大学软件学院2010-04-04114 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法结构化分析法的步骤结构化分析法的步骤?结构化分析法的步骤结构化分析法的步骤?1.Produce statement of purpose(objective of new system)1.Produce statement of purpose(objective of new system)?2.Develop essential environmental model(of new system)2.Develop essential environmental model(of new system)?Context diagramContext diagram?Data dictionaryData dictionary?Event listEvent list?3.Develop essential behavioral model(of new system)3.Develop essential behavioral model(of new system)?Data flow diagram(s)(modeling the“functionality”of the new system)Data flow diagram(s)(modeling the“functionality”of the new system)?Mini-specs(for the transformation processes)Mini-specs(for the transformation processes)?St ttitidi(ftl)St ttitidi(ftl)?StSta at te e t transransitiition on didiagrams agrams(f(for any conor any cont trorol l processes processes)?Entity relationship diagramEntity relationship diagram?Supporting text Supporting text(N No ot te,e,ththe es se e d dococumume entsnts coconstitutnstitute e ththe e analanaly ysis and thsis and the e s specpecifiific catiatio on n(o e,(o e,e ee e oceoce coecoe e e y y e e peccopecco documentation)documentation)?4.(The rest is probably best considered as design)4.(The rest is probably best considered as design)上海交通大学软件学院上海交通大学软件学院2010-04-04124 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法结构化分析模型结构化分析模型?结构化分析模型结构化分析模型?DFD、DD和PSPEC(加工说明)基本组成DFD、DD和PSPEC(加工说明)基本组成?CFD、CSPEC(控制说明)和STD CFD、CSPEC(控制说明)和STD 扩展(适合实时系统的分析)扩展(适合实时系统的分析)?E-R图 扩展(复杂数据结构可以使用)E-R图 扩展(复杂数据结构可以使用)数据模型功能模型数据模型功能模型加工说明加工说明E-R图图DFD图图加工说明加工说明数据对象说明数据对象说明STD图图DD行为模型行为模型控制说明(控制说明(CSPEC)上海交通大学软件学院上海交通大学软件学院2010-04-0413行为模型行为模型4 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法数据流图数据流图(图图)?数据流图数据流图(DFDDFD图图)?描述系统的逻辑模型描述系统的逻辑模型?信息在系统中的流动和处理信息在系统中的流动和处理?信息在系统中的流动和处理信息在系统中的流动和处理?用途用途?交流信息的工具交流信息的工具结构化分析和设计的工具结构化分析和设计的工具?结构化分析和设计的工具结构化分析和设计的工具上海交通大学软件学院上海交通大学软件学院2010-04-04144 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法数据流图数据流图(图图)?数据流图数据流图(DFDDFD图图)?组成符号组成符号?圆或椭圆代表加工圆或椭圆代表加工(处理处理)?圆或椭圆代表加工圆或椭圆代表加工(处理处理)?箭头代表数据流向箭头代表数据流向?方框代表源点和终点,即外部实体方框代表源点和终点,即外部实体?单单/双杠表示数据文件或数据库双杠表示数据文件或数据库?单单/双杠表示数据文件或数据库双杠表示数据文件或数据库?分层分层从高层到低层从高层到低层?从高层到低层从高层到低层?分解前后的数据流必须一致分解前后的数据流必须一致?命名命名?数据流:除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名;数据流:除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名;?加工:通常是动词短语,简明描述完成什么加工;分层DFD加工还应有编号;加工:通常是动词短语,简明描述完成什么加工;分层DFD加工还应有编号;上海交通大学软件学院上海交通大学软件学院2010-04-04154 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法数据流图数据流图(图图)练练售书系统售书系统?数据流图数据流图(DFDDFD图图)练练习:习:售书系统售书系统购书单购书单缺书单缺书单教材教材领书单领书单进书通知进书通知购书单购书单缺书单缺书单学学生生教材教材购销购销系统系统书库保管书库保管员员领书单领书单进书通知进书通知生生系统系统员员售书系统顶层数据流图上海交通大学软件学院上海交通大学软件学院2010-04-04164 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法数据流图数据流图(图图)练练售书系统售书系统?数据流图数据流图(DFDDFD图图)练练习:习:售书系统售书系统F1教材存量表教材存量表购书单购书单缺书单缺书单书库书库学学F1教材存量表教材存量表领书单领书单进书通知进书通知进书通知进书通知购书单购书单缺书单缺书单1销销售售2采采购购书库书库保管保管员员学学生生领书单领书单进书通知进书通知售售购购员员生生F2缺书登记表缺书登记表上海交通大学软件学院上海交通大学软件学院2010-04-04174 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法加说明加说明?加加工工说明说明PSPECPSPEC?加工说明PSPEC加工说明PSPEC?说明说明DFDDFD中的每个加工中的每个加工?说明说明DFDDFD中的每个加工中的每个加工?描述加工逻辑的工具描述加工逻辑的工具?结构化语言:介于自然语言和形式语言之间的语言。特点:无确定语法;结构化语言:介于自然语言和形式语言之间的语言。特点:无确定语法;可分层可分层嵌套嵌套可分层可分层、嵌套嵌套;?判定表:描述多条件、多目标动作的形式化工具;判定表:描述多条件、多目标动作的形式化工具;?判定树判定树上海交通大学软件学院上海交通大学软件学院2010-04-04184 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法数据字典数据字典?数据字典数据字典DDDD?DFD中所有元素的定义的集合DFD中所有元素的定义的集合?对数据流图中包含的所有元素的定义的集合构成了数据词典对数据流图中包含的所有元素的定义的集合构成了数据词典它有四类条它有四类条?对数据流图中包含的所有元素的定义的集合构成了数据词典对数据流图中包含的所有元素的定义的集合构成了数据词典。它有四类条它有四类条目:数据流、数据项、文件及基本加工。目:数据流、数据项、文件及基本加工。?内容内容?数据流数据流?数据流数据流?数据项数据项?数据存储/文件数据存储/文件加工加工/处理处理(般不用般不用DDDD描述描述)?加工加工/处理处理(一一般不用般不用DDDD描述描述)?定义数据的方法定义数据的方法?自顶向下分解数据自顶向下分解数据上海交通大学软件学院上海交通大学软件学院2010-04-04194 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法数据字典数据字典?数据字典数据字典DDDD?数据元素的组合方式数据元素的组合方式?顺序顺序:A+BA+B?顺序顺序:A+BA+B?选择:A|B选择:A|B?重复:1A5重复:1A5?可选可选:(A A)?可选可选:(A A)?DD的用途DD的用途?分析阶段的交流工具分析阶段的交流工具包含控制信息包含控制信息?包含控制信息包含控制信息?数据库设计的基础数据库设计的基础上海交通大学软件学院上海交通大学软件学院2010-04-04204 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法图图?E-RE-R图图?用于对复杂数据的数据分析和建模用于对复杂数据的数据分析和建模实体实体属性和关系属性和关系?实体实体、属性和关系属性和关系?组成符号组成符号01110m1:m0:11:10:m1:m上海交通大学软件学院上海交通大学软件学院2010-04-04214 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法图示例图示例?E-RE-R图示例图示例电话机电话机生产厂商生产厂商生生生生产产使用使用经销经销经销商经销商用户用户购买购买上海交通大学软件学院上海交通大学软件学院2010-04-04224 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法状态迁移图状态迁移图()()?状态迁移图状态迁移图STD STD(State Transition DiagramState Transition Diagram)?描述软件状态变迁描述软件状态变迁符号表示符号表示?符号表示符号表示?矩形-系统状态矩形-系统状态?箭头-状态转变方向箭头-状态转变方向规则表达式规则表达式事件事件/触发行为触发行为?规则表达式规则表达式-事件事件/触发行为触发行为状 态状 态1状 态状 态2事件事件/触发行为触发行为上海交通大学软件学院上海交通大学软件学院2010-04-04234 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法状态迁移图状态迁移图示例示例?状态迁移图状态迁移图STDSTD示例示例20秒到/翻屏空闲/采集物品经过/计数采集PLC计数实时翻屏生成最新数据/翻屏半小时到控处半分钟到/传送采集计数实时翻屏半小时到/工控处理传送工控处理上海交通大学软件学院上海交通大学软件学院2010-04-04244 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法行为建模行为建模?行为建模行为建模?FSM有限状态机-通过输入输出之间的因果关系对系统的行为FSM有限状态机-通过输入输出之间的因果关系对系统的行为进行建模进行建模进行建模进行建模?系统可看作有若干个相互区别的稳定状态系统可看作有若干个相互区别的稳定状态?外部刺激使系统从当前某个状态改变到另一个状态外部刺激使系统从当前某个状态改变到另一个状态?状态转移图状态转移图State Transition DiagramState Transition Diagram?状态转移图状态转移图StateState TransitionTransition DiagramDiagram?状态图State Chart Diagram状态图State Chart Diagram?规范与描述语言Specification and description language规范与描述语言Specification and description language?Petri NetPetri Net上海交通大学软件学院上海交通大学软件学院2010-04-04254 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法?Petri NetPetri Net?ElementsElements?Place Place?TransitionTransition?Tr n iti nrTr n iti nr?TrTra an ns sitiitio on n a ar rc c?TokenToken上海交通大学软件学院上海交通大学软件学院2010-04-04264 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法数据需求与功能需求的区别数据需求与功能需求的区别?数据需求与功能需求的区别数据需求与功能需求的区别?数据需求指定了系统的存储数据;数据需求指定了系统的存储数据;功能需求则说明数据的用途功能需求则说明数据的用途以及如何记录以及如何记录计算计算转换转换修修?功能需求则说明数据的用途功能需求则说明数据的用途,以及如何记录以及如何记录、计算计算、转换转换、修修改及传输数据等。改及传输数据等。上海交通大学软件学院上海交通大学软件学院2010-04-04274 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法上下文图上下文图()?上下文图上下文图(Context DiagramContext Diagram)?作用作用?上下文图能很好地概括产品的必要接口上下文图能很好地概括产品的必要接口,初步确定产品包含了哪些内容初步确定产品包含了哪些内容,?上下文图能很好地概括产品的必要接口上下文图能很好地概括产品的必要接口,初步确定产品包含了哪些内容初步确定产品包含了哪些内容,产品之外又包含哪些内容,即说明产品及其环境的视图;产品之外又包含哪些内容,即说明产品及其环境的视图;?说明产品的范围。说明产品的范围。?优点优点?优点优点?上下文图为开发任务概括了所有的接口,在开发中或开发后,方便地验证是否已经处理了所有接口;上下文图为开发任务概括了所有的接口,在开发中或开发后,方便地验证是否已经处理了所有接口;?用户容易理解用户容易理解并发现遗漏的接口并发现遗漏的接口?用户容易理解用户容易理解,并发现遗漏的接口并发现遗漏的接口。上海交通大学软件学院上海交通大学软件学院2010-04-04284 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法上下文图上下文图示例示例?上下文图上下文图示例示例上海交通大学软件学院上海交通大学软件学院2010-04-04294 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法对话图对话图?对话图对话图?对话图代表了一个高层抽象的用户界面体系结构。对话图代表了一个高层抽象的用户界面体系结构。?对话图描绘了系统中的对话元素和它们之间的导航连接,但它没有揭示具体的对话图描绘了系统中的对话元素和它们之间的导航连接,但它没有揭示具体的屏幕设计。屏幕设计。?对话图可以使你在对需求的理解上探索假设的用户界面概念。对话图可以使你在对需求的理解上探索假设的用户界面概念。?用户和开发者可以通过对话图在用户如何利用系统执行任务上达成共同的视觉用户和开发者可以通过对话图在用户如何利用系统执行任务上达成共同的视觉界面。界面。?对话图与系统情节叙述相关联,这些叙述还包括对每一个屏幕意图的简短说明。对话图与系统情节叙述相关联,这些叙述还包括对每一个屏幕意图的简短说明。?对话图抓住了用户一系统交互作用和任务流的本质,而不会使你太快陷入到屏对话图抓住了用户一系统交互作用和任务流的本质,而不会使你太快陷入到屏幕布和数据素的特定细节中幕布和数据素的特定细节中用户以通过踪对话图寻找遗漏用户以通过踪对话图寻找遗漏错误或错误或幕布幕布局局和数据和数据元元素的特定细节中素的特定细节中。用户用户可可以通过以通过跟跟踪对话图寻找遗漏踪对话图寻找遗漏、错误或错误或多余的转换,和因此而有遗漏、错误或多余的需求。多余的转换,和因此而有遗漏、错误或多余的需求。?你可以把在需求分析过程中形成的对话图用作详细用户界面设计时的指南,最你可以把在需求分析过程中形成的对话图用作详细用户界面设计时的指南,最终形成一个执行的对话图终形成一个执行的对话图该对话图记录了产品的真正用户界面的体系结构该对话图记录了产品的真正用户界面的体系结构终形成一个执行的对话图终形成一个执行的对话图,该对话图记录了产品的真正用户界面的体系结构该对话图记录了产品的真正用户界面的体系结构。上海交通大学软件学院上海交通大学软件学院2010-04-04304 4 结构化分析方法结构化分析方法结构化分析方法结构化分析方法4.4.结构化分析方法结构化分析方法结构化分析方法结构化分析方法对话图对话图示例示例?对话图对话图示例示例上海交通大学软件学院上海交通大学软件学院2010-04-04315 5 面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法5.5.面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析面向对象分析?面向对象分析面向对象分析?人类很自然地趋向于用“对象”的观点或“方法”来认识问题、分析人类很自然地趋向于用“对象”的观点或“方法”来认识问题、分析问题以及解决问题问题以及解决问题,因因此此用基于用基于“对象对象”的概念模型来建的概念模型来建立立问题域的问题域的问题以及解决问题问题以及解决问题因用基于因用基于对象对象的概念模型来建问题域的的概念模型来建问题域的模型自然成为系统分析员与用户交流的有效工具;模型自然成为系统分析员与用户交流的有效工具;?用面向对象的方法进行需求分析,其根本要点在于,利用对象的概用面向对象的方法进行需求分析,其根本要点在于,利用对象的概念模型建立念模型建立一一个针对于问题域的模型个针对于问题域的模型,用户和软件工程师通过该模型用户和软件工程师通过该模型念模型建立个针对于问题域的模型念模型建立个针对于问题域的模型,用户和软件工程师通过该模型用户和软件工程师通过该模型进行交流。通过在这么一个基于对象的问题域模型的基础上形成需求规格说明书。进行交流。通过在这么一个基于对象的问题域模型的基础上形成需求规格说明书。上海交通大学软件学院上海交通大学软件学院2010-04-04325 5 面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法5.5.面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析面向对象分析?面向对象分析面向对象分析功能模功能模型数据模型型数据模型属性、操作、协作属性、操作、协作功能模功能模(静态)(静态)(静态)(静态)类对象对象类对象对象-关模型系模型关模型系模型用例用例对象对象-行为模型行为模型行为模型行为模型(动态)(动态)上海交通大学软件学院上海交通大学软件学院2010-04-04335 5 面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法5.5.面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法面向对象需求分析的主要步骤面向对象需求分析的主要步骤?面向对象需求分析的主要步骤面向对象需求分析的主要步骤?1.Define use-cases in the problem domain1.Define use-cases in the problem domain?2 Identify objects classes in each case2 Identify objects classes in each case?2 2.IdentifyIdentify objectsobjects classesclasses inin eacheach casecase?3.Define the attributes and relationships of those classes3.Define the attributes and relationships of those classes?4.Define the behavior of those classes4.Define the behavior of those classes上海交通大学软件学院上海交通大学软件学院2010-04-04345 5 面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法5.5.面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法面向对象需求分析的步骤面向对象需求分析的步骤?面向对象需求分析的步骤面向对象需求分析的步骤?2.Identify objects classes in each case2.Identify objects classes in each caseUMLUML中类有三种主要的版型中类有三种主要的版型:实体类实体类、边界类边界类、控制类控制类。引入实体类引入实体类、UMLUML中类有三种主要的版型中类有三种主要的版型:实体类实体类、边界类边界类、控制类控制类。引入实体类引入实体类、边界类、控制类的概念有助于分析和设计人员确定系统中的类。边界类、控制类的概念有助于分析和设计人员确定系统中的类。?实体类实体类?实体类保存要放进持久存储体的信息实体类保存要放进持久存储体的信息持久存储体就是数据库持久存储体就是数据库文件等可以永久存储文件等可以永久存储?实体类保存要放进持久存储体的信息实体类保存要放进持久存储体的信息。持久存储体就是数据库持久存储体就是数据库、文件等可以永久存储文件等可以永久存储数据的介质。实体类可以通过事件流和交互图发现。通常每个实体类在数据库中有相应的表,实体类中的属性对应数据库表中的字段。数据的介质。实体类可以通过事件流和交互图发现。通常每个实体类在数据库中有相应的表,实体类中的属性对应数据库表中的字段。?边界类边界类?边界类位于系统与外界的交界处,窗体、报表、以及表示通讯协议的类、直接与外部设备交互的类、直接与外部系统交互的类等都是边界类。通过用例图可以确定需要的边界类,每个Actor/Use Case对至少要一个边界类,但并非每个Actor/Use Case对要边界类位于系统与外界的交界处,窗体、报表、以及表示通讯协议的类、直接与外部设备交互的类、直接与外部系统交互的类等都是边界类。通过用例图可以确定需要的边界类,每个Actor/Use Case对至少要一个边界类,但并非每个Actor/Use Case对要唯唯一一的边界类的边界类。唯的边界类唯的边界类?控制类控制类?控制类是控制其他类工作的类。每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。其他类并不向控制类发送很多消息,而是由控制类控制类是控制其他类工作的类。每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。其他类并不向控制类发送很多消息,而是由控制类发很多消息发很多消息上海交通大学软件学院上海交通大学软件学院2010-04-0435发发出出很多消息很多消息。5 5 面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法5.5.面向对象分析方法面向对象分析方法面向对象分析方法面向对象分析方法面向对象需求分析的步骤面向对象需求分析的步骤?面向对象需求分析的步骤面向对象