Course: Advanced Software Architecture

Goal: To fill out the coverage of software architecture by including advanced techniques and bridging architecture with source code.

Description

This course rounds out the coverage of software architecture that was started in the earlier course. More depth is provided in creating information and behavior models, following the Catalysis approach. It covers additional component design techniques, including ways to build smarter connectors by assigning them goals to achieve or a domain to control. Projects vary and so too should our architecture models. A case study describes four different kinds of projects and how architecture models were adapted to fit their needs, emphasizing or de-emphasizing parts as needed.

Systems are implemented with source code and this course describes how architecture models are implemented in code, including a style of programming that makes it possible for code readers to infer the architecture. Models on paper invariably become outdated, so techniques for handling this drift are discussed. It covers Model Driven Engineering, designing within a framework, and the design of detailed API’s.

The course also covers some additional topics on risk, anti-patterns of architectural design, and resources for learning more. Course participants will design and analyze a complex system during the exercises, which account for about 40% of class time.

Detailed topic list

  • Advanced architectural techniques
    • Detailed information, behavior, and component modeling
    • Detecting architectural mismatch
    • Analyzing architectures
    • Avoiding top-down design
    • Varying modeling detail by project needs/type
  • Bridging architecture and code
    • Model-code consistency
    • Architecturally evident coding style
    • Managing model-code drift
    • Model Driven Engineering and the OMG’s MDA
    • Frameworks
    • Detailed API design
    • Architectural refactoring
    • Modeling existing code and systems
  • Engineering, management, and risk
    • Integrating risk with process
    • Canonical risks in domains
    • Migration planning
  • Architecture anti-patterns
  • Survey of architecture resources

We can reconfigure this course to include some of the following topics:

  • SEI’s Quality Attribute Workshop
  • SEI’s Attribute Driven Design
  • SEI’s Architectural Tradeoff Analysis Method (ATAM)
  • Design for testability
  • Product Line Architectures
  • Service Oriented Architecture

Since this is a 3-day course, we have some amount of latitude in tailoring the course content for your needs.

Audience

This course is suitable for managers, programmers, developers, designers, and architects who have taken the Software Architecture with UML class. Because of the need to track individual progress on a few exercises during the course, the maximum class size is 20.

Instructor

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.

Contact

Email info@rhinoresearch.com

Related courses

The Software Architecture with UML course must be taken before this one. An alternative is to take the 5-day course, Software Architecture Marathon, which is the combination of the them.

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

Blog

subscribe via RSS

About

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

Address

info@rhinoresearch.com
124 W 60th St #37L
New York, NY 10023