面向方面軟件開發(fā) (aspect-oriented software development,AOSD) 可以將復(fù)雜系統(tǒng)的多個(gè)關(guān)注點(diǎn)分別表達(dá),而后利用"編織"技術(shù)將各個(gè)獨(dú)立的表達(dá)合成為一致的系統(tǒng)。許多專家認(rèn)為AOSD是面向?qū)ο蠓缎偷暮罄^者,它大大地簡(jiǎn)化了復(fù)雜系統(tǒng)的開發(fā)。
兩位作者都是AOSD的專家,她們?cè)诒緯袑⒗碚搼?yīng)用到實(shí)際的開發(fā)中。她們解釋了各種類型的方面,幫助讀者識(shí)別方面,并提供了設(shè)計(jì)和實(shí)現(xiàn)方面的一些指導(dǎo)。該方法可集成到各種軟件開發(fā)過程中,簡(jiǎn)化軟件系統(tǒng)的開發(fā)。
對(duì)于迷惑于一些常見的問題 (如"何為方面?"、"應(yīng)該對(duì)哪些方面編寫代碼?"、"如何設(shè)計(jì)方面?") 的開發(fā)者來說,本書非常有用。本書可作為讀者思考方面的起點(diǎn),并有助于讀者在需求分析和設(shè)計(jì)中解決相關(guān)的問題。
同時(shí),有經(jīng)驗(yàn)的AO開發(fā)者也可以更深入地了解各種不同的分解模型,以及如何在需求文檔中識(shí)別方面功能、設(shè)計(jì)方面、將方面映射到實(shí)現(xiàn)等。作者建立的Theme方法可以靈活地識(shí)別方面功能,還提供了基于UML的設(shè)計(jì)建模語言來描述方面。
簡(jiǎn)言之,本書對(duì)開發(fā)者和分析設(shè)計(jì)者而言,都有很實(shí)際的價(jià)值。
"使用面向方面程序設(shè)計(jì)的開發(fā)人員將對(duì)本書贊賞有加。該書的作者是本領(lǐng)域的帶頭人物,他們總結(jié)了過去的研究結(jié)果,為方面建立了細(xì)致的方法學(xué)和符號(hào)表示法。"
--Ron Bodkin,New Aspects of Software公司首席技術(shù)官
"面向方面是用于復(fù)雜系統(tǒng)程序設(shè)計(jì)的一種強(qiáng)大方法。在建模與設(shè)計(jì)期間應(yīng)用該方法,也同樣收益良多。本書中的Theme方法向開發(fā)者提供了一些手段,能夠在軟件開發(fā)過程的早期應(yīng)用面向方面的方法,這在AOP的實(shí)踐過程中是一個(gè)重要進(jìn)步。"
--Ramnivas Laddad,《AspectJ in Action》的作者
Siobhan Clarke,任教于愛爾蘭都柏林大學(xué)圣三一學(xué)院計(jì)算機(jī)科學(xué)系講師,是面向方面軟件開發(fā)領(lǐng)域的一位學(xué)術(shù)帶頭人。本書描述的Theme/UML方法,即基于她的博士論文中分割和合成對(duì)稱設(shè)計(jì)模型的相關(guān)工作。她當(dāng)前正在研究將面向方面設(shè)計(jì)和編程模型用于移動(dòng)、可感知環(huán)境的計(jì)算中。
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