skip to main content
Skip header Section
Aspect-Oriented Analysis and DesignMarch 2005
Publisher:
  • Addison-Wesley Professional
ISBN:978-0-321-24674-5
Published:01 March 2005
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

"Developers who are using aspect-oriented programming will appreciate this contribution to aspect-oriented analysis and design. The authors are pioneers in this area and have elaborated on past research to produce a detailed methodology and notation for early aspects."-Ron Bodkin, Chief Technology Officer, New Aspects of Software"Aspect-orientation is a powerful approach for programming complex systems. There is a lot to be gained from applying this approach during modeling and designing, as well. The Theme approach in this book represents an important advancement in AOP adoption by providing practitioners means to apply aspect-orientation early on."-Ramnivas Laddad, Author of AspectJ in Action"Clarke & Baniassad have written an interesting book that shows how to use aspects to solve a difficult problem: composing independent program fragments with overlapping functionality. The included case studies well illustrate the principles. I recommend the book.-Charles B. Haley, Research Fellow, The Open University"This book presents a very useful set of techniques for helping software developers to identify the aspects. I am sure that this book will rapidly become a landmark reference for the software community!"-João M. Fernandes, Ph.D., Universidade do MinhoAspect-oriented software development (AOSD) is emerging as a viable approach for allowing the separate expression of multiple concerns along with "weaving" technologies for knitting together these separate expressions into coherent systems. Thanks to its great promise as an approach to simplifying the development of complex systems, many expert observers view AOSD as a worthwhile successor to the prevalent object-oriented paradigm.In this new book, two AOSD experts apply theory to the practical realm of real-world development. They explain the different kinds of aspects, help the reader identify them, and provide guidance on successful design and implementation. The result is an applicable and easy-to-digest methodology for simplifying and optimizing the development of software systems.Aspect-Oriented Analysis and Design: The Theme Approach will be particularly helpful for developers who are trying to answer the common questions of "What is an aspect?", "Which aspects should I be coding?", and "How do I design aspects?" Readers will come away with a starting point for thinking about aspects and accounting for them in requirements and design.Meanwhile, seasoned AO practitioners will learn more about different models of decomposition, identifying aspect functionality in requirements documentation, designing aspects, and how to map aspect designs to code. The authors' groundbreaking Theme approach to AOSD offers both a flexible way to identify aspect functionality and a UML-based design modeling language that can describe aspects independently of programming language.In short, practitioners and early adopters of AO alike will appreciate this book's practical information on how to make the significant shift to AOSD.© Copyright Pearson Education. All rights reserved.

