22
K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

Embed Size (px)

Citation preview

Page 1: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing Introduction to Software System Design

Page 2: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Information systems design

Software is an example of an artifact. An artifact is:

a product of human art & workmanship(Oxford dictionary)

Artifacts need to be:– designed (in order to meet some specific need)– fabricated (according to the plans created by

the design)

Page 3: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

The Waterfall Approach

1. Requirements Analysis2. Solution Design3. Software Creation4. Software Testing5. System Hand-over6. Maintainance

Page 4: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Requirements Analysis

Requirements Analysis is primarily concerned with

what the end user wantsNeed knowledge of the problem domain the solution space(often part of feasibility study)

Page 5: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Systems Analysis

This task specifieswhat the chosen solution should doTwo forms of requirement emerge

from this: functional requirements non-functional requirements

Page 6: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Software Design

Design is concerned withhow the requirement is to be met by

the eventual system

The designer’s task is to solve the problems posed by requirements elicitation and systems analysis

Page 7: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

A major difficulty

The fundamental problem is that designers are obliged to use current information to predict a future state that will not come

about unless their predictions are correct. The final outcome of designing has to be

assumed before the means of achieving it can be explored: designers have to work

backwards in time from an assumed effect upon the world to the beginning of a chain of events that will bring the effect about

(J C Jones, Design Methods: Seeds of Human Futures, 1970)

Page 8: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

The design process

Purpose: to produce a plan which can be used as a blueprint for the implementation, which describes:– system structure (how elements are

related)– how elements fit together

For software design an added difficulty is the use of static forms to model dynamic properties of our solution

Page 9: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

The design plan should...

describe the process aspects of the design describe the product aspects of the design

Software is distinguished from artifacts such as bridges, clocks etc because of this dual nature of design.

Page 10: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

How designers work

dom

ain

know

ledg

e

Page 11: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

How designers work

Experienced designers working in familiar domains will make extensive use of experience (reuse of domain knowledge)

Work in an opportunistic manner, adapting strategy to problem and evolving solution

If no domain knowledge then use of a design method (method knowledge) is the substitute

Page 12: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Aspects of Software Design

Information Structure

Interfaces

Processes

Controls

Security

Page 13: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Processes

What the software must do Use the Data Flow Diagram

processes as a basis Create “mini-specifications” for

each action required by the system Event-driven systems: need a mini-

spec for the response to each event

Page 14: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Information Structure

How is the information to be stored? Use Logical Data Structure as the

basis Example:

– Logical Data = “customer information”,– Physical Data = Customer contact table,

Customer Purchasing History, Customer Query History.

Use Normalisation for database design

Page 15: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Interfaces

How will the inputs and outputs look?

Create “sketches” of screen layouts and printouts.

Identify “action points” to link to your process design e.g. command buttons, combo boxes

Consider the “look and feel”

Page 16: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Controls

How does the user know the system is running correctly

Examples:– Can get summary statistics– Cannot accidentally repeat

procedures

Page 17: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Security

Keeping the system safe from interference, keeping it up and running.

Page 18: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Privacy

Keeping information in the system private – not for unauthorised eyes.

Page 19: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

V & V

VerificationAre we building the system right?

ValidationAre we building the right system?

Page 20: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

V & V - some difficulties

Expressing requirements in terms that allow them to be related to the design model

User requirements are likely to change during development

Requirements describe a process and this is difficult to describe analytically

Page 21: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Design Guidelines

Many software development methodologies include the design stage

Page 22: K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design

K. Ingram (with thanks to A. Seddon)

StaffordshireUNIVERSITY

Schoolof

Computing

Design as problem solving

Key factor is the use of abstraction to:– help model solution of essential aspects;– separate logical and physical aspects– help make decisions about choices

The ultimate criteria should be that offitness of purpose