Software Architecture:
Principles and Practices
Executive Education
Course Proposal
Proposers: David Garlan
and Anthony Lattanze
Course Title: Software Architecture: Principles and
Practices
Program Overview:
This five-day course will introduce software developers to
the concepts of software architecture, using a hands-on approach to learn new
techniques for improving the architectural design of complex software systems.
Who Should Attend:
Senior software engineers and architects responsible for the
successful conception, design, development, and maintenance of software
products and projects of significant scope. Prior software development or
management experience on a significant system is required.
Program Benefits:
Students who complete this course will be able to:
- Understand
the role of software architecture in the development of software intensive
systems
- Recognize
major architectural styles and patterns
- Recognize
the relationship between architectural decisions and the achievement of
system qualities and behavior
- Describe
how a given architecture can help designers reason about engineering tradeoffs
- Describe
system requirements in a way that an architecture can be rationally
evaluated
- Understand
the principles of good architectural documentation
- Understand
how architects incorporate commercial-off-the-shelf (COTS) and middleware
into architectural designs
- Generate
architectural alternatives for a problem and choose among them
- Evaluate
an architecture in terms of its ability to satisfy a set of requirements
- Be
aware of the future trends in software architecture
Session Topics:
o
Part 1: Introduction
n
What is software architecture
n
Basic terminology: views, styles, patterns
o
Part 2: Principles of Architecting
n
Quality attributes and tradeoff analysis
n
Standard architectural styles
n
Guidance for the architect
n
Documenting your architecture
o
Part 3: Architecture in Practice
n
Architecture by Assembly
n
Evaluating architectural designs
n
The role of the architect in an organization
o
Part 4: The Rest of Software Architecture
n
What wasn’t included in this course
n
What is on the horizon
Dates: (TBD)
Notes on dates: We would ideally like to offer the course
once in the summer and at least once in the fall. In the fall it will be best
to schedule it as a Friday-Saturday offer. In the summer, there are fewer
constraints. August may be less good than earlier in the summer, given the
early starting date of CMU and the fact that many companies use August for
vacations.
Instructor Biographies:
§
David Garlan is a Professor of Computer Science and
Director of Professional Programs in Software Engineering at Carnegie Mellon University. His research
interests include software architecture, self-healing systems, applied formal
methods, and software development environments.
Professor Garlan received his Ph.D. from Carnegie Mellon in 1987, and then
worked in industry as a software architect, developing product lines for
instrumentation software. He is considered one of the founders of the
field of software architecture, and has been instrumental in creating
foundations, languages, and tools for software architecture over the past
fifteen years. He has written dozens of articles on Software Architecture and
has co-authored two influential books: Software
Architecture: Perspectives on an Emerging Discipline, (with Mary Shaw) and Documenting Software Architectures: Views
and Beyond (which won a Jolt Productivity Award in 2003). He is an
Associate Editor for the Journal on Software Systems and Modeling, and a past
Editor for the ACM Transactions on Software Engineering and Methodology. He has
given numerous short courses on Software Architecture in industry, including
Boeing, General Motors, Motorola, the SEI CIO Institute, and Federal Express.
§
Anthony J.
Lattanze is an Associate Teaching
Professor at Carnegie Mellon University (CMU) and a Senior Member of the
Technical Staff at the Software Engineering Institute (SEI). His interests
include software architecture design (especially as this pertains to embedded
systems development). At the SEI he led a team to refine, mature, and
transition the Architecture Tradeoff Analysis Method (ATAM) into industry and
is a co-developer of the Quality Attribute Workshop (QAW). Mr. Lattanze has
over 20 years of industrial experience. Prior to joining Carnegie Mellon, he
was the chief of software engineering at the United States Flight Test Center at Edwards Air Force Base, CA. During this time he worked in the
development, test, and evaluation of aircraft systems for the B-2,
F-117, Airborne Laser, and the F-22 flight-test programs. He has also provided
industry consultation and training in software architecture design and
evaluation for a variety of industry partners including: Bosch GmbH,
US. Navy, US Air Force,
US Army, Booz-Allen-Hamilton, Boeing, Research in
Motion (RIM), Washington Mutual, Delphi, and Raytheon among others.
§
Color
Pictures:

David
Garlan