软件工程面向对象分析.ppt
《软件工程面向对象分析.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)包图:表示目标软件系统的顶层结构。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 面向 对象 分析

链接地址:https://www.31ppt.com/p-6434258.html