软件工程面向对象分析.ppt

上传人:小飞机 文档编号:6434258 上传时间:2023-10-30 格式:PPT 页数:103 大小:1.86MB
返回 下载 相关 举报
软件工程面向对象分析.ppt_第1页
第1页 / 共103页
软件工程面向对象分析.ppt_第2页
第2页 / 共103页
软件工程面向对象分析.ppt_第3页
第3页 / 共103页
软件工程面向对象分析.ppt_第4页
第4页 / 共103页
软件工程面向对象分析.ppt_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《软件工程面向对象分析.ppt》由会员分享,可在线阅读,更多相关《软件工程面向对象分析.ppt(103页珍藏版)》请在三一办公上搜索。

1、软件工程,Software Engineering,(An Introduction),软件工程,软件工程,第6-10章 面向对象方法,相关概念回顾,需求分析的核心:建模,相关概念回顾,建立软件模型是分析活动的焦点。建立软件模型是分析活动的关键。需求分析的核心在于建立分析模型。软件工程中,软件整个开发过程需要建模,软件开发过程的各个阶段也需要建模。不同的软件开发方法,即软件开发范型,最集中表现在它们模型的区别。所以,软件开发过程的一系列模型的建立标准、描述形式、应用规范等,是一种软件开发方法(范型)最核心的研究内容。,相关概念回顾,分析阶段中常用的模型(逻辑模型)实体关系图数据流图、数据流定义

2、、数据字典、结构化英语、事件列表、状态转换图、用例图、时序图、协作图、类图、状态图、Jackson实体结构图、SSD图、Jackson进程模型、层次方框图、Warnier图、IPO/HIPO、等,相关概念回顾,使用的方法不同,建立的模型也不相同。但是,一般必须建立以下几类模型:数据模型、功能模型、行为模型静态模型、动态模型所建立的模型必须是从抽象到精化的一个逐层分解在需求分析阶段,创建的模型,要着重于描述系统要做什么,而不是如何去做(不应涉及软件实现细节),相关概念回顾,Data Model,BehavioralModel,FunctionalModel,Analysis modeling a

3、nd Model,相关概念回顾,常用的分析/建模方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(OOA)建立动态模型的状态迁移图或Petri网等形式化方法面向构件的其它E-R方法,面向对象方法开发软件通常建立的三种形式的模型 描述系统数据结构的对象模型 描述系统控制结构的动态模型 描述系统功能的功能模型,面向对象(的软件开发)方法,第6-10章 面向对象方法,面向对象模型,属性、操作、协作者,类对象 对象-关 模型 系模型对象-行为模型,使用实例,功能模型,行为模型,数据模型,(静态),(静态)

4、,(动态),CRC索引卡片,面向对象方法开发软件通常建立的三种形式的模型 三种模型从三个不同但由密切相关的角度模拟目标系统。对象模型是最重要、最基本、最核心的。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。,面向对象(的软件开发)方法,第6-10章 面向对象方法,第六章 面向对象的需求分析,面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。它包含面向对象风格的图形语言机制以及用于指导需求分析的面向对象方法学。面向对象的思想最初起源于1960年代中期的仿真程序设计语言Simula67。1980年代初出现的Smalltalk语言及其程序设计环境

5、对面向对象技术的推广应用起到了显著的促进作用。,第六章 面向对象的需求分析,1990年代中后期诞生并迅速成熟的UML(统一建模语言,Unified Modeling Language)是面向对象技术发展的一个重要里程碑。UML统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了能力丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。,第六章 面向对象的需求分析,OO方法。OMT/J、Rumbaugh;OOAD/Peter Coad OOTC(面向对象技术中心)/IBM,基于经验的OO。UML0.91,96.10,在使用中得到良好反映,于是倡议成立

6、了UML协会。当时的会员有DEC,HP,IBM,Microsoft,Oracle,Rational Software,TI,Unisys.1997.1发布了UML1.0,发布了UML1.1 并被OMG接纳为标准。据统计,在1996年底,UML已隐占OO技术市场的85%。,面向对象方法开发软件通常建立的三种形式的模型 描述系统数据结构的对象模型 描述系统控制结构的动态模型 描述系统功能的功能模型,第六章 面向对象的需求分析,第6-10章 面向对象方法,第六章 面向对象的需求分析,属性、操作、协作者,类对象 对象-关 模型 系模型对象-行为模型,使用实例,功能模型,行为模型,数据模型,(静态),(

7、静态),(动态),CRC索引卡片,面向对象方法开发软件通常建立的三种形式的模型 三种模型从三个不同但由密切相关的角度模拟目标系统。对象模型是最重要、最基本、最核心的。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。,面向对象(的软件开发)方法,第6-10章 面向对象方法,第六章 面向对象的需求分析,面向对象的概念与思想UML概述基于UML的需求分析 以“家庭保安系统”等为实例,介绍与需求分析相关的部分UML语言机制以及基于UML的面向对象的需求分析方法和过程。,6.1 面向对象的概念与思想,6.1 面向对象的概念与思想,从事物的过程侧面来描述事物的方法被称之为面向过

