software architecture
Software architecture is a manifestation of the earliest design decisions about a system, and these early bindings carry enormous weight with respect to the system’s remaining development, its deployment, and its maintenance life. It is also the earliest point at which these important design decisions affecting the system can be scrutinized.
Rick Kazman • Software Architecture in Practice, 4th Edition
Kimsia added 14d
architecture maniffests early design decisions
This practice gained attention in the early 2000s through the ideas of Alistair Cockburn and his notion of a “walking skeleton.” More recently, it has been adopted by those employing MVP (minimum viable product) as a strategy for risk reduction.
Paul Clements • Software Architecture in Practice, 4th Edition
Kimsia added 14d
enabling incremental development
This point follows from the previous two: Architecture not only imbues systems with qualities, but does so in a predictable way.
Rick Kazman • Software Architecture in Practice, 4th Edition
Kimsia added 14d
the two earlier points are: 1) a system ability to meet desired or required quality attributes is mostly determined by its architecture 2) the ease of makcing chnages (modifiability) is a quality attrbute
Many systems are built as skeletal systems that can be extended using plug-ins, packages, or extensions. Examples include the R language, Visual Studio Code, and most web browsers.
Rick Kazman • Software Architecture in Practice, 4th Edition
Kimsia added 14d
enabling incremental development
The fidelity of the system increases as extensions are added, or early versions are replaced by more complete versions of these parts of the software. In some cases, the parts may be low-fidelity versions or prototypes of the final functionality; in other cases, they may be surrogates that consume and produce data at the appropriate rates but do li... See more
Paul Clements • Software Architecture in Practice, 4th Edition
Kimsia added 14d
enabling incremental development
The software development community is coming to grips with the fact that roughly 80 percent of a typical software system’s total cost occurs after initial deployment. Most systems that people work on are in this phase. Many programmers and software designers never get to work on new development—they work under the constraints of the existing archit... See more
Rick Kazman • Software Architecture in Practice, 4th Edition
Kimsia added 14d
The benefits of incremental development include a reduction of the potential risk in the project. If the architecture is for a family of related systems, the infrastructure can be reused across the family, lowering the per-system cost of each.
Rick Kazman • Software Architecture in Practice, 4th Edition
Kimsia added 14d
enabling incremental development
Decisions at all stages of the life cycle—from architectural design to coding and implementation and testing—affect system quality. Therefore, quality is not completely a function of an architectural design. But that’s where it starts.
Paul Clements • Software Architecture in Practice, 4th Edition
Kimsia added 14d
Software Architecture in Practice, 4th Edition
learning.oreilly.comKimsia added 14d
A system’s ability to meet its desired (or required) quality attributes is substantially determined by its architecture. If you remember nothing else from this book, remember that.
Len Bass • Software Architecture in Practice, 4th Edition
Kimsia added 14d