第7章 面向对象分析
面向对象分析-顺序图

把消息表示为从一个对象生命线到另一个对象生命线的一个水平实线箭头, 即从源对象指向目标对象,以触发目标对象中的特定操作。对于对象到自身的 消息,箭头就从同一个对象符号开始和结束。
用消息(操作或信号)的名字及其参数值或者参数表达式标示箭头。
用如下种类的箭头表示不同种类的通讯:
同步消息
一般把它用于普通的过程调用。在外层控制恢复之前,要完成整个嵌套序列。 通常把它用于普通的过程调用。 若在一个主动对象发送信号并等待完成一个嵌套的行为序列才继续时,也可以 把它用于并发的主动对象。 同步消息返回 用它显式地表示从过程调用的返回。在控制的过程流中,可以省略返回箭头 (暗示执行规约结束),假设每个调用在任何消息后都有一个配对的返回,并可以 把返回值标示在初始的箭头上。
5.1
概念与表示法
1、概述 顺序图是一种详细表示对象之间以及对象与参与者实例之间交 互的图,它由一组协作的对象(或参与者实例)以及它们之间可发 送的消息组成,它强调消息之间的顺序。
由对象(参与者) 、消息、生命线和执行规约组成。
[对象名]:类名
从图中可以看出顺序图是二维的,其中: 垂直方向表示时间,水平方向表示不同的对 象或参与者。 通常时间维由上到下(根据需要,也可以 由下到上)。通常只有时间顺序是重要的, 但在实时应用中时间轴是能度量的。 对象的水平顺序并不重要,相应地生命线 之间的顺序可以是任意的。
3、执行规约
执行规约表示一个对象直接或者通过从属 例程执行一个行为的时期。它既表示了行 为执行的持续时间,也表示了活动和它的 调用者之间的控制关系。 用一个窄长的矩形表示执行规约,矩形 顶端和它的开始时刻对齐,末端和它的结 束时刻对齐。 在程序的控制流中,执行规约符号的顶 端画在进入的箭头的尖端(开始该动作的 那个箭头),底端画在返回的箭头的尾部。
第七章 包图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社

包图的基本概念
包图是用来描述模型中的包和所包含元素的组织方式的图,是维护 和控制系统总体结构的重要内容。包图能够组织许多UML中的元素, 不过其最常用的用途是用来组织用例图和类图。
在UML 1.X规范中,虽然没有明确规定包图属于一种图类型,却可以 使用包及包的关系来表示系统的结构,包图作为实际上存在并经常被 使用的一种图出现在UML中。最新的UML 2规范中已经明确定义了包 图。
元素的分包原则
元素不能“狡兔三窟”:树形结构的一个节点不能同时拥有两个父 节点,一个元素也不允许在两个包中重复出现。
相同包内元素不能重名:包所具有的命名空间的作用要求用一个包 中的同种类元素名称必须是唯一的。
包内元素要紧密联系:分在同一个包中的元素应该具有某些相同的 性质,即包的高内聚性。
包与包尽可能保持独立:包和包之间需要尽可能减少耦合度,要求 包内元素与外部元素有尽可能少的依赖关系。
DataType
+ Intege 元素的分包原则
包的概念
pkg Logical View
包是用于把模型本身组织成层次结构的通用机制, PackageName 它不能执行。
PackageName
+ ContentA + ContentB
包名:与类图相似,包有简单名与路径名两种命 pkg Logical View
PackageB
包的依赖关系
容易出现的问题:循环依赖
pkg Logical View PackageA
循环依赖的出现是令人困惑、也是非常容易
产生错误的。尤其是当依赖关系表示包的引 pkg Logical View PackageA
入时,循环依赖会导致将模型转化成代码后
面向对象分析与设计课件第7章 状态图与活动图建模