8、程的方法。该方法在认识现实事物的整个过程中是把事物内部的处理过程作为核心来描述的。从事物的组成部件及每个部件的属性、功能来认识事物。比如,汽车由发动机,底盘,变速箱等组成,发动机有排量,有冲程数等属性,同时发动机还具有启动,加大油门等操作。这就是将现实世界的事物的属性和及其过程一并进行描述的方法,这种方法被称为面向对象的方法。从事物的属性侧面来描述事物的方法就是面向数据的方法,该方法在认识事物的过程中始终把事物的属性作为描述的核心。,小结:,面向对象的需求分析方法通过提供对象、对象间消息传递等语言机制,让分析人员在解空间中直接模拟问题空间中的对象,从而消减运用其他分析方法带来的语义断层,为需求

9、建模活动提供直观、自然的语言支持和方法学指导。面向对象对象类继承聚集消息。,6.1 面向对象的概念与思想,Elements of the OO model,面向对象模型,面向对象模型,属性、操作、协作者,类对象 对象-关 模型 系模型对象-行为模型,使用实例,功能模型,行为模型,数据模型,(静态),(静态),(动态),CRC索引卡片,6.2 UML概述,6.2.1 UML的语言机制 UML主要以Booch方法、OMT方法71和OOSE方法为基础,同时也吸收了其他面向对象建模方法的优点,形成了一种概念清晰、表达能力丰富、适用范围广泛的面向对象的标准建模语言。,UML通过图形化的表示机制从多个侧面

10、对系统的分析和设计模型进行刻画,共有5类10种视图如下所示:静态模型 动态模型逻辑模型 类图 用例图 对象图 顺序图 包图 协作图 状态图 活动图物理模型 构件图 配置图,6.2 UML 概述,6.2.1 UML 语言机制,6.2.1 UML 语言机制,1、用例图(Usecase Diagram):用于表示系统的功能,并指出各功能的操作者;2、静态图:包括类图(Class Diagram)、对象图(Object Diagram)及包图(Package Diagram),表示系统的静态结构;3、行为图:包括状态图(State Diagram)及活动图(Activity Diagram),用于描述

11、系统的动态行为和对象之间的交互关系;4、交互图:包括顺序图(Sequence Diagram)和协作图(Collaboration Diagram),用于描述系统对象之间的动态合作关系;5、实现图:包括构件图(Compoment Diagram)和配置图(Deployment Diagram),用于描述系统的物理实现。,6.2 UML 概述,6.2.1 UML 语言机制,UML通过图形化的表示机制从多个侧面刻画系统的分析和设计模型。UML共定义十种视图,可分四类:(1)用例图(use case diagram)从外部用户的角度描述系统的功能,并指出功能的执行者。,6.2 UML 概述,例:课程

12、注册管理系统的用例图,教务管理人员使用“课表维护”用例,设置或修改课程属性(课程的时间、地点、上课老师等),增删课程;学生使用“个人课程规划”用例选课、修改自己的个人课表,收费管理系统根据每个学生的选课情况计算其应缴费用;老师使用“选课学生花名册查询”用例获取选定其所开课程的学生花名册。,6.2 UML 概述,6.2.1 UML的语言机制,(2)静态图 类图(class diagram)、类图描述系统的静态结构,类图的结点表示系统中的类及其属性和操作,类图的边表示类之间的联系,包括继承、关联、依赖、聚合等。对象图(object diagram)对象图是类图的一个实例。它描述在某种状态下,或者在

