NEWS AT SEI
This article was originally published in News at SEI on: September 1, 2003
Based on decades of experience with software-intensive systems and supported by four widely acclaimed books in the SEI Addison-Wesley Series, the SEI has developed a software architecture curriculum.
The six courses and three certificate programs that make up the curriculum equip software professionals with state-of-the-art practices for designing, documenting, evaluating, and implementing software architectures.
Because a software architecture acts as the blueprint for a system and for the project that develops that system, getting it right is imperative. An architecture is “right” if it meets the behavioral and quality-attribute goals (such as performance or security) defined for the system, which will in turn help an organization reach its broader business goals. “If you are responsible for this critical artifact but lack the knowledge or point of view needed to develop it, the system’s stakeholders will ultimately suffer in some way,” says Mark Klein, a member of the SEI’s technical staff who helped develop the curriculum. Much of the technology taught in the curriculum originated within the SEI. “Every instructor was instrumental in the development of the technology we’re teaching, and many of them literally wrote the book on the subject,” says Paul Clements, another SEI staff member who contributed to the development of the curriculum.
The curriculum is designed so that participants can take single classes in their areas of interest or complete one or more of the three certificate programs.
The course Software Architecture: Principles and Practices teaches participants about the concept of software architecture--defined as the structure or structures of a system, comprising software elements, the externally visible properties of those elements, and the relationships among them. Based on the book Software Architecture in Practice, 2nd Edition, the course emphasizes the importance of the business or mission context in which a system is designed.
The Documenting Software Architectures course provides in-depth coverage of effective software architecture documentation practices. Participants learn how to produce a comprehensive documentation package useful to many different stakeholders, including developers, managers, and system maintainers. This course is based on the book Documenting Software Architectures: Views and Beyond.
The Software Architecture Design and Analysis course answers the questions, “Which design decisions will lead to a software architecture that successfully addresses the desired system qualities?” and “How do you know if a given software architecture is deficient or at risk relative to its target system qualities?” A software architecture design method called Attribute-Driven Design (ADD) is presented in the course, which also introduces a family of software architecture evaluation methods based on the Architecture Tradeoff Analysis Method (ATAM). The books Software Architecture in Practice, 2nd Edition and Evaluating Software Architectures: Methods and Case Studies serve as the foundation for this course.
The Software Product Lines course provides a comprehensive introduction to software product lines, which are sets of software-intensive systems that share a common, managed set of features satisfying a particular market or mission area, and are built from a common set of core assets in a prescribed way. Adopting a product line approach to software is both a technical and business decision. This course covers the essential technical and management practices needed to use product lines successfully. This course is based on the book Software Product Lines: Practices and Patterns.
The ATAM Evaluator Training course prepares software architects to participate in software architecture evaluations using the ATAM. Based on the book Evaluating Software Architectures: Methods and Case Studies, this course includes lectures, videotaped enactments, interactive exercises, and hands-on practice.
Building on the skills taught in ATAM Evaluator Training, the ATAM Facilitator Training course focuses on the social and leadership skills required to lead successful architecture evaluations. Class exercises allow participants to practice the tasks required of lead evaluators.
The Certificate Programs
The three certificate programs offered are the Software Architecture Professional program, the ATAM Evaluator program, and the ATAM Lead Evaluator program.
Beginning with an introduction to software architecture fundamentals, the Software Architecture Professional certificate program helps participants gain experience in architecture documentation, design, and analysis techniques. The four-course sequence also demonstrates how these techniques can be used effectively with a product line approach.
Qualified participants who complete the courses in the ATAM Evaluator certificate program are authorized by the SEI to participate in ATAM architecture evaluations. The five courses and field exercise in the ATAM Lead Evaluator certificate program provide qualified participants with the technical depth, social techniques, and experience they need to effectively lead software architecture evaluations using the ATAM. SEI-authorized lead evaluators then attend yearly ATAM update workshops to maintain their skills and status.