Towards a New Code-Based Software Development Concept Enabling Code Patterns

Modern software development is driven by many critical forces. Among them are fast deployment requirements, a code base adaptable to new technologies, easy-to-maintain code, and low development costs. These forces are contradicted by the rising complexity of the technological landscape, harder to understand code due to its complexity, missing documentations and quickly hacked in program logic. We introduce a concept aiding in lowering these negative aspects for code-based software development. Protagonists of our work are explicit semantics in source code and newly introduced code pattern templates, which enable code transformations and whose definition and application will be explained in this paper. Throughout this paper, the term code pattern includes architectural patterns, design patterns, and refactoring operations. Enabling automated transformations stands for providing means of executing possibly premature transformations that might lead to results requiring manual finishing.

[1]  Ilka Philippow,et al.  Supporting Program Comprehension for Refactoring Operations with Annotations , 2006, SoMeT.

[2]  David Chek Ling Ngo,et al.  Formal Specification of Design Patterns - A Balanced Approach , 2003, J. Object Technol..

[3]  Bernhard Rumpe,et al.  Techniques for Lightweight Generator Refactoring , 2005, GTTSE.

[4]  Ronald A. Olsson,et al.  Reverse Engineering of Design Patterns from Java Source Code , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[5]  Frank Buschmann,et al.  A system of patterns , 1995 .

[6]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[7]  Martin Fowler. Refactoring Improving the Design of Existing Code , 1999 .

[8]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[9]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[10]  Mel Ó Cinnéide,et al.  A methodology for the automated introduction of design patterns , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[11]  W. Schafer,et al.  Towards pattern-based design recovery , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[12]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[13]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[14]  Ye-Yi Wang,et al.  Grammar Inference and Statistical Machine Translation , 2001 .

[15]  Klaus Meffert Supporting design patterns with annotations , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[16]  Görel Hedin Language Support for Design Patterns Using Attribute Extension , 1997, ECOOP Workshops.

[17]  Richard T. Dué,et al.  OBJECT-ORIENTED TECHNOLOGY: The Economics of a New Paradigm , 1993 .