13、某一时间段系统中活跃的对象及其关系。在对象图中,一个类可以拥有多个活跃的对象实例。,6.2 UML 概述,课程注册管理系统的类图,图6.2表示课程注册管理系统包括:“教务管理人员”、“学生”、“老师”、“课程”、“课程设置”、“课程注册表”、“课程注册管理器”、“课程管理器”八个类。前三个类为一般化的“用户”类的子类。一门“课程”可由一到多个“课程设置”构成,例如,对于全校性的公共基础课,由于选修的学生太多,必须安排不同的老师、不同的教室或者不同的时间段。“学生”、“老师”与“课程设置”之间,“课程注册表”与“课程注册管理器”之间,以及“课程注册管理器”与“课程”之间存在着关联关系。,6.2

14、UML 概述,课程注册管理系统的类图,6.2 UML 概述,6.2.1 UML的语言机制,(2)静态图 包图(package diagram)包图描述系统的分解,表示包(package)以及包之间的关系。包由子包及类组成。包之间的关系包括继承、构成与依赖关系。,6.2 UML 概述,6.2.1 UML的语言机制,(3)行为图 交互图(interactive diagram)状态图(statechart diagram)活动图(activity diagram)它们从不同的侧面刻画系统的动态行为。交互图描述对象之间的消息传递。它又可分为顺序图(sequence diagram)与(协)合作图(c

15、ollaboration diagram)两种形式。顺序图强调对象之间消息发送的时间序。合作图更强调对象间的动态协作关系。合作图也可通过消息序号来表示消息传递的时间序,只不过这种表示不如顺序图那样直观。,6.2 UML 概述,用UML顺序图表示“个人课程”用例中学生选课过程,6.2 UML 概述,用UML协作图表示“个人课程”用例中学生选课过程,6.2 UML 概述,6.2.1 UML的语言机制,状态图描述类的对象的动态行为。它包含对象所有可能的状态。活动图描述系统为完成某项功能而执行的操作序列,这些在每个状态下能够响应的事件以及事件发生时的状态迁移与响应动作。操作序列可以并发和同步。活动图中

16、包含控制流和信息流。控制流表示一个操作完成后对其后续操作的触发,信息流则刻画操作之间的信息交换。,6.2 UML 概述,UML状态图示例,“课程设置”对象的状态图表示,每个“课程设置”最多只能容纳50个选课学生。,6.2 UML 概述,6.2.1 UML的语言机制,(4)实现图(implementation diagram)描述软件系统的实现。构件图(component diagram)描述软件实现系统中各组成部件以及它们之间的依赖关系。一个部件可能是一个资源描述文件、一个二进制文件或一个可执行文件。构件图用于理解和分析软件各部分之间的相互影响程度。,6.2 UML 概述,6.2.1 UML的

17、语言机制,部署图(deployment diagram)描述软件系统运行环境的硬件及网络的物理体系结构。结点表示实际的计算机和设备,边表示结点之间的物理连接关系,也可显示连接的类型及结点之间的依赖性。在结点内部,可以放置可执行部件和对象以显示结点与可执行软件单元之间的对应关系。部署图对于软件安装工程师有重要的参考价值。,6.2 UML 概述,6.2.1 UML的语言机制,6.2 UML 概述,6.2.1 UML的语言机制,UML的基本模型元素,6.2 UML 概述,6.2.1 UML的语言机制,本章的后续章节将结合需求分析过程介绍UML的用例图、包图、类图和活动图第十章将结合软件设计过程介绍顺

18、序图、协作图、状态图和活动图。,6.2 UML 概述,6.2.2 基于UML的软件开发过程,虽然UML是独立于软件开发过程的,即,UML能够在几乎任何一种软件开发过程中使用,但是,熟悉一种有代表性的面向对象的软件开发过程,并知悉UML各语言要素在过程中不同阶段的应用,对于理解UML将大有裨益。图6.6表示了一种迭代的渐进式软件开发过程,它包含四个阶段:初启,细化,构造和移交。,6.2 UML 概述,面向对象的迭代、渐进式软件开发过程,6.2.2 基于UML的软件开发过程,6.2 UML 概述,6.2.2 基于UML 的软件开发过程,1、初启:确定项目的主要目标和范围,并进行初步的可行性分析和经

19、济效益分析。2、细化:细化阶段的开始标志着项目的正式确立。软件项目在此阶段需要完成以下工作:(1)初步的需求分析。采用UML的用例描述目标软件系统所有比较重要、比较有风险的用例,利用用例图表示参与者与用例、以及用例和用例之间的关系。采用UML的类图表示目标软件系统所基于的应用领域中的概念与概念之间的关系。这些相互关联的概念构成领域模型。(2)初步的高层设计。根据用例、类在业务领域中的关系,或者根据业务领域中某种有意义的分类方法将整个软件系统划分为若干个包,利用UML的包图刻化这些包及其包间关系。,6.2 UML 概述,2、细化:(3)部分的详细设计。对于系统中某些重要的或者风险比较高的用例,可

