lecture 19 engineering design resolution: generating and ... › payton › courses ›...

47
Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov. 11, 2008 Lecture 19 Engineering Design Resolution: Generating and Evaluating Architectures

Upload: others

Post on 28-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Software EngineeringITCS 3155Fall 2008

Dr. Jamie PaytonDepartment of Computer ScienceUniversity of North Carolina at Charlotte

Nov. 11, 2008

Lecture 19Engineering Design Resolution: Generating and Evaluating

Architectures

Page 2: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

22

Lecture Overview

TodayChapter 10• How to Generate Software Architectures• Functional decomposition• Impact of quality attributes on architectural design

Page 3: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Announcements

Look at Appendix B. This is the full AquaLush Case Study including SRS, Use Cases, SAD, …

Refer to this before handing in deliverable

3

Page 4: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Architectural Design

In architectural design, we specify:Structure -- the software program’s major parts• Responsibilities• Properties• Interfaces

Behavior -- interactions among software program’s major parts

High-level description of structure and behavior is called asoftware architecture (This is where we are…)

4

Page 5: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

5

Generating and Improving Architectures

Generate candidate architecturesFirst step in architectural design resolution

How?Commonly used techniques• Functional decomposition• Quality attribute-based decomposition• Modifying existing architecture• Elaborate architectural style• Transform conceptual model

Page 6: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Techniques to Generate Architectures

1) Functional decompositionLook at the functional requirements from the SRS and USE Case documentation that we have already generated. More Later.

2) Quality attribute-based decompositionStart with the non-functional requirements to begin creating the architecture. More later.

6

Page 7: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Techniques to Generate Architectures

3) Modifying existing architectureDo you have access to existing system. Perhaps it can be used as the basis for creating the architecture of the new system.

This is not commonly used for a couple of reasons.1) may have no access to a similar system.2) if you do have access to an existing system, you

are probably replacing it. If that is the case, one could study it to determine what deficiencies the current system contains.

7

Page 8: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Techniques to Generate Architectures

4) Elaborate architectural styleDesign Patterns. A general reusable solution to a commonly occurring problem in software design. In other words, a template to solve a problem that is adapted to your specific problem…

5) Transform conceptual modelChapter 11… next week

8

Page 9: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

9

Functional Decomposition

Define functional components that are coherent collections of functional and data requirements

Study SRS and USE CasesBrainstorm • Candidate modules• Relationships between modules

Page 10: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

AquaLush Use Case

10

Operator

Set Irrigation Parameters

Toggle Irrigation

Manual ControlIrrigation

Make Repairs

Report FailuresMaintainer

Start up

IrrigateValve

Sensor

Page 11: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

AquaLush Use Case

11

Operator

Set Irrigation Parameters

Toggle Irrigation

Manual ControlIrrigation

Make Repairs

Report FailuresMaintainer

Start up

IrrigateValve

Sensor

User interface

Irrigation Control

Monitor and repair

Page 12: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

12

AquaLush Functional Decomposition

AquaLush prioritized requirementsConfigure program at startupControl irrigation• Manually• Automatically

Provide user interfaceAllow users to monitor and repair system

Page 13: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

13

Functional Decomposition Example:AquaLush Components

User InteractionIrrigation Control

Monitor and Repair

FunctionalComponent

Legend

Startup We are displaying all our major components with simple boxes along with a legend.

What are we missing?

Page 14: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

14

Functional Decomposition Example:AquaLush Component Interactions

Who communicates with each other? Now we are getting there. We are using a simple box and line diagram.

Still not completely finished.

Page 15: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

15

Functional Decomposition Example:AquaLush Data Storage (Option 1)

Functional Component

LegendInteracts With

AquaLush State

Data Store

AquaLush Configuration

User Interaction

Irrigation ControlMonitor and Repair

Startup

x Reads & Writes y

x Reads y

x

x

y

y

The configuration data must be stored in permanent storage. Failed/repaired parts are also stored.

How does Irrigation Control know when the system changes?

Answer: Polling

Page 16: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

16

Functional Decomposition Example:AquaLush Data Storage (Option 2)

Functional Component

LegendInteracts With

AquaLush State

Data Store

AquaLush Configuration

User Interaction

Irrigation ControlMonitor and Repair

Startup

x Reads & Writes y

x Reads y

x

x

y

y

In this design “Monitor and Repair” notifies “Irrigation Control” when a change is made.

