The Objects and Arrows of Computational Design

ComputationalDesign(CD) is a paradigm where both program design and program synthesis are computations. CD merges Model Driven Engineering (MDE)which synthesizes programs by transforming models, with Software Product Lines (SPL)where programs are synthesized by composing transforma tions called features. In this paper, basic relationships between MDE and SPL are explored using the language of modern mathematics. Note: Although jointly authored, this paper is written as presented by Batory in his MODELS 2008 keynote.

[1]  Sarfraz Khurshid,et al.  TestEra: a novel framework for automated testing of Java programs , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[2]  F. William Lawvere,et al.  Conceptual Mathematics: A First Introduction to Categories , 1997 .

[3]  Franz Franchetti,et al.  SPIRAL: Code Generation for DSP Transforms , 2005, Proceedings of the IEEE.

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

[5]  Hans-Arno Jacobsen,et al.  Towards just-in-time middleware architectures , 2005, AOSD '05.

[6]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

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

[8]  Benjamin C. Peirce,et al.  Basic Category Theory for Computer Scientists , 1991 .

[9]  Don S. Batory,et al.  Multilevel models in model-driven engineering, product lines, and metaprogramming , 2006, IBM Syst. J..

[10]  Martin Odersky,et al.  An Overview of the Scala Programming Language , 2004 .

[11]  Gabor Karsai,et al.  An end-to-end domain-driven software development framework , 2003, OOPSLA '03.

[12]  Don S. Batory,et al.  Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study , 2000, ICSR.

[13]  Sarfraz Khurshid,et al.  Testing Software Product Lines Using Incremental Test Generation , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[14]  Frédéric Jouault,et al.  Transforming Models with ATL , 2005, MoDELS.

[15]  Jean Bézivin,et al.  A Canonical Scheme for Model Composition , 2006, ECMDA-FA.

[16]  Jesús Sánchez Cuadrado,et al.  RubyTL: A Practical, Extensible Transformation Language , 2006, ECMDA-FA.

[17]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[18]  Wouter Joosen,et al.  UniTI: a unified transformation infrastructure , 2007, MODELS'07.

[19]  Don S. Batory Program Refactoring, Program Synthesis, and Model-Driven Development , 2007, CC.

[20]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[21]  Jean Bézivin,et al.  Model-based DSL frameworks , 2006, OOPSLA '06.

[22]  Don S. Batory,et al.  Using modern mathematics as an FOSD modeling language , 2008, GPCE '08.

[23]  Michal Antkiewicz,et al.  Design Space of Heterogeneous Synchronization , 2007, GTTSE.

[24]  Guido Wachsmuth,et al.  Metamodel Adaptation and Model Co-adaptation , 2007, ECOOP.

[25]  Gabor Karsai,et al.  A domain-specific visual language for domain model evolution , 2004, J. Vis. Lang. Comput..

[26]  David Corfield,et al.  Review of F. William Lawvere and Stephen Schanuel, 'Conceptual Mathematics: A First Introduction to Categories' , 2002 .

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

[28]  Don S. Batory,et al.  Lifting Transformational Models of Product Lines: A Case Study , 2008, ICMT@TOOLS.

[29]  Don S. Batory,et al.  On the modularity of feature interactions , 2008, GPCE '08.

[30]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[31]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[32]  Sandeep Neema,et al.  System-level synthesis of adaptive computing systems , 2001 .

[33]  Davide Ancona,et al.  Polymorphic bytecode: compositional compilation for Java-like languages , 2005, POPL '05.

[34]  Hartmut Ehrig,et al.  Information Preserving Bidirectional Model Transformations , 2007, FASE.

[35]  Jean Bézivin,et al.  On the Need for Megamodels , 2004, OOPSLA 2004.

[36]  Oscar Díaz,et al.  Generative metaprogramming , 2007, GPCE '07.

[37]  Oscar Díaz,et al.  Feature Oriented Model Driven Development: A Case Study for Portlets , 2007, 29th International Conference on Software Engineering (ICSE'07).

[38]  Thomas Leich,et al.  Aspectual Feature Modules , 2008, IEEE Transactions on Software Engineering.

[39]  Erik Ernst,et al.  ECOOP 2007 - Object-Oriented Programming, 21st European Conference, Berlin, Germany, July 30 - August 3, 2007, Proceedings , 2007, ECOOP.

[40]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[41]  Jeannette M. Wing An introduction to computer science for non-majors using principles of computation , 2007, SIGCSE.