Next: Ongoing research
Up: Project: Rigorous Methods for
Previous: Summary
Contents
Nowadays, the major problems of software engineering are encountered
at the high levels of system development, both
from a scientific point of view
and in
the industrial practice. The modern software life-cycle models
recognize that defects injected in the initial software development
phases are the most expensive ones.
Besides, there is a
need both for
heterogeneity, to capture
the richness of different application domains, and for
uniformity, to unfold
the commonalities across domains and
make them
available for analysis, validation, and verification.
Current approaches to prevent errors early in the life-cycle include
multiple high-level views of the system, to facilitate understanding
by
all the stake-holders,
domain specific architectures, to factorize
common facets of product lines, and executable specifications and architectures, to get
early feedback on major design decisions.
The early phases in software development are characterized by a)
capturing the problem requirements reliably and in rigorous form, b)
representing the basic architectural decisions taken to compose the
system out of interacting components, and c) linking, in transparent
and reliable ways, the abstract models to more detailed ones, paving
the way to implementation. To foster error prevention in the
up-stream modeling activities, current research looks for reliable
techniques to turn the informally presented requirements of the
desired system into a functionally complete but abstract system
description which a) can be read and understood by and justified to
the customer as solving his problem, b) defines every system feature
as far as this is semantically relevant for the work the user expects
the system to achieve, c) contains only what the logic of the problem
requires for the system behavior, i.e. does not rely upon any further
design decision belonging to the system implementation. Models with
these characteristics have been called ground models by
Börger.
To contribute to the current trends in software development methods,
we need to guarantee two capabilities: a) to relate requirements
capture and architectural decomposition reliably, and b) to transform
the abstract models by controllable refinements down to a level where
an implementation can be built by well-established design
methods. Finally, we are interested in practical methods that can be
used for rigorous high-level system development also under industrial
constraints, with a special attention devoted to executable yet abstrasct specifications
as a means to foster early prototyping of initial specifications.
Next: Ongoing research
Up: Project: Rigorous Methods for
Previous: Summary
Contents
Maria Simi
2006-10-23