Software Architecture-Assessment 6

Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

What are the 6 quality attributes the chapter is concerned with?

1. Availability: The ability of the system to remain available in spite of abnormal processing conditions including system failures, incorrect inputs, and others. 2. Modifiability: The ability of the system to accommodate changes to the system's services or environment the system executes within. 3. Performance: The ability of the system to meet expected execution requirements such as response time and transactions executed per minute. 4. Security: The ability of the system to prevent or detect unauthorized access to services or data maintained by the system. 5. Testability: The ease in which defects (bugs) in the system's components can be identified. 6. Usability: The ease in which the system's users are able to productively use the system.

What are the Four Structural Qualities of well-designed architectures?

1. Cohesive / Loosely Coupled Components: The architecture should be feature components whose functional responsibilities are allocated on the principles of information hiding and separation of concerns i.e. encapsulated, cohesive, and loose coupled designs. 2. Encapsulation w/ Interfaces: Each component should have an interface that encapsulates changeable aspects of the implementation. Interfaces should allow multiple teams to implement their components independently of each other. 3. Based on Architectural Patterns: The architecture should be based on architectural and design patterns. There should be a minimum of wheel reinvention when solid, well understood solutions are available. 4. Maintain the Design's Integrity: The system should do the same things in the same way throughout. Consistently use the same patterns and control-strategies.

What are the six components of a Quality Attribute Scenario?

1. Stimulus Source: 2. Stimulus: 3. Artifact: 4. Environment : 5. Response: 6. Response Measure: See Slide 6 or the Section "Quality Attribute Scenarios".

Match each of these stimuli to one of the six quality attribute it best matches. System crash or failure in response to invalid inputs. Change in system configuration or adding additional features to the system design. The arrival rate of work / events to be processed. Unauthorized access to the system. Determining the correctness of a completed project iteration. Minimizing the potential for user entry errors.

1. System crash or failure in response to invalid inputs. : Availability 2. Change in system configuration or adding additional features to the system design. : Modifiability 3. The arrival rate of work / events to be processed. : Performance 4. Unauthorized access to the system. : Security 5. Determining the correctness of a completed project iteration. : Testability 6. Minimizing the potential for user entry errors. : Usability

What are the six practices that produce quality architectures?

1. The architecture should be the product of a single architect or a small team with an identified leader. Move the team towards the system's design goals. 2. Provide the architect the system's functional requirements and a prioritized list of quality attributes i.e. security > performance > extendibility etc. 3. Communicate the architecture to the stakeholders. The stakeholders understand how their concerns are being addressed. 4. Evaluate the architecture's ability to meet functional and quality requirements early in the project lifecycle. 5. Maintain the architecture's documentation. 6. Look out for resource bottlenecks. Performance Bottlenecks i.e. Database performance is usually an issue. Project Resource Bottlenecks i.e. the size of the development team vs. the number of features and delivery schedule.

What are the benefits that Quality Attribute Scenarios have over Non-Functional Requirements?

Non-functional requirements are simple statements that describe some aspect of the system's design. Quality Attribute Scenarios are specific in that they: 1. Describe specific conditions (stimulus) that effect the system's execution. 2. Describe specific features of the system's design that address the issue or mitigate the effects of a failure. 3. Describe metrics that measure the effectiveness of the proposed solution.

Define "Conceptual Integrity" in a system's design.

Put another way, conceptual integrity means 'doing the same things the same way". There are usually 1-2 overarching architectural design patterns that should be adhered to throughout the system's design. If the pattern is ignored or violated by some aspect of the system's implementation this is a violation of the architecture. For example, if a web application's architecture uses the three-tier architecture, all the components having access to the database should be located in the 'service tier'. If a developer embeds a database access in the presentation tier (GUI), it is a violation of the architecture and of the conceptual integrity of the system's design.

Which of the six quality attributes is most likely to be in contention with the other five? Why?

System performance is often in contention with the other five. This is because maximizing performance often requires comprises to other aspects of the design. For example, isolating and/or encrypting sensitive data requires additional processing to access the data which reduces the number of transaction that can be processed per time unit. Increasing modifiability or availability often involves introducing additional layers of abstraction or indirection which because of additional processing also hurts performance.


Set pelajaran terkait

Rheumatological Disorders and Treatment of RA, SLE, and Gout

View Set

Chapter 11: Strategy Formulation and Implementation

View Set

Properties and Changes of matter unit test

View Set

Chapter 4 - Communicating for Success

View Set

Chapter 2: Scanning planes and Scanning Methods

View Set