T5 : Why Should Aspect Enthusiasts Care About Software Architecture?
||Monday, March 14, 2005 afternoon (half day)
Linda Northrop, Carnegie Mellon University
Paul Clements, Carnegie Mellon University
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: webmasteraosd.net