作者序  作者简介 专家推荐  译者序  目录

 
AOSD(中文版)——基于用例的面向方面软件开发(已到货)
Aspect-Oriented Software Development With Use Cases
出版社:电子工业出版社
作者:lvar Jacobson Pan-Wei Ng
定价:49.00

出版日期:2005年10月

   面向方面编程(AOP)是对软件工程的一种革新性思考。引入XAOP的目的是解决诸如安全性、 日志、持久化、调试、跟踪、分布式处理、性能监控以及更有效地处理异常等问题的。与常规的 开发技术不同的是,常规技术会将这些不同的关注点实现于多个类中,而面向方面编程将使它们 局部化。
  面向方面软件开发(AOSD)使用这一方法,为功能需求、非功能需求、平台特性等创造了更 好的模块性,使你开发出更易于理解的系统,也更易于配置和扩展,以满足和解决涉众的需求。 在这本期望值很高的新书中,lvar Jacobson博士和Pan—WeiNg博士展示了如何应用用例技术 (一种成熟的聚焦干涉众关注点的系统化方法)和面向方面技术来构建健壮、易于扩展的系统。 在本书中,作者使用了一个现实世界中的酒店管理信息系统的例子,使得理论和实践的描述更加 具体化、更加易于理解。 作者们说明了如何识别、设计、实现、测试和重构用例模块,以及如何扩展它们。还展示了 如何使用统一建模语言(uML)——强调了UML2.0中的增强内容——来设计用例模块;以及如何使 用方面技术,特别是AspectJ来实现用例的模块化。
  关键的主题包括:
    描述用例和方面的课题
    基于用例对关注点进行捕获和建模
    基于用例模块使关注点保持分离
    使用最新的UML符号扩展来对用例切片和方面进行建模
    在项目中使用用例和方面
  不管你有多少面向方面编程的经验,都将教会你如何将开发范型转变到AOSD,开发出更好的软件。

 


作者序

  We have always said that software systems are becoming increasingly more complex. This is almost a cliché now, but it is still worth repeating. To overcome the complexity, we need better ways to simplify things and basically to keep concerns separate. This is what precisely aspect orientation and use cases try to achieve. The ability to weave modules during run time will certainly make systems significantly more maintainable and extensible. In this book, we have demonstrated how to achieve this in practice.

  Although the subject of this book is on aspects, the concepts which we advocate in this book are not limited to systems implemented using aspect technology. Concepts such as minimal design, infrastructure use cases, etc. and many more which we describe in this book are in general applicable to object oriented systems as well. In fact, we have successfully helped a number of our clients how to apply “aspect thinking” using the use case driven approach in their systems – even object oriented ones. These systems ranges from web enabled business transaction systems to real time telecommunication systems. This clearly demonstrates the general applicability of the concepts in this book. Moreover, what we also discovered that those who read our book have a renewed understanding of separation of concerns and modularity, which are key factors to good software systems.

  It has been our mission and goal to nurture good software development habits amongst software professionals. Writing this book is just one “aspect” of it. China is and will become an even strong software development industry. Chinese professionals are eager to learn and try new concepts. With the translation of this book into Chinese, we invite you to read this book, to learn and grow together with us.

  But we can and want to do more. We have established a company in China to train software professionals, to mentor project teams and to improve the overall capability of software development organizations. We invite you to our courses on aspect orientation and other development best practices.

  我们总在说软件系统越来越复杂,如今这几乎是陈词滥调,但却仍然值得重申。为了解决复杂性,我们需要有更好的方法来化繁为简,最根本的就是要保持关注点的分离。而这也正好是面向方面和用例试图要实现的目标。在运行时织入模块的能力将极大地改善软件系统的可维护性和可扩展性。在本书中,我们将演示如何在实践中实现这一目标。

  虽然本书的主题是面向方面,但我们在书中所提倡的概念并不局限于采用面向方面技术实现的软件系统。例如,最小化设计、基础结构用例等,以及我们在书中涉及到的其他概念,也都是能广泛运用于任何面向对象系统的。事实上,我们已经成功地帮助许多客户采用“面向方面的思维方式”将用例驱动方法运用于他们的系统当中——甚至是面向对象的系统,这些系统包括了从基于 Web 的业务交易系统到实时电信系统等等。这非常清晰地表明了本书中的概念具有普遍适用性。此外,我们还发现,许多读者通过阅读本书,使他们对于关注点分离和模块化等概念有了全新的理解,而这些正是实现优秀软件系统的关键因素。

  为广大软件开发人员培育良好的开发习惯是我们的一贯使命和目标,写作本书仅仅是其中的一个“方面”。中国一直是,也将会是一支更加强大的软件开发力量。中国的专业软件开发人员总是乐于学习新的概念。随着本书中文版的出版,我们诚挚邀请你们来阅读本书,并期望我们能一起探讨学习并共同成长。

  但我们能够并且希望做得更多。我们为此在中国设立了分公司,为专业开发人员提供培训,为项目团队提供辅导,并全方位地改善软件开发组织的能力。我们诚挚邀请您参加我们的面向方面以及其他的软件开发最佳实践的课程。

