22
Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives Select Architectural Resolution Finalize Software Architectural Document SAD [selected ] [else ]

Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Embed Size (px)

Citation preview

Page 1: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Architectural Design Resolution

AnalyzedSRS

Architectural Design Process

Develop ArchitecturalDesign Alternatives

Evaluate ArchitecturalAlternatives

Select ArchitecturalResolution

Finalize Software Architectural Document

SAD

[selected ]

[else ]

Page 2: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Various Alternatives to Generating Architectural Design

1. Develop Functional Components– Based on transforming SRS functions and data requirements

2. Determine/Modify Components Based on “Quality Attributes”: maintainability, reusability, performance, availability & security (non-functional attributes)– Based on transforming non-functional SRS requirements

3. Modifying Existing Architecture (for follow-on releases)– Based on existing architecture as a starting point and

transforming it to satisfy the new system

4. Elaborate an Architecture Style (chapter 15)– Based on an existing architectural style and elaborate on that

style

5. Transform a Conceptual Model (chapter 11-Destailed Design)– Based on viewing the SRS problem description as a solution

description and transforming that to fit the new system

fromscratch

Page 3: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Architectural Design (team or individual activity?)

• In software engineering, many activities are performed as a team effort --- for

– Productivity – Quality– Morale and General Acceptance

• But for Architectural Design:

1. Better done as an individual first2. Bring together all the individual architectural

design suggestions3. Evaluate the alternatives

Page 4: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Determine Functional Components(Using the “AquaLush Irrigation System” Example in

textbook – p.82 and p.164)

AquaLush Product Vision: The AquaLush Irrigation system will use soil moisture sensors to control irrigation, thus saving money for customers and making better use of water resources.

AquaLush Major Product Features (from requirements):1. - Monitor water usage and limit usage (by moisture level) to amounts set by users2. - Allow users to specify times when irrigation occurs3. - Be operated from a simple central control panel4. - Have a web-based simulator5. - Allow users to monitor parts and schedule repairs

What would you list as major “functional components ?” (e.g.) 1. user interface to initialize, set-up, monitor and control the irrigation system 2. sensor inputs processing 3. water irrigation control 4. web-based simulator 5. parts monitor and repair

Page 5: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Determining Functional Components from SRS(page 289 – 291textbook solution)

1. configure the program at startup2. controlling irrigation (manually and automatically)3. providing a user interface4. allowing users to monitor and repair system

<<component>>User Interface

<<component>>Irrigation Control<<component>>

Monitor and Repair

<<component>>Startup

Do the functional components and the relation “lines” make sense to you? (Should there be a line between User Interface and Startup ?)

From page 180

From page 289

Page 6: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Determining Functional Components(page 289 – 291textbook solution for product)

1. configure the program at startup2. controlling irrigation (manually and automatically)3. providing a user interface4. allowing users to monitor and repair system

<<component>>User Interface

<<component>>Irrigation Control

<<component>>Monitor and Repair

<<component>>Startup

AquaLush PartsStatus

AquaLush Configuration

<<read & write>>

<< read & write

>>

<<startup reads config. data>>

Note that Monitor and Repair component can usethe Data Store to communicatewith Irrigation Control component, without a line between them.

How initialized?

Page 7: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Component Responsibilities

• There needs to be some description of each component’s responsibilities:

– User Interface: interacts with control panel hardware and implements control panel interface; obtains data from Monitor and Repair -------

– Monitor and Repair: Obtains data from Parts Status to pass on to ------

– Irrigation Control: Controls valve, reads sensors; reads clock; implements irrigation cycles; ---

– Startup: reads the configuration data of valves, zones, etc. and send them to Irrigation Control & (also alternatively also include Monitor Repair) ----

– Parts Status: a database that keeps track of all failed and repaired parts, etc.

– Configuration: a database of all the installed parts of valves, sensors, etc. of the customer’s Aqualush system

Page 8: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Determining Functional Components(page 293 textbook - for adding web- simulator)

<<component>>Simulating User

interaction

<<component>>Irrigation Control

<<component>>Monitor and Repair

<<component>>Startup

AquaLush PartsStatus

AquaLush Configuration

<<read & write>>

<< read & write

>>

<<startup reads config. data>>

<<component>>Simulating

Valves and sensors

Same initializationproblem?

Page 9: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Determining Components based on“non-Functional” or “Quality’ attributes

• AquaLush has the following non-functional (NF) requirements:– Reusability : design must be used in the product, web-

simulator, and future versions– Hardware adaptability: design should consider adaptability

to multiple valve types, sensor types, keypads, and screen display types

– Reliability: must not fail “often” in normal usage– Modifiability: accommodate future changes in irrigation

strategy (formula)

Note that reliability of not failing “often” is a nebulous and subjective statement

Page 10: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

NonFunctional: Reusability Attribute

• Requires components to be cohesive and loosely coupled so that they can be reused.

• Consider each component for these:– Would you subdivide User Interface/interaction component

into several subcomponents (interface to Irrigation Control and to Monitor and Repair separately)?

– Would you separate out Irrigation Control component into a) manual and b) auto subcomponents?

- etc.

Irrigation Control

Manual control automatic control

Page 11: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

NonFunctional : Hardware Adaptability & Modifiability

• Requires the component to have device adaptability also implies – separate cohesive subcomponents

– low coupling subcomponents, each representing different device

– hide the device specific internals and keep the interface unchanging

• In AquaLush, the Irrigation Control has interfaces to multiple devices.

• In AquaLush, Monitor and Repair component and Startup component has interface to a data-store

Virtual Device Interface

valve

sensor keypad

