Mathematics of Software Engineering

Software engineering incorporates technical and organizational aspects. Technically, in software engineering we work with a development method and with description techniques, with modeling and implementation techniques. Mathematical techniques can provide a scientific basis for software engineering. They lead to a deeper understanding of the development process and a more powerful tool support. For finding the best mathematical foundation, we need a clear recognition of the economical and technical benefits of mathematical concepts in software engineering. This requires a careful analysis of the role of mathematics and logic in software engineering. We show, how software engineering methods can be backed up by mathematical techniques. We discuss the benefits that go far beyond so called formal methods for the formal specification and verification of software.

[1]  Robert S. Boyer,et al.  The addition of bounded quantification and partial functions to a computational logic and its theorem prover , 1988 .

[2]  Martin Wirsing,et al.  A Method for the Development of Correct Software , 1995, KORSO Book.

[3]  Friederike Nickl,et al.  Ablaufspezifikation durch Datenflußdiagramme und Axiome , 1994, GI Jahrestagung.

[4]  Peter Pepper,et al.  Program Transformation and Programming Environments , 1984, NATO ASI Series.

[5]  Manfred Broy,et al.  Advanced Component Interface Specification , 1994, Theory and Practice of Parallel Programming.

[6]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[7]  James J. Horning,et al.  A Larch Shared Language Handbook , 1986, Sci. Comput. Program..

[8]  Manfred Broy,et al.  KORSO: Methods, Languages, and Tools for the Construction of Correct Software , 1995, Lecture Notes in Computer Science.

[9]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[10]  Manfred Broy,et al.  Algebraic Methods for Program Construction: The Project CIP , 1984 .

[11]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[12]  Akinori Yonezawa,et al.  Theory and Practice of Parallel Programming: Proceedings of the International Workshop TPPP '94, Sendai, Japan, November 7-9, 1994 , 1995 .

[13]  Manfred Broy,et al.  HOPSA — a High-level Programming Language for Parallel Computations , 1993 .

[14]  Tom DeMarco,et al.  Structured Analysis and System Specification , 1978 .

[15]  Manfred Broy,et al.  Equations for Describing Dynamic Nets of Communicating Systems , 1994, COMPASS/ADT.

[16]  Manfred Broy (Inter-)Action Refinement: The Easy Way , 1992, NATO ASI PDC.

[17]  Jean-Raymond Abrial On Constructing Large Software Systems , 1992, IFIP Congress.

[18]  Donald MacKenzie,et al.  The fangs of the VIPER , 1991, Nature.

[19]  Manfred Broy,et al.  Specification and Refinement of Finite Dataflow Networks - a Relational Approach , 1994, FTRTFT.

[20]  Stephen J. Garland,et al.  LSL: The Larch Shared Language , 1993 .

[21]  Friedrich L. Bauer,et al.  Algorithmic Language and Program Development , 1982, Texts and Monographs in Computer Science.

[22]  Manfred Broy Specification and refinement of a buffer of length one , 1996, NATO ASI DPD.

[23]  Manfred Broy,et al.  Nondeterministic Data Flow Programs: How to Avoid the Merge Anomaly , 1988, Sci. Comput. Program..

[24]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[25]  Edward Yourdon,et al.  Object-oriented analysis , 2012 .

[26]  C. A. R. Hoare,et al.  Provably Correct Systems , 1994, FTRTFT.

[27]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[28]  Manfred Broy,et al.  Constructive Methods in Computing Science , 1989, NATO ASI Series.

[29]  Manfred Broy Program Design Calculi , 1993, NATO ASI Series.

[30]  Heinrich Hußmann,et al.  Formal Foundations for Pragmatic Software Engineering Methods , 1994, GI Jahrestagung.

[31]  Erich J. Neuhold,et al.  Formal description of programming concepts , 1991 .