Showing posts from February, 2009

How Business Goals Drive Architectural Design

How do quality attributes affect the architectural design of a software solution? If we only cared about the functional requirements of a software solution, then any architecture and any implementation would suffice. Further, how business goals drive architectural design?

The topic of translating business goals into architectural drivers merits a separate post, however this article from the August 2007 edition of the Computer magazine (IEEE Computer Society) eloquently demonstrates how the architecture of a software solution changes as business goals are refined into quality attribute scenarios. Application of architectural patterns and refining tactics significantly alter the architecture of a software solution.

Constantin K.
Firebrand Architect®

Architecting Software Intensive Systems: A Practitioners Guide

In summary of chapter 5, The Work of an Architect, the author notes that "… this is not intended to be a definitive statement on how to architect. Architecture design is guided by the intuition and judgment of the architect. The purpose here is to provide principles and guidance for how tot think about decomposing a system, what to consider when decomposing the system, and how to capture key design choice and rationale." This chapter alone is worth the price of the book, Architecting Software Intensive Systems: A Practitioners Guide, as it proves invaluable guidance in a clear and concise manner.

Make space on your bookshelf that's located closest to your desk. Buy this book. Use this book.

Few practitioners have the level of depth and breadth necessary to eloquently capture and explain the practical aspects of the software architecture discipline. The author, Anthony J. Lattanze, explains the critical need for separating perspectives (static, dynamic, physical), explains…

The process of learning the principles of software architecture

This is my second year serving as the distance education instructor for Carnegie Mellon's Principles of Software Architecture course. The distance education course is aimed at working professionals and has the SEI Software Architecture paradigm as a backbone. The course is based on the same material taught in the Masters of Software Engineering program at the Carnegie Mellon by David Garlan and Anthony J. Lattanze.

I spend time interacting with students through conference calls, class bulletin board, emails, and assignment grading. It's very interesting to see how professional software engineers and architects with many years of experience learn new ways of thinking and reasoning about software architecture. This experience offers me a unique perspective to see how people learn about a disciplined way of thinking about the art and science of software architecture.

Experienced software engineering professionals who design and build non-trivial software systems as part of their …