Automated production does not yet have an equivalent in the software development industry. Mathematical laws describing software development, and rules for structural composition of building blocks to create larger systems, do not exist exist at this point in time. Nevertheless, due to the fundamental need to improve the efficiency of software development, and to eliminate human errors, it is imperative to automate the software development process. In this paper, we explore some concepts that may contribute towards a more deterministic approach to software engineering. As the software industry is currently evolving to service oriented architectures, an attempt is made to define concepts like service interfaces, loose coupling, and stability of interfaces. In order to achieve a more structured and deterministic implementation of the components, the concept of pattern expansion is proposed: the extension of current code generation techniques to entire template solutions or design patterns. This technique is elaborated, and an implementation example is presented. The results of this pattern expansion prototype are discussed.
['Herwig Mannaert', 'Jan Verelst', 'Kris Ven']
Exploring Concepts for Deterministic Software Engineering: Service Interfaces, Pattern Expansion, and Stability