functionality and architecture quality attributes eec 521...

6
EEC 521 Software Engineering EEC 521: Software Engineering Quality Attributes EEC 521 Software Engineering Quality Attributes • Business considerations determine quality attributes • These are over and above functionality • It’s not enough to build just any functional system EEC 521 Software Engineering Functionality and Architecture Functionality and quality attributes are orthogonal I can build a horribly inefficient, correct program Purpose of today’s lecture is to think about quality attributes in a disciplined manner Functionality is independent of the structure of the system! I can build a monolithic program The whole idea behind software architecture is to see how functionality interacts with other qualities EEC 521 Software Engineering What systems do you Like? • Think of all the software systems you use (mail programs, editors, compilers, etc). Make a list. Pick the one you “like” the most.

Upload: vantu

Post on 22-Mar-2018

223 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Functionality and Architecture Quality Attributes EEC 521 ...selab.csuohio.edu/~nsridhar/teaching/fall07/eec521/slides/Lecture... · Software Engineering EEC 521: Software Engineering

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.

Page 2: Functionality and Architecture Quality Attributes EEC 521 ...selab.csuohio.edu/~nsridhar/teaching/fall07/eec521/slides/Lecture... · Software Engineering EEC 521: Software Engineering

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

Page 3: Functionality and Architecture Quality Attributes EEC 521 ...selab.csuohio.edu/~nsridhar/teaching/fall07/eec521/slides/Lecture... · Software Engineering EEC 521: Software Engineering

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.

Page 4: Functionality and Architecture Quality Attributes EEC 521 ...selab.csuohio.edu/~nsridhar/teaching/fall07/eec521/slides/Lecture... · Software Engineering EEC 521: Software Engineering

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

Page 5: Functionality and Architecture Quality Attributes EEC 521 ...selab.csuohio.edu/~nsridhar/teaching/fall07/eec521/slides/Lecture... · Software Engineering EEC 521: Software Engineering

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

Page 6: Functionality and Architecture Quality Attributes EEC 521 ...selab.csuohio.edu/~nsridhar/teaching/fall07/eec521/slides/Lecture... · Software Engineering EEC 521: Software Engineering

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?