面向对象的开发方法解析
状态
用例
结点 构件
接口
关联 泛化 依赖
包
注释
聚合 组合 实现
❖图 ❖ 静态图 ❖ 用例图:描述系统功能 ❖ 类图:描述系统的静态结构 ❖ 对象图:描述系统在某个时刻的静态结构 ❖ 包图:描述系统的分层结构 ❖ 构件图:描述实现系统的元素的组织 ❖ 部署图:描述系统环境元素的配置 ❖ 动态图 ❖ 状态图:描述系统元素的状态条件和响应 ❖ 时序图:按时间顺序描述系统元素间的交互 ❖ 协作图:按照连接关系描述系统元素间的交互 ❖ 活动图:描述系统元素的活动流程
⑴从现实世界中客观存在的事物出发来建立软件系 统,强调直接以问题域(现实世界)中的事物为中 心来思考问题、认识问题,并根据这些事物的本质 特征,把它们抽象地表示为系统中的对象,作为系 统的基本构成单位。这可以使系统直接映射问题域, 保持问题域中事物及其相互关系的本来面貌。(对 象)
⑵用对象的属性表示事物的性质;用对象的操作表 示事物的行为。(属性与操作)
OOSE
Ivar Jacobson
多种方法 集成 标准 工业化
1996.6 1996.10 1997.1 1997.11
2001
UML0.9 UML0.91 UML1.0 UML1.1 UML1.4
合作伙伴意见 提交给OMG的其他建模语言
OMG标准
2004.1
UML1.4.2
ISO标准
2005
UML2.x
管理信息系统
主讲:周宇葵
第五章 面向对象的开发方法
第一节 面向对象与UML
一、面向对象概述
1、面向对象的基本思想 在面向对象方法中,是从现实世界中的客观对象
(如人和事物)入手,尽量运用人类的自然思维方式 来构造软件系统,把一切都看成是对象,用类和对象 作为系统的基本构成单位。对象对应问题域中的事物, 其属性与操作刻画了事物的性质和行为,它们之间的 继承关系、聚合关系、消息和关联如实地表达了问题 域中事物之间实际存在的各种关系。因此,无论系统 的构成成分,还是通过这些成分之间的关系而体现的 系统结构,都可直接地映射问题域。
UML“三友” Rational公司“三巨头”
Grady Booch
BOOCH方法
James Rumbaugh
Ivar Jacobson
OMT方法
OOSE方法
UML
Gradyaugh OMT-2
UML发展历史
其它方法
1995.10
Unified Method 0.8
1、UML的组成
❖ UML的模型元素 ❖ 表示模型中的某个概念 ❖类、对象、构件、用例、结点(node)、接 口(interface)、包(package)和注释 (note) ❖ 表示模型元素之间的关系 ❖关联、泛化、依赖、实现、聚合和组合
❖ UML模型元素的图形符号
类 属性 操作
对象 属性 操作
3、UML的应用
2、UML的特点
❖ 统一标准 ❖ 统一了不同的面向对象开发方法的基本概念 ❖ 成为OMG(对象管理组织,1997年)、ISO(国际标 准化组织,2000年)的标准
❖ 面向对象 ❖ 支持面向对象的概念
❖ 表达能力强大、可视化 ❖ UML是一种图形化语言,可清晰表达系统的逻辑模型 和实现模型;UML提供了语言扩展机制,用户可根据 需要自定义构造型、约束等,适用于复杂软件建模
❖ 抽象 ❖ 在某个重要的或想关注的方面来表示某个物体或概念 ❖ 忽略主题中与当前目标无关的方面
❖ 封装
❖ 把操作和数据包围起来,对数据的访问只通过已定义的 接口来完成,使对象能够集中而完整地描述并对应一个 具体事物。
❖ 体现了事物的相对独立性,使对象外部不能随意存取对 象的内部数据,避免外部错误对它的“交叉感染”。对 象内部的修改对外部的影响很小,减少修改引起的“波 动效应”。
❖ 提高软件系统的可复用性 ❖ 原因:封装性、继承性 ❖ 复用途径:创建类的实例对象、从已有类派 生新的子类、新系统中重用现有类
❖ 提高软件系统的可扩展性 ❖ 原因:封装性、继承性 ❖ 途径:扩充现有类的属性或方法;扩充现有 类的子类,利用继承对新的类添加属性和方 法;加入新类
❖ 提高软件系统的可维护性 ❖ 原因:封装性、继承性 ❖ 途径:修改、完善现有类
⑶对象的属性与操作结合为一体,成为一个独立的、 不可分的实体,对外屏蔽其内部细节。(对象的封 装)
⑷对事物进行分类。把具有相同属性和相同操作的 对象归为一类,类是这些对象的抽象描述,每个对 象是它的类的一个实例。(类) ⑸复杂的对象可以用简单的对象作为其构成部分。 (聚合) ⑹通过在不同程度上运用抽象的原则。如特殊类继 承一般类的属性、操作与联系,从而简化系统的构 造过程及其文档。(继承) ⑺类具有封装性,把内部的属性和操作隐藏起来, 只有公共的操作对外是可见的。(类的封装性) ⑻对象之间通过消息进行通讯,以实现对象之间的 动态联系。(消息) ⑼通过关联表达类(一组对象)之间的静态关系。 (关联)
❖ 公开静态的、不变的操作,而把动态的、易变的操作隐 藏起来。
❖ 继承 ❖ 提供一种表述类的共性的方法 ❖ 类层次,定义一个新类,可以从现有的类中派 生出来 ❖ 子类可以从父类继承方法和属性
❖ 多态 ❖ 不同类的对象可以对同一消息作出响应,执行 不同的处理 ❖ 指同一个命名可具有不同的语义
3、面向对象开发的优点
二、UML简介
❖ Unified Modeling Language--统一建模语言, 用可视化的方式设计软件蓝图(模型)。
❖ 近10多年来OOSE(面向对象软件工程)最重要 的成果
❖ 贡献者:Grady Booch,James Rumbaugh, Ivar Jacobson
❖ 中文网站
计算机内 的对象
设计 分析
OO模型 类图
对象
对象 对象 对象
对象 对象
编程 运行
顺序图 状态图 活动图 构件图
对象 对象 用况图
继承 分类
类
类
类
关联
类
类类
聚合
类
对象 对象 对象 对象
对象 对象
对象
对象
对象 对象
对象
抽象
客观事物及 其间的联系
客观世界
对象名
属性 … 操作 …
封装
2、面向对象的基本特征