20、以采用交互图进一步探讨其内部实现过程。同样,对于系统中的关键类,也可以详细研究其属性和操作,并在UML类图中加以表现。(4)部分的原型构造。综上所述,在细化阶段可能需要使用的UML语言机制包括:描述用户需求的用例及用例图、表示领域概念模型的类图、表示业务流程处理的活动图、表示系统高层结构的包图和表示用例内部实现过程的交互图等。细化阶段的结束条件是,所有主要的用户需求已通过用例和用例图得以描述;所有重要的风险已被标识,并对风险应对措施了如指掌;能够比较精确地估算实现每一用例的时间。,6.2.2 基于UML 的软件开发过程,6.2 UML 概述,3、构造:在构造阶段,开发人员通过一系列的迭代完成对

21、所有用例的软件实现工作,在每次迭代中实现一部分用例。以迭代方式实现所有用例的好处在于,用户可以及早参与对已实现用例的实际评价,并提出改进意见。这样可有效降低大型软件系统的开发风险。在实际开始构造软件系统之前,有必要预先制定迭代计划。计划的制定应遵循如下两项原则:(1)用户认为业务价值较大的用例应优先安排;(2)开发人员评估后认为开发风险较高的用例应优先安排。,6.2.2 基于UML 的软件开发过程,6.2 UML 概述,在迭代计划中,要确定迭代次数、每次迭代所需时间及每次迭代中应完成(或部分完成)的用例。每次迭代过程由针对用例的分析、设计、编码、测试和集成5个子阶段构成。在集成之后,用户可以对

22、用例的实现效果进行评价,并提出修改意见。这些修改意见可以在本次迭代过程中立即实现,也可以在下次迭代中再予以考虑。构造过程中,需要使用UML的交互图来设计用例的实现方法。为了与设计得出的交互图协调一致,需要修改或精化在细化阶段绘制的作为领域模型的类图,增加一些为软件实现所必需的类、类的属性或方法。,6.2.2 基于UML 的软件开发过程,6.2 UML 概述,如果一个类有复杂的生命周期行为,或者类的对象在生命周期内需要对各种外部事件的刺激作出反应,应考虑用UML的状态图来表述类的对象的行为。UML的活动图可以在构造阶段用来表示复杂的算法过程和有多个对象参与的业务外理过程。活动图尤其适用于表示过程

23、中的并发和同步。在构造阶段的每次迭代过程中,可以对细化阶段绘出的包图进行修改或精化,以便包图切实反映目标软件系统最顶层的结构划分状况。,6.2.2 基于UML 的软件开发过程,6.2 UML 概述,6.2.2 基于UML 的软件开发过程,构造阶段可能使用的UML语言机制(1)用例及用例图。它们是开发人员在构造阶段进行分析和设计的基础。(2)类图。在领域概念模型的基础上引进为软件实现所必需的类、属性和方法。(3)交互图:表示针对用例设计的软件实现方法。(4)状态图:表示类的对象的状态事件响应行为。(5)活动图:表示复杂的算法过程,尤其是过程中的并发和同步。(6)包图:表示目标软件系统的顶层结构。

24、(7)构件图。(8)部署图。,6.2 UML 概述,4、移交在移交阶段,开发人员将构造阶段获得的软件系统在用户实际工作环境(或接近实际的模拟环境)中试运行,根据用户的修改意见进行少量修改。,6.2.2 基于UML 的软件开发过程,6.2 UML 概述,6.3 基于UML的需求分析,基于UML的需求分析步骤:(1)利用用例及用例图表示需求。(2)利用包图及类图表示目标软件系统的总体框架结构。,第6章 面向对象的需求分析,6.3 基于UML的需求分析,初步业务需求描述形成后,基于UML的需求分析分为以下步骤:(1)利用用例及用例图表示需求:从业务需求描述出发获取执行者和场景;对场景进行汇总、分类、

