AOSD Conference  
Program Overview
Technical Program
Industry Track
Student Extravaganza
Conference Venue
Chicago Photos
Chicago History
Student Volunteers
AOSD-Europe Sponsorships

T5 : Why Should Aspect Enthusiasts Care About Software Architecture?

Date Monday, March 14, 2005 afternoon (half day)
Presenters Linda Northrop, Carnegie Mellon University
Paul Clements, Carnegie Mellon University
Level Advanced: Attendees should have experience in designing and developing software-intensive systems and some familiarity with modern software engineering concepts. Knowledge of aspect-oriented software development is helpful, but not required.


The goal of the tutorial is for participants to understand the basic concepts of software architecture and associated practices and to appreciate the relationship with aspect-oriented concepts.

Although the term software architecture is used frequently in today's software industry, its meaning is not universally understood. Software architecture, which encompasses the structures of software systems, has emerged as a crucial part of the design process and is an increasingly crucial part of a software organization's business strategy. A software architecture is an abstract view of a software system distinct from the details of implementation, algorithms, and data representation. A software architecture is developed as the first step toward designing a system with certain desired properties.

The aspect-oriented community has to date been largely focused on the problems of providing a language-based infrastructure for specifying aspects and ensuring that this specification is integrated neatly into existing programs. The languages and environments that have resulted successfully isolate aspects while maintaining program integrity. Much less attention has been paid to the problem of identifying crosscutting concerns and providing guidance as to which actions should be embedded into aspect specifications.

To exploit the potential of aspect-oriented programming (AOP) and move AOP into mainstream use, the aspect landscape has to be populated with aspect-oriented architecture and design approaches and methods. It makes sense for aspect experts to understand the architectural design process and for architects to consider aspect concepts early in that process.

This tutorial will introduce:

  • the basic concepts of software architecture
  • how software architecture relates to the business of an organization
  • why software architecture is important for AOSD
  • the proven practices involved in architecture-centric development, including understanding architectural requirements, creating appropriate software architectures, documenting software architectures, evaluating software architectures, ensuring architectural conformance, and reusing software architectures.
  • the potential connection of aspects and software architecture


Linda Northrop is currently director of the Product Line Systems Program at the Software Engineering Institute (SEI) where she leads the SEI work in software architecture, software product lines and predictable assembly from certifiable components. She is co-author of the book, "Software Product Lines: Practices and Patterns." She received the 2001 Carnegie Science Center Award for Excellence in Information technology, was a keynote speaker at ICSE 2001 and AOSD 2002, OOPSLA Program Chair in 1999, OOPSLA Conference Chair in 2001, and the Conference Chair of the first and second international Software Product Line Conference (SPLC1 and SPLC2).

Paul C. Clements is a Senior Member of the Technical Staff at Carnegie Mellon University's Software Engineering Institute. He is co-author of four books: "Software Product Lines: Practices and Patterns," "Software Architecture in Practice," "Evaluating Software Architectures: Methods and Case Studies," and "Documenting Software Architectures: Views and Beyond."

Edited by the AOSD Conference Committee.  Send comments to: