Chapter 2 - Why is Architecture Important Flashcards

1
Q

10 reasons an architecture is vital

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

3 additional aspects that are further enabled by an architecture but do not necessarily depend on it

A
  • 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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How is arch involved with system performance

A

involves managing the time-based behavior of elements, their use of shared resources, and the frequency and volume of inter-element communication

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How is arch involved with system modifiability

A

involves assigning responsibilities to elements so that the majority of changes to the system will affect a small number of those elements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How is arch involved with system security

A

involves managing and protecting inter-element communication and controlling which elements are allowed to access which information

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How is arch involved with system scalability

A

involves localizing the use of resources to facilitate introduction of higher capacity replacements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How is arch involved with system reusability

A

involves restricting inter-element coupling so that a given element has minimal attachments to its environment when extracted

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Why is it important that an architecture facilitates managing change

A

80% of a SW system’s cost comes from changes that need to be made after initial deployment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a local change

A

a change that affects only one component or one connector

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a non-local change

A

a change that affects more than one component or connector but retains the overall architecture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is an architectural change

A

a change to the underlying architecture (i.e. the fundamental ways that elements interact)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How does an architecture enhance communication with stakeholders

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How does an architecture define a set of constraints on the implementation

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How does the architecture influence the organizational structure

A
  • 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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How does the arch allow for improved cost and schedule estimates

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the benefit of the arch as a transferable/reusable model

A
  • allows code to be reused and system to be built faster
  • client will like the reduced cost
  • can form a product line allowing a company to establish a vertical market
17
Q

What is a product line

A

a family of SW systems all built using the same set of reusable assets (i.e. the architecture)

18
Q

The main benefit of an arch in regards to using COTS or open source SW

A

allows architects and project managers to know what COTS or open source SW will be needed and how it needs to fit before we start the implementation.

19
Q

The 4 payoffs of using COTS or open source SW

A
  • decreased time to market
  • increased reliability
  • lower cost
  • flexibility
20
Q

What does it mean to restrict design vocabulary

A

we reduce the design complexity of the system by voluntarily restricting ourselves to a relatively small number of choices of elements an interactions

21
Q

6 benefits of restricting design vocabulary

A
  • minimize design complexity
  • enhance reuse
  • simpler designs that are more easily understood
  • more capable analysis
  • shorter selection time
  • greater interoperability
22
Q

How is the arch used as a basis for training

A

showing the module structures helps a new member learn the project structure

showing component-and-connector structures allows a new member to learn how the system is supposed to work and accomplish its job