System models

advertisement
Lecturer: Sebastian Coope
Ashton Building, Room G.18
E-mail: coopes@liverpool.ac.uk
COMP 201 web-page:
http://www.csc.liv.ac.uk/~coopes/comp201
Lecture 7 – System Models
COMP201 - Software Engineering
1
Lecture Overview
 System models are abstract descriptions of systems
whose requirements are being analysed
 Objectives - To explain why the context of a system should
be modelled as part of the RE process
 To describe
 Behavioural modelling (FSM, Petri-nets),
 Data modelling and
 Object modelling (Unified Modelling Language, UML)
COMP201 - Software Engineering
2
System Models
 User requirements must be written in such a way that
non-technical experts can understand them, e.g., by using
natural language
 Detailed system requirements may be expressed in a
more technical way however
 One widely used technique is to document the system
specification as a set of system models
 These are graphical representations which describe
business processes and the system to be developed
 They are an important bridge between the analysis and
design processes
COMP201 - Software Engineering
3
System Modelling
 System modelling helps the analyst to understand the
functionality of the system and models are used to
communicate with customers
 Different models present the system from different
perspectives:
 External perspective showing the system’s context or
environment
 Behavioural perspective showing the behaviour of the system
 Structural perspective showing the system or data
architecture
COMP201 - Software Engineering
4
“A Picture Paints a Thousand Words”
Person
#name : String
#ssn : String
#dob : Date
#spouse : Person
#children : Set
+Person()
+setName() : void
+setSsn() : void
+setDob() : void
+setSpouse() : void
+setChildren() : Set
+getName() : String
+getSsn() : String
+getDob() : Date
+getSpouse() : Person
+getChildren() : Set
+getAge() : int
Student
-major : String
-classStanding : String
-gpa : float
+setMajor() : void
+setClassStanding() : void
+computeGpa() : void
-is taken by
0..*
-takes
«extends»
0..*
«extends»
Professor
-rank : String
-tenureDate : Date
-department : String
+Professor()
+setRank() : void
+setTenureDate() : void
+setDepartment() : void
+getRank() : String
+getTenureDate() : Date
+getDepartment() : String
COMP201 - Software Engineering
1..1
CourseOffering
-sectionNo : int
-course : Course
-instructor : Professor
-schedule : String
-location : String
-maxEnrollment : int
-enrollment : int
-prerequisites : Set
+CourseOffering()
+setSectionNo() : void
+setCourse() : void
+setInstructor() : void
+setSchedule() : void
+setLocation() : void
+setMaxEnrollment() : void
+get...()
+calcAvailable() : int
0..*
-teaches
-is taught by
5
System Model Advantages
 They can be easier to understand than using a verbose
natural language description
 System models can leave out unnecessary details of the
system so way may focus on what is important
 A system representation should maintain all the
information of a system
 An abstraction deliberately simplifies the system and picks
out its most salient characteristics
 Different models can focus on different approaches to
abstraction
COMP201 - Software Engineering
6
System Model Weaknesses
 They do not model non-functional system requirements
 They do not usually include information about whether a
method is appropriate for a given problem
 They may produce too much documentation
 System models are sometimes too detailed and difficult
for users to understand
COMP201 - Software Engineering
7
Model Types
 Data processing model - showing how the data is processed at
different stages
 Composition model - showing how entities are composed of
other entities
 Architectural model - showing principal sub-systems
 Classification model - showing how entities have common
characteristics
 Stimulus/response model - showing the system’s reaction to
events
COMP201 - Software Engineering
8
Context Models
 Context models are used to illustrate the boundaries of a
system
 Identifying the boundaries of the system to be developed is
not always straightforward
 Social and organisational concerns may affect the
decision on where to position system boundaries
 Architectural models show the system and its
relationship with other systems
COMP201 - Software Engineering
9
Example – Architectural Model of an ATM System
Security
system
Branch
accounting
system
Account
database
Auto-teller
system
Branch
counter
system
Usage
database
Maintenance
system
COMP201 - Software Engineering
10
Process Models
 Process models show the overall process and the
processes that are supported by the system
 Data flow models may be used to show the processes
