面向对象分析与设计 第2版
作者 : 麻志毅 编著
出版日期 : 2013-03-15
ISBN : 978-7-111-40751-5
适用人群 : 本书的读者对象为高等院校的信息学院(计算机学院)和
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 236
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是一本关于面向对象分析和设计的教材,讲述了面向对象的基本思想、主要概念以及相应的表示法,并给出了建模过程指导。本书注重于理论与实践相结合,通过给出大量的例题和内容较为详尽的案例分析以及详述对建模概念的运用,阐述了如何进行面向对象建模。

图书特色

面向对象技术以其显著的优势已经成为计算机软件领域的主流技术。本书是一本适合应用型人才培养的关于面向对象分析与设计的教材。
进行面向对象分析与设计需要一套概念与表示法。本书所采用的概念和表示法与UML 2.4保持一致,但并不是全盘采用。本书提倡充分运用面向对象方法的基本概念,限制扩充概念的引入,通过加强过程指导而保持建模概念的简练。
进行面向对象分析与设计需要一套过程指导。本书所采用的开发过程,是在借鉴了较为流行的多种面向对象开发方法的基础上,根据青鸟工程的成果和作者参与的科研及工程实践的经验总结出来的,该过程指导具有实用性和广泛的适应性。
与第1版相比,新版有如下改进:
对面向对象概念的定义更为准确,对概念的解释也更加丰富和深入,对建模指导方面的内容进行了充实。
内容上更加与时俱进,本书第1版中的建模语言采用的是UML 2.0,本版写作时OMG发布了UML 2.4,其中模型图的种类、图元素的表示法以及一些解释都发生了变化,本版的建模语言遵循了UML 2.4。
作者和热心的读者在第1版的使用中发现了一些问题,本次再版对这些问题进行了修正。
本版给出了更多的应用实例,帮助读者加强对分析与设计建模策略和技巧的理解。
作者简介
麻志毅?博士,任教于北京大学信息科学技术学院计算机系,目前还担任国家软件行业协会软件工程分会秘书长。长期从事软件工程方面的教学与科研工作。在国内外学报或会议上发表学术论文100余篇,主持或参加国家高技术研究发展计划(863)、国家重大基础研究(973)、国家科技支撑计划和国家自然科学基金等20余项国家科研项目,出版著(译)作11部。主要研究领域为软件工程支撑环境、面向对象技术和面向服务计算技术等。曾获国家科技进步二等奖和国家科技攻关优秀成果奖等国家部委奖励多项。

图书前言