25、抽象,形成用例;确定执行者与用例、用例与用例图之间的关系,生成用例图。(2)利用包图及类图表示目标软件系统的总体框架结构:,6.3 基于UML的需求分析,(1)利用用例及用例图表示需求(2)利用包图及类图表示目标软件系统的总体框架结构:根据领域知识、业务需求和工作经验,设计目标软件系统的顶层架构;从业务需求描述中提取“关键概念”,形成领域概念模型;从概念模型和用例出发,研究系统中主要的类之间的关系,生成类图。,6.3 基于UML的需求分析,6.3 基于UML的需求分析,6.3 基于UML的需求分析,6.3.1 开发场景 场景:是指从单个执行者的角度观察目标软件系统的功能和行为。这种功能通过系统

26、与用户之间的交互来表征。因此也可以说,场景是用户与系统之间进行交互的一组具体的动作。场景是用例的实例,而用例是某类场景的共同抽象。场景描述:场景名称、执行者实例、前置条件、事件流和后置条件。,6.3.1 开发场景,根据“家庭保安系统”的初步需求描述,具有那些场景?系统配置开机关机门窗监测烟雾监测复位,6.3 基于UML的需求分析,6.3.1 开发场景:监测场景的描述,场景名称:门窗监测。参与执行者实例:警报器,报警电话,显示器,门窗监视器。前置条件:系统已开机。事件流:(1)门窗监视器发现门或窗户发生异动,向软件系统报告异常事件。(2)软件系统启动警报器并拨报警电话号码。(3)报警电话接通后,

27、软件系统播出语音,报告异常事件发生的时间、地点和事件的性质(门窗异动)。(4)系统在控制面板的显示器上显示报警时间及当前状态(报警:门窗异动)。后置条件:系统处于“报警”状态。,6.3 基于UML的需求分析,6.3.1 开发场景:场景的分类,(1)实际场景对实际的业务处理流程或其优化流程的描述,是用户需求的重要组成部分。(2)设想场景分析人员对目标软件系统投入应用后经改进或优化的业务流程的描述。帮助分析人员挖掘潜在的用户需求。(3)评价场景确认需求或提出改进建议为主要目的的业务流程描述。评价场景可以在用例生成后对用例进行实例化而形成,以便用户对用例进行评价或改进。(4)培训场景面向开发人员及用

28、户解释系统的功能和外部行为的业务流程描述。,6.3 基于UML的需求分析,6.3.1 开发场景:场景的获取,确定执行者和场景关键在于理解业务领域和初步需求描述文档。下列问题可帮助分析人员获取场景:(1)目标软件系统有哪些执行者?(2)执行者希望系统执行的任务有哪些?(3)执行者希望获得哪些信息?这些信息由谁生成?由谁修改?(4)执行者需要通知系统哪些事件?系统响应这些事件时会表现出哪些外部行为?(5)系统将通告执行者哪些事件?场景将促成开发人员和用户对于业务处理流程和目标软件系统的功能范围的共同理解。场景确定之后,通过对场景的汇总、分类归并、抽象即可形成用例。,6.3 基于UML的需求分析,6

29、.3.2 生成用例,执行者:是指外部用户或外部实体在系统中扮演的角色。用例:从外部用户的视角看,一个用例是执行者与目标软件系统之间的一次典型的交互作用。从软件系统内部的视角出发,一个用例代表系统执行的一系列动作,动作执行的结果能够被外部的执行者所观察。用例描述:用例名称、参与执行者、前置条件、一个主事件流、零到多个辅助事件流和后置条件。,6.3 基于UML的需求分析,6.3.2 生成用例,执行者指外部用户或外部实体在系统中扮演的角色。如果多个用户在使用目标软件系统时扮演同一角色,这些用户用单一执行者表示。如果一个用户扮演多种角色,则需要用多个执行者来表示同一用户。,6.3 基于UML的需求分析

30、,6.3.2 生成用例,对用例的完整描述包括用例名称、参与执行者、前置条件、一个主事件流、0到多个辅事件流、后置条件、获利的执行者。主事件流表示正常情况下执行者与系统之间的信息交互及动作序列,辅事件流则表示特殊情况或异常情况下的信息交互及动作序列。显式地分隔主、辅事件流是为了使分析人员首先聚焦于正常的业务处理流程,同时也便于用例的读者理解业务需求。,6.3 基于UML的需求分析,6.3.2 生成用例,用例源于分析人员对场景的分类和抽象,对相似场景进行归并,使得一个用例可以通过实例化、参数调节而涵盖多个场景。“家庭保安系统”中的“开机”、“关机”、“复位”三个场景可以归并为“命令处理”用例,三个

