1、软件工程软件工程SoftwareEngineering(An Introduction)软件工程软件工程软件工程软件工程第第6-10章章面向对象方法面向对象方法可行性可行性研究研究需求导出需求导出和分析和分析软件原型软件原型可行性报告可行性报告系统模型系统模型系统描系统描述和文述和文档编写档编写需求有需求有效性验效性验证证需求规格说明文档需求规格说明文档相关概念回顾相关概念回顾需求分析的核心:建模需求分析的核心:建模相关概念回顾相关概念回顾建立软件模型是分析活动的焦点。建立软件模型是分析活动的焦点。建立软件模型是分析活动的关键。建立软件模型是分析活动的关键。需求分析的核心在于建立分析模型。需求
2、分析的核心在于建立分析模型。软件工程中,软件整个开发过程需要建模,软件工程中,软件整个开发过程需要建模,软件开发过程的各个阶段也需要建模。软件开发过程的各个阶段也需要建模。不同的软件开发方法,即软件开发范型,最不同的软件开发方法,即软件开发范型,最集中表现在它们模型的区别。所以,软件开集中表现在它们模型的区别。所以,软件开发过程的一系列模型的建立标准、描述形式、发过程的一系列模型的建立标准、描述形式、应用规范等,是一种软件开发方法(范型)应用规范等,是一种软件开发方法(范型)最核心的研究内容。最核心的研究内容。相关概念回顾相关概念回顾分析阶段中常用的模型(逻辑模型)分析阶段中常用的模型(逻辑模
3、型)实体关系图实体关系图数据流图、数据流定义、数据字典、数据流图、数据流定义、数据字典、结结构化英语、事件列表、状态转换图、构化英语、事件列表、状态转换图、用例图、时序图、协作图、类图、状态用例图、时序图、协作图、类图、状态图、图、Jackson实体结构图、实体结构图、SSD图、图、Jackson进程模型、进程模型、层次方框图层次方框图、Warnier图图、IPO/HIPO、等等相关概念回顾相关概念回顾使用的方法不同,建立的模型也不相同。使用的方法不同,建立的模型也不相同。但是,但是,一般必须建立以下几类模型一般必须建立以下几类模型:数据模型、功能模型、行为模型数据模型、功能模型、行为模型静态
4、模型、动态模型静态模型、动态模型所建立的模型必须是从抽象到精化的一所建立的模型必须是从抽象到精化的一个逐层分解个逐层分解在需求分析阶段,创建的模型,要着重在需求分析阶段,创建的模型,要着重于描述系统要做什么,而不是如何去做于描述系统要做什么,而不是如何去做(不应涉及软件实现细节)(不应涉及软件实现细节)相关概念回顾相关概念回顾Data ModelBehavioralModelFunctionalModelAnalysis modeling and Model相关概念回顾相关概念回顾常用的分析常用的分析/建模方法建模方法面向数据流的结构化分析方法面向数据流的结构化分析方法 (SA)(SA)面向数
5、据结构的面向数据结构的JacksonJackson方法方法 (JSD)(JSD)面向数据结构的结构化数据系统开发方面向数据结构的结构化数据系统开发方法法(DSSD)面向对象的分析方法面向对象的分析方法 (OOA)(OOA)建立动态模型的状态迁移图或建立动态模型的状态迁移图或Petri网网等等形式化方法形式化方法面向构件的面向构件的其它其它E-R方法方法面向对象方法开发软件面向对象方法开发软件通常建立的三种形式的模型通常建立的三种形式的模型 描述系统数据结构的描述系统数据结构的对象模型对象模型 描述系统控制结构的描述系统控制结构的动态模型动态模型 描述系统功能的描述系统功能的功能模型功能模型 面
6、向对象面向对象(的软件开发的软件开发)方法方法第第6-10章章面向对象方法面向对象方法面向对象模型面向对象模型属性、操作、协作者属性、操作、协作者类对象类对象对象对象-关关模型模型系模型系模型对象对象-行为模型行为模型使用使用实例实例功能模型功能模型行为模型行为模型数据模型数据模型(静态)(静态)(静态)(静态)(动态)(动态)CRCCRC索引卡片索引卡片面向对象方法开发软件面向对象方法开发软件通常建立的三种形式的模型通常建立的三种形式的模型 三种模型从三个不同但由密切相关的三种模型从三个不同但由密切相关的角度模拟目标系统。角度模拟目标系统。对象模型是最重要、最基本、最核心对象模型是最重要、最
7、基本、最核心的。对模拟客观世界实体的对象以及对象的。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静彼此之间的关系的映射,描述了系统的静态结构。态结构。面向对象面向对象(的软件开发的软件开发)方法方法第第6-10章章面向对象方法面向对象方法第六章第六章面向对象的需求分析面向对象的需求分析面向对象的需求分析方法的核心是利用面向面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。它对象的概念和方法为软件需求建造模型。它包含面向对象风格的图形语言机制以及用于包含面向对象风格的图形语言机制以及用于指导需求分析的面向对象方法学。指导需求分析的面向对象方法学。面向
8、对象的思想最初起源于面向对象的思想最初起源于1960年代中期的年代中期的仿真程序设计语言仿真程序设计语言Simula67。1980年代初出年代初出现的现的Smalltalk语言及其程序设计环境对面向语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。对象技术的推广应用起到了显著的促进作用。第六章第六章面向对象的需求分析面向对象的需求分析1990年代中后期诞生并迅速成熟的年代中后期诞生并迅速成熟的UML(统一建模语言,统一建模语言,UnifiedModelingLanguage)是面向对象技术发展的一个重要是面向对象技术发展的一个重要里程碑。里程碑。UML统一了面向对象建模的基本统
9、一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的概念、术语和表示方法,不仅为面向对象的软件开发过程提供了能力丰富的表达手段,软件开发过程提供了能力丰富的表达手段,而且也为软件开发人员提供了互相交流、分而且也为软件开发人员提供了互相交流、分享经验的共用语言。享经验的共用语言。第六章第六章面向对象的需求分析面向对象的需求分析OO方法。方法。OMT/J、Rumbaugh;OOAD/PeterCoad&EdYourdon;OOSE/IvarJocobson(基于(基于实例的);实例的);VMT(VisualModelingTechnique););UML(UnifiedModelingLa
10、nguage)/GradyBooch,JimRumbaugh,IvarJocobson(UML0.9,1996:9);OOTC(面向对象技术中心面向对象技术中心)/IBM,基于经,基于经验的验的OO。UML0.91,96.10,在使用中得到良好反映,于是倡在使用中得到良好反映,于是倡议成立了议成立了UML协会。当时的会员有协会。当时的会员有DEC,HP,IBM,Microsoft,Oracle,RationalSoftware,TI,Unisys.1997.1发布了发布了UML1.0,1997.11.17发布了发布了UML1.1并被并被OMG接纳为标准。据统计,在接纳为标准。据统计,在1996
11、年底,年底,UML已隐占已隐占OO技术市场的技术市场的85%。面向对象方法开发软件面向对象方法开发软件通常建立的三种形式的模型通常建立的三种形式的模型 描述系统数据结构的描述系统数据结构的对象模型对象模型 描述系统控制结构的描述系统控制结构的动态模型动态模型 描述系统功能的描述系统功能的功能模型功能模型 第六章第六章面向对象的需求分析面向对象的需求分析第第6-10章章面向对象方法面向对象方法第六章第六章面向对象的需求分析面向对象的需求分析属性、操作、协作者属性、操作、协作者类对象类对象对象对象-关关模型模型系模型系模型对象对象-行为模型行为模型使用使用实例实例功能模型功能模型行为模型行为模型数
12、据模型数据模型(静态)(静态)(静态)(静态)(动态)(动态)CRCCRC索引卡片索引卡片面向对象方法开发软件面向对象方法开发软件通常建立的三种形式的模型通常建立的三种形式的模型 三种模型从三个不同但由密切相关的三种模型从三个不同但由密切相关的角度模拟目标系统。角度模拟目标系统。对象模型是最重要、最基本、最核心对象模型是最重要、最基本、最核心的。对模拟客观世界实体的对象以及对象的。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静彼此之间的关系的映射,描述了系统的静态结构。态结构。面向对象面向对象(的软件开发的软件开发)方法方法第第6-10章章面向对象方法面向对象方法第六章第
13、六章面向对象的需求分析面向对象的需求分析面向对象的概念与思想面向对象的概念与思想UML概述概述基于基于UML的需求分析的需求分析以以“家庭保安系统家庭保安系统”等为实例,介绍与等为实例,介绍与需求分析相关的部分需求分析相关的部分UML语言机制以及语言机制以及基于基于UML的面向对象的需求分析方法和的面向对象的需求分析方法和过程。过程。现实世界现实世界OOAOODOOPSASDSP机器世界机器世界结构化生命周期结构化生命周期方法方法面面向向对对象象方方法法面向对象方法和面向面向对象方法和面向过程方法的对比过程方法的对比6.1面向对象的概念与思想面向对象的概念与思想6.1面向对象的概念与思想面向对
14、象的概念与思想从事物的从事物的过程侧面过程侧面来描述事物的方法被称之为来描述事物的方法被称之为面向过程的方法面向过程的方法。该方法在认识现实事物的整个过程中是把事物内部的处理过程该方法在认识现实事物的整个过程中是把事物内部的处理过程作为核心来描述的。作为核心来描述的。从事物的从事物的组成部件及每个部件的属性、功能组成部件及每个部件的属性、功能来认识事物。比如,来认识事物。比如,汽车由发动机,底盘,变速箱等组成,发动机有排量,有冲程汽车由发动机,底盘,变速箱等组成,发动机有排量,有冲程数等属性,同时发动机还具有启动,加大油门等操作。这就是数等属性,同时发动机还具有启动,加大油门等操作。这就是将现
15、实世界的事物的属性和及其过程一并进行描述的方法,这将现实世界的事物的属性和及其过程一并进行描述的方法,这种方法被称为种方法被称为面向对象的方法面向对象的方法。从事物的从事物的属性侧面属性侧面来描述事物的方法就是来描述事物的方法就是面向数据的方法面向数据的方法,该,该方法在认识事物的过程中始终把事物的属性作为描述的核心。方法在认识事物的过程中始终把事物的属性作为描述的核心。小结:小结:面向对象的需求分析方法通过提供对象、对面向对象的需求分析方法通过提供对象、对象间消息传递等语言机制,让分析人员在解象间消息传递等语言机制,让分析人员在解空间中直接模拟问题空间中的对象,从而消空间中直接模拟问题空间中
16、的对象,从而消减运用其他分析方法带来的语义断层,为需减运用其他分析方法带来的语义断层,为需求建模活动提供直观、自然的语言支持和方求建模活动提供直观、自然的语言支持和方法学指导。法学指导。面向对象对象类继承聚集消息。面向对象对象类继承聚集消息。6.1面向对象的概念与思想面向对象的概念与思想ElementsoftheOOmodel面向对象模型面向对象模型面向对象模型面向对象模型属性、操作、协作者属性、操作、协作者类对象类对象对象对象-关关模型模型系模型系模型对象对象-行为模型行为模型使用使用实例实例功能模型功能模型行为模型行为模型数据模型数据模型(静态)(静态)(静态)(静态)(动态)(动态)CR
17、CCRC索引卡片索引卡片6.2UML概述概述6.2.1UML的语言机制的语言机制UML主要以主要以Booch方法、方法、OMT方法方法71和和OOSE方法为基础,同时也吸收了其方法为基础,同时也吸收了其他面向对象建模方法的优点,形成了一他面向对象建模方法的优点,形成了一种概念清晰、表达能力丰富、适用范围种概念清晰、表达能力丰富、适用范围广泛的面向对象的标准建模语言。广泛的面向对象的标准建模语言。UMLUML通通过过图图形形化化的的表表示示机机制制从从多多个个侧侧面面对对系系统统的的分分析析和设计模型进行刻画,共有和设计模型进行刻画,共有5 5类类1010种视图如下所示:种视图如下所示:静态模型
18、静态模型 动态模型动态模型逻辑模型逻辑模型 类图类图 用例图用例图 对象图对象图 顺序图顺序图 包图包图 协作图协作图 状态图状态图 活动图活动图物理模型物理模型 构件图构件图 配置图配置图6.2UML概述概述6.2.1 UML 6.2.1 UML 语言机制语言机制6.2.1UML语言机制语言机制1 1、用用例例图图(UsecaseUsecase DiagramDiagram):用用于于表表示示系系统统的的功功能能,并并指指出各功能的操作者;出各功能的操作者;2 2、静静态态图图:包包括括类类图图(Class Class DiagramDiagram)、对对象象图图(Object Object
19、 DiagramDiagram)及及包包图图(Package Package DiagramDiagram),表表示示系系统统的的静静态态结结构;构;3 3、行行 为为 图图:包包 括括 状状 态态 图图(State State DiagramDiagram)及及 活活 动动 图图(Activity Activity DiagramDiagram),用用于于描描述述系系统统的的动动态态行行为为和和对对象象之之间的交互关系;间的交互关系;4 4、交交互互图图:包包括括顺顺序序图图(Sequence Sequence DiagramDiagram)和和协协作作图图(Collaboration Co
20、llaboration DiagramDiagram),用用于于描描述述系系统统对对象象之之间间的的动动态态合作关系;合作关系;5 5、实实现现图图:包包括括构构件件图图(CompomentCompoment DiagramDiagram)和和配配置置图图(Deployment DiagramDeployment Diagram),),用于描述系统的物理实现。用于描述系统的物理实现。6.2UML概述概述6.2.1UML语言机制语言机制UML通过图形化的表示机制从多个侧面刻通过图形化的表示机制从多个侧面刻画系统的分析和设计模型。画系统的分析和设计模型。UML共定义十种视图,可分四类:共定义十种视
21、图,可分四类:(1)用例图(用例图(usecasediagram)从外部用户的角度描述系统的功能,并从外部用户的角度描述系统的功能,并指出功能的执行者。指出功能的执行者。6.2UML概述概述例例:课程注册管理系统的用例图课程注册管理系统的用例图教教务务管管理理人人员员使使用用“课课表表维维护护”用用例例,设设置置或或修修改改课课程程属属性性(课课程程的的时时间间、地地点点、上上课课老老师师等等),增增删课程;删课程;学学生生使使用用“个个人人课课程程规规划划”用用例例选选课课、修修改改自自己己的的个个人人课课表表,收收费费管管理理系系统统根根据据每每个个学学生生的的选选课课情情况况计算其应缴费
22、用;计算其应缴费用;老老师师使使用用“选选课课学学生生花花名名册册查查询询”用用例例获获取取选选定定其其所开课程的学生花名册。所开课程的学生花名册。6.2UML概述概述6.2.1UML的语言机制的语言机制(2)静态图静态图类图类图(classdiagram)、类类图图描描述述系系统统的的静静态态结结构构,类类图图的的结结点点表表示示系系统统中中的的类类及及其其属属性性和和操操作作,类类图图的的边边表表示示类类之之间间的的联系,包括继承、关联、依赖、聚合等。联系,包括继承、关联、依赖、聚合等。对象图对象图(objectdiagram)对对象象图图是是类类图图的的一一个个实实例例。它它描描述述在在
23、某某种种状状态态下下,或或者者在在某某一一时时间间段段系系统统中中活活跃跃的的对对象象及及其其关关系系。在在对对象象图图中中,一一个个类类可可以以拥拥有有多多个个活活跃跃的的对对象象实实例。例。6.2UML概述概述课程注册管理系统的类图课程注册管理系统的类图图图6.2表示课程注册管理系统包括:表示课程注册管理系统包括:“教务管理人员教务管理人员”、“学生学生”、“老师老师”、“课程课程”、“课程设置课程设置”、“课程注册表课程注册表”、“课程注册管理器课程注册管理器”、“课程管理器课程管理器”八个类。八个类。前三个类为一般化的前三个类为一般化的“用户用户”类的子类。类的子类。一门一门“课程课程
24、”可由一到多个可由一到多个“课程设置课程设置”构成,例如,构成,例如,对于全校性的公共基础课,由于选修的学生太多,必对于全校性的公共基础课,由于选修的学生太多,必须安排不同的老师、不同的教室或者不同的时间段。须安排不同的老师、不同的教室或者不同的时间段。“学生学生”、“老师老师”与与“课程设置课程设置”之间,之间,“课程注课程注册表册表”与与“课程注册管理器课程注册管理器”之间,以及之间,以及“课程注册课程注册管理器管理器”与与“课程课程”之间存在着关联关系。之间存在着关联关系。6.2UML概述概述课程注册管理系统的类图课程注册管理系统的类图6.2UML概述概述6.2.1UML的语言机制的语言
25、机制(2)静态图静态图包图包图(packagediagram)包图描述系统的分解,表示包包图描述系统的分解,表示包(package)以以及包之间的关系。及包之间的关系。包由子包及类组成。包由子包及类组成。包之间的关系包括继承、构成与依赖关系。包之间的关系包括继承、构成与依赖关系。6.2UML概述概述6.2.1UML的语言机制的语言机制(3)行为图行为图交互图交互图(interactivediagram)状态图状态图(statechartdiagram)活动图活动图(activitydiagram)它们从不同的侧面刻画系统的动态行为。它们从不同的侧面刻画系统的动态行为。交互图描述对象之间的消息传
26、递。它又可分为顺交互图描述对象之间的消息传递。它又可分为顺序图序图(sequencediagram)与与(协协)合作图合作图(collaborationdiagram)两种形式。顺序图强调两种形式。顺序图强调对象之间消息发送的时间序。合作图更强调对象对象之间消息发送的时间序。合作图更强调对象间的动态协作关系。间的动态协作关系。合作图也可通过消息序号合作图也可通过消息序号来表示消息传递的时间序,只不过这种表示不如来表示消息传递的时间序,只不过这种表示不如顺序图那样直观。顺序图那样直观。6.2UML概述概述用用UML顺序图表示顺序图表示“个人课程个人课程”用例中学生选课过用例中学生选课过程程6.2
27、UML概述概述用用UML协作图表示协作图表示“个人课程个人课程”用例中学生选课过用例中学生选课过程程6.2UML概述概述6.2.1UML的语言机制的语言机制状态图描述类的对象的动态行为。它包含对状态图描述类的对象的动态行为。它包含对象所有可能的状态。象所有可能的状态。活动图描述系统为完成某项功能而执行的操活动图描述系统为完成某项功能而执行的操作序列,这些在每个状态下能够响应的事件作序列,这些在每个状态下能够响应的事件以及事件发生时的状态迁移与响应动作。操以及事件发生时的状态迁移与响应动作。操作序列可以并发和同步。作序列可以并发和同步。活动图中包含控制流和信息流。控制流表示活动图中包含控制流和信
28、息流。控制流表示一个操作完成后对其后续操作的触发,信息一个操作完成后对其后续操作的触发,信息流则刻画操作之间的信息交换。流则刻画操作之间的信息交换。6.2UML概述概述UML状态图示例状态图示例“课程设置课程设置”对象的状态图表示,每个对象的状态图表示,每个“课课程设置程设置”最多只能容纳最多只能容纳50个选课学生。个选课学生。6.2UML概述概述6.2.1UML的语言机制的语言机制(4)实现图实现图(implementationdiagram)描述软件系统的实现。描述软件系统的实现。构件图构件图(componentdiagram)描述软件实现系统中各组成部件以及它们之间描述软件实现系统中各组
29、成部件以及它们之间的依赖关系。的依赖关系。一个部件可能是一个资源描述文件、一个二进一个部件可能是一个资源描述文件、一个二进制文件或一个可执行文件。制文件或一个可执行文件。构件图用于理解和分析软件各部分之间的相互构件图用于理解和分析软件各部分之间的相互影响程度。影响程度。6.2UML概述概述6.2.1UML的语言机制的语言机制部署图部署图(deploymentdiagram)描述软件系统运行环境的硬件及网络的物理描述软件系统运行环境的硬件及网络的物理体系结构。体系结构。结点表示实际的计算机和设备,边表示结点结点表示实际的计算机和设备,边表示结点之间的物理连接关系之间的物理连接关系,也可显示连接的
30、类型也可显示连接的类型及结点之间的依赖性。及结点之间的依赖性。在结点内部,可以放置可执行部件和对象以在结点内部,可以放置可执行部件和对象以显示结点与可执行软件单元之间的对应关系。显示结点与可执行软件单元之间的对应关系。部署图对于软件安装工程师有重要的参考价部署图对于软件安装工程师有重要的参考价值。值。6.2UML概述概述6.2.1UML的语言机制的语言机制6.2UML概述概述6.2.1UML的语言机制的语言机制UMLUML的基本模型元素的基本模型元素的基本模型元素的基本模型元素 6.2UML概述概述6.2.1UML的语言机制的语言机制本章的后续章节将结合需求分析过程介本章的后续章节将结合需求分
31、析过程介绍绍UML的用例图、包图、类图和活动图的用例图、包图、类图和活动图第十章将结合软件设计过程介绍顺序图、第十章将结合软件设计过程介绍顺序图、协作图、状态图和活动图。协作图、状态图和活动图。6.2UML概述概述6.2.2基于基于UML的软件开发过程的软件开发过程虽然虽然UML是独立于软件开发过程的,即,是独立于软件开发过程的,即,UML能够在几乎任何一种软件开发过程中能够在几乎任何一种软件开发过程中使用,但是,熟悉一种有代表性的面向对象使用,但是,熟悉一种有代表性的面向对象的的软件开发过程软件开发过程,并,并知悉知悉UML各语言要素各语言要素在过程中不同阶段的应用,对于理解在过程中不同阶段
32、的应用,对于理解UML将大有裨益。将大有裨益。图图6.6表示了一种迭代的渐进式软件开发过程,表示了一种迭代的渐进式软件开发过程,它包含四个阶段:初启,细化,构造和移交。它包含四个阶段:初启,细化,构造和移交。6.2UML概述概述 面向对象的迭代、渐进式软件开发过程面向对象的迭代、渐进式软件开发过程6.2.2基于基于UML的软件开发过程的软件开发过程6.2UML概述概述6.2.2基于基于UML的软件开发过程的软件开发过程1 1、初启:确定项目的、初启:确定项目的主要目标和范围主要目标和范围,并进行初步的,并进行初步的可行性分析可行性分析和经济效益分析和经济效益分析。2 2、细化:细化阶段的开始标
33、志着项目的正式确立。软件项目在此、细化:细化阶段的开始标志着项目的正式确立。软件项目在此阶段需要完成以下工作:阶段需要完成以下工作:(1 1)初步的需求分析。采用)初步的需求分析。采用UMLUML的的用例用例描述目标软件系统所有比描述目标软件系统所有比较重要、比较有风险的用例,利用较重要、比较有风险的用例,利用用例图用例图表示参与者与用例、以表示参与者与用例、以及用例和用例之间的关系。采用及用例和用例之间的关系。采用UMLUML的的类图类图表示目标软件系统所基表示目标软件系统所基于的应用领域中的概念与概念之间的关系。这些相互关联的概念于的应用领域中的概念与概念之间的关系。这些相互关联的概念构成
34、领域模型。构成领域模型。(2 2)初步的高层设计。根据用例、类在业务领域中的关系,或者)初步的高层设计。根据用例、类在业务领域中的关系,或者根据业务领域中某种有意义的分类方法将整个软件系统划分为若根据业务领域中某种有意义的分类方法将整个软件系统划分为若干个包,利用干个包,利用UMLUML的的包图包图刻化这些包及其包间关系。刻化这些包及其包间关系。6.2UML概述概述2、细化:、细化:(3 3)部分的详细设计。对于系统中某些重要的或者风险比较高)部分的详细设计。对于系统中某些重要的或者风险比较高的用例,的用例,可以采用可以采用交互图交互图进一步探讨其内部实现过程。同样,进一步探讨其内部实现过程。
35、同样,对于系统中的关键类,也可以详细研究其属性和操作,并在对于系统中的关键类,也可以详细研究其属性和操作,并在UMLUML类图类图中加以表现。中加以表现。(4)(4)部分的原型构造。部分的原型构造。综上所述,在细化阶段可能需要使用的综上所述,在细化阶段可能需要使用的UMLUML语言机制包括:语言机制包括:描述描述用户需求的用例及用例图用户需求的用例及用例图、表示领域概念模型的类图表示领域概念模型的类图、表示业表示业务流程处理的活动图务流程处理的活动图、表示系统高层结构的包图表示系统高层结构的包图和和表示用例内表示用例内部实现过程的交互图部实现过程的交互图等。等。细化阶段的结束条件是,所有主要的
36、用户需求已通过用例和用细化阶段的结束条件是,所有主要的用户需求已通过用例和用例图得以描述;所有重要的风险已被标识,并对风险应对措施例图得以描述;所有重要的风险已被标识,并对风险应对措施了如指掌;能够比较精确地估算实现每一用例的时间。了如指掌;能够比较精确地估算实现每一用例的时间。6.2.2基于基于UML的软件开发过程的软件开发过程6.2UML概述概述3 3、构造:在构造阶段,开发人员通过一系列的迭代、构造:在构造阶段,开发人员通过一系列的迭代完成对所有用例的软件实现工作,在每次迭代中实完成对所有用例的软件实现工作,在每次迭代中实现一部分用例。以迭代方式实现所有用例的好处在现一部分用例。以迭代方
37、式实现所有用例的好处在于,用户可以及早参与对已实现用例的实际评价,于,用户可以及早参与对已实现用例的实际评价,并提出改进意见。这样可有效降低大型软件系统的并提出改进意见。这样可有效降低大型软件系统的开发风险。开发风险。在实际开始构造软件系统之前,有必要预先制定迭在实际开始构造软件系统之前,有必要预先制定迭代计划。计划的制定应遵循如下两项原则:代计划。计划的制定应遵循如下两项原则:(1 1)用户认为业务价值较大的用例应优先安排;)用户认为业务价值较大的用例应优先安排;(2 2)开发人员评估后认为开发风险较高的用例应优)开发人员评估后认为开发风险较高的用例应优先安排。先安排。6.2.2基于基于UM
38、L的软件开发过程的软件开发过程6.2UML概述概述在迭代在迭代计划中,要确定迭代次数、每次迭代所需时间及计划中,要确定迭代次数、每次迭代所需时间及每次迭代中应完成(或部分完成)的用例。每次迭代中应完成(或部分完成)的用例。每次迭代过程由针对用例的分析、设计、编码、测试和每次迭代过程由针对用例的分析、设计、编码、测试和集成集成5个子阶段构成。在集成之后,用户可以对用例的实个子阶段构成。在集成之后,用户可以对用例的实现效果进行评价,并提出修改意见。这些修改意见可以现效果进行评价,并提出修改意见。这些修改意见可以在本次迭代过程中立即实现,也可以在下次迭代中再予在本次迭代过程中立即实现,也可以在下次迭
39、代中再予以考虑。以考虑。构造过程中,需要使用构造过程中,需要使用UML的交互图来设计用例的实的交互图来设计用例的实现方法。为了与设计得出的交互图协调一致,需要修改现方法。为了与设计得出的交互图协调一致,需要修改或精化在细化阶段绘制的作为领域模型的类图,增加一或精化在细化阶段绘制的作为领域模型的类图,增加一些为软件实现所必需的类、类的属性或方法。些为软件实现所必需的类、类的属性或方法。6.2.2基于基于UML的软件开发过程的软件开发过程6.2UML概述概述如果一个类有复杂的生命周期行为,或者类的对象如果一个类有复杂的生命周期行为,或者类的对象在生命周期内需要对各种外部事件的刺激作出反应,在生命周
40、期内需要对各种外部事件的刺激作出反应,应考虑用应考虑用UML的状态图来表述类的对象的行为。的状态图来表述类的对象的行为。UMLUML的活动图可以在构造阶段用来表示复杂的算法的活动图可以在构造阶段用来表示复杂的算法过程和有多个对象参与的业务外理过程。活动图尤其过程和有多个对象参与的业务外理过程。活动图尤其适用于表示过程中的并发和同步。适用于表示过程中的并发和同步。在构造阶段的每次迭代过程中,可以对细化阶段绘在构造阶段的每次迭代过程中,可以对细化阶段绘出的包图进行修改或精化,以便包图切实反映目标软出的包图进行修改或精化,以便包图切实反映目标软件系统最顶层的结构划分状况。件系统最顶层的结构划分状况。
41、6.2.2基于基于UML的软件开发过程的软件开发过程6.2UML概述概述6.2.2基于基于UML的软件开发过程的软件开发过程构造阶段可能使用的构造阶段可能使用的UML语言机制语言机制(1)用例及用例图。它们是开发人员在构造阶段进)用例及用例图。它们是开发人员在构造阶段进行分析和设计的基础。行分析和设计的基础。(2)类图。在领域概念模型的基础上引进为软件实)类图。在领域概念模型的基础上引进为软件实现所必需的类、属性和方法。现所必需的类、属性和方法。(3)交互图:表示针对用例设计的软件实现方法。)交互图:表示针对用例设计的软件实现方法。(4)状态图:表示类的对象的状态)状态图:表示类的对象的状态事
42、件事件响应行响应行为。为。(5)活动图:表示复杂的算法过程,尤其是过程中)活动图:表示复杂的算法过程,尤其是过程中的并发和同步。的并发和同步。(6)包图:表示目标软件系统的顶层结构。)包图:表示目标软件系统的顶层结构。(7)构件图。)构件图。(8)部署图。)部署图。6.2UML概述概述4 4、移交、移交在移交阶段,开发人员将构造阶段获得的软件系统在移交阶段,开发人员将构造阶段获得的软件系统在用户实际工作环境(或接近实际的模拟环境)中在用户实际工作环境(或接近实际的模拟环境)中试运行,根据用户的修改意见进行少量修改。试运行,根据用户的修改意见进行少量修改。6.2.2基于基于UML的软件开发过程的
43、软件开发过程6.2UML概述概述6.3基于基于UML的需求分析的需求分析基于基于UMLUML的需求分析步骤:的需求分析步骤:(1 1)利用用例及用例图表示需求。)利用用例及用例图表示需求。(2 2)利用包图及类图表示目标软件系统的总)利用包图及类图表示目标软件系统的总体框架结构。体框架结构。第第6章章面向对象的需求分析面向对象的需求分析6.3基于基于UML的需求分析的需求分析初步业务需求描述形成后,基于初步业务需求描述形成后,基于UML的需的需求分析分为以下步骤:求分析分为以下步骤:(1)利用用例及用例图表示需求:从业务需)利用用例及用例图表示需求:从业务需求描述出发获取执行者和场景;对场景进
44、行汇求描述出发获取执行者和场景;对场景进行汇总、分类、抽象,形成用例;确定执行者与用总、分类、抽象,形成用例;确定执行者与用例、用例与用例图之间的关系,生成用例图。例、用例与用例图之间的关系,生成用例图。(2)利用包图及类图表示目标软件系统的总)利用包图及类图表示目标软件系统的总体框架结构:体框架结构:6.3基于基于UML的需求分析的需求分析(1)利用用例及用例图表示需求)利用用例及用例图表示需求(2)利用包图及类图表示目标软件系统的)利用包图及类图表示目标软件系统的总体框架结构:总体框架结构:根据领域知识、业务需求和工作经验,设计目根据领域知识、业务需求和工作经验,设计目标软件系统的顶层架构
45、;标软件系统的顶层架构;从业务需求描述中提取从业务需求描述中提取“关键概念关键概念”,形成领,形成领域概念模型;域概念模型;从概念模型和用例出发,研究系统中主要的类从概念模型和用例出发,研究系统中主要的类之间的关系,生成类图。之间的关系,生成类图。6.3基于基于UML的需求分析的需求分析6.3基于基于UML的需求分析的需求分析6.3基于基于UML的需求分析的需求分析6.3.1开发场景开发场景场景:场景:是指从单个执行者的角度观察目标软件系是指从单个执行者的角度观察目标软件系统的功能和行为。这种功能通过系统与用户之间的统的功能和行为。这种功能通过系统与用户之间的交互来表征。因此也可以说,场景是用
46、户与系统之交互来表征。因此也可以说,场景是用户与系统之间进行交互的一组具体的动作。场景是用例的实例,间进行交互的一组具体的动作。场景是用例的实例,而用例是某类场景的共同抽象。而用例是某类场景的共同抽象。场景描述:场景描述:场景名称、执行者实例、前置条件、事场景名称、执行者实例、前置条件、事件流和后置条件。件流和后置条件。6.3.1开发场景开发场景根据根据“家庭保安系统家庭保安系统”的初步需求描的初步需求描述,具有那些场景?述,具有那些场景?系统配置系统配置开机开机关机关机门窗监测门窗监测烟雾监测烟雾监测复位复位6.3基于基于UML的需求分析的需求分析6.3.1开发场景开发场景:监测场景的描述监
47、测场景的描述场景名称场景名称:门窗监测。:门窗监测。参参与与执执行行者者实实例例:警警报报器器,报报警警电电话话,显显示示器器,门门窗窗监视器。监视器。前置条件前置条件:系统已开机。:系统已开机。事件流事件流:(1)门门窗窗监监视视器器发发现现门门或或窗窗户户发发生生异异动动,向向软软件件系系统统报报告告异异常事件。常事件。(2)软件系统启动警报器并拨报警电话号码。)软件系统启动警报器并拨报警电话号码。(3)报报警警电电话话接接通通后后,软软件件系系统统播播出出语语音音,报报告告异异常常事事件件发发生的时间、地点和事件的性质(门窗异动)。生的时间、地点和事件的性质(门窗异动)。(4)系系统统在
48、在控控制制面面板板的的显显示示器器上上显显示示报报警警时时间间及及当当前前状状态态(报警:门窗异动)。(报警:门窗异动)。后置条件后置条件:系统处于:系统处于“报警报警”状态。状态。6.3基于基于UML的需求分析的需求分析6.3.1开发场景开发场景:场景的分类场景的分类(1)(1)实际场景实际场景对对实实际际的的业业务务处处理理流流程程或或其其优优化化流流程程的的描描述述,是是用用户户需需求求的的重要组成部分。重要组成部分。(2)(2)设想场景设想场景分分析析人人员员对对目目标标软软件件系系统统投投入入应应用用后后经经改改进进或或优优化化的的业业务务流流程的描述。帮助分析人员挖掘潜在的用户需求
49、。程的描述。帮助分析人员挖掘潜在的用户需求。(3)(3)评价场景评价场景确确认认需需求求或或提提出出改改进进建建议议为为主主要要目目的的的的业业务务流流程程描描述述。评评价价场场景景可可以以在在用用例例生生成成后后对对用用例例进进行行实实例例化化而而形形成成,以以便便用用户户对用例进行评价或改进。对用例进行评价或改进。(4)(4)培训场景培训场景面面向向开开发发人人员员及及用用户户解解释释系系统统的的功功能能和和外外部部行行为为的的业务流程描述。业务流程描述。6.3基于基于UML的需求分析的需求分析6.3.1开发场景开发场景:场景的获取场景的获取确确定定执执行行者者和和场场景景关关键键在在于于
50、理理解解业业务务领领域域和和初初步步需需求描述文档。下列问题可帮助分析人员获取场景:求描述文档。下列问题可帮助分析人员获取场景:(1 1)目标软件系统有哪些执行者?目标软件系统有哪些执行者?(2 2)执行者希望系统执行的任务有哪些?执行者希望系统执行的任务有哪些?(3 3)执执行行者者希希望望获获得得哪哪些些信信息息?这这些些信信息息由由谁谁生生成成?由由谁谁修改?修改?(4 4)执执行行者者需需要要通通知知系系统统哪哪些些事事件件?系系统统响响应应这这些些事事件件时时会表现出哪些外部行为?会表现出哪些外部行为?(5 5)系统将通告执行者哪些事件?系统将通告执行者哪些事件?场场景景将将促促成成