·
4> .
- r'
(
, i
4> . -r' ' ; ( , i ~ An Approach to Structuring for the - - PowerPoint PPT Presentation
4> . -r' ' ; ( , i ~ An Approach to Structuring for the VDM Specification Language Stephen Bear Fli;' HEWLETT HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT PACKARD ~ REQUIREMENTS Allow a large
·
4> .
(
, i
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
REQUIREMENTS
sized units, in a natural way.
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB31
PACKARD
CONSTRAINTS
specification given in the core language with the semantics of a specification given using the structuring constructs.
preserve the semantics of the core language.
SB32
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
A CHOICE
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
S868
PACKARD
OVERVIEW OF MODULES
MODULE.
values, functions and operations.
values of a shared state.
It defines a state type which may be used in other modules.
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
S833
PACKARD
MODULE SYNTAX Module
::
intf: Interface body: {Definitions}
Module
description of constructs provided by,
Definitions
collection of definitions written in end the core language, but using constructs introduced by the interface
SB34
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
OVERVIEW OF IMPORT-EXPORT CONSTRUCTS
by another module.
each other.
hidden construct may not be refered to by any other module.
S935
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
INTERFACE - EXPORT CLAUSE Interface
::
id : Id exp : ModSig
ModSig
::
types : Name -> [TypeDef]
m values : Name -> [Type}
fns : Name -> [FnType] m
Names of constructs with optional syntactic description
S936
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
FULL CONCRETE SYNTAX FOR EXPORT Module INTEGER STACK exports types INTEGER_STACK
POP 0 0> INTEGER using INTEGER_STACK PUSH (INTEGER) using INTEGER_STACK definitions end
5837
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
HEWLETT
PACKARD
CONCRETE SYNTAX WITH IMPLICIT STATE TYPE Module INTEGER STACK exports
POP 0 0> INTEGER PUSH (INTEGER) definitions end If an operation exported by module M does not specify the state type explicitly, then the state type is M and the type is implicitly imported.
SB38
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
LIGHTWEIGHT SYNTAX Module INTEGER STACK exports
POP, PUSH definitions end POP 0 0> INTEGER PUSH (INTEGER) Signatures provided by the definitions need not be repeated in the export clause.
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB39
PACKARD
INTERFACE - IMPORT CLAUSE Interface
::
id : Id
m imp : Id -> Mod Sig exp : ModSig
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB40
PACKARD
IMPLICIT STATE TYPE Module SYMBOL TABLE end imports from INTEGER_STACK
POP 0 0> INTEGER PUSH (INTEGER) If an operation imported from a module M does not specify the state tpe explicitly, then the name of the state type is also M and the type is implicitly imported.
SB41
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
HEWLETT
PACKARD
LIGHTWEIGHT SYNTAX Module INTEGER STACK
Exports
end Operations POP 0 0> INTEGER PUSH (INTEGER) Module SYMBOL TABLE
imports from INTEGER_STACK Operations POP, PUSH
end If a document contains a module which exports a construct and another which imports it, then the signatures need to be repeated. HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
S842
PACKARD
Name:: prefix
: local NAMES seq1 of Id : Id module INTEGER_STACK exports
end Names reflect module structure directly - the prefix indicates where the construct is defined. The full name of POP is INTEGER STACK. POP
SB43
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
r,~
HEWLETT
PACKARD
NAMES OF IMPORTED CONSTRUCTS Module INTEGER STACK exports
end Module SYMBOL TABLE imports from INTEGER_STACK
end
imported.
INTEGER STACK.POP INTEGER STACK.PUSH
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB44
PACKARD
SEMANTICS OF THE CORE LANGUAGE
named construct.
INTEGER_STACK -->
POP --> PUSH -->
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB45
HEWLETT
PACKARD
MODELS OF A SPECIFICATION A model may - or may not - satisfy a specification definitions
RED->
BLUE -> type RED = - -
RED -> BLUE ->
SB46
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
SEMANTICS OF A SPECIFICATION
is-a-model-of C
MODELS x Definitions
set of all models which satisfy the specification. [[spec]] ~ { M 6 MODELS I M is-a-model-of spec}
SS47
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
UNDEFINED CONSTRUCTS ARE UNDETERMINED
RED->
RED->
UE -> BLUE ->
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT RED->
BLUE ->
SS48
PACKARD
MODELS MAY CONTAIN JUNK
RED-> RED-> SQR->
BLUE -> BLUE ->
it contains models which provide denotations for constructs defined or used by T.
SB49
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
module COLOURS exports types RED, BLUE definitions end module COLOURED_BOXES imports from COLOURS types RED, BLUE definitions
RED_BOX = box of RED BLUE_BOX - box of BLUE
end
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
S950
PACKARD
MODELS OF COLOURED BOXES
RED->
RED BOX-> BLUE->
RED->
RED BOX->
LUE_BOX->
RED -> BLUE -> RED BOX-> BLUE
BOX->
~-~
~
RED->
RED_BOX->
BLUE -> BLUE BOX-> HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT UE -> BLUE BOX->
SB51
HEWLETT
PACKARD
MODELS OF COLOURS
RED->
RED BOX-> BLUE->
RED->
RED BOX->
LUE_BOX->
RED -> BLUE -> BLUE BOX->
r------'----------->---
RED->
BLUE -> HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT RED BOX-> UE -> CIRCLE ->
PACKARD
MODELS OF THE COMPLETE DOCUMENT RED ->
RED_BOX ->
BLUE -> BLUE BOX-> [[Document]].6. [[COLOURS]] (\ [[COLOURED_BOXES]]
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
5853
PACKARD
OVERVIEW OF PARAMETERISATION
may be used like any other construct.
another module. Formal parameters are replaced by actual parameters.
constructs may be used like any other construct.
5854
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
INTERFACE - PARAMETER CLAUSE Interface::
id : Id
par: ModSig
imp: Id !1!.>ModSig
exp : ModSig Syntactic description of formal parameters
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB55
rli~
HEWLETT
PACKARD
PARAMETERISED MODULE Module SORT parameters types ITEM functions ARE_ORDERED (ITEM,ITEM) --> Boolean exports functions DO_SORT (seq of ITEM) --> seq of ITEM end Within a parameterised module, formal parameters may be used like any other constructs.
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
5856
PACKARD
INSTANTIATION Interface:: id : Id
part: ModSig imp: Id ~>
ModSig inst ; Id ll!.> Instance exp : ModSig Instance::
mod: Id view: Id !1l.> Name
sig : ModSig An instance of a parameterised module may be created
SB57
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
INSTANTIATION OF SORT Module SORT parameters types ITEM functions ARE_ORDERED (ITEM, ITEM) --> Boolean exports functions DO_SORT (seq of ITEM) --> seq of ITEM end Module MAILING LIST instantiates
INTEGER_SORT as new SORT
(ITEM --> INTEGER, ARE_ORDERED --> GE) Functions DO_SORT (seq of INTEGER) --> seq of INTEGER end
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB58
PACKARD
NAMES OF INSTANTIATED CONSTRUCTS
T. Then the full name is P.T
module M instantiates I as new P (- - - ) type T The full name of the instantiated construct is M.I.T
S859
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD
Module MAILING LIST instantiates
INTEGER_SORT as new SORT
(ITEM --> INTEGER, ..
.)
Functions DO_SORT (seq of INTEGER) --> seq of INTEGER ADDRESS SORT as new SORT (ITEM --> ADDRESS, .. .) Functions DO_SORT (seq of ADDRESSS) --> seq of ADDRESS end
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB
GO
PACKARD
Module COLOURED BOX parameters type COLOUR exports type SHAPE definitions SHAPE = Box of COLOUR end Module BOXES instantiater
RED_BOX is new COLOURED_BOX
(COLOUR -->RED) type SHAPE end
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
5861
PACKARD
MODELS OF COLOURED_BOX COLOUR --> COLOUR --> SHAPE --> SHAPE --> COLOUR --> SHAPE -->
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
COLOUR --> SHAPE -->
5B62
PACKARD
RED --> RED_BOX.SHAPE
MODELS OF BOXES RED BOX.SHAPE
RED --> RED --> RED_BOX.SHAPE
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
RED -->
RED_BOX SHAPE
SB63
PACKARD
MODELS OF AN INSTANTIATION
instantiating module can not be compared direclty.
R
Name -------------------- . Name rng R<J Mp rng R<J Mi VAL Mi is a model of the instantiation iff there is a model Mp of the parameterised module such that the diagram commutes.
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB64
PACKARD
MODELS OF THE INSTANTIATION RED --> RED_SOX.SHAPE
RED --> RED SOX.SHAPE
RED --> RED_SOX.SHAPE
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
RED --> RED BOX SHAPE
SB65
PACKARD
MODELS OF THE DOCUMENT RED --> RED_BOX.SHAPE
[[document]] = [[BOXES]] f\ [[instantiate (COLOURED_BOX)]] HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
SB66
PACKARD
SUMMARY
(parameterized) modules.
established approach.
core language.
changed.
SB67
HPLABS - INFORMATION SYSTEMS CENTRE SOFTWARE ENGINEERING DEPARTMENT
PACKARD