Understanding Software Architecture
Live Architecture
-
Is in head(s) of software developer(s), the "software architecture"
-
May be abstract or mostly concrete
-
Is a "mental model", "wetware"; may be fuzzy, inaccurate,
incomplete, incorrect …
Complexity
-
Architecture simplifies the system, by concentrating on structure,
not content or semantics
-
Cognitive complexity: how hard to understand or visualize
Reverse Engineering
-
Extraction of design (or architecture) from implementation
and from developers
-
"Design recovery"