|
|
|
|
|
| 作者 |
: |
(美)雅各布森(Jacobson,L.),(美)黄邦伟 著,徐锋 译
|
| ISBN |
: |
7121018314
|
| 出版社 |
: |
电子工业
|
| 出版日期 |
: |
2005-1-1
|
| NT$ |
: |
466
|
|
|
|
|
配送说明: 国际快递 , 海运邮递 。
付款说明: 1. VISA、MASTER線上刷卡 2. 信用卡传真刷卡付款 3.
邮政划拨 4. 银行汇款
|
|
|
|
|
 |
| |
·荣获第14届Jolt大奖这Productivity大奖! ·经典名作《程序员修炼之道(The Pragmatic Programmer)》之理念的延伸和扩展。 面向方面编程(AOP)是对软件工程的一种革新性思考。引入AOP的目的是解决诸如安全性、日志、持久化、调试、跟踪、分布式处理、性能监控以及更有效地处理异常等问题的。与常规的开发技术不同的是,常规技术会将这些不同的关注点实现于多个类中,而面向方面编程将使它们局部化。 面向方面软件开发(AOSD)使用这一方法,为功能需求、非功能需求、平台特性等创造了更好的模块性,使你开发出更易于理解的系统,也更易于配置和扩展,以满足和解决涉众的需求。 在这本期望值得很高的新书中,Ivar Jacboson博士和Pan-Wei博士展示了如何应用用例技术(一种成熟的聚焦于涉众关注点的系统化方法)和面向方面技术来的构建健壮、易于扩展的系统。在本书中,作者使用了一个现实世界中的酒店管理信息系统的例子,使得理论和实践的描述更加具体化、更加易于理解。 作者们说明了如何识别、设计、实现、测试和重构用例模块,以及如何扩展它们。还展示了如何使用统一建模语言(UML)——强调了UML2.0中的增强内容——来设计用例模块;以及如何使用方面技术,特别AspectJ来实现用例的模块化。 关键的主题包括: ·描述用例和方面的课题 ·基于用例对关注点进行捕获和建模 ·基于用例模块使关注点保持分离 ·使用最新的UML符号扩展来对用例切片和方面进行建模 ·在项目中使用用例和方面 不管你在多少面向方面编程的经验,《AOSD中文版——基于用例的面向方面软件开发》都将教会你如何开发范例转变到AOSD,开发出更好的软件。
|
|
|
|
|
|
 |
| |
本书系统阐述了面向方面软件开发(AOSD)方法,AOSD的目标是通过使系统的功能需求、非功能需求、平台特性等诸多不同的关注点相互独立,实现更好 的模块化,来构建出易于理解、易于扩展、高复用性、高质量的软件系统。AOSD将用例技术和面向方面技术有机结合在一起,为软件开发提供了一个切实可行的最佳实践集。本书还系统阐述了用例技术、AOP(面向方面编程)技术的特点和使用方法,以及实现用例与AOP结合使用的用例模块、用例切片等技术。并且通过一个现实世界中常见的“酒店管理系统”来展示了如何在项目实践中高效地应用AOSD方法。作者见解独到、精辟,不仅阐述了理论知识,还详尽说明了如何在项目的不同阶段中应用AOSD技术。这本书对于项目经理、系统分析员、系统设计师及广大开发人员,都具有很高的实用价值。
|
|
|
|
|
|
 |
