Lecture 3 FM
Lecture 3 FM
Engineering
User System
requirements requirements Architectural Formal High-level
design specification design
definition specification
Specification
Design
Specification in the software process
System
Formal
requirements
specification
specification
User
High-level
requirements
design
definition
System Architectural
modelling design
Use of formal specification
Formal specification involves investing more
effort in the early phases of software
development.
This reduces requirements errors as it forces
a detailed analysis of the requirements.
Incompleteness and inconsistencies can be
discovered and resolved.
Hence, savings as made as the amount of
rework due to requirements problems is
reduced.
Cost profile
The use of formal specification means that
the cost profile of a project changes
• There are greater up front costs as more time
and effort are spent developing the
specification;
• However, implementation and validation costs
should be reduced as the specification process
reduces errors and ambiguities in the
requirements.
Development costs with formal specification
Cost
Validation
Design and
implementation Validation
Design and
implementation
Specification
Specification
Specification techniques
Algebraic specification
• The system is specified in terms of its
operations and their relationships.
Model-based specification
• The system is specified in terms of a state
model that is constructed using mathematical
constructs such as sets and sequences.
Operations are defined by modifications to the
system’s state.
Formal specification languages
Interface specification
Large systems are decomposed into subsystems
with well-defined interfaces between these
subsystems.
Specification of subsystem interfaces allows
independent development of the different
subsystems.
Interfaces may be defined as abstract data types or
object classes.
The algebraic approach to formal specification is
particularly well-suited to interface specification as it
is focused on the defined operations in an object.
Sub-system interfaces
Interface
objects
Sub-system Sub-system
A B
The structure of an algebraic specification
Informal descr
iption of the sor
t and its oper
ations
Consider an air traffic control system where aircraft
fly through managed sectors of airspace.
Each sector may include a number of aircraft but, for
safety reasons, these must be separated.
In this example, a simple vertical separation of 300m
is proposed.
The system should warn the controller if aircraft are
instructed to move so that the separation rule is
breached.
A sector object
Critical operations on an object representing
a controlled sector are
• Enter. Add an aircraft to the controlled airspace;
• Leave. Remove an aircraft from the controlled
airspace;
• Move. Move an aircraft from one height to
another;
• Lookup. Given an aircraft identifier, return its
current height;
Primitive operations
It is sometimes necessary to introduce additional
operations to simplify the specification.
The other operations can then be defined using
these more primitive operations.
Primitive operations
• Create. Bring an instance of a sector into existence;
• Put. Add an aircraft without safety checks;
• In-space. Determine if a given aircraft is in the sector;
• Occupied. Given a height, determine if there is an aircraft
within 300m of that height.
Sector specification (1)
SECTOR
sort Sector
imports INTEGER, BOOLEAN
Enter (Sector
, Call-sign, Height)
Sector
Leave (Sector, Call-sign) Sector
Move (Sector, Call-sign, Height)
Sector
Lookup (Sector , Call-sign) Height
Create Sector
Put (Sector
, Call-sign, Height)
Sector
In-space (Sector
, Call-sign) Boolean
Occupied (Sector, Height) Boolean
Enter (S, CS, H) =
if In-space (S, CSthen
) Sexception (Aircraft already in sector)
elsif Occupied (S, H)then S exception (Height conflict)
else Put (S, CS, H)