当前位置:文档之家› 面向对象的开发方法解析

面向对象的开发方法解析


状态
用例
结点 构件
接口
关联 泛化 依赖

注释
聚合 组合 实现
❖图 ❖ 静态图 ❖ 用例图:描述系统功能 ❖ 类图:描述系统的静态结构 ❖ 对象图:描述系统在某个时刻的静态结构 ❖ 包图:描述系统的分层结构 ❖ 构件图:描述实现系统的元素的组织 ❖ 部署图:描述系统环境元素的配置 ❖ 动态图 ❖ 状态图:描述系统元素的状态条件和响应 ❖ 时序图:按时间顺序描述系统元素间的交互 ❖ 协作图:按照连接关系描述系统元素间的交互 ❖ 活动图:描述系统元素的活动流程
⑴从现实世界中客观存在的事物出发来建立软件系 统,强调直接以问题域(现实世界)中的事物为中 心来思考问题、认识问题,并根据这些事物的本质 特征,把它们抽象地表示为系统中的对象,作为系 统的基本构成单位。这可以使系统直接映射问题域, 保持问题域中事物及其相互关系的本来面貌。(对 象)
⑵用对象的属性表示事物的性质;用对象的操作表 示事物的行为。(属性与操作)
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、面向对象的基本特征
相关主题