and the flow of information from one process to another
COMP201 - Software Engineering
11
Example Process Model
Equipment Procurement Process
Specify
equipment
requir ed
Equipment
spec.
Validate
specification
Equipment
spec.
Supplier
database
Delivery
note
Checked
spec.
Supplier list
Find
suppliers
Accept
delivery of
equipment
Get cost
estimates
Spec. +
supplier +
estima te
Choose
supplier
Order
notification
Order
details +
Blank order
form
Within system
boundary
Place
equipment
order
Checked and
signed order form
Delivery
note
Check
delivered
items
Installation
instructions
Install
equipment
Installation
acceptance
Accept
delivered
equipment
Equipment
details
Equipment
database
COMP201 - Software Engineering
12
Behavioural Models
 Behavioural models are used to describe the overall
behaviour of a system
 Two types of behavioural model
 Data processing models that show how data is processed as
it moves through the system
 State machine models that show the systems response to
events
 Both of these models are required for a description of the
system’s behaviour
COMP201 - Software Engineering
13
Data-Processing Models
 Data flow diagrams are used to model the system’s data
processing
 These show the processing steps as data flows through a
system
 IMPORTANT part of many analysis methods
 Simple and intuitive notation
 Show end-to-end processing of data
COMP201 - Software Engineering
14
Example - Order Processing Data Flow Diagram
Or der
details +
blank
order form
Completed
order form
Complete
order form
Signed
order form
Valida te
order
Signed
order form
Send to
supplier
Record
order
Order
details
Signed
order form
Checked and
signed order
+ order
notification
Adjust
available
budget
Order
amount
+ account
details
Orders
file
COMP201 - Software Engineering
Budget
file
15
Data Flow Diagrams
 Data Flow Diagrams track and document how the data
associated with a process is helpful to develop an overall
understanding of the system
 Data flow diagrams may also be used in showing the data
exchange between a system and other systems in its
environment
COMP201 - Software Engineering
16
Data Flow Diagrams
 Data Flow Diagrams have an advantage in that they are
simple and intuitive and can thus be shown to users who
can help in validating the analysis
 Developing data flow diagrams is usually a top-down
process
 We begin by evaluating the overall process we wish to
model before considering sub-processes
 Data flow diagrams show a functional perspective where
each transformation represents a single function or
process which is particularly useful during requirements
analysis since it shows end-to-end processing.
COMP201 - Software Engineering
17
DFD Context diagram
Dried
ingredients
hoppers
Numeric key
pad
Key codes
Drink choice
Hopper
on/off
cup solenoid
Paper
on/off
cup
mechanism cup in place
Pricing information
Availability information
Service inforation
Hopper
low signal
Drinks machine
controller
r
Hot water system
te re
a
t w a tu
Ho per
m
te
Electric
element on/off Hot water valve
open/close
Holding
vessel valve
open/close
Holding
vessel
Coin codes
Service
request
Stirrer on/off
Coin sense
mechanism
Alphanumeric
display
Modem
Stirrer
Temperature
control
Hot water
temperature
Key
Pad
ke y
co d
Level 0 DFD
es
door
service
price a
nd
availab
ility
informa
tion
Alpha
display
hot water element on/off
Operation
control
ta
holding vesse
l
control
Dr
e
alv
rv
ate f
t w n/of
ata
o
ed
da
Sales
data
ci p
es
Modem
hopper motors
on/off
Re
l
Sa
Service data
Maintenance
mode
control
Make
drinks
control
ho
Control
service
request
k
dr
co
in
de
k
st m
at ad
us e
engineering
codes
ink
d a sa l e
ta
s
ON/OFF
Coin
mechanism
oid
n
e
ol f
?
p s n/of
ce
u
a
l
c
o
p
in
p
cu
dr
in
Hopper low?
se d
Coin codes
Hopper low?
Hoppers
open/clo
Drink
recipes
Sales log
3SFE519 S Coope 2004
slide 19
ke
yc
od
Engineering
codes
es
key codes
Drink
code
Product availability
information
Control
maintenance
mode
rd
Passwo
d
receive
Process key
codes
Echo
Alpha
display
k
rin
D ata
d
Coin
codes
Coin
mechanism
reader
Current
Credit
Drink
recipes
Cu
Cr rren
ed t
it
Coin
mechanism
Drink
dispense
control
for
id de
Pa k co
in
Dr
t
Hoppers
ena
bl
mai e disab
nten
le
a
n
mod ce
e
Drink
queue
Alpha
display P
ro
p a mp
ym t f
en or
Drink
Available Drink
availability
code
Hopper low?
checker
door
service en
op
closed
P
Dri aid fo
nk
r
co d
e
Key
Pad
Credit
Update
Credit
Store
COMP201 - Software Engineering
Level 1 DFD
Operation control
3SFE519 S Coope 2004
slide 20
20
Statechart Diagrams
 Statechart Diagrams (or State machine models ) show the