Cited By

  1. Aydemir F and Dalpiaz F Supporting Collaborative Modeling via Natural Language Processing Conceptual Modeling, (223-238)
  2. Khan M, Sartaj H, Iqbal M, Usman M and Arshad N (2019). AspectOCL, Empirical Software Engineering, 24:4, (2674-2724), Online publication date: 1-Aug-2019.
  3. Fabry J, Zambrano A and Gordillo S (2016). Expressing aspectual interactions in design, Software and Systems Modeling (SoSyM), 15:3, (881-905), Online publication date: 1-Jul-2016.
  4. Jepsen J and Kindler E The Event Coordination Notation Revised Selected Papers of the International Workshops on Behavior Modeling -- Foundations and Applications - Volume 6368, (133-164)
  5. ACM
    Phalnikar R and Jinwala D (2015). Analysis of Conflicting User Requirements in Web Applications Using Graph Transformation, ACM SIGSOFT Software Engineering Notes, 40:2, (1-7), Online publication date: 3-Apr-2015.
  6. Alam O and Kienzle J Incremental software design modelling Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research, (325-339)
  7. Persson M, Törngren M, Qamar A, Westman J, Biehl M, Tripakis S, Vangheluwe H and Denil J A characterization of integrated multi-view modeling in the context of embedded and cyber-physical systems Proceedings of the Eleventh ACM International Conference on Embedded Software, (1-10)
  8. ACM
    Araújo J, Goulão M, Moreira A, Simão I, Amaral V and Baniassad E Advanced modularity for building SPL feature models Proceedings of the 28th Annual ACM Symposium on Applied Computing, (1246-1253)
  9. Farias K, Garcia A, Whittle J, Chavez C and Lucena C Evaluating the effort of composing design models Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems, (676-691)
  10. Farias K, Garcia A and Lucena C Evaluating the impact of aspects on inconsistency detection effort Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems, (219-234)
  11. Zhang G Aspect-oriented modeling of mutual exclusion in UML state machines Proceedings of the 8th European conference on Modelling Foundations and Applications, (162-177)
  12. ACM
    Linehan É, O'Toole E and Clarke S (2012). Model-driven automation for simulation-based functional verification, ACM Transactions on Design Automation of Electronic Systems, 17:3, (1-25), Online publication date: 1-Jun-2012.
  13. ACM
    Bálik J and Vranić V Symmetric aspect-orientation Proceedings of the 2012 workshop on Next Generation Modularity Approaches for Requirements and Architecture, (7-12)
  14. ACM
    Zhang G and Hölzl M Weaving semantic aspects in HiLA Proceedings of the 11th annual international conference on Aspect-oriented Software Development, (263-274)
  15. Van Landuyt D, Op de beeck S, Truyen E and Joosen W Domain-Driven discovery of stable abstractions for pointcut interfaces Transactions on Aspect-Oriented Software Development IX, (1-52)
  16. ACM
    Long D, Gibbs C, Horspool N and Coady Y HiLPR Proceedings of the 18th Conference on Pattern Languages of Programs, (1-14)
  17. Fabry J, Zambrano A and Gordillo S Expressing aspectual interactions in design Proceedings of the 14th international conference on Model driven engineering languages and systems, (93-107)
  18. ACM
    Wimmer M, Schauerhuber A, Kappel G, Retschitzegger W, Schwinger W and Kapsammer E (2011). A survey on UML-based aspect-oriented design modeling, ACM Computing Surveys, 43:4, (1-33), Online publication date: 1-Oct-2011.
  19. ACM
    Pires P, Delicato F, Pinto M, Fuentes L and Marinho É Software evolution in AOSD Proceedings of the 14th international ACM Sigsoft symposium on Component based software engineering, (193-198)
  20. Zhang G and Hölzl M Aspect-Oriented modeling of web applications with HiLA Proceedings of the 11th international conference on Current Trends in Web Engineering, (211-222)
  21. ACM
    Kindler E Integrating behaviour in software models Proceedings of the Third Workshop on Behavioural Modelling, (41-48)
  22. ACM
    Gottardi T, Delosso Penteado R and Vieira de Camargo V A process for aspect-oriented platform-specific profile checking Proceedings of the 2011 international workshop on Early aspects, (1-5)
  23. ACM
    Driver C, Reilly S, Linehan É, Cahill V and Clarke S (2011). Managing embedded systems complexity with aspect-oriented model-driven engineering, ACM Transactions on Embedded Computing Systems, 10:2, (1-26), Online publication date: 1-Dec-2010.
  24. Boucké N, Weyns D and Holvoet T (2010). Composition of architectural models, Journal of Systems and Software, 83:11, (2108-2127), Online publication date: 1-Nov-2010.
  25. Kramer M and Kienzle J Mapping aspect-oriented models to aspect-oriented code Proceedings of the 2010 international conference on Models in software engineering, (125-139)
  26. Morin B, Klein J, Kienzle J and Jézéquel J Flexible model element introduction policies for aspect-oriented modeling Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II, (63-77)
  27. Johannes J and Aßmann U Concern-based (de)composition of model-driven software development processes Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II, (47-62)
  28. Rodríguez-Echeverría R, Conejero J, Linaje M, Preciado J and Sánchez-Figueroa F Re-engineering legacy web applications into rich internet applications Proceedings of the 10th international conference on Web engineering, (189-203)
  29. ACM
    Kindler E Model-based software engineering Proceedings of the Second International Workshop on Behaviour Modelling: Foundation and Applications, (1-8)
  30. Lopez-Herrejon R and Egyed A Detecting inconsistencies in multi-view models with variability Proceedings of the 6th European conference on Modelling Foundations and Applications, (217-232)
  31. Firmenich S, Rossi G, Urbieta M, Gordillo S, Challiol C, Nanard J, Nanard M and Araujo J (2010). Engineering concern-sensitive navigation structures, concepts, tools and examples, Journal of Web Engineering, 9:2, (157-185), Online publication date: 1-Jun-2010.
  32. ACM
    Júnior J, Penteado R and de Camargo V An overview and an empirical evaluation of UML-AOF Proceedings of the 2010 ACM Symposium on Applied Computing, (2289-2296)
  33. ACM
    Zambrano A, Fabry J, Jacobson G and Gordillo S Expressing aspectual interactions in requirements engineering Proceedings of the 2010 ACM Symposium on Applied Computing, (2161-2168)
  34. ACM
    Penim A and Araújo J Identifying and modeling aspectual scenarios with theme and MATA Proceedings of the 2010 ACM Symposium on Applied Computing, (287-291)
  35. ACM
    Hovsepyan A, Scandariato R, Van Baelen S, Berbers Y and Joosen W From aspect-oriented models to aspect-oriented code? Proceedings of the 9th International Conference on Aspect-Oriented Software Development, (85-96)
  36. ACM
    Farias K, Garcia A and Whittle J Assessing the impact of aspects on model composition effort Proceedings of the 9th International Conference on Aspect-Oriented Software Development, (73-84)
  37. Bombonatti D and Melnikoff S Survey on early aspects approaches Proceedings of the 4th WSEAS international conference on Computer engineering and applications, (137-142)
  38. Van Landuyt D, Truyen E and Joosen W Discovery of stable abstractions for aspect-oriented composition in the car crash management domain Transactions on aspect-oriented software development VII, (375-422)
  39. Kienzle J, Al Abed W, Fleurey F, Jézéquel J and Klein J Aspect-oriented design with reusable aspect models Transactions on aspect-oriented software development VII, (272-320)
  40. Hölzl M, Knapp A and Zhang G Modeling the car crash crisis management system using HiLA Transactions on aspect-oriented software development VII, (234-271)
  41. McNeile A and Roubtsova E Aspect-oriented development using protocol modeling Transactions on aspect-oriented software development VII, (115-150)
  42. Mussbacher G, Amyot D, Araújo J and Moreira A Requirements modeling with the aspect-oriented user requirements notation (AoURN) Transactions on aspect-oriented software development VII, (23-68)
  43. Van Landuyt D, Truyen E and Joosen W Discovery of stable abstractions for aspect-oriented composition in the car crash management domain Transactions on aspect-oriented software development VII, (375-422)
  44. Kienzle J, Al Abed W, Fleurey F, Jézéquel J and Klein J Aspect-oriented design with reusable aspect models Transactions on aspect-oriented software development VII, (272-320)
  45. Hölzl M, Knapp A and Zhang G Modeling the car crash crisis management system using HiLA Transactions on aspect-oriented software development VII, (234-271)
  46. McNeile A and Roubtsova E Aspect-oriented development using protocol modeling Transactions on aspect-oriented software development VII, (115-150)
  47. Mussbacher G, Amyot D, Araújo J and Moreira A Requirements modeling with the aspect-oriented user requirements notation (AoURN) Transactions on aspect-oriented software development VII, (23-68)
  48. ACM
    Zhang G Aspect-oriented modeling of adaptive web applications with HiLA Proceedings of the 7th International Conference on Advances in Mobile Computing and Multimedia, (331-335)
  49. Menkyna R and Vranić V Aspect-Oriented change realization based on multi-paradigm design with feature modeling Proceedings of the 4th IFIP TC 2 Central and East European conference on Advances in Software Engineering Techniques, (40-53)
  50. Boulanger F, Jacquet C, Hardebolle C and Rouis E Modeling heterogeneous points of view with modhel'x Proceedings of the 2009 international conference on Models in Software Engineering, (310-324)
  51. Zhang G and Hölzl M HiLA Proceedings of the 2009 international conference on Models in Software Engineering, (104-118)
  52. Klein J, Kienzle J, Morin B and Jézéquel J Aspect Model Unweaving Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, (514-530)
  53. Mussbacher G, Amyot D and Whittle J Refactoring-Safe Modeling of Aspect-Oriented Scenarios Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, (286-300)
  54. Mussbacher G and Amyot D Extending the user requirements notation with aspect-oriented concepts Proceedings of the 14th international SDL conference on Design for motes and mobiles, (115-132)
  55. Mussbacher G and Amyot D Heterogeneous pointcut expressions Proceedings of the 2009 ICSE Workshop on Aspect-Oriented Requirements Engineering and Architecture Design, (8-13)
  56. ACM
    Garcia A, Figueiredo E, Sant'Anna C, Pinto M and Fuentes L Representing architectural aspects with a symmetric approach Proceedings of the 15th workshop on Early aspects, (25-30)
  57. ACM
    Galpin D, Driver C and Clarke S Modelling hardware verification concerns specified in the e language Proceedings of the 8th ACM international conference on Aspect-oriented software development, (207-212)
  58. ACM
    Kienzle J, Al Abed W and Klein J Aspect-oriented multi-view modeling Proceedings of the 8th ACM international conference on Aspect-oriented software development, (87-98)
  59. ACM
    Van Landuyt D, Op de beeck S, Truyen E and Joosen W Domain-driven discovery of stable abstractions for pointcut interfaces Proceedings of the 8th ACM international conference on Aspect-oriented software development, (75-86)
  60. Zhang Y, Yang H, Chen J and Meng X Themes4BPEL Proceedings of the 11th international conference on Advanced Communication Technology - Volume 1, (534-539)
  61. Navasa A, Pérez-Toledano M and Murillo J (2009). An ADL dealing with aspects at software architecture stage, Information and Software Technology, 51:2, (306-324), Online publication date: 1-Feb-2009.
  62. ACM
    Baldi P, Lopes C, Linstead E and Bajracharya S (2008). A theory of aspects as latent topics, ACM SIGPLAN Notices, 43:10, (543-562), Online publication date: 27-Oct-2008.
  63. ACM
    Baldi P, Lopes C, Linstead E and Bajracharya S A theory of aspects as latent topics Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, (543-562)
  64. ACM
    Rashid A and Chitchyan R Aspect-oriented requirements engineering Proceedings of the 13th international workshop on Early Aspects, (35-41)
  65. ACM
    Kindler E and Schmelter D Aspect-oriented modelling from a different angle Proceedings of the 2008 AOSD workshop on Aspect-oriented modeling, (7-12)
  66. ACM
    Jeanneret C, France R and Baudry B A reference process for model composition Proceedings of the 2008 AOSD workshop on Aspect-oriented modeling, (1-6)
  67. ACM
    Munnelly J and Clarke S Infrastructure for ubiquitous computing Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software, (1-7)
  68. Boucke N and Holvoet T (2008). View composition in multiagent architectures, International Journal of Agent-Oriented Software Engineering, 2:1, (3-33), Online publication date: 1-Jan-2008.
  69. Zhang G, Hölzl M and Knapp A Enhancing UML state machines with aspects Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems, (529-543)
  70. Whittle J, Moreira A, Araújo J, Jayaraman P, Elkhodary A and Rabbi R An expressive aspect composition language for UML state diagrams Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems, (514-528)
  71. Jayaraman P, Whittle J, Elkhodary A and Gomaa H Model composition in product lines and feature interaction detection using critical pair analysis Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems, (151-165)
  72. Szala & and Madeyski L The impact of test-driven development on software development productivity Proceedings of the 14th European conference on Software Process Improvement, (200-211)
  73. Torres D, Fernandez A, Rossi G and Gordillo S Fostering groupware tailorability through separation of concerns Proceedings of the 13th international conference on Groupware: design implementation, and use, (143-156)
  74. Cottenier T, van den Berg A and Elrad T Joinpoint inference from behavioral specification to implementation Proceedings of the 21st European conference on Object-Oriented Programming, (476-500)
  75. Ginzburg J, Rossi G, Urbieta M and Distante D Transparent interface composition in web applications Proceedings of the 7th international conference on Web engineering, (152-166)
  76. Carton A, Clarke S, Senart A and Cahill V Aspect-Oriented Model-Driven Development for Mobile Context-Aware Computing Proceedings of the 1st International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments
  77. Meier S, Reinhard T, Stoiber R and Glinz M Modeling and Evolving Crosscutting Concerns in ADORA Proceedings of the Early Aspects at ICSE: Workshops in Aspect-Oriented Requirements Engineering and Architecture Design
  78. ACM
    Hanenberg S, Stein D and Unland R From aspect-oriented design to aspect-oriented programs Proceedings of the 6th international conference on Aspect-oriented software development, (49-62)
  79. ACM
    Chitchyan R, Rashid A, Rayson P and Waters R Semantics-based composition for aspect-oriented requirements engineering Proceedings of the 6th international conference on Aspect-oriented software development, (36-48)
  80. Salvaneschi P Improving functional testing through aspects Proceedings of the 10th international conference on Early aspects: current challenges and future directions, (39-54)
  81. Mussbacher G, Amyot D, Whittle J and Weiss M Flexible and expressive composition rules with aspect-oriented use case maps (AoUCM) Proceedings of the 10th international conference on Early aspects: current challenges and future directions, (19-38)
  82. ACM
    Joncheere N The service creation environment Proceedings of the 5th workshop on Software engineering properties of languages and aspect technologies, (4-es)
  83. ACM
    Groher I and Voelter M XWeave Proceedings of the 10th international workshop on Aspect-oriented modeling, (35-40)
  84. ACM
    Fuentes L and Sánchez P Towards executable aspect-oriented UML models Proceedings of the 10th international workshop on Aspect-oriented modeling, (28-34)
  85. Klein J, Fleurey F and Jézéquel J Weaving multiple aspects in sequence diagrams Transactions on aspect-oriented software development III, (167-199)
  86. Mussbacher G, Amyot D and Weiss M Visualizing early aspects with use case maps Transactions on aspect-oriented software development III, (105-143)
  87. Van Den Berg K, Conejero J and Hernández J Analysis of crosscutting in early software development phases based on traceability Transactions on aspect-oriented software development III, (73-104)
  88. Niu N and Easterbrook S Analysis of early aspects in requirements goal models Transactions on aspect-oriented software development III, (40-72)
  89. Brichau J, Chitchyan R, Clarke S, D'Hondt E, Garcia A, Haupt M, Joosen W, Katz S, Noye J, Rashid A and Sudholt M (2006). A Model Curriculum for Aspect-Oriented Software Development, IEEE Software, 23:6, (53-61), Online publication date: 1-Nov-2006.
  90. ACM
    Kit L, Man C and Baniassad E Isolating and relating concerns in requirements using latent semantic analysis Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (383-396)
  91. ACM
    Bübl F Keeping track of crosscutting requirements in UML models via context-based constraints Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, (530-541)
  92. ACM
    Kit L, Man C and Baniassad E (2006). Isolating and relating concerns in requirements using latent semantic analysis, ACM SIGPLAN Notices, 41:10, (383-396), Online publication date: 16-Oct-2006.
  93. Rashid A and Moreira A Domain models are NOT aspect free Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems, (155-169)
  94. Georg G, Houmb S and Ray I Aspect-Oriented Risk Driven Development of Secure Applications 20th Annual IFIP WG 11.3 Working Conference on Data and Applications Security on Data and Applications Security XX - Volume 4127, (282-296)
  95. Eler M and Masiero P Aspects as components Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components, (411-414)
  96. Silva L, Huzita E and Tait T Comparing Approaches in AORE through ISO/IEC 9126 Proceedings of the 2006 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fifth SoMeT_06, (146-156)
  97. ACM
    Nakajima S and Tamai T Aspect-oriented software design with a variant of UML/STD Proceedings of the 2006 international workshop on Scenarios and state machines: models, algorithms, and tools, (44-50)
  98. Alencar F, Castro J, Moreira A, Araújo J, Silva C, Ramos R and Mylopoulos J Integration of aspects with i* models Proceedings of the 8th international Bi conference on Agent-oriented information systems IV, (183-201)
  99. ACM
    Pearce D and Noble J Relationship aspects Proceedings of the 5th international conference on Aspect-oriented software development, (75-86)
  100. ACM
    Stein D, Hanenberg S and Unland R Expressing different conceptual models of join point selections in aspect-oriented design Proceedings of the 5th international conference on Aspect-oriented software development, (15-26)
  101. Noble J and Biddle R Postmodern prospects for conceptual modelling Proceedings of the 3rd Asia-Pacific conference on Conceptual modelling - Volume 53, (11-20)
  102. Jackson A and Clarke S Towards a generic aspect oriented design process Proceedings of the 2005 international conference on Satellite Events at the MoDELS, (110-119)
  103. Cottenier T, van den Berg A and Elrad T Modeling aspect-oriented compositions Proceedings of the 2005 international conference on Satellite Events at the MoDELS, (100-109)
