software architecture
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
enabling incremental development
Software Architecture in Practice, 4th Edition
learning.oreilly.com
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
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
once the architecture has been agreed upon, it becomes very costly—for managerial and business reasons—to significantly modify it. This is one argument (among many) for analyzing the software architecture for a large system before settling on a specific choice.
Paul Clements • Software Architecture in Practice, 4th Edition
influences on organizational structure
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
Every architecture, no matter what it is, partitions possible changes into three categories: local, nonlocal, and architectural.
- A local change can be accomplished by modifying a single element—for example, adding a new business rule to a pricing logic module.
- A nonlocal change requires multiple element modifications but leaves the underlying archite
Paul Clements • Software Architecture in Practice, 4th Edition
If you want your implementation to conform to an architecture, then it must conform to the design decisions prescribed by the architecture. It must have the set of elements prescribed by the architecture, these elements must interact with each other in the fashion prescribed by the architecture, and each element must fulfill its responsibility to t... See more
Paul Clements • Software Architecture in Practice, 4th Edition
architecture should prescibe constraints on implementation
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
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