- 面向对象分析与设计
- 孙学波 卢圣凯等编著
- 3448字
- 2025-02-22 20:01:21
前言
面向对象方法是计算机软件开发领域中的主流方法,其应用范围覆盖了业务建模、需求分析、系统设计、测试和维护等多个软件过程,甚至扩展到其他非计算机领域。统一建模语言(UML)的出现和发展,极大地促进了面向对象方法的不断丰富和日益成熟。深刻理解和领会面向对象的基本思想、基本概念和基本方法,熟练掌握和运用统一建模语言也已经成为软件开发人员必须具有的知识储备和重要技能。
本书系统介绍了面向对象的基础知识、基本理论,以及统一建模语言的应用方法;在总结了传统的结构化方法的基础上,详细介绍了面向对象方法的基础知识和基本概念,以及统一建模语言的概念、结构和各种模型元素。
为了使读者更好地理解UML的使用方法,本书引入了UML模型约束语言(OCL),并详细介绍了模型约束语言的基础知识和使用方法。对OCL的理解和掌握将直接影响面向对象方法中像约束、不变量、前置条件、后置条件和关联等抽象概念的理解。
为了帮助读者理解和掌握业务建模的一般规律和一般方法,也为了帮助读者理解业务建模在软件开发中的地位和作用,我们在书中加入了业务建模方面内容,包括业务的定义、业务规则的概念、业务模型的构成要素和建模方法等。这部分内容的引入,不仅可以帮助读者扩展知识视野,也可以有效地帮助读者加深对软件建模过程中涉及的相关问题的理解。
本书详细介绍了每一种标准UML模型的概念、构成元素、使用规则和建模方法,并引入了大量的模型实例。这些标准模型包括用例模型、类图模型、顺序图、通信图、状态图、活动图、构件图和部署图等。同时,还简要地介绍了部分UML2.0中新增加的图,如复合结构图、交互概览图和时序图等。
本书详细地介绍了设计模式的基础知识和基本理论,简要地介绍了每种模式的定义、结构、适用情形和主要特点。最后,还给出了有关设计模式的应用案例。
最后,本书还提供了若干个带有源程序的软件设计案例,并希望这些案例能够帮助读者更加直观、全面和有效地理解面向对象方法中的基本概念、基本方法和开发过程。
本书也是对作者多年教学实践和软件开发经验的总结。在编写过程中,我们查阅了多种教材、专著、资料和文献。认真地编写、修改、核对和校对教材中出现的每一个概念和每一段陈述,精心设计了多个应用实例。书中的大多数实例均来源于实际的软件开发案例。
本书可作为高等院校软件及相关专业本科生或研究生的面向对象分析与设计课程教材或参考读物,也可以作为软件开发人员了解和学习面向对象方法的参考书。
全书共由13章组成。每一章的基本内容和教学建议如下。
第1章 面向对象开发方法。本章重点介绍面向对象的基本思想和基本特点;详细介绍了对象模型的各个构成要素及其主要特点;详细介绍了面向对象方法中的各基本概念及基本方法;简单介绍了面向对象的开发过程;阐述了面向对象分析与设计这两个过程之间的联系与区别;并给出了一个初步认识面向对象方法的简单例子。本章重点关注的是经典的面向对象开发方法和对象模型这两个部分的内容。
第2章 统一建模语言(UML)概述。本章简要地介绍了统一建模语言的发展历史、基本概念、基本结构、视图、图和公共机制等方面的内容;简单地介绍了各种图的构成和示例;比较详细地介绍了对象约束语言的结构、基本概念和使用方法。本章的教学重点内容包括统一建模语言的基本概念、基本结构、基本概念和模型元素的表示法。可以将对象约束语言部分作为自学内容,也可以作为第5章之后的讲解内容。
第3章 业务模型的建模。本章详细介绍了业务模型的概念、业务模型的基本结构,介绍了业务建模的主要动机;使用UML业务扩展进行业务建模的基本方法,业务模型与软件模型之间的关系;详细介绍了业务规则的概念、分类和表示方法,业务模型的各种要素及其表示法和业务过程的建模方法。本章的重点在于业务系统的概念、业务模型的基本结构、业务规则的概念和表示方法,以及业务模型的建模方法。
第4章 用例建模。本章重点介绍用例模型的概念、结构和建模方法,包括参与者、用例和它们之间的各种关系,如参与者之间的泛化关系、参与者和用例之间的关联以及用例之间的依赖等关系等;介绍了识别参与者和用例的基本方法;详细介绍了用例的结构和各种描述方法。本章的重点在于理解和掌握参与者、用例、参与者和用例之间的各种关系,用例图的绘制方法和用例描述的表示方法;本章的难点是用例描述的表示方法。
第5章 类图建模。本章主要介绍类图模型的结构的表示方法、概念和建模方法。首先介绍了类图中的类、对象、属性、方法、可见性、作用域,以及类(对象)之间各种关系的概念和表示法;其次,介绍了从用例模型识别概念并建立概念模型的建模方法;最后,介绍了问题域中类图的建模策略问题,如复用、增加基类、多继承的调整和关联的简化等多个问题。本章的重点在于理解和掌握类图的建模方法和使用类图建模概念模型的方法,难点在于对各种类关系的理解。
第6章 顺序图与通信图建模。本章主要介绍顺序图和通信图的结构、概念和建模方法;重点介绍了生命线、消息及消息分类、控制焦点、链接、并发和组合片段等概念;详细地介绍了顺序图和通信图之间的联系和区别。本章的重点在于顺序图与通信图的建模方法,难点在于顺序图和通信图之间的语义等价关系。
第7章 状态图与活动图建模。本章主要介绍状态图和活动图的结构、概念和建模方法;详细介绍了状态、复合状态、子状态、顺序子状态、并发子状态、历史子状态、状态迁移、活动、动作、控制流、信息流等概念及其使用方法;详细地介绍了这两种图的建模方法和应用领域。本章的重点在于状态图与活动图的建模方法,难点在于状态图的建模方法。
第8章 包图、组件图以及部署图建模。本章主要介绍包图、组件图以及部署图的结构、概念和建模方法;详细介绍了包图、包图的构成元素、可见性和包之间的各种依赖关系;介绍了包图的建模方法;详细介绍了组件图的概念、各种构成元素以及建模方法;介绍了部署图的概念、结构、构成元素及其建模方法。本章的重点在于包图、组件图以及部署图的建模方法,难点在于包之间的依赖关系。
第9章 UML模型与程序设计。本章介绍了UML模型与应用程序之间的映射问题,类图模型向程序代码之间的映射,包括类、属性、方法的映射;详细介绍了泛化和关联关系的映射,依赖、接口、包和特殊类的映射。本章的重点在于通过理解UML模型元素向程序的映射来加深对软件模型的理解,以提高读者使用UML模型分析和设计软件的能力。
第10章 面向对象设计原则。本章详细介绍了软件质量属性这一概念;介绍了如何开发满足质量要求的软件这一重要问题;详细介绍了基本的面向对象设计原则,以及如何落实这些原则以便开发出具有良好可维护性、可扩充性以及可重用性的软件;并给出了一个按照这些设计原则设计出来的一个具体的软件设计实例,在实际教学中,案例部分可安排自学。
第11章 设计模式及其应用。本章简要介绍了设计模式的基本概念和基本理论,每个GOF模式的定义、结构、特点和主要场景;详细介绍了一个具体的设计模式应用实例。本章的教学重点是设计模式的基本概念和基本理论,使用设计模式进行软件设计的基本方法。在学时不充裕的情况下,可以安排学生自学本章的内容。
第12章 对象的持久化。本章详细讨论了对象的持久化问题;介绍了比较常见的对象持久化方法;介绍了基于数据文件的持久化方法问题;并给出了比较具体的应用实例;详细说明了对象模型向数据库模型的具体映射及其实现方法。本章的重点在于对持久化概念和持久化技术的理解,对象模型向数据库模型的映射及其实现方法。
第13章 面向对象分析设计案例。本章介绍了一个比较完整的交互式图形编辑软件案例;详细地给出了案例的功能模型、概念模型和结构模型及其设计过程;详细介绍了案例中部分功能的具体实现;说明了动态模型在软件设计与实现中的具体应用和某些设计模式在案例软件设计中的应用。本章的重点是通过一个包含了完整的软件分析、设计和实现过程的案例,帮助读者理解面向对象的开发过程和设计方法,理解UML模型在软件开发过程中的地位和作用。在学时不充裕的情况下,可安排学生自学本章的内容。
本书由孙学波带领课题组编写完成,参加编写工作的课题组成员还有曾子维、李林林、姚红岩、张春娜。需要说明的是,课题组与苏州中元动力有限公司密切合作,共同完成了本书的编写工作。该公司的卢圣凯先生也积极参与到本书的编写工作中,为本书的顺利完成做出了积极的贡献。
在本书的编写过程中,我们查阅和参考了大量的文献资料,在此特向所有资料的提供者和作者们表示衷心的感谢!
由于作者的知识水平和能力有限,书中难免会存在错漏之处,敬请广大读者和同行们给予批评指正。
编者