7.1 状态图的构成元素
统一建模语言中,状态图主要由状态和迁移两大类模型元素组成。对于图中 的每个状态,还定义了状态图主体对象在该状态下需要完成的各个动作及其触发 原因或机制。对于每个迁移,状态图还定义了迁移的触发事件、迁移条件以及迁 移时所要完成的动作。
状态图还对状态进行了多种分类,同时也为这些分类提供了必要的支持。如 把状态按照时间顺序分为初态、终态和中间态。按照状态的层次结构划分为简单 状态、复合状态和子状态。对于子状态,还可以根据它们是否参与了并发活动而 划分为串行子状态和并发子状态。另外,为简单地表达某种复杂语义,状态图中 还定义了历史子状态等这样的特殊模型元素。为了表示不同状态与其行为之间的 关系,UML还为每个状态和迁移定义了若干种相关的动作。
状态名可以是任何一个满足UML命名规则的字符串,其内容 可以由用户指定。
每个动作中,则包含了触发动作的事件、事件参数、守卫 条件以及伴发的动作序列。
7.1.1 状态
所有这些动作可分成入口动作(on Entry)、出口动作(On Exit)、 事件动作(On Event)和动作(Do)等四种类型。
其中,入口动作(on Entry)和出口动作(On Exit)分别指对象在 进入和离开当前状态时需要完成的动作。
7.1.2 转换与事件
例如,在Java语言中,事件处理机制的主要内容如下: 1)事件:一种用于封装事件属性(事件相关信息)的对象,其内容还应 包括为事件响应者提供的服务。 2)事件源:即产生事件的对象。当事件发生时,它负责创建事件信号并 调用事件激活程序,向事件订阅者们发出事件信号(事件对象)。 3)事件响应者:需要对事件做出相应的对象。一个事件可以有多个事件 响应者。
对于任何对象来说,对象的状态取决于它的各种行为不断积累所 产生的结果。在任何给定的时间点,对象的当前状态就包括它所具有 的所有特性、所处的具体情形、满足的条件以及其属性的当前值。
面向对象分析

面向对象分析:是确定需求或者业务的角度,按照面向对象的思想来分析业务。
例如:OOA只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象。
OOA与结构化分析有较大的区别。
OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
基本步骤:
在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:
第一步,确定对象和类。
这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。
类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。
第二步,确定结构(structure)。
结构是指问题域的复杂性和连接关系。
类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
第三步,确定主题(subject)。
主题是指事物的总体概貌和总体分析模型。
第四步,确定属性(attribute)。
属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。
第五步,确定方法(method)。
方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。
对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。
面向对象分析方法

