next up previous contents
Next: Ongoing research Up: Project: Rigorous Methods for Previous: Summary   Contents

Background

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 up previous contents
Next: Ongoing research Up: Project: Rigorous Methods for Previous: Summary   Contents
Maria Simi 2006-10-23