“Irrigation Control” reads data store for current state.

There are tradeoffs here!!!

Increased Coupling!!!

Page 17: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

17

Quality Attribute-based Decomposition

Define modules and relationships to satisfy quality attributes

Add modules and relationships later to meet functional and data needs

Page 18: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

18

Quality Attributes

We’ve heard of quality attributes before……but we called them Non-functional requirements

Classes of Quality AttributesDevelopment attributesOperational attributes

Define modules and relationships to satisfy non-functional requirements

Add modules and relationships later to meet functional and data needs

Page 19: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

19

Quality Attributes

Also known as Non-functional requirement…

A quality attribute is a characteristic or property of a software product independent of its function that is important in satisfying stakeholder needs.

A quality attribute is a characteristic or property of a software product independent of its function that is important in satisfying stakeholder needs.

Page 20: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Development Attributes

Applies to the Developer:

Maintainability –Correctability – fixing bugs as they appear Improvability – adding functionalityPortability – moving to another platformModifiability – changing functionality

Reusability –Are we creating modules that may be used by other systemsIs it a priority?

20

Page 21: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Development Attributes

Testability –Is the design done in a way that facilitates the testing process

What attribute helps in creating a system that is easy to test?

Answer: Low coupling

21

Page 22: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

22

Development Quality Attributes

MaintainabilityDegree to which a product can be corrected, improved, or ported• Specific maintainability attributes

ModifiabilityPortability

ReusabilityDegree to which a product’s parts can be reused in another product or future versions

TestabilityDegree to which a product’s associated requirements can be validated through testing

Page 23: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Operational Attributes

Applies to the User, Customer and Developer:Performance

Metric –Latency – startup time OR time delay between the moment something is initiated, and the moment one of its effects beginsor becomes detectableMemory usageThroughput - the amount of work that a computer does in a given time period.

ISDN has a latency of about 10ms. Its thoughput may only be twice that of a modem, but its latency is ten times better, and that's the key reason why browsing the web over an ISDN link feels so much better than over a modem.

23

Page 24: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

24

Operational Quality Attributes

AvailabilityReadiness for useMetric: downtime

ReliabilityBehaves according to requirements under normal operating conditionsMetric: mean time to failure

SecurityResistance to harm or cause harm by hostile acts or influences

Page 25: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

25

Architectural Decisions toAddress Quality Attributes

PerformanceLocalize time-intensive operations and optimize minimize communicationsUse large rather than fine-grain components

SecurityUse a layered architecture with critical assets in the inner layers

SafetyLocalize safety-critical features in a small number of sub-systems

AvailabilityInclude redundant components and mechanisms for fault tolerance

MaintainabilityUse fine-grain, replaceable components

Page 26: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

26

Architectural Conflicts

Large-grain components improves performance reduces maintainability

Redundant data improves availability makes security more difficultMay decrease performance

Localizing safety-related featuressimplifies securitymore communication so degraded performance

Page 27: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

27

AquaLush Quality Attribute-based Decomposition

AquaLush prioritized non-functional requirements1. Reusability

• Main irrigation software components must be reused in future versions

2. Modifiability• Must accommodate changes in irrigation strategy

3. Hardware adaptability• Must work with various valve types, sensors, displays, keypads,

screen buttons

4. Reliability• We can trust the system to perform accurately

Page 28: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

28

Quality Attribute Decomposition Example:Addressing Reusability

Reusability requirements can be met by making parts highly modular

Small, cohesive partsParts hide informationLoosely coupled to other parts

Irrigation module must be reusableCreate a separate irrigation module

Page 29: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

29

Quality Attribute Decomposition Example:Addressing Modifiability

Irrigation Control module must have modifiable strategies

Can also be met by making Irrigation Control module highly modular• Can replace or modify individual strategies

Module

Legend

Part Of

Irrigation Control

Manual IrrigationControl

AutomaticIrrigation Control

Page 30: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

30

Quality Attribute Decomposition Example:Addressing Hardware Adaptability

A standard way to achieve hardware adaptabilityuse a device interface module…

… that contains virtual devices

A virtual device is a software simulation of, or interface to, a real

hardware device or system.

A virtual device is a software simulation of, or interface to, a real

hardware device or system.

Page 31: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

31

Virtual Device Characteristics

