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 and the systems are now sufficiently complex that developers need help to analyse and understand them. However, at design time, when this understanding is crucial, the system is unavailable because it has yet to be built. Formal, executable models can help with this problem by providing developers with a platform on which to establish the feasibility of a proposed design. However, commercial developers seem reluctant to employ this type of modelling in their design activity. This paper describes a 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 whilst retaining sufficient formality to permit the models to be executed, or converted into code for analysis by a traditional model checking tool.

[1]  Boris Beizer Soapbox: Cleanroom Process Model: A Critical Examination , 1997, IEEE Softw..

[2]  Joseph Giordano,et al.  Integrating formal methods tools to support system design , 1995, Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems. ICECCS'95.

[3]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[4]  Alan Edelman,et al.  The Mathematics of the Pentium Division Bug , 1997, SIAM Rev..

[5]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[6]  John M. Wilson,et al.  Business Processes: Modelling and Analysis for Re-engineering and Improvement , 1995 .

[7]  B. Beitzer Cleanroom process model: A critical examina-tion , 1997 .

[8]  Kendall Scott,et al.  UML distilled - applying the standard object modeling language , 1997 .

[9]  M. M. Kamal Hashmi,et al.  Design and use of a system-level specification and verification methodology , 1995, Proceedings of EURO-DAC. European Design Automation Conference.

[10]  Keith Phalp,et al.  RolEnact: role-based enactable models of business processes , 1998, Inf. Softw. Technol..

[11]  Chris Dix,et al.  Beginning XML , 2000 .

[12]  Alonzo Church,et al.  A note on the Entscheidungsproblem , 1936, Journal of Symbolic Logic.

[13]  David N. Turner,et al.  The polymorphic Pi-calculus : theory and implementation , 1996 .

[14]  Peter Houston,et al.  Designing Applications with MSMQ: Message Queuing for Developers , 1998 .

[15]  Peter Henderson Formal Models of Process Components , 1997 .

[16]  Andrew Shalit,et al.  Modern languages and Microsoft's component object model , 1998, CACM.

[17]  Michael J. Butler,et al.  An Approach to the Design of Distributed Systems with B AMN , 1997, ZUM.

[18]  Peter Henderson,et al.  Component-based systems as an aid to design validation , 1999, 14th IEEE International Conference on Automated Software Engineering.

[19]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[20]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[21]  David S. Platt Understanding COM , 1999 .

[22]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[23]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[24]  Wolfgang Emmerich,et al.  Deadlock detection in distributed object systems , 2001, FSE 2001.

[25]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[26]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[27]  Kamal Jabbour,et al.  Formal specification and verification of communication protocols using automated tools , 1995, Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems. ICECCS'95.

[28]  A. Jebson,et al.  CHISLE: an engineer's tool for hardware system design , 1993 .

[29]  Peter Henderson,et al.  Inconsistency tolerance across enterprise solutions , 2001, Proceedings Eighth IEEE Workshop on Future Trends of Distributed Computing Systems. FTDCS 2001.

[30]  Peter Henderson,et al.  Questions and Answers About Ten Formal Methods , 1999 .

[31]  William Aspray,et al.  John von Neumann and the origins of modern computing , 1990, History of computing.

[32]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[33]  Grady Booch,et al.  Essential COM , 1998 .

[34]  Robin Milner,et al.  Elements of interaction: Turing award lecture , 1993, CACM.

[35]  Peter Henderson,et al.  A tool for evaluation of the software development process , 2001, J. Syst. Softw..

[36]  C. A. R. Hoare,et al.  The role of formal techniques: past, current and future or how did software get so reliable without proof? (extended abstract) , 1996, ICSE.

[37]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[38]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[39]  Peter Henderson,et al.  Executing formal specifications need not be harmful , 1996, Softw. Eng. J..

[40]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[41]  Kevin J. Sullivan,et al.  Using Formal Methods to Reason about Architectural Standards , 1996, Proceedings of the (19th) International Conference on Software Engineering.

[42]  Peter Henderson,et al.  System design validation using formal models , 1999, Proceedings Tenth IEEE International Workshop on Rapid System Prototyping. Shortening the Path from Specification to Prototype (Cat. No.PR00246).