| |
译者序
2000年以前,笔者在软件需求实践中,一直对如何有效地标识、组织、管理用户的需求感到十分的困惑。纷繁复杂而且拖沓冗长的“软件需求规格说明书”似乎一直没有起到它应该起的作用,如何才能够使得用户和开发团队之间建立更好的需求沟通呢?Ivar Jacobson先生提出的“用例驱动方法”让我找到了解决的方法。它使我们站在“用户的视角”来观察“将要开发的系统”,通过对零散的软件需求进行合并,抽象出参与系统的不同参与者(Actor),将一系列的使用场景进行抽象形成“用例”,从而清晰地勾勒出系统的框架模型。这样总结出来的需求,往往能够与用户产生共鸣,让笔者在实践中也获益匪浅。
然而不久,第二个困惑又摆在了眼前,如何在“用例模型”(分析模型)的基础上进行设计呢?在从“用例描述”到“顺序图”、“活动图”的转换中,一直感到力不从心。所幸的是,Ivar先生提出的“Robustness分析方法” 又让我走出了这块新的沼泽。通过控制类、边界类,以及简明、随意的Robustness图,使这种转换变得streamline(流线型)起来 。遗憾的是,UML对Robustness图的舍弃,不知对多少实践者带来了这种困难。
但当我对“用例驱动方法”应用得越来越自如的时候,又遇到了新的困惑。在实际的系统分析和设计实践中,我突然发现类、组件与用例之间的对应关系是交错的。也就是一个用例可能会涉及多个类或组件,而一个类或组件也可能参与了多个用例。这种交错与缠绕一度让我一度感到心力交瘁。我们刚刚通过用例实现的“松耦合”设计,却又在具体到类的层面、实现的环节再次“耦合”在一起了。怎么办?如何解决?虽然从《软件复用:结构、过程和组织》中能够领会到一些解决的方法,但是总感觉在实践应用中还是有很大的局限性。
正是在这个时候,我从亚马逊网站上看到了本书。基于自己对AOP的了解,一看书名就让我感到无比的兴奋,心里念叨着“找到答案了,找到了!”。当找到一些更详细的资料和部分章节后,我确认了自己的想法,因此毫不犹豫地向CSDN的熊妍妍推荐了本书。在她的大力支持下,我终于看到了本书的全貌,答案浮出了水面:
AOP为你提供了一种手段,可以将横切关注点的实现代码分离,并模块化成为“方面”。面向方面提供了一种组合机制,使得在编译时甚至是运行时,再将横切行为组合到预期的操作和类中成为可能。而在操作和类的源代码中则可以摆脱横切关注点,从而使程序更易于理解和维护。
为了推进AOP的发展,本书作者提出了AOSD,其目标主要围绕着如何使整个系统更好地模块化。它包括使功能性需求、非功能需求、平台特性等许多不同的关注点更好地模块化,从而使它们之间相互独立。保持所有的关注点相互独立,将使你构建的系统具有更易于理解的结构,并且更易于配置和扩展,以满足涉众各种洐生的需求。
如何进行AOSD?如何识别方面?何时用类而非方面?如何详细说明方面?这需要一个明确的系统化方法来帮助你进行AOSD。而事实上,已经有一种成熟的系统化方法。它就是用例驱动方法。它提供了一种明确的、聚焦于实现涉众关注点并给最终用户传递价值的开发方法。
哈,和我的预想一样。用例驱动方法与AOP的结合,必将会引发一场软件开发范型的革命。而通过阅读本书,你可以清除用例驱动方法的认识误区,了解方面技术的基本概念,掌握应用用例(application use case)、基础结构用例(infrastructure use case)及用例模块等新手段的应用,了解如何结合二者实现弹性的架构设计。而且本书还为你指出了一条实践AOSD的通途,可以说这是一本从实践中来,又回到实践中去的好书。相信阅读过本书的读者一定也会和笔者有相同的感受,一定不要错过这本经典的好书。
在此,我必须感谢参与了本书部分章节初译工作的周松奕(第11~14章)和吴兰陟(第15~16章)两位同仁;感谢CSDN的熊妍妍、博文视点的责任编辑陈兴璐,感谢她们辛劳细致的工作;同时也对参与了审校工作的Ivar Jacobson Software China公司的专家们、UMLChina的潘加宇表示衷心的感谢,他们的工作使本书的翻译质量得到了很大的提高和保证。最后要感谢我的父母和妻子许高芳对我多年来的默默支持与鼓励。
鉴于笔者水平有限,因此在此必须感谢每一位读者,希望能够得到您的反馈与批评。欢迎来信(xf@csai.cn)与我一起交流与本书相关,与用例分析技术、需求工程、系统分析以及设计等软件开发相关的话题。
徐锋
2005年10月于厦门紫荆园
|
|
|
|
|
|
 |
| |
序 致谢 第1篇 用例和方面的应用实例 第1章 要解决的问题 1.1 组件现在的用途 1.1.1 使用组件构建系统 1.1.2 组件的益处 1.2 组件的局限性 1.2.1 无法使对等关注点相互分离 1.2.2 无法使扩展相互分离 1.3 寻求解决方案 1.3.1 对于扩展的早期支持 1.3.2 UML对扩展的支持 1.4 使关注点保持分离 第2章 使用方面技术来解决问题 2.1 使用方面技术寻求解决方案 2.2 基于方面技术使对等关注点保持分离 2.3 基于方面技术使扩展保持分离 2.4 方法学指导的需要 第3章 现在基于用例 3.1 用例概述 3.2 用例驱动开发 3.3 用例的角色和益处 3.4 用例技术的缺口(gap) 3.5 基于方面来填补缺口(gap) 第4章 将来基于用例模块 4.1 通过叠加用例切片来构建系统 4.2 使对等用例保持分离 4.3 使扩展用例保持分离 4.4 基于用例模块开发 第2篇 基于用例捕获关注点并建模 第5章 基于用例对关注点建模 5.1 用例建模 5.2 用例实例和事件流 5.3 用例描述 5.4 用例事件流的可视化 5.5 总结与强调 第6章 用例结构化 6.1 用例关系 6.2 用例扩展关系 6.3 用例包含关系 6.4 用例泛化 6.5 公共用例 6.6 总结与强调 第7章 基于用例捕获关注点 7.1 理解涉众关注点 7.1.1 理解问题域 7.1.2 抽取系统特性 7.1.3 处理功能和非功能需求 第3篇 基于用例模块实现关注点分离 第4篇 基于用例和方面建立架构 第5篇 在项目中应用用例和方面 附录A 使用UML对方面和用例切片建模 附录B 符号指南 参考文献 术语表 索引
|
|
|
 |