面向方面软件开发 (aspect-oriented software development,AOSD) 可以将复杂系统的多个关注点分别表达,而后利用"编织"技术将各个独立的表达合成为一致的系统。许多专家认为AOSD是面向对象范型的后继者,它大大地简化了复杂系统的开发。
两位作者都是AOSD的专家,她们在本书中将理论应用到实际的开发中。她们解释了各种类型的方面,帮助读者识别方面,并提供了设计和实现方面的一些指导。该方法可集成到各种软件开发过程中,简化软件系统的开发。
对于迷惑于一些常见的问题 (如"何为方面?"、"应该对哪些方面编写代码?"、"如何设计方面?") 的开发者来说,本书非常有用。本书可作为读者思考方面的起点,并有助于读者在需求分析和设计中解决相关的问题。
同时,有经验的AO开发者也可以更深入地了解各种不同的分解模型,以及如何在需求文档中识别方面功能、设计方面、将方面映射到实现等。作者建立的Theme方法可以灵活地识别方面功能,还提供了基于UML的设计建模语言来描述方面。
简言之,本书对开发者和分析设计者而言,都有很实际的价值。
"使用面向方面程序设计的开发人员将对本书赞赏有加。该书的作者是本领域的带头人物,他们总结了过去的研究结果,为方面建立了细致的方法学和符号表示法。"
--Ron Bodkin,New Aspects of Software公司首席技术官
"面向方面是用于复杂系统程序设计的一种强大方法。在建模与设计期间应用该方法,也同样收益良多。本书中的Theme方法向开发者提供了一些手段,能够在软件开发过程的早期应用面向方面的方法,这在AOP的实践过程中是一个重要进步。"
--Ramnivas Laddad,《AspectJ in Action》的作者
Siobhan Clarke,任教于爱尔兰都柏林大学圣三一学院计算机科学系讲师,是面向方面软件开发领域的一位学术带头人。本书描述的Theme/UML方法,即基于她的博士论文中分割和合成对称设计模型的相关工作。她当前正在研究将面向方面设计和编程模型用于移动、可感知环境的计算中。
Preface
Acknowledgments
About the Authors
Chapter 1 Introduction
Software Development and the Object-Oriented Paradigm
The Case for Aspects
What Is an Aspect?
Why Consider Aspects in Analysis and Design?
Aspects and Other Concerns
Asymmetric Separation
Symmetric Separation
The Theme Approach
What ls a Theme?
Relationships Between Themes
Concept Sharing
Crossuutting
Applying the Theme Approach
Analyzing Requirements with Theme/Doc
Starting Out
Theme Identification
Aspect Identification
Designing Themes with Theme/UML
Design the Themes
Specify the Relationships
Theme: Symmetric or Asymmetric?
Fitting Theme into Your Existing Development Process
What About Implementation?
Summary
Chapter 2 The Object-Oriented Way
Differing Unitscof Interest
Describing Requirements
Requirements Units
Motivation for Choosing Units
Describing Objects
Object-Oriented Units
Motivation for Choosing Units
Comparing Requirements to Objects
Expressions Example
Object-Oriencted Design
Requirements Scattered and Tangledcin the EES Design
Accommodating Evolution
Scattering and Tangling with Design Patterns
Evolution the Object-Oriented Way
Summary
Chapter 3 The Theme Approach
Chapter 4 Analysis
Chapter 5 Theme Design
Chapter 6 Theme Composition
Chapter 7 Map to Implementation
Chapter 8 Case Study: Phone Features
Chapter 9 Case Study:Usage Licensing
Appendix The Crystal Game
Bibliography
Index