《软件工程》课件-第9章 面向对象分析_第1页
《软件工程》课件-第9章 面向对象分析_第2页
《软件工程》课件-第9章 面向对象分析_第3页
《软件工程》课件-第9章 面向对象分析_第4页
《软件工程》课件-第9章 面向对象分析_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章

面向对象分析XX大学XX系XXX软件工程教程电子科技大学出版社学习目标l

掌握面向对象分析的基本概念;l

掌握使用UML建立对象模型的方法;l

掌握使用UML建立动态模型的方法;l

掌握使用UML建立功能模型的方法。目录01020304面向对象技术概述面向对象分析过程面向对象分析原则建立对象模型0506建立动态模型建立功能模型07

本章小结面向对象分析概述01面向对象分析概述◆

面向对象分析(OOA)的目标是抽取和整理用户需求,并建立一系列问题域的精确模型来描述能够满足用户需要的计算机软件。◆

面向对象分析所建立的模型要表示出系统的数据、功能和行为三个方面的基本特征。◆

在进行面向对象分析时,需要建立面向对象的对象模型(描述系统的数据结构)、功能模型(描述系统的功能)和行为模型(描述系统的控制结构)。面向对象分析概述◆

对任何大型系统而言,三个模型都必不可少。其中,对象模型又始终是最重要、最基本、最核心的。◆

面向对象分析法指的是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。面向对象分析概述◆

OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。◆

定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。面向对象分析概述◆

OOA在定义属性的同时,要识别实例连接。◆

OOA在定义服务的同时要识别消息连接。◆

OOA中的5个层次和5个活动继续贯穿在OOD(面向对象设计)过程中。◆

OOD模型由4个部分组成。它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。面向对象分析过程02面向对象分析过程在用OOA具体分析一个事物时,大致上遵循如下五个基本步骤。(1)确定对象和类。这里所说的对象是对数”据及其处理方式的抽象。类是多个对象的共同属性和方法集合的描述。(2)确定结构(structure)。结构是指问题域的复杂性和连接关系。面向对象分析过程(3)确定主题(subject)。主题是指事物的总体概貌和总体分析模型。(4)确定属性(attribute)。属性就是数据元素。”(5)确定方法(method)。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。面向对象分析过程面向对象分析能够产生如下三种模型。(1)对象模型。对象模型是对用例模型进行分析,把系统分解成互相协作的分析类,通过类图、对象图描述对象、对象的属性、对象间的关系,是系统的静态模型。”(2)动态模型。动态模型用来描述系统的动态行为,通过时序图、协作图、描述对象的交互,以揭示对象间如何协作来完成每个具体的用例。单个对象的状态变化、动态行为可以通过状态图来表示。(3)功能模型。功能模型即用例模型作为输入。面向对象分析原则03面向对象分析原则(1)抽象抽象是从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征。抽象是形成概念的必须手段。抽象原则有两个方面的意义:①

尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析其中与系统目标有关的事物及其本质性特征。②

通过舍弃个体事物在细节上的差异,抽取其共同特性而得到一批事物的抽象概念。面向对象分析原则抽象原则包括过程抽象和数据抽象两个方面。◆

过程抽象:是指任何一个完成确定功能的操作序列,其使用者都可以把它看做一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。◆

数据抽象:是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。数据抽象是OOA的核心原则。面向对象分析原则(2)封装封装就是把对象的属性和服务结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节。(3)继承特殊类的对象拥有的其一般类的全部属性与服务,称作特殊类对一般类的继承。面向对象分析原则(4)分类分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。(5)聚合聚合又称组装,其原则是把一个复杂的事物看成若干比较简单的事物组装体,从而简化对复杂事物的描述。面向对象分析原则(6)关联关联是人类思考问题时经常运用的思想方法:通过一个事物联想到另外的事物。(7)消息通信这一原则要求对象之间只能通过消息进行通信,而不允许在对象之外直接地存取对象内部的属性。面向对象分析原则(8)粒度控制控制自己的视野:考虑全局时,注意其大的组成部分,暂时不详细描述每一部分的具体细节:考虑某部分的细节时则暂时撇开其余的部分。这就是粒度控制原则。(9)行为分析显示世界中事物的行为是复杂的。由大量的事物所构成的问题域中各种行为往往相互依赖交织。建立对象模型04建立对象模型◆

面向对象分析的首要任务就是建立对象模型,建立对象模型的基本过程如下:(1)确定分析模型中的类和对象。(2)确定对象间的关系。(3)确定对象的属性。(4)确定继承关系。建立对象模型◆

确定类与对象的步骤如下:(1)找出候选的类与对象。(2)筛选出正确的类与对象。(3)区分实体类、边界类和控制类。◆

实体类表示系统将跟踪的持久信息;边界类表示参与者与系统之间的交互;控制类负责用例的实现。建立对象模型图9.1

实体类图形表示建立对象模型◆

确定关联标识关联的启发式准则如下:①

检查指示状态的动词或动词短语,识别动作的主体和客体,从角色寻找关联。②准确地命名关联和角色。③尽量使用常用的修饰词标识出名字空间和关键属性。④应消除导出其他关联的关联。⑤在一组关联被稳定之前先不必考虑实例之间的多重性。⑥过多的关联使得一个模型不可读。建立对象模型分析阶段属性定义的原则如下。①每个对象至少包含一个属性,例如_id。②属性取值必需适合对象类的所有实例。③

出现在泛化关系中的对象所继承的属性必须与泛化关系一致。④系统的所有存储数据必须定义为属性。⑤对象的导出属性应当略去。⑥

