1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University
Outline 1. Understanding Quality Attributes 2. Functionality, Architecture & Quality Attributes 3. Classes of Quality Attributes 4. Quality Attribute Scenarios 5. Business Qualities 6. Architectural Qualities 7. Summary 2
Understanding Quality Attributes Lecture: 3-B 3
Understanding Quality Attributes ABC: business considerations determine qualities that must be accommodated in a system’s architecture. Systems are frequently redesigned not because they’re functionally deficient The replacements are often functionally identical But they are difficult to maintain, port, or scale, or are too slow, or have been compromised by network hackers 4
Functionality, Architecture & Quality Attributes Functionality and quality attributes are orthogonal Achieving quality attributes must be considered throughout design, implementation, and deployment Satisfactory results depend on getting the big picture (architecture) & the details (implementation) right 5
Functionality, Architecture & Quality Attributes (Continue…) Ex: Performance depends partially on how much communication is necessary among components (Arch) what functionality has been allocated to each component (Arch) how shared resources are allocated (Arch) the choice of algorithms to implement selected functionality (Non-arch) how these algorithms are coded (Non-arch) 6
Key Message Architecture is critical to deliver quality requirements, and these qualities should be designed in and can be evaluated at the architectural level Architecture, by itself, is unable to achieve qualities - attention must be paid to the details Within complex systems, quality attributes can never be achieved in isolation. The achievement of one will have an effect, positive or negative, on others 7
Classes of Quality Attributes Qualities of the system availability, modifiability, performance, security, testability, and usability Business qualities time to market, cost & benefit, projected life, target market, rollout schedule, legacy integration Architectural qualities conceptual integrity, correctness & completeness, buildability 8
System Quality Attributes - Issues From an architect’s point of view there are three problems with the previous discussions of system quality attributes Non-operational definitions System is modifiable Overlapping attribute concepts System failure Attribute specific vocabulary Events (performance), attacks (security) etc. 9
Quality Attribute Scenarios 10
A QA-Specific Requirements Source of stimulus - generating entity Stimulus - arriving condition needing consideration Environment - system condition Artifact - part of or entire system Response - activity caused by the stimulus Response measure - measurable results that tests the requirements 11
Types of QA Scenarios There are two of QA scenarios QA General Scenarios System independent scenarios QA Concrete Scenarios System specific scenarios 12
Availability Availability is concerned with system failure and its associated consequences There is a difference in failure and faults Once failure occurs how much time system takes to repair from it Scheduled downtimes are not considered in calculating availability 13
Sample Availability Scenario 14
Availability General Scenarios 15
Modifiability Modifiability is about cost of change Modifiability brings up two concerns; 1. What can change? Functions system computes Platform system exists on Environment within which the system operates 2. When is the change made and who makes it? In past change was made in code Change can be made at development time, compile time, execution time and so on Change can be made by developer, user and System Administrator 16
Sample Modifiability Scenario 17
Modifiability General Scenarios 18
Performance Performance is about timing interrupts, messages, requests from users, or the passage of time basically: how long it takes the system to respond when an event occurs Complexity number of event sources & arrival patterns this characterization is the language to construct general performance scenarios 19
Performance Scenarios Start with a request for service arriving at the system. Satisfying the request consumes resources. Usually events are handled in parallel Arrival Patterns periodic - most often seen in real-time systems stochastic - events arrive according to some probabilistic distribution sporadic - a pattern that can’t be represented by either 20
Sample Performance Scenarios 21
Performance General Scenarios 22
Reading Assignment Three System QA 1. Security 2. Testability 3. Usability 23
Communicating Scenarios Each attribute community has its own vocabulary; different terms can mean the same thing The problem is for the architect to understand which stimuli represent the same occurrence, which are aggregates of other stimuli, and which are independent Ex: a performance event may be atomic or an aggregate of other lower-level occurrences 24
Quality Attribute Stimuli 25
Business Qualities A number of business quality goals frequently shape software’s architecture; Time to Market Cost and Benefit Projected lifetime of the System Targeted Market Rollout Schedule Integration with Legacy Systems 26
Architectural Qualities Besides system’s and business’ qualities there are some directly related to architecture; Conceptual Integrity It unifies design of the system at all levels Architecture should do similar things in similar ways Correctness and Completeness Essential for the architecture to allow for all of the system’s requirements and runtime resource constraints to be met Buildability Allows the system to be completed by the available team in a timely manner 27
28 Summary Any Questions?