A graphically based language for constructing, executing and analysing models of software systems
With computer systems becoming ever larger and more complex, the cost and effort associated with their construction is increasing. Consequently, it is more important than ever that the developers understand how their systems behave if problems are to be avoided. However, acquiring this understanding is a problem: the systems are sufficiently complex that developers need help to analyse and understand them and, at the time this analysis is most crucial, the system is unavailable because it has yet to be built. We already have maturing technologies which address issues associated with the interconnection of software components at the procedural level, but they do not address issues related to the behaviour of these compound systems. Formal, executable models can help here by providing developers with a platform on which to establish the feasibility of a proposed design for a system. However, commercial developers seem reluctant to employ this type of modelling in their design activity. This report describes a new modelling tool in which the traditional model generation technique of writing “programming language like” code is replaced with a model generation tool which uses a graphical representation of models. Despite appearing informal, the system retains sufficient formality to permit the models to be executed using the tool, or converted into code for analysis by a traditional model checking tool.