Home > Store

Aspect-Oriented Software Development with Use Cases

Register your product to gain access to bonus material or receive a coupon.

Aspect-Oriented Software Development with Use Cases


  • Sorry, this book is no longer in print.
Not for Sale



Learn how to apply the proven concept of use cases within the rising paradigm of aspect orientation to build robust and extensible software

° Systematically outlines how to conduct aspect oriented software development with use cases, covering requirements, analysis, design, implementation, and test

° Develop better software by embracing the paradigm shift to aspect-orientation

° Product pre-launch and advance promotion occurred at OOSPLA in Vancouver, BC (October 2004)


  • Copyright 2005
  • Dimensions: 7" x 9-1/4"
  • Pages: 464
  • Edition: 1st
  • Book
  • ISBN-10: 0-321-26888-1
  • ISBN-13: 978-0-321-26888-4

“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 projects

Whatever 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.


Related Article

Aspect-Oriented Programming for Production Code

Author's Site

Visit the Author's Web Site related to this title.

Sample Content

Online Sample Chapters

Aspect-Oriented Programming: Road to a Resilient Architecture

How to Address Crosscutting Concerns in Aspect Oriented Software Development

Downloadable Sample Chapter

Download Chapter 1 and Chapter 11 from this book.

Table of Contents




1. Problem to Attack.

    The Use of Components Today.

    Limitation of Components.

    Approaching a Solution.

    Keeping Concerns Separate.

2. Attacking the Problem with Aspects.

    Approaching a Solution with Aspects.

    Keeping Peers Separate with Aspects.

    Keeping Extensions Separate with Aspects.

    Need for Methodological Guidance.

3. Today with Use Cases.

    Use Cases in Brief.

    Use-Case-Driven Development.

    Roles and Benefits of Use Cases.

    Gaps in the Use-Case Technique.

    Bridging the Gaps with Aspects.

4. Tomorrow with Use-Case Modules.

    Building Systems in Overlays with Use-Case Slices.

    Keeping Peer Use Cases Separate.

    Keeping Extension Use Cases Separate.

    Developing with Use-Case Modules.


5. Modeling Concerns with Use Cases.

    Use-Case Modeling.

    Use-Case Instances and Flows of Events.

    Describing Use Cases.

    Visualizing Use-Case Flows.

    Summary and Highlights.

6. Structuring Use Cases.

    Use-Case Relationships.

    Use-Case Extend Relationship.

    Use-Case Include Relationship.

    Use-Case Generalization.

    Utility Use Cases.

    Summary and Highlights.

7. Capturing Concerns with Use Cases.

    Understanding Stakeholder Concerns.

    Capturing Application Use Cases.

    Capturing Infrastructure Use Cases.

    Summary and Highlights.


8. Keeping Peer Use-Case Realizations Separate with Aspects.

    Realizing Peer Use Cases.

    Keeping Use-Case Specifics Separate.

    Dealing with Overlap.

    Summary and Highlights.

9. Keeping Extensions Separate with Pointcuts.

    Realizing Extension Use Cases.

    Keeping Modularity of Extension Use-Case Realizations.

    Parameterizing Pointcuts.

    Generalizing Extension Use-Case Realizations.

    Templating Use-Case Slices.

    Summary and Highlights.

10. Building Systems with Use-Case Modules.

    A System Comprises Models.

    Use-Case Model.

    Analysis Model.

    Design and Implementation Models.

    Use-Case Modules Cut Across Models.

    Composing and Configuring Use-Case Modules.

    Summary and Highlights.


11. Road to a Resilient Architecture.

    What Is Architecture?

    What Is a Good Architecture?

    Steps to Establish an Architecture Baseline.

    Begin with a Platform-Independent Structure.

    Overlay Platform Specifics on Top.

    Summary and Highlights.

12. Separating Functional Requirements with Application Peer Use Cases.

    Analyzing Application Use Cases.

    Keeping Application Use Cases Separate.

    Designing Application Use Cases.

    Refining Design Elements.

    Summary and Highlights.

13. Separating Functional Requirements with Application-Extension Use Cases.

    Analyzing Application-Extension Use Cases.

    Keeping Application-Extension Use Cases Separate.

    Designing Application-Extension Use Cases.

    Dealing with Changes in the Base.

    Summary and Highlights.

14. Separating Nonfunctional Requirements with Infrastructure Use Cases.

    Analyzing an Infrastructure Use Case.

    Keeping Infrastructure Use Cases Separate.

    Designing Infrastructure Use Cases.

    Dealing with Multiple Infrastructure Use Cases.

    Summary and Highlights.

15. Separating Platform Specifics with Platform-Specific Use-Case Slices.

    Keeping Platform Specifics Separate.

    Overlaying User Interfaces.

    Overlaying Distribution.

    Overlaying Persistency.

    Preserving the Use-Case Structure.

    Summary and Highlights.

16. Separating Tests with Use-Case Test Slices.

    Test-First Approach.

    Identifying Test Cases from Use Cases.

    Identifying Elements to Be Tested.

    Designing and Implementing Tests.

    Summary and Highlights.

17. Evaluating the Architecture.

    Putting It Together.

    Evaluating Separation of Concerns.

    Evaluating and Achieving Systemwide Concerns.

    Summary and Highlights.

18. Describing the Architecture.

    Architecture Description Comprises Architectural Views.

    Architectural View of the Use-Case Model.

    Architectural View of the Analysis Model.

    Architectural View of the Design Model.

    Summary and Highlights.


19. Running a Project.

    Iterative Development.

    Estimating Development Effort.

    Planning and Controlling the Project.

    Productivity Gains by Keeping Concerns Separate.

    Summary and Highlights.

20. Tailoring the Approach.

    Achieving the Right Balance.

    Selecting Disciplines to Apply.

    Adopting at Different Phases of a Project.

    Summary and Highlights.

21. Aspects and Beyond.

    Building a System in Extensions.

    Balancing Best Practices.

    The Road Ahead.

Appendix A. Modeling Aspects and Use-Case Slices in UML.

Appendix B. Notation Guide.





Download the Index file related to this title.


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020