31、场景之间的差异通过用户命令区分。门窗监测、烟雾监测两个场景可归并为统一的“传感器监测”用例。熟悉业务领域的分析师,可以略过场景,直接从业务需求描述中获取用例。,6.3 基于UML的需求分析,6.3.2 生成用例,在家庭保安系统中,执行者有:“用户”“传感器”“警报器”“报警电话”“显示器”用例有:“系统配置”“命令响应”“传感器监测”,6.3 基于UML的需求分析,“传感器监测”用例的描述,用例名称:传感器监测参与执行者:各类传感器,警报器,报警电话,显示器前置条件:系统已开机。主事件流:(1)传感器向目标软件系统上报其监测数据,系统判断监测数据正常。(2)如果不正常,系统启动警报器,拨报警电

32、话号码。(3)报警电话接通后,软件系统播出语音,报告异常事件发生的时间、地点和事件的性质。(4)系统在控制面板的显示器上显示报警时间及当前状态(报警)。,6.3 基于UML的需求分析,“传感器监测”用例的描述,辅事件流:(1)如果报警电话无人接听,则按照重拨延迟反复拨号,直至电话接通,再转入主事件流的步骤(3)。(2)如果重拨次数达到系统预设的最大次数,电话仍无人接听,则跳过主事件流的步骤(3),转入步骤(4)。后置条件:如果已发现异常的监测数据,系统处于“报警”状态;否则系统处于正常的“监测”状态。,6.3 基于UML的需求分析,6.3.3 用活动图表示用例,活动图主要用于系统分析,它描述系

33、统的行为,显示系统中动作之间的转移。活动图一般从开始节点开始,经过若干动作后,最后到达结束节点。活动图是简化的状态图,它重点说明了活动间所经过的操作和过程。活动图(Activity)只有一个动作(Action),活动的转移有一个相应的触发事件。活动图可用来描述用例、包和类的行为,它把活动描述成正在执行的操作,活动代表了一个完整的动作,即它代表一个类或用例内部的行为。活动图不区分状态、活动和事件,它是一个从活动到活动的简单描述,其中,同步线用粗横线表示,用于表示活动之间的同步。,6.3 基于UML的需求分析,同步线,6.3.3 用活动图表示用例,考生考试的活动图,6.3 基于UML的需求分析,1

34、 UML活动图,用例的事件流或者操作均可表示为一系列的活动,每个活动在活动图中被表示为一个结点。结点之间的有向边表示顺序执行的活动。在结点间的连接边上可以附加条件表达式,表示在有向连接边的源结点执行完成后,如果条件成立,则开始执行有向连接边的目标结点所表示的活动;如果条件不成立,则目标结点的活动不执行。菱形在活动图中表示条件判断,条件表达式一般出现在以菱形为源结点的有向边上。活动图可以表示过程的并发。活动图的同步条(水平或者垂直粗线)可以将一条有向连接边分叉为多个并发执行的分支进程,或将多个有向连接边上的进程同步合并为一个进程。,6.3.3 用活动图表示用例,1 UML活动图,泳道为了描述活动

35、的责任对象,活动图引进了“泳道”的概念。泳道是由垂直长线分割出来的矩形区域,在泳道上方的对象负责该矩形区域内的所有活动。如,在图6.8中,类“Customer”的对象负责“插入银行卡”、“输入密码”、“选择功能”、“输入金额”四项活动,其余活动由类“ATM system”的对象负责。,6.3.3 用活动图表示用例,典型的活动图,6.3 基于UML的需求分析,2 用例的活动图表示,6.3.3 用活动图表示用例,6.3.4 生成用例图,执行者和用例之间的关系:触发执行和信息交换。(可能同时兼具这两种关系)从执行者指向用例的边表示触发执行/信息交换;而从用例指向执行者的边表示用例将其生成的信息传递给

36、执行者。UML的用例和用例之间的关系:使用关系和扩展关系。使用关系:如果有一个公共的动作序列存在于多个用例中,为避免重复,并使需求模型更简洁,可以将公共动作序列抽出来构成新的独立用例。这样,原来的多个用例与新的用例之间便通过使用关系来连接。扩展关系:如果一个用例的动作序列完全包含另一个用例的动作序列,且前者含有后者所不具备的一些特殊情况下的处理动作,则称前者扩展后者。,6.3 基于UML的需求分析,6.3.4 生成用例图,学生考试用例,6.3 基于UML的需求分析,6.3.4 生成用例图,执行者与用例之间的关系触发执行信息交换触发执行与信息交换如,在“家庭保安系统”中,执行者“用户”在触发用例