displayScreenbuttons

Everything inside the Device Interface components are device dependent, but hiddenfrom outside; all interfaces to outside of the component should stay stable

May changealgorithmbased ondifferent sensors

How would you designa singleread/write“interface” ?

Page 12: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

NonFunctional: Reliability and other components

• Reliability may be argued many ways:– Small cohesive module is by definition more reliable– Add user interface to control irrigation both manually and

automatically AND also have direct control of the devices

User Interface

Irrigation Control

manual auto

Virtual Device Interface

valve Sensor display

keypad Screen buttons

Agree withall the interactionlines ? Do we needa new component ?

EmergencyControl

Designer’s view of providing reliability ---- “ not fail often in normal usage”

Page 13: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Design Alternatives

• Design alternatives are good to have and can improve the design:

– Generate and document these alternatives as the design is getting formulated

– Combine some of the parts of the generated design alternatives from:• Functional Components• Non-functional Components

– Try to alter and fit to an existing Design Style, if applicable

Page 14: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Architectural Design Resolution

AnalyzedSRS

Architectural Design Process

Develop ArchitecturalDesign Alternatives

Evaluate ArchitecturalAlternatives

Select ArchitecturalResolution

Finalize Software Architectural Document

SAD

[selected ]

[else ]

Page 15: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Evaluating Architecture Alternatives

• What does one look at when evaluating architecture?

– Would the architecture result in a system that will satisfy:1. Functionality requirements2. “Quality” (non-functional) requirements

– Maintainability– Reusability– Performance– Availability– Reliability– Security

– Would the architecture result in a system that will • Have “great” user experience or user interface• Delight the customer and the users

We can not tell what will happen since the architecture is not code, wecan only “guess” whether the architecture will most likely meet the aboveconditions

Page 16: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

An Architecture Evaluating Technique

• Utilize a “profile,” which is a set of scenarios generated to fit the characteristics of interest. (e.g.)

– Usage profile is a set of scenarios that describes the user requirements (sometimes known as regular “business” workflow)

– Reliability profile is a set of scenarios that portrays the non-functional requirement of how a system behaves under adverse situations

– Performance profile is a set of scenarios that portrays the non-functional requirements of how a system behaves under time limit constraints or capacity limit constraints

– etc.

• Each architecture alternative is evaluated by going through the scenarios in the profile and assessing whether the architecture, if implemented, would satisfy the profile.

Page 17: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Developing Profiles with “utility tree”

• A utility tree is a tree whose each sub-tree is a “profile” and the leaves of the sub-tree are the scenarios for that profile

Utility tree

Functionalities

Irrigation control (automatic)

Irrigation control (manual)

Maintenance repair

Hardware adaptability

Valve type modification

Adding new valve types

1. The profiles are generated, using SRS and some brainstorming2. The scenarios within each profile are also developed using SRS, ‘team’ brainstorming, and prioritizations.3. Within each profile, keep the number of scenarios to 3 to 104. Each scenario should include: - initial state - activity flow involving actors and the product - post activity state

* * think of special circumstances and non-traditional scenarios, too

Page 18: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Another Architecture Evaluating Technique

• Build a “prototype” of part of or the complete software product to evaluate certain aspects (functional and non-functional) of the product.– Advantages:

• Can provide measurements• Can provide experiential feedbacks

– Disadvantages:• Prototypes takes resources• Prototypes takes time

Much of the prototyping and profiling techniques are aimed at evaluatingthe architecture against the “basic” design principles (discussed earlier) : - feasibility, - adequacy, - economy, and - changeability

Page 19: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Selecting Alternatives

• How do we select the architecture from the various alternatives ?– Evaluate the Pros and Cons of each of the alternatives

• By Number of pros and cons

• By Weights of pros and cons

– Multi-dimensional analysis table (p. 306 of text):• A Column of scenarios

– Weight for each scenario (use normalized weight so each is a fraction of the total and the total is 1)

• A Column for each architectural alternative– Rate all the scenarios for that alternative ( e.g. 1-5)– Score the scenario by multiplying the scenario weight and the rate– Sum the scores for that alternative

• Compare the total score for each of the architectural alternatives

Page 20: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Architectural Design Resolution

AnalyzedSRS

Architectural Design Process

Develop ArchitecturalDesign Alternatives

Evaluate ArchitecturalAlternatives

Select ArchitecturalResolution

Finalize Software Architectural Document

SAD

[selected ]

[else ]

Page 21: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Finalizing The Architectural Design

• This step ensures that the selected architecture does satisfy the various functional and non-functional requirements (and possibly may delight the users) and is clearly documented.

– Architectural design satisfying the “basic” design principles of:• Feasibility• Adequacy• Economy• Changeability

– Also, The SAD document itself is• Well formed (organized)• Complete (include all the components/relationships/descriptions)• Clear (understandable by others)• Consistent (no conflicting information)

(from chapter 8 of text)

Think about thesefor your assignment 4

Page 22: Architectural Design Resolution Analyzed SRS Architectural Design Process Develop Architectural Design Alternatives Evaluate Architectural Alternatives

Design Review in Finalizing the SAD

• A Review is an examination and evaluation of the work by qualified and affected stakeholders

There are many different types of “reviews”:

1. Desk Check – by the author 2. Walkthrough – informal review by team members 3. Inspection – formal review by a trained inspection team with moderator 4. Audit – review conducted by experts who are not part of the team 5. Active Review – inspection by experts who answer specific aspects of the design (this allows pinpoint reviews and is less costly)

A “Formal inspection” requires 3 formal steps:

- preparation - conducting the inspection - rework and inspection “closeout” report