“A refreshingly new approach toward improving use-case modeling by fortifying it with aspect orientation.” -Ramnivas Laddad, author of AspectJ in Action “Since the 1980s, use cases have been a way to bring users into software design, but translating use cases into software has been an art, at best, because user goods often don't respect code boundaries. Now that aspect-oriented programming (AOP) can express crosscutting concerns directly in code, the man who developed use cases has proposed step-by-step methods for recognizing crosscutting concerns in use cases and writing the code in separate modules. If these methods are at all fruitful in your design and development practice, they will make a big difference in software quality for developers and users alike. -Wes Isberg, AspectJ team member “This book not only provides ideas and examples of what aspect-oriented software development is but how it can be utilized in a real development project.” -MichaelWard, ThoughtWorks, Inc. “No system has ever been designed from scratch perfectly; every system is composed of features layered in top of features that accumulate over time. Conventional design techniques do not handle this well, and over time the integrity of most systems degrades as a result. For the first time, here is a set of techniques that facilitates composition of behavior that not only allows systems to be defined in terms of layered functionality but composition is at the very heart of the approach. This book is an important advance in modern methodology and is certain to influence the direction of software engineering in the next decade, just as Object-Oriented Software Engineering influenced the last.” -Kurt Bittner, IBM Corporation “Use cases are an excellent means to capture system requirements and drive a user-centric view of system development and testing. This book offers a comprehensive guide on explicit use-case-driven development from early requirements modeling to design and implementation. It provides a simple yet rich set of guidelines to realize use-case models using aspect-oriented design and programming. It is a valuable resource to researchers and practitioners alike.” -Dr. Awais Rashid, Lancaster University, U.K., and author of Aspect-Oriented Database Systems “AOSD is important technology that will help developers produce better systems. Unfortunately, it has not been obvious how to integrate AOSD across a project's lifecycle. This book shatters that barrier, providing concrete examples on how to use AOSD from requirements analysis through testing.” -Charles B. Haley, research fellow, The Open University, U.K.Aspect-oriented programming (AOP) is a revolutionary new way to think about software engineering. AOP was introduced to address crosscutting concerns such as security, logging, persistence, debugging, tracing, distribution, performance monitoring, and exception handling in a more effective manner. Unlike conventional development techniques, which scatter the implementation of each concern into multiple classes, aspect-oriented programming localizes them.Aspect-oriented software development (AOSD) uses this approach to create a better modularity for functional and nonfunctional requirements, platform specifics, and more, allowing you to build more understandable systems that are easier to configure and extend to meet the evolving needs of stakeholders.In this highly anticipated new book, Ivar Jacobson and Pan-Wei Ng demonstrate how to apply use cases-a mature and systematic approach to focusing on stakeholder concerns-and aspect-orientation in building robust and extensible systems. Throughout the book, the authors employ a single, real-world example of a hotel management information system to make the described theories and practices concrete and understandable.The authors show how to identify, design, implement, test, and refactor use-case modules, as well as extend them. They also demonstrate how to design use-case modules with the Unified Modeling Language (UML)-emphasizing enhancements made in UML 2.0-and how to achieve use-case modularity using aspect technologies, notably AspectJ.Key topics include Making the case for use cases and aspects Capturing and modeling concerns with use cases Keeping concerns separate with use-case modules Modeling use-cases slices and aspects using the newest extensions to the UML notation Applying use cases and aspects in projectsWhatever your level of experience with aspect-oriented programming, Aspect-Oriented Software Development with Use Cases will teach you how to develop better software by embracing the paradigm shift to AOSD.
Cited By
- Alshareef S, Maatuk A and Abdelaziz T Aspect-oriented requirements engineering Proceedings of the First International Conference on Data Science, E-learning and Information Systems, (1-7)
- Kostova S and Vranić V Applying aspect-oriented change realization in the mobile application domain Companion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of Programming, (87-92)
- Cassar I, Francalanza A, Aceto L and Ingólfsdóttir A eAOP: an aspect oriented programming framework for Erlang Proceedings of the 16th ACM SIGPLAN International Workshop on Erlang, (20-30)
- Berta P, Bystrický M, Krempaský M and Vranić V Employing issues and commits for in-code sentence based use case identification and remodularization Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems, (1-8)
- Bystrický M and Vranić V Modularizing Code by Use Cases and Tests for Better Maintainability Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming, (1-1)
- Yue T, Zhang H, Ali S and Liu C A Practical Use Case Modeling Approach to Specify Crosscutting Concerns Proceedings of the 15th International Conference on Software Reuse: Bridging with Social-Awareness - Volume 9679, (89-105)
- Jacobson I, Spence I and Kerr B (2016). Use-case 2.0, Communications of the ACM, 59:5, (61-69), Online publication date: 26-Apr-2016.
- Bystrický M and Vranić V Development environment for literal inter-language use case driven modularization Companion Proceedings of the 15th International Conference on Modularity, (12-15)
- Bystrický M and Vranić V Literal inter-language use case driven modularization Companion Proceedings of the 15th International Conference on Modularity, (99-103)
- Al-qadhi M and Keung J Cloud-based support for global software engineering: potentials, risks, and gaps Proceedings of the International Workshop on Innovative Software Development Methodologies and Practices, (57-64)
- Kamina T, Aotani T, Masuhara H and Tamai T Context-oriented software engineering Proceedings of the 13th international conference on Modularity, (85-98)
- Van Landuyt D and Joosen W Modularizing Early Architectural Assumptions in Scenario-Based Requirements Proceedings of the 17th International Conference on Fundamental Approaches to Software Engineering - Volume 8411, (170-184)
- 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)
- Mitschke R, Eichberg M, Mezini M, Garcia A and Macia I Modular specification and checking of structural dependencies Proceedings of the 12th annual international conference on Aspect-oriented software development, (85-96)
- 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)
- 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)
- 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 (CSUR), 43:4, (1-33), Online publication date: 1-Oct-2011.
- Amroune M, Inglebert J, Zarour N and Charrel P AspeCis Proceedings of the First international conference on Model and data engineering, (122-132)
- Maoz S, Harel D and Kleinbort A (2011). A Compiler for Multimodal Scenarios, ACM Transactions on Software Engineering and Methodology, 20:4, (1-41), Online publication date: 1-Sep-2011.
- Miles S, Groth P, Munroe S and Moreau L (2011). PrIMe, ACM Transactions on Software Engineering and Methodology, 20:3, (1-42), Online publication date: 1-Aug-2011.
- Alférez M, Lopez-Herrejon R, Moreira A, Amaral V and Egyed A Supporting consistency checking between features and software product line use scenarios Proceedings of the 12th international conference on Top productivity through software reuse, (20-35)
- van der Hoek A and Lopez N A design perspective on modularity Proceedings of the tenth international conference on Aspect-oriented software development, (265-280)
- Mosser S, Mussbacher G, Blay-Fornarino M and Amyot D From aspect-oriented requirements models to aspect-oriented business process design models Proceedings of the tenth international conference on Aspect-oriented software development, (31-42)
- Roychoudhury S, Gray J and Jouault F A model-driven framework for aspect weaver construction Transactions on aspect-oriented software development VIII, (1-45)
- Gustas R (2011). Modeling Approach for Integration and Evolution of Information System Conceptualizations, International Journal of Information System Modeling and Design, 2:1, (45-73), Online publication date: 1-Jan-2011.
- Gallant S and Gaughan C Systems engineering for distributed live, virtual, and constructive (lvc) simulation Proceedings of the Winter Simulation Conference, (1501-1511)
- Bošković M, Mussbacher G, Bagheri E, Amyot D, Gašević D and Hatala M Aspect-oriented feature models Proceedings of the 2010 international conference on Models in software engineering, (110-124)
- Bergmayr A ReuseMe - towards aspect-driven reuse in modelling method development Proceedings of the 2010 international conference on Models in software engineering, (4-18)
- Ramos R, Castro J, Araújo J, Alencar F and Penteado R Divide and conquer refactoring Proceedings of the 8th Latin American Conference on Pattern Languages of Programs, (1-11)
- Sullivan K, Griswold W, Rajan H, Song Y, Cai Y, Shonle M and Tewari N (2010). Modular aspect-oriented design with XPIs, ACM Transactions on Software Engineering and Methodology, 20:2, (1-42), Online publication date: 1-Aug-2010.
- Campos J, Braga J, Pereira de Resende A and Osório Silva C (2010). Identification of aspect candidates by inspecting use cases descriptions, ACM SIGSOFT Software Engineering Notes, 35:4, (1-9), Online publication date: 20-Jul-2010.
- 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)
- 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)
- 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)
- 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)
- Bombonatti D and Melnikoff S Survey on early aspects approaches Proceedings of the 4th WSEAS international conference on Computer engineering and applications, (137-142)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- Weston N, Chitchyan R and Rashid A A framework for constructing semantically composable feature models from natural language requirements Proceedings of the 13th International Software Product Line Conference, (211-220)
- Kong L and Yuan T (2009). Use case modeling approach for early aspect acquisition, ACM SIGSOFT Software Engineering Notes, 34:4, (1-6), Online publication date: 6-Jul-2009.
- Mussbacher G and Amyot D Heterogeneous pointcut expressions Proceedings of the 2009 ICSE Workshop on Aspect-Oriented Requirements Engineering and Architecture Design, (8-13)
- Cui Z, Wang L, Li X and Xu D Modeling and integrating aspects with UML activity diagrams Proceedings of the 2009 ACM symposium on Applied Computing, (430-437)
- Gomaa H and Shin M Separating application and security concerns in use case models Proceedings of the 15th workshop on Early aspects, (1-6)
- 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)
- 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.
- Rashid A and Chitchyan R Aspect-oriented requirements engineering Proceedings of the 13th international workshop on Early Aspects, (35-41)
- Somé S and Anthonysamy P An approach for aspect-oriented use case modeling Proceedings of the 13th international workshop on Early Aspects, (27-34)
- 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)
- Bonifácio R, Borba P and Soares S On the benefits of scenario variability as crosscutting Proceedings of the 2008 AOSD workshop on Early aspects, (1-8)
- Anthonysamy P and Somé S Aspect-oriented use case modeling for software product lines Proceedings of the 2008 AOSD workshop on Early aspects, (1-8)
- Dias F, Schmitz E, Campos M, Correa A and Alencar A Elaboration of use case specifications Proceedings of the 2008 ACM symposium on Applied computing, (614-618)
- Laguna M, González-Baixauli B and Marqués J Seamless development of software product lines Proceedings of the 6th international conference on Generative programming and component engineering, (85-94)
- 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)
- 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)
- Araujo J, Zowghi D and Moreira A An evolutionary model of requirements correctness with early aspects Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (67-70)
- 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)
- Tabares M, Moreira A, Anaya R, Arango F and Araujo J A Traceability Method for Crosscutting Concerns with Transformation Rules Proceedings of the Early Aspects at ICSE: Workshops in Aspect-Oriented Requirements Engineering and Architecture Design
- Miles S, Groth P, Munroe S, Luck M and Moreau L AgentPrIMe Proceedings of the 8th international conference on Agent-oriented software engineering VIII, (31-43)
- 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)
- Silva L, Batista T, Garcia A, Medeiros A and Minora L On the symbiosis of aspect-oriented requirements and architectural descriptions Proceedings of the 10th international conference on Early aspects: current challenges and future directions, (75-93)
- Salvaneschi P Improving functional testing through aspects Proceedings of the 10th international conference on Early aspects: current challenges and future directions, (39-54)
- 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)
- Xu D and He X Generation of test requirements from aspectual use cases Proceedings of the 3rd workshop on Testing aspect-oriented programs, (17-22)
- Klein J, Fleurey F and Jézéquel J Weaving multiple aspects in sequence diagrams Transactions on aspect-oriented software development III, (167-199)
- Brito I, Vieira F, Moreira A and Ribeiro R Handling conflicts in aspectual requirements compositions Transactions on aspect-oriented software development III, (144-166)
- Mussbacher G, Amyot D and Weiss M Visualizing early aspects with use case maps Transactions on aspect-oriented software development III, (105-143)
- Sampaio A, Rashid A, Chitchyan R and Rayson P EA-Miner Transactions on aspect-oriented software development III, (4-39)
- Maoz S and Harel D From multi-modal scenarios to code Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, (219-230)
- Lopez-Herrejon R and Batory D Modeling features in aspect-based product lines with use case slices Proceedings of the 2006 international conference on Models in software engineering, (6-16)
- 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)
- Moreira A, Araújo J and Whittle J Modeling volatile concerns as aspects Proceedings of the 18th international conference on Advanced Information Systems Engineering, (544-558)
- 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)
- 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)
- Liang H, Dingel J and Diskin Z A comparative survey of scenario-based to state-based model synthesis approaches Proceedings of the 2006 international workshop on Scenarios and state machines: models, algorithms, and tools, (5-12)
- 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)
- Pearce D and Noble J Relationship aspects Proceedings of the 5th international conference on Aspect-oriented software development, (75-86)
- Klein J, Hélouët L and Jézéquel J Semantic-based weaving of scenarios Proceedings of the 5th international conference on Aspect-oriented software development, (27-38)
- 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)
- Mahoney M Modeling reactive systems and aspect-orientation Proceedings of the 2005 international conference on Satellite Events at the MoDELS, (345-346)
- 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)
- Tkatchenko M and Kiczales G Uniform support for modeling crosscutting structure Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems, (508-521)
- Kiczales G and Mezini M Separation of concerns with procedures, annotations, advice and pointcuts Proceedings of the 19th European conference on Object-Oriented Programming, (195-213)
- Sutton S Aspect-Oriented software development and software process Proceedings of the 2005 international conference on Unifying the Software Process Spectrum, (177-191)
- Kiczales G and Mezini M Aspect-oriented programming and modular reasoning Proceedings of the 27th international conference on Software engineering, (49-58)
Index Terms
- Aspect-Oriented Software Development with Use Cases (Addison-Wesley Object Technology Series)
Recommendations
Aspect-Oriented software development beyond programming
ICSR'06: Proceedings of the 9th international conference on Reuse of Off-the-Shelf ComponentsSoftware systems and the concerns addressed by them are becoming increasingly complex hence posing new challenges to the mainstream software engineering paradigms. The objectoriented paradigm is not sufficient to modularise crosscutting concerns, such ...