Vous êtes sur la page 1sur 20

Software Design &

Architecture
Talat Ambreen
Lecture 6 & 7

Design tasks

Global analysis
Central design tasks

Global evaluation task

Final design tasks

Resource budgeting
Interface definition

Global analysis

Identify the external influencing factors and


critical requirements that could affect the
architecture
Analyze them to come up with strategies for
designing the architecture
If all cannot be satisfied, decide which has
priority, renegotiate a requirement, or change
some external factor to come up with
workable strategies
3

Global analysis cont

Influencing factors

Organizational factors

Technological factors

Development schedule, budget


Organizational attitudes, software process
Available hardware and software technology

Product factors

Performance, dependability, cost


May be different in future versions
4

Global analysis cont

Many factors affect the entire system

Occurs throughout the design

Strategies should address global concerns, but


provide guidance for implementing them locally
New factors, issues or strategies can arise at any
time

Consider factors as a group

Might be contradicting
Sort out conflicts and resolve them
5

Global analysis cont

Complements the risk analysis and/or


requirements analysis
Requirements and risk analyses might
give the analyzed factors

Then develop strategies to the design

Provides a systematic way of


identifying, accommodating and
describing the affecting factors
6

Global analysis cont

Global analysis is a two phased approach:

Phase 1: Analyzing factors

Take as input the organizational, technological


and product factors

Make them explicit

Three (3) step procedure

Step 1: Identify and describe the factors


Step 2: Characterize the flexibility or the
changeability of the factors
Step3: Analyze the impact of the factors
7

Step 1: Identify and describe


the factors

Can the factors influence be localized


to one component or not?
During which stages of development is
the factor important?
Does the factor require any new
expertise or skills?

Step 2: Characterise the flexibility


or the changeability of the factors

Flexibility
Is it possible to influence or change the factor so that it
makes your task of architecture development easier?
In what way can you influence it?
To what extent can you influence it?
Changeability
In what way could the factor change?
How likely will it change during or after development?
How often will it change?
Will the factor be affected by changes in the other
factors?
9

Step3: Analyze the impact of


the factors

If a factor was to change, which of the


following would be affected and how:

Other factors
Components
Modes of operation of the system
Other design decisions

10

Global analysis cont

Phase 2: Develop Issues and


strategies

Three (3) steps procedure

Step 1: Identify issues and influencing factors


Step 2: Develop solutions and specific
strategies
Step 3: Identify related strategies

11

Step 1: Identify issues and


influencing factors

Identify a handful of important issues that are


influenced by the factor and their changeability

Limitations or constraints imposed by factors

A need to reduce the impact of changeability of


factors

E.g Design for portability, change is software technology

Difficulty in satisfying product factors

E.g Aggressive development schedule

High throughput req. may overload CPU

A common solution to global requirements

Error handling and recovery


12

Step 2: Develop solutions and


specific strategies

For each issue, develop strategies that


address the issue.

Reduce or localize the factors influence (e.g buy


rather than build)
Reduce the impact of the factors changeability on
the design and other factors
Reduce or restrict required a need of expertise or
skills
Reduce overall time and effort (how??)

13

Step 3: Identify related


strategies

When a strategy belongs with more


than one issue, dont repeat the
strategy

14

Global analysis

15

16

17

18

19

Class Activity

20

Vous aimerez peut-être aussi