在20世纪90年代,面向对象技术以其显著的优势成为计算机软件领域的主流技术,随后该技术在大多数发达国家的软件开发中得到了相当广泛的运用。在我国的软件产业界,面向对象技术的学习与应用热潮出现于20世纪90年代后期,如今面向对象分析与设计技术也已经得到了广泛的应用。
  当前,产业界需要大量掌握面向对象分析与设计技术的高级应用型开发人才。很多计算机学院和软件学院在软件工程教学中开设了相应的课程,旨在使学生不仅会使用一种或者几种面向对象编程语言来编程,更重要的是能运用面向对象方法进行系统建模,即通过面向对象分析(ObjectOriented Analysis, OOA)和面向对象设计(ObjectOriented Design, OOD)建立系统的分析模型和设计模型。
  邵维忠教授和杨芙清院士合著的两本著作[17]~[18]在广泛借鉴国际上各种OOA与OOD方法的同时,根据作者长期的研究与实践形成了自己的方法特色。其中最主要的特色有三条:一是提倡充分运用面向对象方法的基本概念,限制扩充概念的引入,通过加强过程指导而保持建模概念的简练;二是对UML(Unified Modeling Language, 统一建模语言)所采用的与面向对象有关的概念进行了深入的解析,给出了自己的见解;三是其OOD部分比以往的著作内容更为详细,并且更强调用OO概念表达各种全局性的设计决策。这两部学术专著作为教材适合于理论性强的研究生教学。
  本书旨在提供一本更适合应用型人才培养的教材。在思想体系上,本书继承了参考文献[17]和[18]所提出的理论和方法。但是作为一本适合应用型人才培养的教材,本书与它们相比有以下不同:
   减少了理论阐述和对不同学术观点的讨论,增加了对如何运用概念的讲解。
   着重讲述了面向对象的应用技术。
   在各章的正文部分增加了例题,在各章之后给出了习题。
   通过案例讲述了如何运用面向对象方法进行分析与设计。
  本书既是一本教材,也可作为从事软件开发的工程技术人员的参考书。由于以上几个特点,本书与参考文献[17]和[18]相比具有更强的普及性,适用于更广大的读者群。
  UML是一个由国际对象管理组织(Object Management Group, OMG)采纳的建模语言规范,目前在软件工业界已经被广泛接受。但UML的内容过于庞大和复杂(这是UML本身的复杂性造成的),多数工程技术人员和读者反映其学习难度很大。UML中的许多内容是用于构造UML元模型的,对于大多数面向应用的软件开发者来说,这些概念是用不着的。还有一些概念在软件系统的建模中很少使用,这是因为UML是各方面成果融合的产物,它要尽量地适合各领域。特别是UML不仅仅是用于面向对象开发的软件建模语言,它还可用于其他方面的建模,例如建筑业或机器制造业也可用它进行建模。基于上述因素,本书选用了UML中常用的概念来控制技术的复杂性。由于本书加强了运用基本概念解决各种复杂的分析与设计问题的过程指导,因此所选用的概念和表示法仍能保持表达能力的完整性。对本书而言,有些概念并非必不可少的,但为了方便读者理解这些常见概念,本书也适当地进行了讲解,同时也给出了一些运用基本的OO概念代替这些概念的方法。
  本书所采用的概念和表示法与UML 24保持一致。在中文术语方面,本书与我国的行业规范《面向对象的软件建模规范》完全一致。作为该规范的主要起草者,本书作者曾经与国内很多专家、学者和企业界的专业人士进行过反复研究讨论,从而对该规范达成共识。
  进行软件开发,应该遵循一定的过程指导。过程指导为完成软件系统开发的步骤提供详细指导,其中包括模型、工具和技术。本书所讲述的过程指导的思想来自参考文献[17]和[18],即本书所采用的开发过程,是在借鉴了较为流行的多种开发过程的基础上,根据青鸟工程的成果和作者的科研及工程实践的经验总结出来的。
  像使用其他开发方法一样,用面向对象方法进行软件系统建模的目的是要建立相应的模型。总的来讲,本书把模型分为功能需求模型、分析模型和设计模型。针对建立各种模型所使用的图以及其中的一些具体的模型元素,本书还给出了相应的规约。
  对于面向对象的软件建模,需要有建模工具的支持。本书对此类工具所应具有的主要功能进行了讲述,并介绍了两款面向对象的软件建模工具。
  与第1版相比,本版进行了如下改进:
   对面向对象概念的定义更为准确,对概念的解释更加丰富和深入,对建模指导方面的内容进行了充实。
   第1版中的建模语言采用UML 20,然而至本版写作时OMG发布了UML 24,其中模型图的种类、图元素的表示法以及一些解释都发生了变化,因此本版的建模语言采用了UML 24。
   解决了作者和热心的读者在第1版的使用中发现的一些问题。
   为了加强对分析与设计建模策略和技巧的理解,本版给出了更多的应用实例。
  以下简要地介绍本书的概貌,使读者对它有一个提纲挈领的了解。
  第1章集中介绍了面向对象方法的基本思想和原则,解释了它的基本概念,论述了它的主要优点,并简单介绍了它的发展历史和现状,以及与本书密切相关的UML 24。
  第2章首先概述了面向对象分析所面临的问题,然后对其进行了综述,在综述中阐述了面向对象分析模型和过程模型。
  第3章全面地讲解了建立功能需求模型所需要使用的概念及其表示法,并详述了如何使用它们来建立功能需求模型。
  第4章详细地讲述了类图中所使用的概念与表示法,并详述了如何使用它们来建立类图。
  第5章讲述了建立辅助模型所用到的几种图:顺序图、通信图、活动图、状态机图和包图,其中详细地讲述了这些图中所使用的概念与表示法。
  第6章说明了面向对象分析与设计的关系,并阐述了面向对象设计模型和过程模型。
  第7章详述了如何针对实现条件对分析模型进行补充与调整,完成问题域部分设计。
  第8章详述了进行人机交互设计所需要考虑的因素,并从分析和设计两个方面详述了如何进行人机交互设计。
  第9章详述了什么是控制流,如何识别与定义控制流,以及如何协调控制流之间的同步。
  第10章讲述了数据管理部分的设计。本章首先对数据库进行了简介,然后详细讲解了如何使用关系数据库系统对永久对象及它们之间的关系进行存储与检索。
  第11章针对如何描述与构造系统的构件,详细讲解了构件图及其应用。本章还讲述了制品图和部署图。
  第12章讲述了一些在面向对象设计中经常使用的设计模式。
  第13章从耦合、内聚和复用等方面讲述了如何评价面向对象的设计模型。
  第14章首先讲述如何把一个较为复杂的系统划分成一系列子系统,然后说明了如何对系统或子系统进行可视化建模,以及从那些方面建立系统的模型,此外还阐述了如何保证模型的一致性。
  第15章通过一个具体的案例分析,说明如何用面向对象方法进行建模。
  最后本书给出了两个附录。附录A讲述了两款面向对象的软件建模工具。附录B给出了对用面向对象方法进行软件系统建模所生成的文档的主要编制要求。
  本书的研究工作和写作得到了北京大学邵维忠教授的大力帮助。邵维忠教授对书稿提出了十分难得的宝贵修改意见,本书的很多内容也来自他作为第一作者的著作[17,18]。邵维忠教授具有严谨的治学态度、深厚的学术功底以及敏锐的洞察力,他的指导使我受益良多。在此致以衷心的感谢!
  本书的研究工作和写作得到了杨芙清院士和梅宏院士所领导的学术队伍的支持,也得到了国家自然科学基金(61272159)、北京市自然科学基金资助项目(4122036)、国家重点基础研究发展规划(2011CB302604)和国家863高技术研究发展计划项目(2012AA011202)的资助。在此谨向上述单位表示衷心的感谢!
  对书中存在的错误和疏漏之处,恳请各位读者给予批评指正,并通过电子邮件(mzy@seipkueducn)或其他方式进行更有意义的讨论。
