Upload
lewis-maxwell
View
213
Download
0
Embed Size (px)
Citation preview
K. Ingram (with thanks to A. Seddon)
StaffordshireUNIVERSITY
Schoolof
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)
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
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)
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
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
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)
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
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.
K. Ingram (with thanks to A. Seddon)
StaffordshireUNIVERSITY
Schoolof
Computing
How designers work
dom
ain
know
ledg
e
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
K. Ingram (with thanks to A. Seddon)
StaffordshireUNIVERSITY
Schoolof
Computing
Aspects of Software Design
Information Structure
Interfaces
Processes
Controls
Security
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
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
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”
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
K. Ingram (with thanks to A. Seddon)
StaffordshireUNIVERSITY
Schoolof
Computing
Security
Keeping the system safe from interference, keeping it up and running.
K. Ingram (with thanks to A. Seddon)
StaffordshireUNIVERSITY
Schoolof
Computing
Privacy
Keeping information in the system private – not for unauthorised eyes.
K. Ingram (with thanks to A. Seddon)
StaffordshireUNIVERSITY
Schoolof
Computing
V & V
VerificationAre we building the system right?
ValidationAre we building the right system?
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
K. Ingram (with thanks to A. Seddon)
StaffordshireUNIVERSITY
Schoolof
Computing
Design Guidelines
Many software development methodologies include the design stage
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