感谢您阅读本书!如果您有任何问题解答、咨询或培训需求,请访问我的网站www.craiglarman.com。此外,我也愿意为您提供OOA/D(面向对象分析与设计)、UML(统一建模语言)、建模、迭代和敏捷方法等方面的帮助。

本书是一份关于OOA/D的实用指南,涵盖了与迭代开发相关的内容。我很高兴看到本书第一版和第二版在世界范围内都得到了广泛的认可。在此,我要衷心感谢所有读者的支持!

通过阅读本书,您将会获得以下收益:

1.掌握对象技术对于进行软件开发至关重要,尤其是在当今以迭代式开发为代表的软件开发模式下。

2.如果您刚开始接触OOA/D,那么在本书中,您将能够找到一个清晰而明确的迭代式路线图,帮助您逐步完成从需求确定到编码的过程。

3.UML已成为建模的标准表示法,因此熟悉并熟练应用UML是非常有用的。在本书中,您将学到如何使用UML来描述系统的需求和设计。

4.设计模式是一种表达面向对象设计专家的最佳实践的习惯用法和方案。在本书中,您将学习各种常见的设计模式,包括GoF模式和GRASP等。学习和应用这些模式将有助于您更快地掌握分析和设计技能。

5.本书的结构和重点是基于作者多年的教学和培训经验,他曾教授和指导过成千上万的学生掌握OOA/D。因此,本书提供了一种经过验证的高效学习方法,让您能够在尽可能短的时间内全面掌握OOA/D。

6.在本书中,我们还详细介绍了两个案例研究,以便您能够深入了解整个OOA/D过程,并探讨其中的一些复杂细节问题。

7.本书还将讲解如何将对象设计制品映射成Java代码,并且介绍测试驱动的开发(TDD)和重构等相关的技术。

8.本书还会解释如何设计分层架构,并指导您如何将用户界面层、领域层和技术服务层关联起来实现系统的构建。

9.最后,本书将展示有关设计面向对象框架的相关知识和技巧,并且演示如何将这些知识应用于创建可在数据库中持久化存储的框架。

除了本书本身之外,我还提供相关的教学和Web资源供您参考。您可以在我的网站上找到相关文章、PowerPoint形式的插图以及其他更多资源。此外,全球范围内有数百名教师在使用本教材,并且它已被翻译成了至少10种语言。如果您是教师,欢迎与我联系获取更多的教学资源和支持。


本书旨在为入门级读者提供关于OOA/D和相关需求分析的指南,并以统一过程为例阐述迭代开发。如果你有可以共享的资料,请与我联系。

读者对象—入门级

本书适合以下读者阅读:具有面向对象编程经验但是刚刚接触OOA/D的开发者和学生;在计算机科学和软件工程课程中学习对象技术的学生;熟悉OOA/D但希望学习UML表示法、应用模式的读者,或者希望加强和提高自己的分析和设计技能的读者。

预备知识

本书假设读者已具备如下必需的知识:面向对象程序设计语言(如Java、C#、C++或Python)的知识和经验;面向对象技术的基本概念和知识,如类、实例、接口、多态性、封装和继承。请注意,本书中没有定义基本的面向对象技术概念。

Java示例,但是......

本书通常使用Java语言编写示例代码,这是因为Java使用广泛。然而,本书的观点适用于大多数(即使不是全部)的面向对象程序设计语言,包括C#、Python等。

本书的组织结构

本书按照软件开发项目类似的顺序引入分析和设计的主题,包括“初始阶段”(统一过程中的术语)及后续的三个迭代(见图P-1)。具体来说:

1. 初始阶段的各章节介绍需求分析的基本知识。

2. 细化迭代1的各章节介绍OOA/D的基本知识以及如何为对象分配职责。

3. 细化迭代2的各章节重点介绍对象设计,特别是一些常用的设计模式。

4. 细化迭代3的各章节介绍架构分析和框架设计等中级主题。

关于作者

Craig Larman是Valtech公司的首席科学家。该公司是一家国际性的咨询和技术转让公司,在欧洲、亚洲和北美洲都有分公司。他还是《敏捷迭代开发:管理者指南》(Agile and Iterative Development: A Manager’s Guide)一书的作者,这是一本关于软件工程和迭代、敏捷开发方法的畅销书籍。他在全球各地游历,足迹遍布从美国印第安纳州到印度的很多地方,对开发团队和管理人员进行培训。

Craig Larman是一位计算机科学家和软件工程师,自20世纪80年代中期以来,他一直致力于帮助开发者应用面向对象分析与设计(OOA/D)方法以及熟练掌握UML建模技术。他在结束街头流浪音乐家的生涯后,于20世纪70年代开始使用APL、PL/I和CICS进行系统开发。从20世纪80年代初期起,他对人工智能产生了浓厚兴趣,并利用Lisp机器、Lisp、Prolog和Smalltalk等工具构建过知识系统。此外,他还为使用Java、.NET、C++和Smalltalk的开发公司提供过服务。

尽管忙于工作,Craig仍然积极参与业余生活,担任Changing Requirement乐队的主音吉他手(原名Requirement,不过成员有些变动)。他在加拿大温哥华的Simon Fraser大学分别获得了计算机科学学士和硕士学位。

若对Craig有兴趣或希望与他交流,可以通过以下方式联系:craig@craiglarman.com和www.craiglarman.com。他非常欢迎读者和教师提出问题,并愿意接受演讲、教学和咨询的邀请。

新版本的改进之处在于保留了之前版本的核心内容之外,还在其他方面进行了优化和更新。这使得读者能够更加全面地了解Craig的专业知识和经验,同时也能更好地满足他们的需求。无论您是开发者、教师还是对计算机科学感兴趣的人士,新版本都将成为您的宝贵资源。