37、“命令响应”的同时,还要向用例传送命令信息。在UML用例图中,从执行者指向用例的边表示触发执行和/或信息交换,从用例指向执行者的边则表示用例将生成的信息传递给执行者。,6.3 基于UML的需求分析,UML用例与用例之间的关系,使用(use)关系如果多个用例都有一个公共的动作序列,为避免重复并使模型简洁,可以将公共动作序列抽取出来,构成新的独立用例。原来的多个用例与新的用例之间通过使用关系连接。如,“家庭保安系统”中,“系统配置”和“命令响应”两个用例都使用公共的“密码验证”子用例。,6.3.4 生成用例图,UML用例与用例之间的关系,扩展(extend)关系如果一个用例的动作序列完全包含另一个

38、用例的动作序列,且前者含有后者所不具备的一些特殊情况下的处理动作,则称前者扩展后者。例如,图6.10 中的“传感器监测”用例仅包含正常的处理流程,而“报警电话未接通”用例除正常流程外还增加了“重复拨号”以及“重拨次数达到最大次数仍无人接听”这两种异常处理动作。,6.3.4 生成用例图,“家庭保安系统”的用例图,6.3.4 生成用例图,“家庭保安系统”的用例图,6.3.4 生成用例图,6.3.5 建立顶层架构,顶层架构的主要目的是为后续的分析和设计活动建立一种结构和分划,以便开发人员在不同的开发阶段,以及同一开发阶段的不同开发人员,能够聚焦于系统的不同部分。顶层架构是分析和设计阶段的成果。随着开

39、发过程的推进,框架中的内容不断丰富、翔实,最终演进为完整的面向对象软件结构。,6.3 基于UML的需求分析,6.3.5 建立顶层架构,软件构架UML:指系统的组织结构,它可以递归解构为通过接口交互的部件、连接部件的关系以及组装部件的一些限制条件,通过接口交互的部件有类、构件和子系统。IEEE:系统在其环境中的最高层概念,6.3 基于UML的需求分析,1 UML包图,UML包图是表示顶层架构的机制。包是UML支持对类分组的一种机制。可以从某种视角,将某些关联密切的类划为一个包,而不同包的两个类的关联应比较松散。对于大型软件系统,包的划分是实现“分而治之”的重要技术手段。,6.3.5 建立顶层架构

40、,1 UML包图,UML包图:对类进行分组的一种机制。包间的两种关系:依赖和构成。依赖关系:如果对类A的修改将导致类B的改变,则称B依赖于A。构成关系:是指包可以嵌套,即包中不仅可包含类,还可以包含子包。,6.3.5 建立顶层架构,1 UML包图,考试系统包图,6.3.5 建立顶层架构,6.3.6 建立领域概念模型,在用户需求和相关的业务领域中,有一些全局性的概念对于理解需求至关重要。因此,有必要抽取这些概念,研究这些概念之间的关系。UML类图是表示领域概念模型的机制。,6.3 基于UML的需求分析,6.3.6 建立领域概念模型,UML类图:类表示概念,用类图表示领域概念模型。类图图元:类的名

41、称、属性列表、方法列表。类间关系:继承、聚集、关联和依赖。继承关系:表示子类重用父类的属性和操作,子类的对象也是父类的对象,有时也称父类是子类的泛化。子类继承了父类的所有属性和操作,但每个子类又有自己的特殊属性,也就是说父类所具有的属性和操作,子类肯定有,父类能够完成的工作子类肯定能完成,反之不然。,6.3 基于UML的需求分析,例如在下图所示的泛化关系中,“题库”类是比“选择题”类、“判断题”类和“程序设计题”类更普遍的概念,相反“选择题”类是比“题库”类更特殊的概念。这样“题库”是一个父类,“选择题”、“判断题”和“程序设计题”是这个父类的子类。父类的“题号”、“试题类型”、“试题属性”全

42、部被子类继承,但每个子类又都有自己的特殊属性,比如判断题类的属性“标准答案”,而父类没有。,6.3.6 建立领域概念模型,6.3 基于UML的需求分析,6.3.6 建立领域概念模型,继承关系/泛化关系,6.3 基于UML的需求分析,小 结,本章介绍了面向对象的基本概念,概述了UML的语言机制和基于UML的软件开发过程。基于UML的需求分析方法和过程是本章的重点,主要步骤是:(1)从业务需求描述出发标识用例,生成表示用例内容的活动图(可选),生成表示用例之间、用例与执行者之间关系的用例图。(2)根据领域知识、业务需求描述和既往经验,建立以包图表示的目标软件系统的顶层架构,形成以类图表示的领域概念

