Course: Software Architecture Marathon
The first day of this course reflects the content of the Essence of Software Architecture course. It covers the basics of software architecture, views, and refinement. It is suitable as a introduction to software architecture for a general audience, including developers and managers. It describes the what and why of software architecture, and gives a tour of how it is done.
The second and third days add the content of the Software Architecture with UML course. Lectures show basic use of modeling information, behavior, and components. In order to focus on key ideas, these days assume “best case” development. Participants in exercises will design and analyze a simple system using the techniques from lectures.
The fourth and fifth days add add the content of the Advanced Software Architecture. It relaxes the idealistic assumptions from days 2 and 3, and discusses how to get the most value from software architecture models in realistic conditions, including short time boxes, bottom-up development, brownfield development, and partial outsourcing. Advanced topics in model building are covered. Participants in exercises will design and analyze a second, more complex system.
We can reconfigure this course to include some of the following topics:
- Architectural requirements (ATAM, QAW)
- Working with code
- Model-code consistency
- Architecture hoisting
- Architecturally evident coding style
- Design for testability
- Refactoring in architecture
- MDA / DSL
- Product Line Architectures
- Service Oriented Architecture
Since this is a 5-day course, we have considerable latitude in tailoring the course content for your needs.
This course is suitable for managers, programmers, developers, designers, and architects. Because of the need to track individual progress on a few exercises during the course, the maximum class size is 20.
This presentation is delivered by Dr. George Fairbanks. George has been teaching software architecture and object-oriented design since 1998, and in the Spring of 2008 he was the co-instructor for the graduate software architecture course at Carnegie Mellon University. He holds a Ph.D. in Software Engineering from Carnegie Mellon University, advised by David Garlan and Bill Scherlis. His dissertation introduced design fragments, a new way to specify and assure the correct use of frameworks through static analysis. He has publications on frameworks and software architecture in selective academic conferences. He has written production code for telephone switches, plugins for the Eclipse IDE, and everything from soup to nuts for his dot-com startup, and maintains a network of Linux servers in his spare time. George is a program committee member for 2009 Working International Conference on Software Architecture (WICSA 2009), and has been a referee for IEEE Transactions on Software Engineering (TSE).
Logistics and Cost
On-site: This course is normally taught on-site with the customer. The cost is $2100 per person, with a minimum of five students, plus the instructor’s travel, room, and board expenses. Discounts apply for larger groups.
Public: Although this course is not normally offered on a public schedule, we will schedule one if there is demand. Email us to get on the waiting list.
Participants receive a copy of the lecture slides and exercises.
Call us at (303) 834-7760, or email to email@example.com