Ivar Jacobson 博士

Pan-wei Ng 博士

 


作者简介

   lvar Jacobson博士,是许多技术“之父”,这包括组件及基于组件的软件架构,用例,现 代业务工程,以及Ratlonal统一过程。他还是统一建模语言(UML)的三位创始人之一。同时他也 是关于这些方法和技术的五本畅销书籍的作者,以及两本关于UML的引领性书籍的合著者。lvar 博士是JaczoneAB公司的创始人,在该公司他与其女儿、合作者Agneta Jacobson共同开发一套开 创性的新产品,它将包括支持软件开发的智能代理。同时他还是lvar Jacobson Consulting公司 (IJC)的创始人,其目标是向全世界的开发团队推广优秀的软件开发实践。

  Pan-Wei Ng博士,在lvar Jacobson Consulting公司(1JC)扮演了多个角色。Pan-Wel博士 负责针对软件架构、用例、迭代开发、方面技术等相关技术的最佳实践定义、开发相关素材。这 些工作通常需要基于实践进行,才能够确保归纳的最佳实践切实、实用。Pan-Wel博士还积极地 和客户一起工作,以确保这些公司和项目团队能够,快速、安全地采用这些最佳实践。

 


专家推荐

   伊万·雅各布森( Ivar Jacobson )博士: 被公认是深刻影响或改变了整个软件工业开发模式的几位世界级大师之一,是软件方法论的一面“旗帜”。是组件和组件架构、用例、现代业务工程以及 Rational 统一过程等业界主流方法 / 技术的创始人, UML 建模语言创始人之一。

黄邦伟( Pan-Wei Ng )博士: 雅各布森咨询公司( Ivar Jacobson Consulting )创始人之一。曾经是瑞理( Rational )公司全球仅有的数名培训大师( Training Master )之一。

马杰明( James J. Majure ): 雅各布森咨询公司( Ivar Jacobson Consulting )资深咨询顾问,参与并领导美国银行 (US Bank) RUP 导入项目。曾在美国富国银行( Wells Fargo )等公司的多个大型项目中担任系统架构师。

蒋胜: 雅各布森软件(北京)有限公司执行董事、总经理。曾在美国 Microsoft 公司和中兴通讯公司工作多年。

冯晨华: 雅各布森软件(北京)有限公司高级咨询顾问。致力于现代软件工程和软件过程的研究,已为数十家软件企业成功提供了软件工程和过程改进的咨询和培训服务。

徐锋: 中国系统分析员顾问团华东首席顾问,《程序员》专栏作者。致力于系统分析与设计、需求工程、软件过程改进等领域的研究。

潘加宇: UMLChina 首席专家,潜心研究和实践 UML/UP 相关技术的应用。已上门为超过 80 家软件组织提供技术指导和训练服务。

 