43、模型。,第6章 面向对象的需求分析,面向对象(的软件开发)方法,一、The philosophy of software development1.传统方法学:功能观(面向功能的)2.OO方法学:对象观(面向对象的)二、OO方法学的其它特征和优点三、面向对象的软件开发1.面向对象的方法2.学习和应用的难点,第6-10章 面向对象方法,面向对象方法开发软件通常建立的三种形式的模型 描述系统数据结构的对象模型 描述系统控制结构的动态模型 描述系统功能的功能模型,面向对象(的软件开发)方法,第6-10章 面向对象方法,属性、操作、协作者,类对象 对象-关 模型 系模型对象-行为模型,使用实例,功能模

44、型,行为模型,数据模型,(静态),(静态),(动态),CRC索引卡片,面向对象(的软件开发)方法,第6-10章 面向对象方法,面向对象方法开发软件通常建立的三种形式的模型 三种模型从三个不同但由密切相关的角度模拟目标系统。对象模型是最重要、最基本、最核心的。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。,面向对象(的软件开发)方法,第6-10章 面向对象方法,结构化(传统建模方法)方法 模型:数据流图(DFD)数据字典(DD)小说明 E-R图(ERD)状态变迁图(STD)面向对象方法 模型:用例模型(用况模型)对象模型(概念模型)功能模型(行为模型)状态模型,第6

45、-10章 面向对象方法,面向对象(的软件开发)方法,面向对象(的软件开发)方法,四、基于UML的软件开发(一)工具的选择和使用(二)建模:包括分析、设计、实现和运行环境1.需求分析:用例图、活动图、包图、类图2.设计:顺序图、协作图、状态图、类图(精化)3.实现:构件图4.部署(运行环境):部署图,第6-10章 面向对象方法,面向对象(的软件开发)方法,四、基于UML的软件开发(三)各种视图及其作用:1.Use Case Diagram:从用户的角度描述系统的功能,并指出功能的执行者:用户/角色/参与者(Actor)。分析员要分析、识别出系统的所有参与者和用例/用况。参与者和用例用来分别描述“

46、谁来做?”和“做什么?”它只描述从参与者的角度看,系统应具有什么功能,而并不描述该功能在系统内部是如何实现的。用例模型由若干用例图描述。,第6-10章 面向对象方法,面向对象(的软件开发)方法,四、基于UML的软件开发(三)各种视图及其作用:2.包图:描述系统的分解,并表示出包与包之间的关系。包也称为子系统。它按用例来对问题域进行分解。它将UML模型元素中紧密相关的部分放置在同一个包中。3.类图:用来描述系统中类以及类与类之间的关系。一个系统一般有多个类图;一个类图不一定包含系统中的所有类;一个类可以/可能出现在多个类图中。,第6-10章 面向对象方法,面向对象(的软件开发)方法,四、基于UM

47、L的软件开发(三)各种视图及其作用:4.顺序图/序列图/时序图:用来描述对象之间动态的交互关系。即要表现出对象间的消息传递,又要表示出消息传递的时间顺序。5.协作图:描述对象间的动态协作关系。它可以通过消息序号来表示消息传递的时间序。它与顺序图可以(自动)相互转换。6.状态图:描述一个特定对象的所有可能状态以及引起状态转移的事件。,第6-10章 面向对象方法,面向对象(的软件开发)方法,四、基于UML的软件开发(三)各种视图及其作用:7.活动图:描述系统为完成某项功能而执行的操作序列。它本质上是一种流程图(业务流程图)8.构件图:描述系统实现的各个组成部件以及部件间的关系。9.部署图:描述系统运行时进行处理的节点以及节点上的构件配置。它包括了软件运行环境的硬件及网络的物理结构。,第6-10章 面向对象方法,面向对象(的软件开发)方法,四、基于UML的软件开发(四)抽象与分解(五)图形+文字描述(六)阶段间的联系、交叉和重叠(七)对象模型,动态模型,功能模型用户模型、结构模型、行为模型、实现模型、环境模型;静态模型、动态模型;等等,第6-10章 面向对象方法,面向对象(的软件开发)方法,五、参考资料(推荐):1.吴建等,UML基础与Rose建模实例,人民邮电出版社。2.UML建模案例。,第6-10章 面向对象方法,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号