在分析阶段,如果某属性描述了对象的外部不可见状态,应将该属性从分析模型中删去。建立对象模型例9.1:在医院的病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的病症信号(组合)实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。建立对象模型通过简单的需求分析,根据分析系统主要实现以下功能。①

病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统;②

中央监护系统将病人的病症信号与标准的病症信号库里的病症信号的正常值进行比较,当病症出现异常时系统自动报警;③当病症信号异常时,系统自动更新病历并打印病情报告④值班护士可以查看病情报告并进行打印;⑤

医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病历;⑥系统定期自动更新病历。建立对象模型用UML的静态建模机制定义并描述本系统的静态结构。1)建立系统的用例图。2)将用例细化,可以得到分解的用例。3)识别系统的类。4)用包图和配置图描述系统的体系结构。建立对象模型1)建立系统的用例图通过以下六个问题识别角色。①谁使用系统的主要功能?②谁需要系统的支持以完成日常工作任务?③谁负责维护,管理并保持系统正常运行?④系统需要应付(或处理)哪些硬设备?⑤系统需要和哪些外部系统交互?⑥谁(或什么)对系统运行产生的结果(值)感兴趣?建立对象模型角色描述模板:通过回答这六个问题以后,再进一步分析可以识别出本系统的四个角色分别是值班护士,医生,病人,标准病症信号库。图9.2

角色描述模板图9.3

顶层用例图建立对象模型2)将用例细化,可以得到分解的用例。本例中需要分解的用例如下:①中央监护②病症监护③提供标准病症信号④病历管理⑤病情报告图9.4

细化用例图建立对象模型3)识别系统的类通过名词识别法和系统实体识别法等方法可以识别出系统的十二个类。进一步地,在类图中标明类之间的关系,形成类关系图。十二个系统类图如下所示:图9.5

系统类图以上是12个系统类图。下面是类关系图。图9.6类关系图4)用包图和配置图描述系统的体系结构图9.7

包图图9.8

网络结构图建立动态模型05建立动态模型◆

在面向对象方法中,主要用状态图来描述系统的动态模型(也叫行为模型)。◆

对象模型建立后,就需考察对象和关系动态变化序列。面向对象分析设定对象和关系都具有其生存周期。◆

生存周期由许多阶段组成,每个阶段都有一系列的运行规律和规则,用来调节和管理对象的行为。建立动态模型◆

通常用动态模型描述对象和关系的生存周期,即它们的状态、状态转换的触发事件、对象的服务(行为)。◆

状态:对象在其生存周期中的某个特定阶段所具有的行为模式。◆

事件:事件是某个特定时刻所发生的事情,是引起对象从一种状态转换到另一种状态的抽象,它没有持续时间,是瞬间完成的。时间是引起对象状态转换的控制信息。建立动态模型◆

服务(行为):对象的某种状态下所发生的一系列处理操作。行为是需要消耗时间的。◆

动态模型的建立首先编写脚本,从脚本中提取事件,画出事件跟踪图,再画状态转换图。(1)编写脚本(2)设计用户界面(3)画顺序图(4)画状态转换图建立动态模型例9.2:分别画出旅馆管理系统中旅客和床位的状态转换图。旅馆管理系统中要为旅客安排床位,床位有“空”和“住人”两种状态。只有当床位处于“空”状态时,才可安排旅客住宿,随后床位的状态变为“住人”。旅客离开后,他所住的床位又变为“空”状态。因而要分析旅客和床位的状态,以及引起状态转换的事件(操作)。旅客在该系统中有三种状态,分别为旅客登记、住宿和注销。从“旅客登记”到“住宿”,是由事件“登记旅客情况”和“分配床位”的发生引起的。从“住宿”状态到“注销”状态,是由事件“结账”和“退房”引起的。建立动态模型图9.9旅客的状态转换图图9.10床位的系统状态转换图建立动态模型例9.3:结合9.4节案例,完成动态模型的创建。(1)给出两个关系很紧密的状态图(2)用时序图和合作图描述病人病情异常时系统的情况,其他情况从略。(3)用活动图描述系统在监护病人时的状态变化。图9.11

状态图图9.12

时序图图9.13

合作图图9.14

状态变化图建立功能模型06建立功能模型◆

功能模型由一组数据流图组成。在面向对象分析方法中为动态模型的每个状态画出数据流图,可以清楚地说明与状态有关的处理过程,即服务(行为)。◆

在建立系统信息模型的基础上,以数据或信息为主线,在分析数据和信息的过程中分析其处理过程,将数据和处理结合在一起而不是分离开来。◆

功能模型可用数据流图、程序流程图、N-S图等来表示。建立功能模型◆

功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况。◆

例9.4:结合9.4节案例,完成功能模型的创建,具体步骤如下:经过初步的需求分析,得到系统功能要求:(1)监视病员的病症(血压、体温、脉搏等)。(2)定时更新病历。(3)病员出现异常情况时报警。(4)随机地产生某一病员的病情报告。建立功能模型(1)分析系统顶层结构①源点来自病人本身或者护士;②

终点是护士,因为一切报告和告警信息应汇集到护士处;③加工(处理)是病房监视系统;④

数据流包括病情信号,报告,告警信息和要求报告;⑤数据存储是指病员病历。图9.15

顶层图建立功能模型(2)系统分解系统可以分解为:①

系统分析后,划分出一个床边监视器实现本地监控;②在护士办公室实现中央监视;③病人病历的更新;④护士办公室提出报告。图9.16

第一层分解图建立功能模型(3)进一步分解将中央监视系统划分为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论