面向对象分析方法1/2面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。
OOA与结构化分析有较大的区别。
OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。
在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。
分类结构就是所谓的一般与特殊的关系。
组装结构则反映了对象之间的整体与部分的关系。
OOA在定义属性的同时,要识别实例连接。
实例连接是一个实例与另一个实例的映射关系。
OOA在定义服务的同时要识别消息连接。
当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。
OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。
OOD模型由4个部分组成。
它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。
一、OOA的主要原则。
(1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。
抽象是形成概念的必须手段。
抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。
第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。
抽象是面向对象方法中使用最为广泛的原则。
抽象原则包括过程抽象和数据抽象两个方面。
过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。
数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。
ch07面向对象分析设计.ppt

第7章 面向对象分析与设计
▪ 按业务相关性可拆分为:管理用户信息用例(添 加用户、修改用户信息)、管理用户用例(删除 用户、查找用户)、管理用户权利用例(修改 用户口令、变更用户级别)三个用例。
第7章 面向对象分析与设计
信息系统分析与设计
二、用例的优化与组织
3.用例的组织 ❖ 较大的系统往往包含许多用例,为了更好的理解
和管理它们,我们可以通过两种方式进行组织: ❖ 用“包(Package)”来组织: ❖ 用用例的级别层次关系来组织。 ❖ 在大型的软件开发过程中,用例图可以分层建立。 ❖ 在建模的开始阶段,注意保持用例图是对系统功
第7章 面向对象分析与设计
信息系统分析与设计
参与者→职责→用例
从发货者(Shipper)识别
❖ 发货者要求系统提供什么功能? ▪ 仓库存储物品的管理; ▪ 发货处理。
❖ 发货者需要做什么? ▪ 从所有的定单中按顺序挑选出优先级较高的定单来发货; ▪ 在发货单上签上发货的品名、数量。
❖ 发货者需要阅读、创建、销毁、更新或存储系统的某些信息 吗?
第7章 面向对象分析与设计
信息系统分析与设计
用例图的关系识别
❖ 包含关系:系统分析员应该检查模型中的每个用例,提炼 出公共的部分,创建单独的用例,并用包含关系与基本用 例连接。这样会降低原来的用例复杂性,增加用例的复用 性。
❖ 扩展关系:系统分析员检查每个用例,如果发现一个用例 比较大,并且其中既包含了一般处理又包含了特殊处理, 那么就应该将特殊处理的部分提取出来,创建单独的用例, 并且用扩展关系连接这个用例与相关的用例。这样会降低 原来的用例复杂性,处理更简单。
面向对象分析

面向对象分析
面向对象分析是计算机科学领域中使用最广泛的一种分析技术,它是一种结构化的分析方法,是系统分析的更新与系统设计的预备工作。
面向对象分析可以帮助我们更好地理解和分析现有系统,并为系统重构提供指导。
面向对象分析是一种以对象为中心,以建模和分析实体、对象和对象之间的关系为主要任务的分析方法。
它的主要目的是将概念抽象为实体,然后利用视图及关系描述它们之间的关系。
面向对象分析包括分析、设计、建模过程,分析过程也称为面向对象分析(OOA)。
面向对象分析强调对对象的分析,对象可以看作对实际世界中的实际事物的抽象。
对象可以由属性和行为组成,属性描述了对象的内部状态,行为描述了它如何处理消息。
在面向对象分析中,这种抽象事物被描绘为类,每个类有一组共享的属性和行为。
面向对象分析和设计的主要工作是抽象建模,确定对象之间的关系,并利用抽象和关系建模系统。
建模可以帮助我们清楚地了解系统结构,以及每个系统元素之间的联系。
一旦建模完成,可以使用模型来设计、分析和实现高级的系统。
面向对象分析是一种结构化的分析方法,用于理解和描述系统的行为,从而有效地构建高质量的系统。
它的关键是建立系统的实体、关系和视图,从而提出系统的结构,并提出系统实现的可行方案。
总体而言,面向对象分析是一种重要而普遍应用的管理技术,它是系统分析和设计过程中的重要组成部分。
对对象的分析有助于进行
更好的系统设计,增强了系统容量,提高了系统灵活性和性能,为组建现代软件系统提供了可行的工具。
软件工程面向对象分析——实例PPT课件

确定类与对象
3. 区分实体类、边界类和控制类
• 在类分析时首先从问题域的实体类入手,如果在 建立分析对象模型时区分实体类、边界类和控制 类,将有助于理解系统。
• 实体类表示系统将跟踪的持久信息;边界类表示 参与者与系统之间的交互;控制类负责用例的实 现。其图形表示如图所示。
38
确定关联
• 标识关联的启发式准则如下:
28
使用Rose创建用例模型
(2) 创建参与者与用例之间的关联关系 在图形工具栏上单击Association(双向关联)或 Unidirectional Association(单向关联)图标,在起始 actor上单击并拖动到use case上。 可以按下面的步骤给关联关系增加关系类型(构造型, stereotype):
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
26
使用Rose创建用例模型
4. 为用例增加文档描述
(6) 浏览目录列表选择要关联的 文件;
《面向对象分析 》课件

面向对象分析是逐步抽象、逐步分类的过程, 程序代码更加具有可读性,并可避免重复代 码创建
面向对象分析的流程
1
需求定义
收集并分析业务需求,根据需求建立初步模型。
2
形成模型
在初步模型的基础上,进行建模、分析、设计和验证,形成正式模型。
3
评价和完善
评估模型的质量并进行优化,最后形成完整、准确的模型。
领域建模
1
领域建模的流程
2
通过客户需求、市场环境、组织机构
等多方面考虑,建立基础识别原则,
全面地把控领域的各种可能性。
3
领域模型的符号与构建方法
4
领域模型是可以描述系统所分析的需 求的,采用实体、边界、控制等几个 方面的关系模型,以透视实体、边界、
记录等三个信息进行分析。
领域建模的定义
领域建模是对业务领域进行分析和建 模,从而达成对业务领域的深刻理解 的过程。
对象与类
对象的三个主要特征
对象是系统中一个具体实体,具备身份、状态 和行为三个主要特征,是面向对象分析的基本 概念。
类的定义与实现
类是具有相同属性和行为的对象集合,是对对 象的相似性的一种抽象,具体了相同概念的特 征和关系。
类的关系
类的关系包括继承、聚合、组合、依赖、关联 和实现,是所有系统元素之间的关系件将帮助你深入了解面向对象分析的流程和方法,掌握开发中的应用 技巧。
什么是面向对象分析?
深入理解业务需求
面向对象分析是一种针对业务需求的软件开发 方法,通过抽象出各个业务实体及其属性及行 为关系,建立起软件模型,实现对业务的深度 理解。
以对象为核心
面向对象分析是基于对象的思想进行软件需求 分析和设计,将对象作为核心概念,以对象之 间的关系为架构进行软件分析与设计。
软件工程第七章面向对象分析

执行计算的操纵,例如:销售中的计算总价。 请求某个对象状态的操作。 监视某个对象发生某个控制事件的操作。
操作的构造需要交互图和场景描述等手段多次 反复分析才能获取。在研究语法分析并分离动 词作为候选的操作。推荐的一个方法是使用 CRC技术。
五种视图:
用例视图从用户角度表达系统功能;
结构视图主要使用类图和对象图描述系统静态结构;
行为视图展示系统动态行为及其并发性;
实现视图展示系统实现的结构和行为特征;
部署视图展示系统的实现环境和构件是如何在物理结 构中部署的
用例模型 用例图 用例描述 用例场景 活动图
分析类举例
控制类
控制类类似于设计模型中的控制器类,其 目的是UI层之上的第一个对象,主要负责 接收和处理系统操作消息。
事件响应。 业务逻辑 流程控制
控制类举例
课堂练习
POS系统的边界类和实体类
用例实现分析
用例实现分析是分析模型内部的一种协作, 主要描述了如何根据分析类及其交互的分 析对象来实现和执行一个具体的用例。
装。 识别属性和操作。完善分析类的描述。
识别分析类
领域模型实际上是更为完整的业务模型的 一个特例
有两种类型的UML模型支持业务建模:
用例模型 对象模型
对系统开发的用例或处理叙述进行“语法 分析”,可以开始分析类的识别。
分析类识别方式
外部实体:使用基于计算机的系统的信息。 事物:问题信息域的一部分。 发生或事件:在系统操作环境内发生。 角色:由和系统交互的人员扮演。 组织单元:和某个应用相关。 场地:建立问题的环境和系统的整体功能。 结构:定义了对象的类或与对象相关的类。
软件工程 第7章--面向对象设计

§1. OOD准则
5、Cohesion:模块内各个元素彼此结合的紧密程度。 服务内聚(service cohesion):一个服务只完成一个功能。
类内聚(class cohesion):一个类只有一个用途,否则分 解之。
一般-特殊内聚(general-particular cohesion):
17
类构件
类构件:面向对象技术中的“类” 。类构件有3种 重用方式:
–实例重用 –继承重用 –多态重用 1. 可重用类构件应具备的特点 (1) 模块独立性强。具有单一、完整的功能,且经 过反复测试被确认是正确的。是一个不受或很少受 外界干扰的封装体,其内部实现在外面是不可见的。
18
(2) 具有高度可塑性。软构件的应用环境比集成电 路更广阔、更复杂。显然,要求一个软构件能满足 任何一个系统的设计需求是不现实的。因此,可重 用的软构件必须具有高度可裁剪性,必须提供为适 应特定需求而扩充或修改已有构件的机制,而且所 提供的机制必须使用起来非常简单方便。
对象 设计
面向对 象分析
人机界 面设计
任务管 理设计
数据管 理设计
4
§1. OOD准则
§1. OOD准则:优秀软件设计的一个重要特点是 容易维护
回顾:SD准则包括
Modularization Information hiding
Abstraction
Module independence
对于 OOD有类似的准则: 1、Module = Object
• Inheritance —— 无须改动原有代码
13
② 设计重用 —— 当移植系统时
§3. 软件重用
③ 分析重用 —— 当需求未变,而系统结构改变 时(例如将HDIS改为OO实现)
第七章面向对象分析

Rational统一开发过程
1. 最佳软件开发实践 为了以一种更好的、迭代的、可预测的方式开 发软件产品,总结了软件开发的最佳实践:
1) 迭代式软件开发; 2) 需求管理; 3) 基于构件的软件体系结构; 4) 建立软件可视化模型; 5) 不断验证软件质量; 6) 控制变更。
2. Rational统一开发过程
面向对象的特点
❖ 抽象性:对象的数据抽象和行为抽象; ❖ 封装性:信息隐蔽; ❖ 共享性:
❖同一类中所有实例共享数据结构和行为特征; ❖同一应用中所有实例通过继承共享数据结构
和行为特征; ❖不同应用中所有实例通过复用共享数据结构
和行为特征
对象
❖ 对象是系统中用来描述客观事物的一个实体, 是构成系统的一个基本单位,由一组属性和一 组对属性进行操作的服务组成。
1) 过程的中心概念是工作人员,工作人员不 是指某一个人,而是指完成工作的角色。 工作人员定义人们应履行的行为和职责。
2) 活动定义了工作人员所执行的工作。有 3 类步骤:
面向对象(OO,Object Oriented)可用公式表示为:面 向对象= 对象+类+继承+通信
面向对象的基本思想是从现实世界客观存在的事物出发来构 造软件系统,并在系统构造中尽可能运用人类的自然思维方 式,将一个实际问题看成是一个对象或几个对象的集合。
面向对象分析是在系统所要求解的问题中找出对象(具有属性 和行为)以及它所属的类,并定义好对象与类;
❖ 纵轴表明过程的静态状况,通过过程构件、 活动、工作流、制品和工作人员描述过程。
工作流
业务建模
沿
需求
内 分析与设计 容
轴
实现
的
测试
组 织
《实用软件工程》第7章 面向对象分析