译者序

   2000 年以前,笔者在软件需求实践中,一直对如何有效地标识、组织、管理用户的需求感到十分的困惑。纷繁复杂而且拖沓冗长的“软件需求规格说明书”似乎一直没有起到它应该起的作用,如何才能够使得用户和开发团队之间建立更好的需求沟通呢? Ivar Jacobson 先生“用例驱动方法”让我找到了解决的方法。它使得我们站到“用户的视角”来观察“将要开发的系统”,通过对零散的软件需求进行合并,抽象出参与系统地不同角色( Actor ),将一系列的使用场景进行抽象形成“用例”,从而清晰地勾勒出系统地框架模型。这样总结出来的需求,往往能够与用户产生了共鸣,在笔者的实践中也深受其益。

  然而,不久第二个困惑又摆在了眼前,如何在“用例模型”(分析模型)的基础上进行设计呢?在从“用例描述”到“顺序图”、“活动图”的转换中,一直感到力不从心。万幸的是, Ivar 先生提出的“ Robustness 分析方法” 又让我走出了这块新的沼泽。通过边界类、控制类、边界类,以及简明、随意的 Robustness 图,使得这种转换变得 streamline (流线型)起来 。遗憾的是, UML 对 Robustness 图的舍弃,不知对多少实践者带来了这种困难。

  但当我对“用例驱动方法”的应用越来越自如的时候,又遇到了新的困惑。在实际的系统分析和设计实践中,我突然发现类、组件与用例之间的对应关系是交错的。也就是一个用例可能会涉及多个类或组件,而一个类或组件也可能参与了多个用例。这种交错与缠绕一度让我一度感到心力憔悴。我们刚刚通过用例实现的“松耦合”设计,却又在具体到类的层面、实现的环节再次“耦合”在一起了。怎么办?如何解决?虽然从《软件复用:结构、过程和组织》中能够领会到一些解决的方法,但是总感觉实践应用中还是有很大的局限性。

  正是在这个时候,我从亚马逊网站上看到了本书,基于自己对 AOP 的了解,一看书名就让我感到无比的兴奋,心里念叨着“找到答案了,找到了!”。当找到了一些更详细的资料和部分章节时,我确认了自己的想法,因此毫不犹豫地向 CSDN 的熊妍妍推荐了本书,在她的大力支持下,我终于看到了本书的全貌,答案浮出了水面:

  •  AOP 为你提供了一个手段,可以 将横切关注点的实现代码分离 ,并模块化成为“方面”。面向方面提供了一种组合机制,使得在编译时甚至是运行时,再将横切行为组合到预期的操作和类中成为可能。而在操作和类的源代码中则可以摆脱横切关注点,从而使得程序更易于理解和维护。

  •  为了推进 AOP 的发展,本书作者提出了 AOSD ,其目标主要围绕着如何使整个系统更好地模块化,它包括使功能性需求、非功能需求、平台特性等许多不同的关注点更好地模块化,从而使它们之间相互独立。 保持所有的关注点相互独立 ,将使你构建的系统具有更易于理解的结构,并且更易于配置和扩展,以满足涉众各种洐生的需求。

  •  如何进行 AOSD ?如何识别方面?什么时候用类而非方面?如何详细说明方面?这需要一个明确和系统的方法来帮助你进行 AOSD 。而事实上,已经有一种成熟的系统化方法。它就是 用例驱动方法 。它提供了一种明确的、聚焦于实现涉众关注点并给最终用户传递价值的开发方法。

  哈,和我的预想一样。用例驱动方法与 AOP 的结合,必将会引发一场软件开发范型的革命。而通过阅读本书,你可以清除用例驱动方法的认识误区,了解方面技术的基本概念,掌握应用用例( application use cases )、基础结构用例( infrastructure use case )及用例模块等新手段的应用,了解如何结合二者实现弹性的体系结构设计。而且本书还为你指出了一条实践 AOSD 的通途,可以说这是一本从实践中来,又回到实践中去的好书。相信阅读过本书的读者一定也会和笔者有相同的感受,一定不要错过这本经典的好书。

  在此,我必须感谢参与了本书部分章节初译工作的周松奕(第 11-14 章)和吴兰陟(第 15-16 章)两位同仁;感谢 CSDN 的熊妍妍、博文视点的责任编辑陈兴璐,感谢她们无微不至的工作;同时也对参与了审校工作的 Ivar Jacobson 中国公司的专家们、 UMLChina 的潘加宇表示衷心的感谢,他们的工作使本书的质量大大得到了提高。最后要感谢我的父母和妻子许高芳对我多年来的默默支持与鼓励。

  鉴于笔者水平有限,因此在此必须感谢每一位读者,希望能够得到您的反馈与批评,欢迎来信( xf@csai.cn )与我一起交流与本书相关、与用例分析技术、需求工程、系统分析与设计等软件开发相关的话题。

                               徐 锋

                            2005 年 10 月于厦门紫荆园

 


目录

Table of Contents

Preface.

Acknowledgments.

List of Sidebars.

I. THE CASE FOR USE CASES AND ASPECTS.

1. Problem to Attack.

2. Attacking the Problem with Aspects.

3. Today with Use Cases.

4. Tomorrow with Use Case Modules.

II. MODELING AND CAPTURING CONCERNS WITH USE CASES.

5. Modeling Concerns with Use Cases.

6. Structuring Use Cases.

7. Capturing Concerns with Use Cases.

III. KEEPING CONCERNS SEPARATE WITH USE CASE MODULES.

8. Keeping Peer Use Case Realizations Separate with Aspects.

9. Keeping Extensions Separate with Pointcuts.

10. Building Systems with Use Case Modules.

IV. ESTABLISHING AN ARCHITECTURE BASED ON USE CASES AND ASPECTS.

11. Road to a Resilient Architecture.

12. Separating Functional Requirements with Peer Application Use Cases.

13. Separating Functional Requirements with Application Extensions Use Cases.

14. Separating Non-Functional Requirements with Infrastructure Use Cases.

15. Separating Platform Specifics with Platform Specific Use Case Slices.

16. Separating Tests with Use Case Test Slices.

17. Evaluating the Architecture.

18. Describing the Architecture.

V. APPLYING USE CASES AND ASPECTS IN A PROJECT.

19. Running a Project.

20. Tailoring the Approach.

21. Aspects and Beyond.

 
 
Copyright ©1998~2004 华储网. All rights reserved。
To comment on this site,E-mail :
webmaster@huachu.com.cn