面向对象分析与设计(第3版)(英文版)

分类: 图书,计算机/网络,程序设计,其他,
作者: (美)布奇等著
出 版 社: 人民邮电出版社
出版时间: 2008-4-1字数: 959000版次: 1页数: 691印刷时间: 2008/04/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115173065包装: 精装编辑推荐
本书的英文原书长期以来都是面向对象技术的重要参考书,而面向对象技术已经成为主流软件开发的事实标准。在这本值得期待的第3版中,读者可以学会如何通过统一建模语言UML2.0来应用面向对象方法。
本书分成3个主要部分:概念、方法和应用,其中穿插了大量的补充材料。
第1部分研究软件的内在复杂性,以及复杂性的表现方式。本书将对象模型作为一种手段来帮助我们管理这种复杂性;详细地研究了对象模型的基本元素:抽象、封装、模块化、层次结构;讨论了“什么是类?”以及“什么是对象?”等基本问题。由于确定有意义的类和对象是面向对象开发中的关键任务,因此我们花了相当多的时间来研究分类的本质。具体来说,我们研究了生物学、语言学和心理学等其他学科中的分类方法,然后将这些经验应用到发现软件系统中类和对象的问题上。
第2部分基于对象模型提出了复杂系统开发的一种方法。针对面向对象的分析与设计,首先提出了一套图形表示法(即UML),然后是一个通用的过程框架。还研究了面向对象开发的实践,具体来说,就是它在软件开发生命周期中的位置以及它对于项目管理意味着什么。
第3部分提供了一组5个不简单的例子,涉及不同问题域:系统架构、控制系统、密码分析、数据获取和web开发。之所以选择这些问题域,是因为它们是软件工程师实践过程中遇到的复杂问题的代表。展示某些原则如何应用于简单的问题是很容易的,但是因为我们关注的是为现实世界构建有用的系统,所以我们对如何将对象模型应用于复杂应用程序更加感兴趣。软件系统的开发不同于按菜谱做菜,因此我们强调应用程序的增量式开发,这种开发以一些正确的原则和良好的模型作为指导。
本书新增的内容包括:UML2.0的详细介绍,包括这种表示法最基本的元素和高级元素,同时强调了重要的区别;用5章的篇幅大大加强了对建模的关注,每一章都强调了整体开发生命周期中的一个阶段;让复杂系统变得有条理的新方法,包括利用OOAD和UML来处理系统架构的新方法;关于对象模型中一些被广泛误解的基本元素的基础概念,如抽象、封装、模块化和层次结构;关于如何分配开发团队資源以及管理开发复杂软件系统相关风险的建议;关于主要面向对象编程语言(如Java和C++等)的附录。
内容简介
本书是UML创始人Grady Booch的代表作之一,书中介绍的概念都基于牢固的理论基础。同时,本书又是一本注重实效的书,面向架构师和软件开发者等软件工程实践者的实际需要。本书通过大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOAD)的概念和方法。应用部分连续列出了5个不同类型、不同领域的应用,描述如何从初始阶段到移交阶段将OOAD理论和方法应用到项目中。应用部分所涉及的领域包括系统架构、数据获取、密码分析、控制系统和Web开发,还给出了一些关于重要问题的有效建议,包括分类、实现策略和高性价比的项目管理。书中的表示法采用最新的UML 2.0,因此本书是学习UML 2.0不可多得的参考书。
本书作者基于长期丰富的经验,提出了改进的对象开发方法,用于解决系统和软件开发者面临的复杂问题,非常适合实际系统和软件的开发者、系统分析师或构架师、项目经理阅读。本书主要阐述了软件开发的方法,也可以作为高等院校软件工程和高级编程课程的教材使用。
作者简介
布奇(Grady Booch)是IBM院士(IBM fellow)和6本面向对象编程畅销书的作者。他是世界知名的面向对象技术发起人和UML创始人之一。
目录
Section ⅠConcepts
Chapter 1Complexity
1.1The Structure of Complex Systems
1.2The Inherent Complexity of Software
1.3The Five Attributes of a Complex System
1.4Organized and Disorganized Complexity
1.5Bringing Order to Chaos
1.6On Designing Complex Systems
Chapter 2The Object Model
2.1The Evolution of the Object Model
2.2Foundations of the Object Model
2.3Elements of the Object Model
2.4Applying the Object Model
Chapter 3Classes and Objects
3.1The Nature of an Object
3.2Relationships among Objects
3.3The Nature of a Class
3.4Relationships among Classes
3.5The Interplay of Classes and Objects
3.6On Building Quality Classes and Objects
Chapter 4Classification
4.1The Importance of Proper Classification
4.2Identifying Classes and Objects
4.3Key Abstractions and Mechanisms
Section ⅡMethod
Chapter 5Notation
5.1The Unified Modeling Language
5.2Package Diagrams
5.3Component Diagrams
5.4Deployment Diagrams
5.5Use Case Diagrams
5.6Activity Diagrams
5.7Class Diagrams
5.8Sequence Diagrams
5.9Interaction Overview Diagrams
5.10Composite Structure Diagrams
5.11State Machine Diagrams
5.12Timing Diagrams
5.13Object Diagrams
5.14Communication Diagrams
Chapter 6Process
6.1First Principles
6.2The Macro Process: The Software Development Lifecycle
6.3The Micro Process: The Analysis and Design Process
Chapter 7Pragmatics
7.1Management and Planning
7.2Staffing
7.3Release Management
7.4Reuse
7.5Quality Assurance and Metrics
7.6Documentation
7.7Tools
7.8Special Topics
7.9The Benefits and Risks of Object-Oriented Development
Section ⅢApplications
Chapter 8System Architecture: Satellite-Based Navigation
8.1Inception
8.2Elaboration
8.3Construction
8.4Post-Transition
Chapter 9Control System: Traffic Management
9.1Inception
9.2Elaboration
9.3Construction
9.4Post-Transition
Chapter 10Artificial Intelligence: Cryptanalysis
10.1Inception
10.2Elaboration
10.3Construction
10.4Post-Transition
Chapter 11Data Acquisition: Weather Monitoring Station
11.1Inception
11.2Elaboration
11.3Construction
11.4Post-Transition
Chapter 12Web Application: Vacation Tracking System
12.1Inception
12.2Elaboration
12.3Construction
12.4Transition and Post-Transition
Appendix AObject-Oriented Programming Languages
A.1Language Evolution
A.2Smalltalk
A.3C++
A.4Java
Appendix BFurther Reading
Notes
Glossary
Classified Bibliography
Index




