软件体系结构
Artifact
System’s processors, communication channels, persistent storage, processes
Availability General Scenarios (2)
Environment
Normal operation Degraded mode
The achievement of one attribute may negatively (or perhaps positively) influence the achievement of another.
Types of Quality Attributes
Qualities of the system
Architecture and Quality Attributes (Revisited)
Quality attributes can never be achieved in isolation.
Architecture is critical to achieving quality attributes. Architecture alone cannot achieve these qualities.
Understanding Quality Attributes & Design for Availability
主讲教师:李石坚 Email: shijianli@ 助教:陈龙彪 FTP: ftp://10.12.48.107, 用户名 student, 密码student
Why Software Projects Fail?
---The Standish Group's Chaos Report 2004
Systems are frequently redesigned, not because they are functionally deficient, but because they are difficult to maintain, port, or scale, or are too slow, or have been compromised by network hackers.
Attribute Characterization ---Scenario Generation
General scenarios System specific scenarios
A request arrives for a change in functionality, and the change must be made at a particular time within the development process within a specified period
A system design consists of a collection of design decisions.
Some ensure functionality Some ensure quality attributes--- “tactics”
The whole system or some piece of it.
Response
System behavior that exhibits certain quality attributes.
Response measure
When the response occurs it should be measurable so that the requirement can be tested.
A request arrives to add support for a new browser to a Webbased system, and the change must be made within two weeks
Availability Scenarios in Practice
Overlapping attribute concerns
E.g. System failure (Availability? Security?)
Non-uniform vocabulary
E.g. attacks, failures, events
Quality Attribute Scenarios
QAS Parts (1)
Source of stimulus
Some entity that generates the stimulus.
Stimulus---a condition that needs to be considered when it arrives at a system.
α = MTTF / (MTTF + MTTR)
Availability General Scenarios (1)
Source of stimulus
Internal to system External to system
Stimulus---faults
Omission Crash Timing Incorrect response
Availability Modifiability Performance Security Testability Usability
Business qualities
Time to market Cost and benefit…
Overall architectural qualities
If functionality were the only concern we could have implemented a system as one large module in Cobol or even assembly language.
So functionality is a prime goal, but it should not be the only goal.
Architecture and Quality Attributes
It is the mapping of a system's functionality onto software structures that determines the architecture's support for qualities.
Clear interface What font? ...
Examples of architectural aspects of usability
Whether the system provides an “undo’ capability to the user? Can we – reuse data previously entered? These are architectural because they are going to require the cooperation of several elements.
Non-architectural aspects of Performance:
Choice of algorithms How these algorithms are coded
Usability: Architectural. VS NonArchitecture Aspects
Non-architectural aspects of usability:
Availability is concerned with system failure and duration of system failures. Failure VS fault:
A “system failure” is observable by the system’s user. A system fault may cause a “system failure” or it might be masked.
More than 80% of software projects are delivered late, more than half do not include needed features, and cost overruns of 15% or higher are commonplace.
Response
Logging Notification Disabling faulty event sources Switching to a degraded mode…
Response measure
Availability percentage
Tactics
A tactic is a design decision that influences the control of a quality attribute response.
e.g. a message arrives, an event occurs, a system fault…
Environment
What’s the situation when the stimulus occurs?
QAS Parts (2)
Artifact
What elements of the system are stimulated
Performance, ቤተ መጻሕፍቲ ባይዱecurity, availability… On budget, on schedule…
Functionality VS. Quality
Functionality and other quality attributes are orthogonal.
Note functionality does not imply anything about others! Functionality means the ability of the system to do the work intended.