Contributors
  • Trinity College Dublin
  • The University of British Columbia

Recommendations

Chenglie Hu

As a software development paradigm not yet commonly supported by programming languages, aspect orientation (AO) is still relatively new to software developers and has not been widely incorporated into an educational curriculum of any computing discipline. Yet, this book has already brought the practice to the next level: it describes how large software systems can, and should, be designed using the AO paradigm. An essential difficulty of an object-oriented (OO) paradigm is that software requirements do not align with the objects produced in the analysis and design. In other words, requirement units are not usually the same as those units in an OO model. This nonalignment may cause the units that encapsulate the requirements to be abandoned in favor of a modularization demanded by the OO design and coding paradigms. This results in a scattering (one single requirement is scattered across multiple classes or operations) and tangling (a single class or operation contains design details of multiple requirements) effect across an OO design. The consequences are that accommodating new requirements late in the development cycle may affect an unpredictable number of objects, and it could even become an impediment to comprehensibility, reuse, and traceability. For example, in a system for which logging is a requirement for all banking activities, many classes may end up having an aggregated object. If printing is another capability required of all banking activities late in the development, accommodating it does have some, if not all, of the problems mentioned earlier. There are, indeed, ways of coping with common concerns or behaviors under a pure OO paradigm. For example, one can use inheritance to address common concerns or behaviors by subtyping the classes to accommodate the additions so that the existing class structures are affected as little as possible. This vertical expansion of types may, however, quickly become difficult to manage, as newly introduced types often affect the existing configuration of type compatibility. In fact, such an approach is only beneficial if polymorphism is a main concern. Another way of dealing with common concerns or behaviors is to use design patterns, which allow changes to be made in an additive manner rather than an invasive one, improving the modularity of the overall design. Yet, design patterns can only address the difficulties mentioned above partially within the same OO paradigm. By contrast, aspect orientation addresses common concerns or behaviors by crosscutting the core system with aspects (modeled separately), and weaving the aspects at joint-points, thus providing a horizontal expansion of the system, which in many cases (for instance, the banking example above) is more advantageous. An aspect is a concern. A theme is an encapsulation of a concern. Yet, a theme may not necessarily be an aspect. As confusing as this may sound, this subtle distinction is, in fact, where the power of the theme approach lies. Themes are related in two ways: by either sharing concepts or by crosscutting (triggering a concern whose structure and behavior may be scattered across the code-base and tangled with code related to other concerns). The theme approach involves three stages: analysis, design, and composition. In the analysis stage, requirements are analyzed to extract themes (subsets of the requirements) using theme/doc notational diagrams, which allow a view of the relationships among the themes, leading to identification of the core/base system and the aspects. The main characteristic of the stage (and the power of the analysis) is that each theme is independently identified, irrespective of its possible structure. Then, in the design stage, themes are independently designed using the so-called theme/unified modeling language (UML) notational diagrams (a simple extension of the standard UML that allows cooperating class diagrams into a theme). In the last stage, sharing-concept themes are composed structurally, and so are crosscutting themes. Since the whole process works iteratively, adding more concerns requires just additional iterations. The book is organized as follows. Chapter 2 stresses the weaknesses of the OO approach (outlined above). Chapter 3 outlines the entire development process of the aspect-oriented theme approach and its adaptability to commonly used life cycle models. Three chapters (chapters 4, 5, and 6) are devoted to the three stages of AO, addressing criteria, techniques, and details of each stage. A concrete example-developing a system for playing Crystal Game (that has a set of 94 requirements)-is provided. Chapter 7 describes how to map a composed design to an implementation. Finally, two case studies are provided. The book is well written and easy to read (assuming one has an OO background). The authors are accomplished researchers in the area of AO software development, and the book grew out of their respective research interests. My impression is that while the theme approach certainly has its strengths, the analysis process (that determines the paradigm of an entire development cycle) deviates significantly from that of the object-oriented approach, thus making the transition from OO to AO (by abandoning the OO analysis mindset) somewhat difficult. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.