麻志毅
2013年1月于北京大学

上架指导

计算机\软件工程

封底文字

面向对象技术以其显著的优势已经成为计算机软件领域的主流技术。本书是一本适合应用型人才培养的关于面向对象分析与设计的教材。
进行面向对象分析与设计需要一套概念与表示法。本书所采用的概念和表示法与UML 2.4保持一致,但并不是全盘采用。本书提倡充分运用面向对象方法的基本概念,限制扩充概念的引入,通过加强过程指导而保持建模概念的简练。
进行面向对象分析与设计需要一套过程指导。本书所采用的开发过程,是在借鉴了较为流行的多种面向对象开发方法的基础上,根据青岛工程的成果和作者参与的科研及工程实践的经验总结出来的,该过程指导具有实用性和广泛的适应性。
与第一版相比,本次再版有了如下改进:
对面向对象概念的定义更为准确,对概念的解释也更加丰富和深入,对建模指导方面的内容进行了充实。
内容上更加与时俱进,本书第一版中的建模语言采用的UML 2.0,本版写作时OMG发布了UML 2.4,其中模型图的种类、图元素的表示法以及一些解释都发生了变化,本版的建模语言遵循了UML 2.4。
作者和热心的读者在第一版的使用中发现了一些问题,本次再版对这些问题进行了修正。
本版给了更多的应用实例,帮助读者加强对分析与设计建模策略和技巧的理解。

作者简介

麻志毅 编著:麻志毅 博士,任教于北京大学信息科学技术学院计算机系。长期从事面向对象方法和软件工程环境的研究。现已在国内外学报和会议上发表专业学术论文70余篇,主持或参加国家高技术研究发展计划(863)、国家重大基础研究(973)、国家科技支撑计划和国家自然科学基金等20余项国家科研项目,出版著(译)作9部。曾获国家科技进步二等奖及国家部委奖励多项。

图书目录

