Evolving Specification Engineering

The motivation for this work is to support a natural separation of concerns during formal system development. In a development-by-refinement context, we would like to be able to first treat basic functionality and normal-case behavior, and then later add in complicating factors such as physical limitations (memory, time, bandwidth, hardware reliability, and so on) and security concerns. Handling these complicating factors often does not result in a refinement, since safety or liveness properties may not be preserved. We extend our earlier work on evolving specifications (1) to allow the preservation of both safety and liveness properties under refinement, and (2) to explore a more general notion of refinement morphism to express the introduction of complicating factors.

[1]  Dusko Pavlovic,et al.  Composition and refinement of behavioral specifications , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[2]  Michel Wermelinger,et al.  A Mathematical Semantics for Architectural Connectors , 2003, Generic Programming.

[3]  Dusko Pavlovic,et al.  Colimits for Concurrent Collectors , 2003, Verification: Theory and Practice.

[4]  Dusko Pavlovic,et al.  Guarded Transitions in Evolving Specifications , 2002, AMAST.

[5]  Nachum Dershowitz,et al.  Verification: Theory and Practice , 2004, Lecture Notes in Computer Science.

[6]  Joseph A. Goguen,et al.  Institutions : abstract model theory for computer science , 1985 .

[7]  José Luiz Fiadeiro,et al.  Using Explicit State to Describe Architechtures , 1999, FASE.

[8]  Kim G. Larsen,et al.  The Use of Static Constructs in A Modal Process Logic , 1989, Logic at Botik.

[9]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[10]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[11]  Joseph A. Goguen,et al.  Institutions: abstract model theory for specification and programming , 1992, JACM.