Upload
vantu
View
225
Download
5
Embed Size (px)
Citation preview
EEC 521Software Engineering
EEC 521: Software Engineering
Quality Attributes
EEC 521Software Engineering
Quality Attributes
• Business considerations determine qualityattributes
• These are over and above functionality
• It’s not enough to build just any functionalsystem
EEC 521Software Engineering
Functionality andArchitecture• Functionality and quality attributes are orthogonal
– I can build a horribly inefficient, correct program
• Purpose of today’s lecture is to think about qualityattributes in a disciplined manner
• Functionality is independent of the structure of thesystem!
– I can build a monolithic program
• The whole idea behind software architecture is to seehow functionality interacts with other qualities
EEC 521Software Engineering
What systems do you Like?
• Think of all the software systems you use (mailprograms, editors, compilers, etc). Make a list.Pick the one you “like” the most.
EEC 521Software Engineering
Why do you like it?
• Write down why you like your favorite system.
• What is it about this system that provides yourdesired attribute?
EEC 521Software Engineering
Some Example Qualities
• Usability
• Modifiability
• Performance
• Productivity
• Many of these cannot be quantified. So how tostate them as requirements?
EEC 521Software Engineering
Some Observations
• Architecture is critical to achieving qualities.
• Architecture by itself cannot achieve qualities.
• In complex systems, qualities can never beachieved in isolation
• Example: Portability requires highly modularsystem, but that hurts performance
EEC 521Software Engineering
Kinds of Qualities
• System qualities. e.g., Secure
• Business qualities. e.g., Time to market
• Architectural qualities e.g., Conceptual integrity
EEC 521Software Engineering
Quality Attribute Scenario
• A scenario is a short story, a narrative. It mayhave a set format or be free form
• A Quality Attribute Scenario has six parts:– Source of stimulus
– Stimulus
– Environment
– Artifact
– Response
– Response measure
EEC 521Software Engineering
Performance QualityScenario
EEC 521Software Engineering
Modifiability Quality Scenario
EEC 521Software Engineering
Quality Attributes
• Write a quality attribute scenario for the qualityyou identified for your favorite system.
EEC 521Software Engineering
Availability
• Concerned with system failure andconsequences.
• We only care about observable failure.
! = Availability
MTTF = mean time to failure
MTTR = mean time to repair
EEC 521Software Engineering
General Quality Scenarios
• System-independent
• Each of the six parts are shown with the rangeof values they can take
• Concrete scenarios can be generated fromgeneral scenario
EEC 521Software Engineering
General Availability Scenario
EEC 521Software Engineering
Sample Availability Scenario
EEC 521Software Engineering
Testability
• The ability of a system to expose its faults.
• IF there is a fault, how likely is the fault to befound during testing?
• Can be enhanced by providing access to thestate attributes of each module.
• Make everything public, and it’s 100% testable!
• But what happens to modifiability?
EEC 521Software Engineering
General Testability Scenario
EEC 521Software Engineering
General ModifiabilityScenario
EEC 521Software Engineering
General PerformanceScenario
EEC 521Software Engineering
General Security Scenario
EEC 521Software Engineering
General Usability Scenario
EEC 521Software Engineering
Business Qualities
• Time to market
• Cost and benefit
• Projected lifetime of system
• Targeted market
• Rollout schedule
• Integration with legacy systems
EEC 521Software Engineering
Architectural Qualities
• Conceptual integrity
– One vision, defended vigorously
• Correctness and Completeness
– Formal evaluation
• Buildability
– How easy is it to build?