Software architecture book chapter: Essential Modeling Relationships

I have heard from a few people who were amazed that I was actually working on my book. I suppose that is fair since it’s been on the back burner for so long, it’s hard to believe I’m working on it full time. In case you are wondering, it’s just like writing a thesis, and creating the diagrams is still a pain in the boo-tay.

Comments are very much appreciated. I’ve disabled the annoying CAPTCHA so you should be able to comment here easily, or just email me.

Without further blog fodder, here’s another chapter.

EDIT: September 1 2008. Slightly revised chapter.

Outline

Part I: Narrative

  1. Introduction
  2. Risk Profiles
  3. Essential Modeling Relationships
  4. Desirable Model Traits
  5. Architecture Models
  6. Building an Architecture
  7. Working with Architecture Models

Part II: Essays

  1. Technical Architecture styles
  2. Model refinement
  3. Modeling mastery
  4. Static and dynamic runtime models
  5. Things that are hard about software architecture
  6. Modeling frameworks
  7. Architecture anti-patterns
  8. MDE / DSM
  9. Product line architectures
  10. Architecturally evident coding style
  11. Separating concerns
  12. Architecture vs. Design
  13. Architecture Design Languages (ADLs)
  14. Using UML as an Architecture Description Language
  15. Humans as architecture analysis machines
  16. Architecture Hoisting
  17. History of Software Architecture
  18. Non-greenfield architecture
  19. The chief architect myth
  20. Working within management processes
  21. SME working sessions

Part III: Reference

  1. Model types
  2. Applying models
  3. Concepts
  4. Quality attributes
  5. Architectural styles