Software System Design Methods Software Systems: Planning & Design 27/06/2016

advertisement
Software System Design
Methods
Software Systems: Planning & Design
27/06/2016
Remember, Dilbert is real life
1
Haiku for CMSCD3005
Weak sun rises late
Melancholic hearts are warmed
By S.S.P.D.
27/06/2016
Remember, Dilbert is real life
2
27/06/2016
Remember, Dilbert is real life
3
Overview of Part II






Historical review
Yourdon System Method
Jackson System Development
SSADM
STRADIS
Information Engineering
27/06/2016
Remember, Dilbert is real life
4
Aims


Deepen your understanding of system
design philosophy/methodology
Understand the roles of different
methods and know where & when to
apply them
27/06/2016
Remember, Dilbert is real life
5
Caution


We are dealing with opinion (and some
facts). Opinions vary.
For matters relating to truth see your
metaphysician or spiritual advisor.
27/06/2016
Remember, Dilbert is real life
6
Suggested Reading



Brooks, F.P, The Mythical Man Month,
Addison-Wesley, 1995
Davies, C.G. and Layzell P.J., The
Jackson Approach to System
Development, Chartwell-Bratt, 1993
Jackson, M.A. Software Requirements
& Specification, ACM Press, 1995
27/06/2016
Remember, Dilbert is real life
7
More Suggested Reading




Yourdon Inc, Yourdon Systems Method,
Prentice-Hall International, 1993
Avison, D.E. & Fitzgerald G, Information
Systems Development, McGraw-Hill,
1995
Adams, D, Dirk Gently’s Holistic
Detective Agency,Pan, 1988
Asimov, I., Prelude to Foundation,
Voyager, 1989
27/06/2016
Remember, Dilbert is real life
8
27/06/2016
Remember, Dilbert is real life
9
Historical Development



Development of design methods
followed a much criticised path (unfairly)
Methods allow building of large &
complex systems
Problem is that user requirements for
change have occured at an alarming
rate.
27/06/2016
Remember, Dilbert is real life
10
Problems of System Design




What are the data to be stored?
How, when & where to capture & check
the data?
How many processes to provide info &
keep data current
Matching h/ware & s/ware to the desired
solution
27/06/2016
Remember, Dilbert is real life
11
A little problem


In environment where there is little
change, these factors give us
something of a problem.
But...
27/06/2016
Remember, Dilbert is real life
12
Dynamic Environment



New data requirements = many
changes (esp. to s/ware)
Effect of new processes unpredictable
Business environment is not as simple a
structure as collect data & transform it
into information
27/06/2016
Remember, Dilbert is real life
13
Emergence of Graphics

Helped to focus thinking & express
ideas unambiguously (?)
– e.g. JSP diagrams
– E-R diagrams
– DFDs
– State Transition Diagrams

Emergence of C.A.S.E.
27/06/2016
Remember, Dilbert is real life
14
What is a SSDM?

“A collection of procedures, techniques,
tools and documentation aids which will
help the systems developers in their
efforts to implement a new system.”
27/06/2016
Remember, Dilbert is real life
15
6 Reasonable Objectives
– Accurate recording of requirements
– A systematic development method that
allows effective progress monitoring
– Provision of an I.S. in reasonable time at
reasonable cost
– Production of well-documented & easily
maintainable system
– Identification of changes early in the
development process
– Final system to be liked by users
27/06/2016
Remember, Dilbert is real life
16
3 Design Philosophies

Over time, three philosophies to system
design have emerged:
– Data-flow oriented
– Data-structure oriented
– Object oriented


JSD fits into #2 but also, in part, in #3.
SSADM sits in #1.
27/06/2016
Remember, Dilbert is real life
17
NCC Bastion of Tradition



The National Computing Centre (NCC)
in Manchester devised an approach to
system development.
This method is often known (in the UK)
as the traditional approach.
Follows a waterfall lifecycle model
27/06/2016
Remember, Dilbert is real life
18
NCC Outline






Feasibility study
System investigation
System analysis
System design
Implementation
Review and maintenance
27/06/2016
Remember, Dilbert is real life
19
Criticisms of the approach
– Fails to meet management needs
– Unambitious system design
– Models of processes are unstable
– Output-driven design  inflexibility
– User dissatisfaction
– Documentation problems
– Incomplete systems
– Application backlog
– Maintenance workload
27/06/2016
Remember, Dilbert is real life
20
SSDM Domain

Which aspects of lifecycle are covered?

Is a lifecycle=SSDM?
27/06/2016
Remember, Dilbert is real life
21
Functional Decomposition


Most early methods and many of
today’s are based around the notion of
development by functional
decomposition.
What is functional decomposition?
27/06/2016
Remember, Dilbert is real life
22
27/06/2016
Remember, Dilbert is real life
23
Functional Decomposition





Also known as top-down development
Widely deemed to be a “good thing”
Regard thing to be developed as a
hierarchy
State top level, and decomposing into
smaller objects.
Decomposition continues until code
level.
27/06/2016
Remember, Dilbert is real life
24
Scenario
A car hire firm recently installed a
terminal which is used to record the
dates when cars are hired out and
returned. When a car is taken out the
reg. no. is keyed in prefixed by ‘[‘ and
the date (no. of days since system
commissioning) is automatically
entered. For returns, no. is keyed in with
a ‘]’ and date added.
27/06/2016
Remember, Dilbert is real life
25
Functional Requirements

Manager wants a system to:
– display number of separate hire contracts
– display the average number of days for
which a car is hired.

Thus we need to:
– Compute the information
– Output it
27/06/2016
Remember, Dilbert is real life
26
Computation

Computation comprises three parts:
– Count number of separate contracts (i.e.
count the ‘[‘s).
– Total the number of days for which cars are
hired
– Compute the average.

Now write the structured English...
27/06/2016
Remember, Dilbert is real life
27
BEGIN
Initialise #contracts, total days = 0
Get 1st transaction
WHILE not end of transactions DO
IF car taken out THEN
Inc #contracts
total days = total days - taken out date
ELSE
total days = total days + return date
Get next transaction
Display #contracts
IF #contracts <> 0
Display total days/#contracts
END
27/06/2016
Remember, Dilbert is real life
28
Changed Requirements

Now amend the system so that it also
displays the longest period of hire.
27/06/2016
Remember, Dilbert is real life
29
Changed Requirements #2

Now produce two separate reports:
– 1 for hire periods < 1 week
– 1 for hire periods >= 1 week
27/06/2016
Remember, Dilbert is real life
30
Changed Requirements #3

Now allow the system to run even when
there are contracts outstanding.
27/06/2016
Remember, Dilbert is real life
31
Download