A Science of Software Design

Underlying large-scale software design and program synthesis are simple and powerful algebraic models. In this paper, I review the elementary ideas upon which these algebras rest and argue that they define the basis for a science of software design.

[1]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[2]  Don S. Batory,et al.  Creating reference architectures: an example from avionics , 1995, SSR '95.

[3]  Don S. Batory,et al.  The Road to Utopia: A Future for Generative Programming , 2003, Domain-Specific Program Generation.

[4]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[5]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[6]  Patricia G. Selinger,et al.  Access path selection in a relational database management system , 1979, SIGMOD '79.

[7]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[8]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[9]  R. Balzer A fifteen-year perspective on automatic programming , 1989 .

[10]  Gang Chen,et al.  Design Wizards and Visual Programming Environments for GenVoca Generators , 2000, IEEE Trans. Software Eng..

[11]  Krzysztof Czarnecki,et al.  Generative Programming: Methods, Techniques, and Applications , 2002, ICSR.

[12]  Jia Liu,et al.  Refinements and multi-dimensional separation of concerns , 2003, ESEC/FSE-11.

[13]  Peter Freeman,et al.  A science of design for software-intensive systems , 2004, CACM.

[14]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[15]  Matthias Felleisen,et al.  Linguistic reuse , 2001 .

[16]  R. E. Kurt Stirewalt,et al.  A component-based approach to building formal analysis tools , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.