软件系统设计
面向对象系统设计
循序渐进(第一版)
OOAD
UML
面向对象思想
本书
面向对象概念
UML概述
架构设计
类设计
数据库设计
面向对象系统设计循序渐渐
OOD 循序渐进
作为一名软件开发人员,我深刻地体会到面向对象系统设计带来的种种便
利:
1、 良好的可复用性。开发同类项目的次数与开发新项目的时间成反比,
谁也不愿做重复劳动吧 。
2、 易维护。基本上不用花太大的精力跟维护人员讲解,他们可以自己
读懂源程序并修改了,要不然开发的系统越多,你的负担就越重,
不是吗?。
3、 良好的可扩充性。以前,在向一个用结构化思想设计的庞大系统中
加一个功能则必须考虑兼容前面的数据结构、理顺原来的设计思路,
即使客户愿意花钱修改,作为开发人员多少都有点恐惧。在向一个
用面向对象思想设计的系统中加入新功能,不外乎是加入一些新的
类,基本上不用修改原来的东西,这种感觉真爽。
1
面向对象系统设计循序渐渐
前 言
本书是一本介绍面向对象软件系统设计的书,从组织结构上分为两大部分:
面向对象的概念与 UML 概述、面向对象系统设计。第一部分是基础,第二部分
是核心。
本书对面向对象概念和 UML 语言的介绍并不是面面具到,介绍的基本上是
本书需要用到的那部分内容,所有不适合作为面向对象概念或 UML 语言的参考
手册。
阅读本书的基础
至少熟悉一种编程语言,最好熟悉的是面向对象编程语言。
对软件工程有一定的了解。
如果你只有结构化思想的开发经验,那么阅读本书后会对你有所启发。
如果你有面向对象思想的开发经验,那么就让我们一起来探讨吧。
阅读指南
如果你已经熟悉了面向对象概念,当我提到“封装”、“消息”、“对象类”等术
语时,你可以不查阅资料,那么你可以跳过第一、第二章,直接阅读第三章的
内容,否则你还是从头看起。
建立共同语言
为了避免在下面的讨论中因一些名称的问题而产生错误的理解,我觉得有
必要先说明一下我的一些口语习惯和一些中英文名称对应关系。叙述中具体使
用哪个名词或用中文还是英文,要根据具体上下文而定。如:我是计算机专业
的。我买了一台手提电脑。其中计算机和电脑都是指 Computer。
下面是部分中英文对照表:
英文 中文 简称
Object Oriented
面向对象
OO
Object Oriented Analysis
面向对象分析
OOA
Object Oriented Design
面向对象设计
OOD
Object Oriented Programming
面向对象的程序设计
OOP
Unified Modeling Language
统一建模语言
UML
Actor
活动者
!
Use Case
用例
!
Class
对象类、类
!
Attribute
属性
Operation
操作、方法
Interface
接口
Component
组件
2
面向对象系统设计循序渐渐
Package
包
Node
接点
Association
关联
Composition
组合
Aggregation
聚合
Generalization
泛化
Dependency
依赖
Realization
实现
Message
消息
State
状态
Comment
注释
3
面向对象系统设计循序渐渐
目 录
OOD 循序渐进........................................................................................................1
前 言........................................................................................................................2
目 录........................................................................................................................4
面向对象的概念与 UML 概述......................................................................................5
第一章、 面向对象的概念与 UML 概述.............................................................5
1.1 分析与设计概述........................................................................................5
1.2 面向对象的概念........................................................................................7
1.3 UML 概述................................................................................................10
第二章、 UML 语言............................................................................................11
2.1 UML 语言的体系结构............................................................................11
2.2 符号与图形..............................................................................................11
面向对象系统设计......................................................................................................16
第三章、 架构设计..............................................................................................16
3.1 架构设计原则..........................................................................................16
3.2 信息系统的架构设计..............................................................................17
第四章、 类设计..................................................................................................23
4.1 类设计指南..............................................................................................23
4.2 通用日记帐财务系统-系统分析模型..................................................23
4.3 通用日记帐财务系统-类图..................................................................27
第五章、 数据库设计..........................................................................................29
5.1 映射原则..................................................................................................29
5.2 映射..........................................................................................................30
5.3 ER 图........................................................................................................30
4