Chapter 2 - Why is Architecture Important Flashcards
10 reasons an architecture is vital
- will inhibit or enable a system’s driving quality attributes
- allows you to reason about and manage change as the system evolves
- enables early prediction (i.e. before system is built) about a system’s qualities
- when well-documented it enhances communication among stakeholders
- defines a set of constraints on subsequent implementation
- dictates the structure of an organization and vice versa
- allows the architect and project manager to reason (which decent accuracy) about the cost and schedule
- can be created as a transferable, reusable model that can form the heart of a product line
- guides design by restricting design alternatives (hence reducing the design complexity)
- can be the basis for training a new team member
3 additional aspects that are further enabled by an architecture but do not necessarily depend on it
- clearly documents early (and hence expensive to change) design decisions (can include the rationale behind and thus make easier to understand later)
- can be a basis for evolutionary prototyping
- allows a better understanding of the COTS or open source SW that will be needed later and facilitates its inclusion
How is arch involved with system performance
involves managing the time-based behavior of elements, their use of shared resources, and the frequency and volume of inter-element communication
How is arch involved with system modifiability
involves assigning responsibilities to elements so that the majority of changes to the system will affect a small number of those elements
How is arch involved with system security
involves managing and protecting inter-element communication and controlling which elements are allowed to access which information
How is arch involved with system scalability
involves localizing the use of resources to facilitate introduction of higher capacity replacements
How is arch involved with system reusability
involves restricting inter-element coupling so that a given element has minimal attachments to its environment when extracted
Why is it important that an architecture facilitates managing change
80% of a SW system’s cost comes from changes that need to be made after initial deployment
What is a local change
a change that affects only one component or one connector
What is a non-local change
a change that affects more than one component or connector but retains the overall architecture
What is an architectural change
a change to the underlying architecture (i.e. the fundamental ways that elements interact)
How does an architecture enhance communication with stakeholders
the views that are created from the architecture enable communication by providing something a way for all types of stakeholders (technical and non-technical) to reason about the system
How does an architecture define a set of constraints on the implementation
the set of prescribed elements must be implemented
the elements must interact in the prescribed fashion
each element must fulfill its responsibility to the other elements as dictated
How does the architecture influence the organizational structure
- development teams are formed around different architectural structures
- the arch is the basis of the WBS
- maintenance teams are also formed around arch structures
How does the arch allow for improved cost and schedule estimates
a top-down and bottom-up estimate can be done for each architectural structure. The best cost estimate of each structure is a consensus between top-down and bottom-up estimates. Then you sum those estimates over all the structures