基本信息

编辑推荐
面向对象技术以其显著的优势已经成为计算机软件领域的主流技术。《大学计算机优秀教材系列:面向对象分析与设计(第2版)》是一本适合应用型人才培养的关于面向对象分析与设计的教材。
进行面向对象分析与设计需要一套概念与表示法。《大学计算机优秀教材系列:面向对象分析与设计(第2版)》所采用的概念和表示法与UML2.4保持一致,但并不是全盘采用。本书提倡充分运用面向对象方法的基本概念,限制扩充概念的引入,通过加强过程指导而保持建模概念的简练。
进行面向对象分析与设计需要一套过程指导。本书所采用的开发过程,是在借鉴了较为流行的多种面向对象开发方法的基础上,根据青鸟工程的成果和作者参与的科研及工程实践的经验总结出来的,该过程指导具有实用性和广泛的适应性。
与第1版相比,新版有如下改进:
·对面向对象概念的定义更为准确,对概念的解释也更加丰富和深入,对建模指导方面的内容进行了充实。
·内容上更加与时俱进,本书第1版中的建模语言采用的是UML2.0,本版写作时OMG发布了UML2.4,其中模型图的种类、图元素的表示法以及一些解释都发生了变化,本版的建模语言遵循了UML2.4。
·作者和热心的读者在第1版的使用中发现了一些问题,本次再版对这些问题进行了修正。
·本版给出了更多的应用实例,帮助读者加强对分析与设计建模策略和技巧的理解。
内容简介
作译者
目录
前言
教学建议
第一部分概述
第1章面向对象方法概论
1.1传统软件开发方法中存在的问题
1.2面向对象的基本思想
1.3面向对象的基本原则
1.4面向对象方法的主要优点
1.5面向对象方法的发展史及现状简介
1.6关于统一建模语言UML
习题
第二部分面向对象分析
第2章什么是面向对象分析
2.1分析面临的主要问题
2.2面向对象分析综述
习题
第3章建立需求模型——用况图
3.1系统边界
3.2参与者
前言
当前,产业界需要大量掌握面向对象分析与设计技术的高级应用型开发人才。很多计算机学院和软件学院在软件工程教学中开设了相应的课程,旨在使学生不仅会使用一种或者几种面向对象编程语言来编程,更重要的是能运用面向对象方法进行系统建模,即通过面向对象分析(ObjectOriented Analysis, OOA)和面向对象设计(ObjectOriented 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 24保持一致。在中文术语方面,本书与我国的行业规范《面向对象的软件建模规范》完全一致。作为该规范的主要起草者,本书作者曾经与国内很多专家、学者和企业界的专业人士进行过反复研究讨论,从而对该规范达成共识。
进行软件开发,应该遵循一定的过程指导。过程指导为完成软件系统开发的步骤提供详细指导,其中包括模型、工具和技术。本书所讲述的过程指导的思想来自参考文献[17]和[18],即本书所采用的开发过程,是在借鉴了较为流行的多种开发过程的基础上,根据青鸟工程的成果和作者的科研及工程实践的经验总结出来的。
像使用其他开发方法一样,用面向对象方法进行软件系统建模的目的是要建立相应的模型。总的来讲,本书把模型分为功能需求模型、分析模型和设计模型。针对建立各种模型所使用的图以及其中的一些具体的模型元素,本书还给出了相应的规约。
对于面向对象的软件建模,需要有建模工具的支持。本书对此类工具所应具有的主要功能进行了讲述,并介绍了两款面向对象的软件建模工具。
与第1版相比,本版进行了如下改进:
对面向对象概念的定义更为准确,对概念的解释更加丰富和深入,对建模指导方面的内容进行了充实。
第1版中的建模语言采用UML 20,然而至本版写作时OMG发布了UML 24,其中模型图的种类、图元素的表示法以及一些解释都发生了变化,因此本版的建模语言采用了UML 24。
解决了作者和热心的读者在第1版的使用中发现的一些问题。
为了加强对分析与设计建模策略和技巧的理解,本版给出了更多的应用实例。
以下简要地介绍本书的概貌,使读者对它有一个提纲挈领的了解。
书摘
CHAPTER 1
第1章
面向对象方法概论
本章首先简要地回顾传统软件开发方法中存在的问题,然后重点讨论面向对象的基本思想、主要概念和基本原则,论述面向对象方法的主要优点,并对面向对象方法的发展史和现状以及统一建模语言(Unified Modeling Language, UML)进行简介。
通过对本章的学习,读者要了解面向对象方法的主要内容,掌握基本知识,为进一步学习与应用面向对象分析和设计方法打下基础。
11传统软件开发方法中存在的问题
20世纪60年代以前,软件开发者构造的软件系统的规模大多较小,且构造相对简单。那时所使用的编程语言和编程环境也相对简单,常见的编程语言有汇编语言以及随后出现的一些高级编程语言(如FORTRAN和COBOL等)。当时人们认为软件开发是一项强烈依赖个人技巧和技术能力的艺术性劳动,崇尚程序员的个人技能,没有认识到需要使用什么方法。那时产生的代码,按现在的人们所形容的,是意大利细面条式的,那是因为代码中含有较多的GOTO语句。
随着软件复杂性的增长,那种随心所欲的做法会带来问题,一个典型的问题是代码难以维护。一些高级编程语言试图解决所出现的问题,但这些语言并不能充分解决问题,因为软件开发也需要方法。
随后出现了多种软件开发方法,这些开发方法都能解决一些问题,但也都有一定的局限性。下面对三种典型的开发方法进行简要分析,以找出其中存在的主要问题。
1功能分解法
早期的一种开发方法称为功能分解法,它是以系统需要提供的功能为中心来开发系统的。它的基本思想为:首先定义顶层功能,然后把功能分解为子功能,同时定义功能之间的接口。对较大的子功能进一步分解,直到可给出明确的定义,进而根据功能/子功能设计数据结构和算法。
在那时,人们都认为功能分解法非常自然,因为它以系统需要提供的功能为中心来组织系统。此外,功能分解法也较好地运用了过程抽象原则。当时,计算机的应用还不是很普及,只有特定的用户有着软件需求,而且要求规模并不是很大。功能分解法的发明,在很大程度上解决了以前存在的问题,开发效率也有了很大的提高。特别是提出了模块化思想,并与模块化编程相结合,使得软件维护更加有效。这些是功能分解法在当时大受欢迎的主要原因。
使用这种以功能为中心的方法开发软件系统,一个显著特点是开始容易深入难。因为一开始按照功能需求进行自顶向下的功能分解是很直接的,但功能和功能接口这些系统成分却不能直接地映射到问题域中的事物,这导致所建立的功能模型难以准确而深入地描述问题域,而且也难以检验所建立的模型的正确性。特别是,该方法对需求变化性的适应能力差:需求的变化必定导致功能模块发生变化,一个功能模块的变化往往引起其接口发生变化,这又致使其他模块发生变化,最终的结果经常是局部的变化导致全局性的影响。
2结构化方法
结构化方法包括结构化需求分析、设计、编程和测试方法等。结构化需求分析使用数据流图、加工说明和数据字典来构造系统的需求分析模型。结构化需求分析方法比较严谨,使用它可避免很多错误和疏漏。此外,该方法也运用了逐步求精的原则,把加工逐步细化。结构化设计在需求分析的基础上,要针对给定的问题给出软件解决方案。结构化设计中的总体设计部分要给出被建系统的模块结构,详细设计部分要为各模块提供关于算法的详细描述。
结构化方法比功能分解法更强调对问题域的分析,但所使用的建模概念仍然不能直接地映射到问题域中的事物。需求的变化往往会引起相应的加工和数据流的变化,进而影响与之相关的其他加工和数据流的变化。系统复杂时也不能检验分析模型的正确性。此外,结构化需求分析与后续的结构化设计所采用的概念与表示法是不一致的(基于不同的概念体系),且转换规则不严格、具体,仅是指导性的,这致使从需求分析模型过渡到设计模型较为困难。
人们用功能分解法和结构化方法已经开发了很多软件系统,但是同时由于上述原因,对系统的开发与维护问题也日益显现出来。对于功能稳定的应用领域,如某些科学计算,上述方法是适用的。但对于众多的领域而言,它们的需求是易变的,如企业管理和商业管理领域就是如此。因为随着市场的变化,要对这些领域的管理模式不断地进行调整。对于较为复杂的系统,用上述方法进行软件开发,容易导致模块的低内聚和模块间的高耦合,从而使得系统缺乏良好的灵活性和可维护性。加上当时团队的开发与管理方法的不足,这些因素使得在20世纪70年代的软件危机情况更加严重。为了解决软件危机,人们对开发技术进行了一定的改进,对编程语言也进行了革新,如产生了用于软件开发的4GL、CASE工具、原型技术和代码生成器。这些努力取得了一定的成就,但没有从根本上解决问题。
3信息建模方法
信息建模方法是在实体联系模型(entity relationship model)的基础上发展起来的。该方法以称为实体的数据集合作为系统的构造块,即以数据结构为中心来开发软件。因为有相当多的人认为实体是稳定的,并且实体联系模型有相当好的理论基础,所以当时该方法为很多开发团队所采用。
作者其它作品
面向对象开发方法[按需印刷]
- ¥29.00
- ¥59.00
- (特价书)面向对象开发方法..
- 软件工程
- 面向对象分析与设计