21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。
面向对象分析第六章第七章

建立对象模型
标识属性的方法和策略
27页 第*页
检查特殊情况
4
描述属性
5
找出属性
1
将属性安放到适当的位置
2
找出实例连接
3
考虑取值范围、极限值、缺省值、建立和存取权限、精确度、是否会受到其他属性值等。
6
*
属性层
建立对象模型
建立对象模型
5、识别继承关系
27页 第*页
继承关系的建立实质上是知识抽取的过程,它应该反映出一定深度的领域知识 可用两种方法建立: 自底向上:抽象出现有类的共同性质泛化出的父类 自顶向下:将现有类细化成更具体的子类
2
3
1
*
例:
27页 第*页
一个智能数据分析系统的设计,可把它看做是 4 个子系统。系统有: 一个数据库界面。使用了面向存取的开发模式进行设计; 智能数据分析。使用逻辑性的开发模式完成; 一组分析算法。分析算法是过程性的,所以使用过程性的开发模式设计; 用户界面。使用面向对象开发模式。
*
几个常用的术语
27页 第*页
01
03
02
*
建立对象模型
27页 第*页
找出候选的类-&-对象
可感知的物理实体 人或组织的角色 应该记忆的事件 两个多个事件的相互作用,通常具有交易或接触性质 需要说明的概念
*
建立对象模型
(2)筛选出正确的类-&-对象
27页 第*页
无关
属性
实现
冗余
笼统
操作
*
2、标识结构(确定关联)
开发模式的选择影响到整个软件开发生存期。开发模式支配了:
2、开发模式的影响
27页 第*页
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构件 泛化
包
接口
角色
依赖
聚集
UML模型结构
四个抽象层次:
元元模型:定义了描述元模型的语言 元模型:定义了元类、元属性、元操作等一些概念 模型:定义了描述信息领域的语言 用户模型:模型的实例,用于表达一个模型的特定情况
用户模型
模型 元模型 元元模型
事物
链接 n 相关 1..n 对象
n
n
动态模型
动态模型表示瞬间的、行为化的系统“控制”性质,它规 定了对象模型中对象的合法变化序列。
对象运行周期中的阶段就是对象的状态。 对象状态是对对象属性的一种抽象。 对象之间相互触发/作用的行为(称为事件),引起了一系
列的状态变化。 事件是某个特定时刻所发生的一个系统行为,它是对引起
对象从一种状态转换到另一个状态的现实世界事件的抽象。 对象对事件的响应,取决于接受该触发的对象当时所处的
用例建模
需求捕获的目标:
发现真正的需求 以适用于用户、客户和开发人员的方式加以表示
系统用户表示为一个参与者 参与者在与用例进行交互时使用系统 用例向参与者提供某些有价值结果而执行一些动作序
列
编写用例
用例着眼于为用户增加价值,提供了一种捕获功能需 求的系统且直观的方法,可驱动整个开发过程。
用例从某个特定参与者的角度用简单易懂的语言说明 一个特定的使用场景。
要开始开发用例,应列出特定参与者执行的功能或者 活动。
用例模型帮助客户、用户和开发人员在如何使用系统 方面达成共识。
用例图描述部分用例模型,显示带有联系的用例和参 与者的集合
POS机系统部分用例图
用例图
用例图包括:参与者、用例、关联和边界四个要素。
杂项
未决问题等
POS机系统中处理销售的场景
用例名称:处理销售 范围:POS机应用 级别:用户目标 主要参与者:收银员 涉众及其关注点:
收银员:希望能够准确、快速地输入,而且没有支付错误,因为如果少收货款,将从其薪水 众扣除。
售货员:希望自动更新销售提成 顾客:希望以最小代价完成购买活动并得到快速服务。希望便捷、清晰地看到所输入的商品
实例
实例
1 关联
1..n
n 相关 1..n 类
UML模型视图
UML主要是用来描述模型的。它可以从不同视角为系统建模, 形成不同的视图(View)。每个视图是系统完整描述中的一个 抽象,代表该系统一个特定的方面;每个视图又由一组图 (Diagram)构成,图包含了强调系统某一方面的信息。
两类图:
面向对象建模
面向对象模型
对象模型:定义了“做什么”的实体 动态模型:规定在何种状态下,接受什么事件的触发而
“做什么” 功能模型:指明了系统应该“做什么”
对象模型
对象模型可以看成是数据流和语义数据模型的结合 对象模型表示静态的、结构化系统的“数据”性质。 它是对模拟客观世界实体的对象,以及对象彼此间的关系
第7章 面向对象分析
面向对象建模 面向对象分析
面向对象分析(OOA,Object-Oriented Analysis)是 一种半形式化的规格说明技术。
目前,最流行的技术是OMT和Booch开发技术 面向对象的最大特点是面向用例 在用例的描述中引入了外部角色的概念
的映射,描述了系统的静态结构。 对象模型是一个类(包括其属性和行为)、对象(类的实
例)、类和(或)对象之间关系的定义集。 类名是一类对象的抽象命名,其命名是否恰当对系统的可
理解性影响相当大。 对象模型还必须表示类/对象之间的结构关系。类/对象之
间的关系一般可概括为关联、归纳(泛化)、组合(聚集) 三类。
状态,其响应包括改变自己的状态,或者是形成一个新的 触发行为(事件)。 动态模型描绘了对象的状态,触发状态转换的事件,以及 对象行为(对事件的响应)。
功能模型
功能模型表示变化的系统的“功能”性质,指明了系 统应该“做什么”。
它更直接地反映了用户对目标系统的需求。
面向对象是以用例驱动的。用例站在用户的角度描述 用户的交互过程,有助于软件开发人员更深入地理解 问题域,改进和完善自己的分析和设计。
主要参与者
调用系统,使之交付服务
渋众及其关注点 关注该用例的人,及其需要
前置条件
开始前必须为真的条件
成功保证
成功完成必须满足的条件
主成功场景
典型的、无条件的、理想方式的成功
场景
扩展
成功或失败的替代场景
特殊需求
相关的非功能性需求
技术和数据 变 元 不同的I/O方法和数据格式 素
发生频率
影响对实现的调查、测试和时间安排
参与者:用小人形表示 用例:用椭圆表示 关联:用直线表示说明参与者驱动某个用例 边界:用矩形框表示,说明系统关注点。
开发用例
用用 例例用名不例称同部使分用非说以正动明式词开的始描描述述用性例风名称格编写, 范围也可以使用要某设个计的结系构统 化的格式编写, 级别有些格式更“强用调户目描标述”或的者直是观“子性功。能”
静态图:包括用例图、类图、对象图、构件图和部署图 动态图:包括状态图、时序图、协作图和活动图
五种视图:
用例视图从用户角度表达系统功能; 结构视图主要使用类图和对象图描述系统静态结构; 行为视图展示系统动态行为及其并发性; 实现视图展示系统实现的结构和行为特征; 部署视图展示系统的实现环境和构件是如何在物理结构中部署的
对象模型、动态模型和功能模型相辅相承,使得对系 统的需求分析和设计描述更加直观、全面。
对象模型是最基本、最重要的,它为其他两种模型奠 定了基础。
统一建模语言UML
统一建模语言(UML,Unified Modeling Language)是一 种基于面向对象的可视化建模语言。
UML用丰富的图形符号隐含表示了模型元素的语法,而用 这些图形符号组成元模型表达语义,组成模型描述系统结 构(或称为静态特征)以及行为(或称为动态特征)。
UML的模型元素:
一类模型元素用于表示模型中的某个概念,如类、对象、用 例、结点、构件、包、接口等;
另一类模型元素用于表示模型元素之间相互连接的关系,主 要有关联、泛化(表示一般与特殊的关系)、依赖、聚集 (表示整体与部分的关系)等。
UML模型元素
注解
类 属性 操作
对象 属性 操作
状态
用例
结点