Browse by author
Lookup NU author(s): Dr Alexei Iliasov
Full text is not currently available for this publication.
Although it is generally recognised that formal modelling is crucial for ensuring the correctness of software systems, some obstacles to its wider adoption in software engineering persist. One of these is that its productivity is low; another that for modelling techniques and tools to be used efficiently, a broad range of specific skills is required. With the gap between computer performance and engineers' productivity growing, there is a need to raise the level of abstraction at which development is carried out and off-load much of the routine work done manually today to computers. Formal modelling has all the characteristics required to replace programming and offer higher productivity. Nonetheless, as a branch of software engineering it has yet to be generally accepted. While there is substantial research accumulated in systems analysis and verification, not much has been done to foster higher productivity and efficiency of modelling activity. This study puts forward an approach that allows the modeller to encapsulate design ideas and experience in a reusable package. This package, called a design component, can be used in different ways. While a design component is generally intended for constructing a new design using an existing one, we base our approach on a refinement technique. The design encapsulated in the design component is injected into a formal development by formally refining an abstract model. This process is completely automated: the design component is integrated by a tool, with the corresponding correctness proofs also handled automatically. To help us construct design components we consider a number of techniques of transforming models and describing reusable designs. We then introduce the concept of model transformation to encapsulate syntactic rewrite rules used to produce new models. To capture high-level design we introduce the pattern language allowing us to build abstraction and refinement patterns from model transformations. Patterns automate the formal development process and reduce the number of proofs. To help the modeller plan and execute refinement steps, we introduce the concept of the modelling pattern. A modelling pattern combines refinement (or abstraction) patterns with modelling guidelines to form a complete design component. Our approach is both formal and pragmatic. A design component is presented in a consistently formal fashion, which allows it to be analysed and verified. At the same time, it is executable: it can be interpreted and manipulated using software tools. The thesis is divided into three major parts. The first one discusses model transformations, i.e. simple rules relating formal models. The second part introduces the concept of the pattern as a complex model transformation rule producing an abstraction or a refinement of the input model. The final part develops an approach to guiding the modeller through a development using high-level tactics called modelling patterns. The thesis is concluded with an evaluation chapter illustrating the introduced concepts from the practical viewpoint.
Author(s): Iliasov A Sh
Publication type: Report
Publication status: Published
Institution: School of Computing Science, University of Newcastle upon Tyne
Place Published: Newcastle upon Tyne