Simulates an “ideal” device thatDoes exactly one job completely (cohesion)Has a simple, consistent, complete interface (simplicity)Is loosely coupled to the rest of the program (coupling)Hides its implementation (information hiding)Never changes (stability)

If physical device changes, only implementation of virtual device changes

Not the virtual device interface!Typically realized as a family of components for different real devices or systems

A device interface module, in our case

Page 32: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Virtual Device

What is this is an example of?

Design Pattern!!!

The “adapter” design pattern

32

Page 33: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

33

Quality Attribute Decomposition Example:Addressing Hardware Adaptability

Page 34: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

34

Quality Attribute Decomposition Example:Addressing Reliability

One strategy for making systems reliable is to make modules small and interactions simple

Already the case here!

Page 35: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

35

Quality Attribute Decomposition Example:Addressing Missing Requirements

Module

Legend

Interacts With

Part Of

Device Interface

Valve

Sensor

Display

Keypad

Screen Buttons

Irrigation Control

Manual Irrigation Control

Automatic Irrigation Control

User Interface

Need a user interface!

Page 36: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

The 2 Architectures:

36

Module

Legend

Interacts With

Part Of

Device Interface

Valve

Sensor

Display

Keypad

Screen Buttons

Irrigation Control

Manual Irrigation Control

Automatic Irrigation Control

User Interface

Page 37: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

37

Generating Architectures

Commonly used techniquesFunctional decompositionQuality attribute-based decompositionTransform conceptual model (next week)Modifying existing architecture (we don’t have one)Elaborate architectural style (soon)

Page 38: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

38

Architectural Design Process

We’ve generated…Now, how do we:

Improve?Evaluate?Select?

Architectural Design ProcessSRS : ProblemSAD : Solution

SRS

[adequate architecture]

[else]

Analyze SRS

Generate/ImproveCandidate Architectures

Evaluate CandidateArchitectures

Select Architecture

Finalize Architecture SAD

Page 39: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

39

Improving Architectural Alternatives

Combine AlternativesCombine the best features of two or more alternatives• Example: Combine quality attribute generated with function

decomposition generated alternatives

Impose an Architectural StyleModify an architecture that almost fits a style so that it does fit the style

Apply Mid-Level Design PatternsModify an architecture to take advantage of mid-level design patterns

Page 40: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

40

Evaluating Architectural Alternatives

Two primary techniquesScenariosPrototypes

Techniques may be complementary

Page 41: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

41

Evaluating and Selecting with Scenarios

Walk through each scenarioJudge how well a design alternative supports the scenarioRecord a judgment for each scenario

Use a selection technique to choose an alternativePros and cons (compare strengths and weaknesses)Multi-dimensional ranking• Scoring matrix

Page 42: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

42

Creating Profiles and Scenarios

A utility tree is a tree whose sub-trees are profiles and whose leaves are scenarios

Label the root “utility”Add children with profile names that reflect product requirementsFill in scenarios for each profile• Brainstorm scenarios• Rationalize the list• Weight each scenario• Eliminate low-weight scenarios until each profile has 3 to 10

leavesWrite scenario descriptions

Page 43: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

43

Example Utility Tree

AquaLush Utility TreeProfiles correspond to non-functional and functional requirements!

Importance of Scenario (weight)

Functional requirements

Non-functional requirements

Page 44: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Scoring Matrix

Quantify the scenario values (H = 3, M = 2, L = 1)

Normalize so that the sum of the scenario weights are 1. Do this by dividing the scenario values by the sum of the scenario weights.

Create the scoring matrix for all candidate architectures

See Fig. 10-2-3 (p. 306)

44

Page 45: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

Scenario

Add a Valve type – A developer modifies the AquaLush source code and design documents so that AquaLush supports a new type of valve. The developer completes the process in two days.

How do the two designs handle this scenario?

45

Page 46: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

46

Evaluating and Selecting with Prototypes

Prototypes may be built to test out design alternativesScenario walkthroughs may give rise to a need for prototypingPrototypes provide the factual basis for selection using

Pros and cons (examine strength and weaknesses)Multi-dimensional ranking (scoring matrix)

Disadvantage - expensive

Page 47: Lecture 19 Engineering Design Resolution: Generating and ... › payton › courses › ITCS3155...Lecture 19 Engineering Design Resolution: ... • Example: Combine quality attribute

47

Summary

Generating Software Architectural DesignsUsing:

1) Functional Requirements2) Quality Attributes