A Cloverleaf of Software Engineering

We shall touch upon four issues of software engineering (SE): domain engineering, formal techniques, SE sociology, and academic software architects. First, before software can be designed one must understand its requirements; but before requirements can be formulated one must understand the domain. So we assume that requirements development is based on first having established models of the (application) domain. I will illustrate facets of the railway domain. Second, we touch upon all of the three phases: domain engineering, requirements engineering and software design also being done formally, however ”lite”. Third, despite 35 years of formal methods, the SE industry, maturity-wise still lags far behind that of other engineering disciplines. So we examine why. Finally, in several areas, in health care, in architecture, and others, we see that major undertakings are primarily spearheaded by senior academic staff. Professors of medicine daily perform specialised surgery and treatments at hospitals. Professors of architecture design new, daring buildings for industry, and professors of civil engineering head the engineering structural design of new, daring bridges. So we speculate what a similar approach would entail for SE. The paper is provocative, it postulates, but most claims are not (but can and will be [4]) substanti-

[1]  Thomas P. Sachse This ` paper is one of a series of research syntheses commissioned by the , 2007 .

[2]  David Harel,et al.  On visual formalisms , 1988, CACM.

[3]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[4]  Anne Elisabeth Haxthausen,et al.  Casl - The Common Algebraic Specification Language: Semantics and Proof Theory , 2003, Comput. Artif. Intell..

[5]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[6]  Razvan Diaconescu,et al.  Cafeobj Report - The Language, Proof Techniques, and Methodologies for Object-Oriented Algebraic Specification , 1998, AMAST Series in Computing.

[7]  Jonathan P. Bowen,et al.  Z Logic and its Consequences , 2003, Comput. Artif. Intell..

[8]  Dines Bjørner,et al.  Formal specification and software development , 1982 .

[9]  Wolfgang Reisig,et al.  A Primer in Petri Net Design , 1992, Springer Compass International.

[10]  Dines Bjørner,et al.  "UML-ising' Formal Techniques , 2004, SoftSpez Final Report.

[11]  Anne Elisabeth Haxthausen,et al.  The Raise Specification Language , 1992 .

[12]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[13]  Zhou Chaochen,et al.  Duration Calculus: A Formal Approach to Real-Time Systems , 2004 .

[14]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[15]  Kazuhiro Ogata,et al.  CafeOBJ: Logical Foundations and Methodologies , 2003, Comput. Artif. Intell..

[16]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[17]  C. A. R. Hoare,et al.  A Calculus of Durations , 1991, Inf. Process. Lett..

[18]  Peter D. Mosses,et al.  CASL User Manual , 2004, Lecture Notes in Computer Science.

[19]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

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

[21]  Kurt Jensen Coloured Petri Nets , 1992, EATCS Monographs in Theoretical Computer Science.

[22]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[23]  P. S. Thiagarajan,et al.  Communicating transaction processes , 2003, Third International Conference on Application of Concurrency to System Design, 2003. Proceedings..

[24]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[25]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[26]  Sjouke Mauw,et al.  Message Sequence Chart (MSC) , 1996 .

[27]  Wolfgang Reisig,et al.  The Expressive Power of Abstract-State Machines , 2003, Comput. Artif. Intell..

[28]  Steve A. Schneider,et al.  Concurrent and Real-time Systems: The CSP Approach , 1999 .

[29]  Anne Elisabeth Haxthausen,et al.  The Logic of the RAISE Specification Language , 2003, Comput. Artif. Intell..

[30]  Tetsuo Tamai,et al.  CAFE: An Industrial-Strength Algebraic Formal Method , 2000 .

[31]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[32]  C. Petri Kommunikation mit Automaten , 1962 .

[33]  Stephan Merz,et al.  On the Logic of TLA+ , 2003, Comput. Artif. Intell..

[34]  David Harel,et al.  Come, let's play - scenario-based programming using LSCs and the play-engine , 2003 .

[35]  Fa A Comprare,et al.  Come , 1890, The Hospital.

[36]  Jochen Klose,et al.  An Automata Based Interpretation of Live Sequence Charts , 2001, TACAS.

[37]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[38]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

[39]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .