面向方面軟件開發 (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