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