Instructor's Guide
intro,
methods,
objects,
contracts,
formal,
summary,
Q/A,
literature
The Fusion method is presented in [Fusion]
as a second generation object-oriented method.
The phrase second generation is meant
to indicate that the method transcends and incorporates
the ideas and techniques employed
in the early object-oriented methods.
Above all, the Fusion method focuses on a strongly
systematic approach to object-oriented software
development, with an emphasis on the process
of development
and the validation of the consistency between the
models delivered in the various phases of a project.
The software life-cycle model underlying Fusion
is the traditional waterfall model, consisting
of the subsequent phases of analysis, design and
implementation.
Each phase results in a number of models
describing particular aspects of the system.
See slide [11-fusion].
A data dictionary is to be kept
as a means to unify the terminology employed
in the various phases.
Analysis -- Fusion
Fusion
- Object Model -- concepts and relations
- LifeCycle Model -- sequences of operations
- Operation Model -- semantics of system operations
Design -- data dictionary
data dictionary
- Object Interaction Graph -- functional dependencies
- Visibility Graphs -- communication structure
- Class Descriptions -- attributes and methods
- Inheritance Graphs -- subtype refinement
Implementation -- validation
validation
- System Lifecycle -- state machines
- Class Descriptions -- coding, performance
slide: The Fusion method
The models produced as the result of analysis,
design and implementation serve to document
the decisions made during the development.
Each of the phases covers different aspects of the
system.
Analysis serves to document the system requirements
from a user perspective.
The Fusion method describes how to construct
an Object Model that captures the basic
concepts of the application domain.
These concepts are represented as entities or objects
and are connected by relations,
similar to entity-relationship diagrams
employed in semantic modeling.
Analysis also results in an Operation Model,
describing the semantics of the operations that may be performed
by a user by means of pre- and post-conditions, in a formal manner.
In addition, Fusion defines a Lifecycle Model
that describes, by means of regular expressions,
which sequences of operations are allowed.
Design may be considered as the transition between
analysis and implementation.
During design, decisions are made with respect to
the realization of the system operations identified
during analysis.
Design according to the Fusion method results
in an Object Interaction Graph,
that for each system operation describes
which objects are involved and which methods
are invoked.
Fusion also allows one to label the arrows
representing method calls in the interaction diagram
with sequencing information.
In addition, design involves the construction
of Visibility Graphs, indicating the
attribute and method interface for each object,
Class Descriptions,
defining the attributes and methods of objects,
and Inheritance Graphs,
specifying the subtype refinement relation between
classes.
Implementation is considered in the
Fusion method as a phase in which to work out the
details of the decisions taken during analysis and design.
It results in a System Lifecycle description for
each object identified in the Object Model,
in the form of a finite state machine,
and precise Class Descriptions,
in the form of (preferably) efficient code.
Validation
An important aspect of the Fusion method is the
validation of the completeness and
consistency of the collection of models.
Completeness, obviously, is a relative matter
and can only be established with respect to
explicitly stated user requirements.
However, the models developed in a particular
phase impose additional requirements
upon the efforts engaged in the later phases
and in the end maintenance.
Consistency involves verifying whether
the various models are not contradictory.
For both development and validation,
the data dictionary plays an important role,
as a common point of reference.