Course: Software Architecture with UML

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. Participants will complete a detailed exercise that runs throughout the course.

The course has two primary parts: (1) How to do just enough architecture, and (2) A conceptual model of architecture.

Just Enough Architecture Conceptual Model of Architecture
What is software architecture? Domain, Design, and Code models
The risk-driven model Views and viewtypes
How to choose design techniques Effective encapsulation
Prototypical risks in domains Component/module partitioning
Example of risk-driven model Elements (modules, components, connectors, roles, etc.)
Functionality and quality attributes (extra-functional) Relationships (projection, partition, refinement, etc.)
Engineers use models Architectural styles (patterns)
Modeling advice Achieving model quality
Tradeoffs Rational architecture decisions

Since this is a 3-day course, we have some latitude in tailoring the course content for your needs. For example, some clients have requested overviews of architectural analysis, API design, and scalability techniques.


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 $1750 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.



Related courses

This course has no prerequisites. A follow-on to this course is the Advanced Software Architecture (3 days).

Why Rhino Research?

Rhino Research is devoted to improving the state of software practice. We do this by using our industrial and academic roots to give you the freshest and most practical advice in classes and during consulting engagements.

Our clients

We have taught classes for many kinds of clients, ranging from regular information technology shops, to huge internet shops, to NASA.

Just Enough Software Architure Book

Available as an e-book ($9.99) or a hardback.

Get it on Google Play

Get it on Amazon


subscribe via RSS


Rhino Research is a training and consulting company specializing in software architecture

124 W 60th St #37L
New York, NY 10023