前言
教学建议
第一部分概述
第1章面向对象方法概论
11传统软件开发方法中存在的问题
12面向对象的基本思想
13面向对象的基本原则
14面向对象方法的主要优点
15面向对象方法的发展史及现状简介
16关于统一建模语言UML
习题
第二部分面向对象分析
第2章什么是面向对象分析
21分析面临的主要问题
22面向对象分析综述
习题
第3章建立需求模型——用况图
31系统边界
32参与者
321概念与表示法
322识别参与者
33用况
331概念与表示法
332用况与参与者之间的关系
333用况之间的关系
334捕获用况
335用况模板
34用况图
35检查与调整
36用况模型与OOA模型
37例题
习题
第4章建立基本模型——类图
41对象与类
411概念与表示法
412识别对象与类
413审查与筛选
414抽象出类并进行调整
415认识对象的主动行为并识别主动对象
416类的命名
417建立类图的对象层
42属性与操作
421属性
422操作
43关系
431继承
432关联
433聚合
434依赖
44接口
习题
第5章建立辅助模型
51顺序图
511概念与表示法
512顺序图中的结构化控制
513建立顺序图
52通信图
521概念与表示法
522建立通信图
53活动图
531概念与表示法
532建立活动图
54状态机图
541概念与表示法
542建立状态机图
55包图
551概念与表示法
552如何划分与组织包
习题
第三部分面向对象设计
第6章什么是面向对象设计
61OOA与OOD的关系
62面向对象设计模型和过程
习题
第7章问题域部分的设计
71复用类
72增加一般类以建立共同协议
73提高性能
74按编程语言调整继承
75转化复杂关联并决定关联的实现方式
76调整与完善属性
77构造及优化算法
78决定对象间的可访问性
79定义对象实例
710其他
习题
第8章人机交互部分的设计
81什么是人机交互部分
82如何分析人机交互部分
83如何设计人机交互部分
831设计输入与输出
832命令的组织
833用OO概念表达所有的界面成分
834衔接界面模型和问题域模型
84人机交互部分的设计准则
习题
第9章控制驱动部分的设计
91什么是控制驱动部分
92控制流
93如何设计控制驱动部分
931识别控制流
932审查
933定义控制流
934进程间和线程间的通信
935控制流间的同步
习题
第10章数据管理部分的设计
101什么是数据管理部分
102数据库和数据库管理系统
1021关系数据库
1022面向对象数据库
103如何设计数据管理部分
1031针对关系数据库系统的数据存取设计
1032针对面向对象数据库系统的数据存取设计
1033针对文件系统的数据存取设计
习题
第11章构件及部署部分的设计
111构件设计
1111概念与表示法
1112构件的内部结构
1113对构件的行为建模
1114对构件的实现建模
112部署设计
1121概念与表示法
1122对系统的部署建模
习题
第12章若干典型的设计模式
121引言
122外观模式
123适配器模式
124策略模式
125观察者模式
126抽象工厂模式
127工厂方法模式
习题
第13章OOD的评价准则
131耦合
132内聚
133复用
134其他评价准则
习题
第四部分系统与模型
第14章系统与模型
141系统与子系统
1411概念与表示法
1412对体系结构模式建模
1413划分子系统
142模型
1421模型的含义
1422模型和视图
1423模型的抽象层次
1424模型间的一致性检查
习题
第五部分建模实例
第15章案例:教学管理系统
151系统的功能需求
152建立需求模型
1521划分子系统
1522识别参与者
1523识别用况
1524对需求进行捕获与描述
153系统分析
1531寻找类
1532建立状态机图
1533建立类图
1534建立顺序图
154系统设计
1541问题域部分设计
1542界面部分设计
1543数据管理部分设计
习题
附录A面向对象的软件建模工具
附录B文档编制指南
参考文献

教学资源推荐
作者: Stephen R.Schach
作者: [英]伊恩·萨默维尔(Ian Sommerville) 著
作者: 毋国庆 梁正平 袁梦霆 李勇华
参考读物推荐
作者: Peter Coad, Eric Lefebvre, Jeff De Luca
作者: Ahmad K.Shuja; Jochen Krebs
作者: Sami Zahran