购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

编程很有乐趣,但开发高质量的软件却是困难的。从好的观点、需求或“构想”开始,到最终变成一个实际运行的软件产品,所需要的不仅仅是编码这一项工作。分析和设计,定义如何解决问题,需要对哪些内容编程,用易于交流、评审、实现和演化的多种方式来获取这个设计,这正是本书的核心所在。这也是你将要学习的内容。

统一建模语言(UML)已经成为被用户广泛接受的描述软件设计蓝图的语言。在本书中,UML是用来传递设计理念的可视化语言。本书重点讲述开发者如何真正地应用常用的UML元素而不是讲述UML的特征。

在很多学科中,人们早就认识到模式在构造复杂系统时的重要性。软件设计模式可以帮助开发人员描述设计片断、重用设计思想、使用其他人的专业经验。模式给出了抽象的探索式过程的名称和形式,以及面向对象技术的规则和最佳实践。明智的工程师是不会完全从头开始工作的,而本书则为方便地使用模式提供了一个范例。

然而,如果没有软件工程过程作为背景,软件设计就显得有些枯燥和神秘。关于软件设计这个主题,我很高兴地看到在本书的新版本中,Craig Larman已经加入并介绍了统一过程(Unified Process),并介绍如何以一种相对简单和实际的方式来应用统一过程。通过在一个迭代的、风险驱动的、以架构为中心的过程中介绍案例研究,Craig的建议有其现实的环境。他揭示了软件开发中实际的动态发展,并分析外部作用的影响。设计活动与其他任务相关,它们不再是一个纯粹的系统化转换或使用创造性直觉的脑力活动。同时,Craig和我都深信迭代开发的益处,你可以在本书中看到对此问题的详细说明。

所以我认为,本书融合了多种技术。你将师从一位一流的老师、卓越的方法论学家及OO专家(有极为丰富的教学经验)学习应用面向对象分析和设计(OOA/D)的系统化方法。Craig在统一过程的背景下描述了面向对象分析和设计的系统化方法,逐步介绍了更复杂的设计模式,因此当你面临现实世界的设计挑战时,本书非常方便实用。同时,他在本书中使用了人们广泛接受的表示法。

我非常荣幸有机会与作者一起参与了本书的写作。我阅读过本书的第1版,并愉快地接受了Craig请我评阅本书新版本的邀请。我们多次会面并通过邮件讨论了本书的内容。我从Craig那里学到了很多东西,其中甚至涉及我所从事的统一过程工作,包括如何改进统一过程,如何在不同组织中定位统一过程。我敢肯定,你将通过阅读本书学到很多知识,即使你非常熟悉OOA/D。而且,像我一样,你将发现自己重温并更新了过去的知识,或从Craig的解释和经验中获得了更深入的理解。

阅读愉快!

Philippe Kruchten
现任加拿大英属哥伦比亚大学软件工程教授
曾任Rational公司RUP产品的过程开发总监
并获得“Rational Fellow”称号 4XG2VogsBXn2fF2K5A6B7X06SApf7ve7mtVd+xbSItLWCEFws4NDgvokd/Ajy7pw

点击中间区域
呼出菜单
上一章
目录
下一章
×