behaviour of the system in response to external and
internal events
 They show the system’s responses to stimuli (the eventaction paradigm) so are often used for modelling real-time
systems
 Statechart diagrams show system states as nodes and
events as arcs between these nodes. When an event
occurs, the system moves from one state to another
 Statecharts are an integral part of the Unified Modeling
Language (UML)
COMP201 - Software Engineering
21
Statechart Diagrams
 An initial state is denoted by a solid circle and is optional
(sometimes the system will start in different places and
thus the initial state should be omitted).
 If required, a final state can also be used; this is denoted
by a solid circle with a ring around it.
 We use a level of abstraction so that we can observe the
essential behaviour of the system we want to model.
 Rounded rectangles are used for states. Each state contains
two components, the state name and a brief description of
the action performed in that state (see next slide).
COMP201 - Software Engineering
22
Example - Microwave Oven Model
Full
power
Timer
Waiting
do: display
time
Half
power
A state machine model
does not show flow of
data within the system
Full power
do: set power
= 600
Number
Full
power
Half
power
Door
closed
Timer
Door
open
Half power
do: set power
= 300
Operation
do: operate
oven
Set time
do: get number
exit: set time
Door
closed
Cancel
Start
Enabled
do: display
'Ready'
Door
open
Waiting
do: display
time
Disabled
Q: Why is there
no final state?
do: display
'Waiting'
COMP201 - Software Engineering
23
Microwave Oven Stimuli
Stimulus
Half power
Full power
Timer
Number
Door open
Door closed
Start
Cancel
Description
The user has pressed the half power button
The user has pressed the full power button
The user has pressed one of the timer buttons
The user has pressed a numeric key
The oven door switch is not closed
The oven door switch is closed
The user has pressed the start button
The user has pressed the cancel button
COMP201 - Software Engineering
24
Statecharts
 Statecharts also allow the decomposition of a model
into sub-models (see figure on next slide).
 A brief description of the actions is included following
the ‘do’ in each state (the word “do” is optional).
 Can be complemented by tables describing the states
and the stimuli.
COMP201 - Software Engineering
25
Statechart Diagram
Operation
Checking
do: check
status
Cook
do: run
generator
OK
Emitter
fault
Turntable
fault
Time
Timeout
Done
do: buzzer on
for 5 secs.
Alarm
do: display
event
Door
open
Disabled
COMP201 - Software Engineering
Cancel
Waiting
26
Statechart Diagrams
 The label on an arc can denote the method called to
move from one state to the next (the event).
 A guard is used to ensure that the system only moves
from one state to the other if the expression is
satisfied.
 A state can contain a subdiagram within it (also called
a composite state). This is useful for example when we
wish to model a subsystem or substates.
 On the next slide, we can see all these elements of a
UML statechart diagram
COMP201 - Software Engineering
27
Statechart Diagrams
Guard
Initial state
Final state
COMP201 - Software Engineering
Composite
States
Actions
28
Finite State Machines
• Finite State Machines (FSM), also known as Finite
State Automata (FSA) are models of the behaviours
of a system or a complex object, with a limited
number of defined conditions or modes, where
mode transitions change with circumstance.
Question: What
language does this
FSA recognise?
COMP201 - Software Engineering
29
Finite State Machines - Definition

A model of computation consisting of
 a set of states,
 a start (initial) state,
 an input alphabet, and
 a transition function that maps input symbols
What language
is recognised
by this FSA?
and current states to a next state
 You may recall finite state
machines (or automata)
from COMP209.
COMP201 - Software Engineering
30
Finite State Machines - Definition
 Computation begins in the start state with an input
string. It changes to new states depending on the
transition function.
 states define behaviour and may produce actions
 state transitions are movement from one state to another
 rules or conditions must be met to allow a state transition
 input events are either externally
or internally generated, which
may possibly trigger rules and
lead to state transitions.
COMP201 - Software Engineering
31
Lecture Key Points
 A model is an abstract system view. Complementary
types of model provide different system information.
 Context models show the position of a system in its
environment with other systems and processes.
 Data flow models may be used to model the data
processing in a system.
 State machine models model the system’s behaviour in
response to internal or external events
Download