Aspect-oriented domain-specific modeling: a generative approach using a metaweaver framework

This paper proposes that computer games development, in spite of its inherently creative and innovative nature, is subject of systematic industrialization targeted at predictability and productivity. The proposed approach encompasses visual domain-specific languages, semantic validators and code generators to make game developers and designers to work more productively, with a higher level of abstraction and closer to their application domain. Such concepts were implemented and deployed into a host development environment, and a real-world scenario was developed to illustrate and validate the proposal.

[1]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .

[2]  Mark Lycett,et al.  Integrating Information Systems , 2001, Organizational Semiotics.

[3]  Laurie J. Hendren,et al.  SableCC, an object-oriented compiler framework , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[4]  Ramana Rao,et al.  Implementational Reflection in Silica , 1991, ECOOP.

[5]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[6]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[7]  Niklaus Wirth,et al.  On the Design of Programming Languages , 1974, IFIP Congress.

[8]  J. Craig Cleaveland,et al.  Building application generators , 1988, IEEE Software.

[9]  Ying Zou,et al.  A framework for migrating procedural code to object-oriented platforms , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[10]  C. Perrow Complex Organizations: A Critical Essay , 1975 .

[11]  Steve Maguire,et al.  Debugging the development process , 1994 .

[12]  Joern Bettin A Language to describe software texture in abstract design models and implementation , 2001 .

[13]  Daniel Mahrenholz,et al.  Program instrumentation for debugging and monitoring with AspectC++ , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[14]  Priya Narasimhan,et al.  Using Interceptors to Enhance CORBA , 1999, Computer.

[15]  Ian Sommerville,et al.  Viewpoints: principles, problems and a practical approach to requirements engineering , 1997, Ann. Softw. Eng..

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

[17]  Robert E. Filman,et al.  Inserting ilities by controlling communications , 2002, CACM.

[18]  Takashi Masuda,et al.  Designing an Extensible Distributed Language with a Meta-Level Architecture , 1993, ECOOP.

[19]  Gregor Kiczales,et al.  Discussing aspects of AOP , 2001, CACM.

[20]  Martin E. Nordberg Aspect-Oriented Dependency Inversion , 2001 .

[21]  Henry Lieberman,et al.  Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems , 1986, OOPSLA.

[22]  Gabor Karsai Structured specification of model interpreters , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[23]  Languages Object-Oriented Programming Systems OOPSLA '98 : Conference proceedings : Conference on Object-Oriented Programming, Systems, Languages, and Applications, Vancouver, British Columbia, October 18-22, 1998 , 1998 .

[24]  Gregor Kiczales,et al.  Beyond the Black Box: Open Implementation , 1996, IEEE Softw..

[25]  Ralf Lämmel,et al.  Cracking the 500-Language Problem , 2001, IEEE Softw..

[26]  Stephen R. Schach,et al.  Object-oriented and classical software engineering , 1995 .

[27]  Gregor Kiczales,et al.  Addressing Practical Software Development Issues in AspectJ with a Pointcut Interface , 2001 .

[28]  Jon Sigel,et al.  CORBA Fundamentals and Programming , 1996 .

[29]  Yannis Smaragdakis,et al.  JTS: tools for implementing domain-specific languages , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[30]  Shmuel Katz,et al.  Aspects and Superimpositions , 1999, ECOOP Workshops.

[31]  Ted G. Lewis Object oriented application frameworks , 1995 .

[32]  Joseph L. Zachary,et al.  Reflections on Metaprogramming , 1995, IEEE Trans. Software Eng..

[33]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[34]  Merijn de Jonge Pretty-Printing for Software Reengineering , 2002, ICSM.

[35]  Jan Bosch,et al.  Real-Time Specification Inheritance Anomalies and Real-Time Filters , 1994, ECOOP.

[36]  Donald E. Knuth,et al.  Literate Programming , 1984, Comput. J..

[37]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[38]  Heinrich Hußmann,et al.  Modular architecture for a toolset supporting OCL , 2000, Sci. Comput. Program..

[39]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[40]  Andrew W. Appel,et al.  The Zephyr Abstract Syntax Description Language , 1997, DSL.

[41]  Martin P. Robillard,et al.  Separating features in source code: an exploratory study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[42]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.

[43]  Gul A. Agha,et al.  Customizable middleware for modular distributed software , 2001, CACM.

[44]  L. Wittgenstein Tractatus Logico-Philosophicus , 2021, Nordic Wittgenstein Review.

[45]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[46]  Peter Wegner,et al.  Programming Languages - The First 25 Years , 1976, IEEE Trans. Computers.

[47]  Douglas C. Schmidt,et al.  Application of the QuO quality-of-service framework to a distributed video application , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[48]  Jon Bentley,et al.  Programming pearls: literate programming , 1986, CACM.

[49]  Michael Brady,et al.  Adaptive image analysis for aerial surveillance , 1999, IEEE Intell. Syst..

[50]  Don S. Batory,et al.  Composition Validation and Subjectivity in GenVoca Generators , 1997, IEEE Trans. Software Eng..

[51]  Simon L. Peyton Jones,et al.  Aspect-Oriented Compilers , 1999, GCSE.

[52]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[53]  Gary Dessler,et al.  Organization Theory: Integrating Structure and Behavior , 1980 .

[54]  Jeffrey G. Gray,et al.  Constraint animation using an object-oriented declarative language , 2000, ACM-SE 38.

[55]  Awais Rashid,et al.  A Hybrid Approach to Separation of Concerns: The Story of SADES , 2001, Reflection.

[56]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[57]  Robert J. Walker,et al.  An initial assessment of aspect-oriented programming , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[58]  Jeff Gray A Framework for Creating Aspect Weavers , 2001 .

[59]  Robert J. Walker,et al.  Evaluating Emerging Software Development Technologies: Lessons Learned from Assessing Aspect-Oriented Programming , 1999, IEEE Trans. Software Eng..

[60]  Paulo S. C. Alencar,et al.  Supporting Formal Verification of Crosscutting Concerns , 2001, Reflection.

[61]  M. Clavel Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications , 2000 .

[62]  Elke Pulvermüller,et al.  From Object-Oriented to Aspect-Oriented Databases , 2000, DEXA.

[63]  Cristian Georgescu Code generation templates using XML and XSL , 2002 .

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

[65]  Gabor Karsai,et al.  Self-adaptive software for signal processing , 1998, CACM.

[66]  Harold Ossher,et al.  Specifying Subject-Oriented Composition , 1996, Theory Pract. Object Syst..

[67]  Ron Weber,et al.  On the deep structure of information systems , 1995, Inf. Syst. J..

[68]  Sandeep Neema,et al.  Aspectifying Constraints in Model-Integrated Computing , 2000 .

[69]  Ralf Steinbrüggen,et al.  Program Transformation Systems , 1983, CSUR.

[70]  Jianfeng Wang,et al.  Integrating information systems in electric utilities , 2000, Smc 2000 conference proceedings. 2000 ieee international conference on systems, man and cybernetics. 'cybernetics evolving to systems, humans, organizations, and their complex interactions' (cat. no.0.

[71]  James O. Coplien Software development as science, art, and engineering , 1998 .

[72]  Douglas C. Schmidt,et al.  Overview of the CORBA component model , 2001 .

[73]  Sandeep Neema,et al.  Constraint-Guided Self-adaptation , 2001, IWSAS.

[74]  Edsger W. Dijkstra,et al.  Go To Statement Considered Harmful , 2022, Software Pioneers.

[75]  Mitchell Wand,et al.  A language for specifying recursive traversals of object structures , 1999, OOPSLA '99.

[76]  Gabor Karsai Why XSL is not suitable for Semantic Translation , 2000 .

[77]  Siobhán Clarke,et al.  Composition patterns: an approach to designing reusable , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[78]  Robert Hirschfeld AspectS - AOP with Squeak , 2001 .

[79]  Eric Van Wyk Domain specific meta languages , 2000, SAC '00.

[80]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software , 1995 .

[81]  Gabor Karsai,et al.  A Configurable Visual Programming Environment: A Tool for Domain-Specific Programming , 1995, Computer.

[82]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[83]  E. Long,et al.  Increasing Productivity at Saturn , 1998, Computer.

[84]  Dan Suciu,et al.  Declarative specification of data-intensive Web sites , 1999, DSL '99.

[85]  Alfonso Fuggetta,et al.  Exploiting an event-based infrastructure to develop complex distributed systems , 1998, Proceedings of the 20th International Conference on Software Engineering.

[86]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[87]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[88]  Tim Sheard,et al.  A software engineering experiment in software component generation , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[89]  Sandra Kay Miller,et al.  Aspect-Oriented Programming Takes Aim at Software Complexity , 2001, Computer.

[90]  Jan F. Prins,et al.  Debugging programs after structure-changing transformation , 1998 .

[91]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[92]  Edsger W. Dijkstra,et al.  Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..

[93]  Ira R. Forman Putting Metaclasses To Work , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[94]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[95]  Gregor Kiczales,et al.  Structuring operating system aspects. , 2001 .

[96]  Timothy J. Hickey,et al.  Reflecting Java into Scheme , 1999, Reflection.

[97]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .

[98]  Rich Hilliard Views and Viewpoints in Software Systems Architecture , 2000 .

[99]  Jeffrey M. Voas,et al.  Quality Time - Can Aspect-Oriented Programming Lead to More Reliable Software? , 2000, IEEE Softw..

[100]  Brian Henderson-Sellers,et al.  Ontological Evaluation of the UML Using the Bunge–Wand–Weber Model , 2002, Software and Systems Modeling.

[101]  Lars S. Nyland,et al.  KHEPERA: A System for Rapid Implementation of Domain Specific Languages , 1997, DSL.

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

[103]  Douglas C. Schmidt,et al.  Building application frameworks: object-oriented foundations of framework design , 1999 .

[104]  A. Einstein Out of My Later Years , 1950 .

[105]  Jean-Marc Jézéquel,et al.  A toolkit for weaving aspect oriented UML designs , 2002, AOSD '02.

[106]  Bedir Tekinerdogan,et al.  Synthesis - Based Software Architecture Design , 2001 .

[107]  Gerald Jay Sussman,et al.  The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two) , 1978 .

[108]  Gabor Karsai,et al.  Component generation technology for semantic tool integration , 2000, 2000 IEEE Aerospace Conference. Proceedings (Cat. No.00TH8484).

[109]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[110]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[111]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[112]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[113]  Yannis Smaragdakis,et al.  DiSTiL: A Transformation Library for Data Structures , 1997, DSL.

[114]  Brian A. Malloy,et al.  The design of an OCL query-based debugger for C++ , 2001, SAC.

[115]  Mik Kersten,et al.  Atlas: a case study in building a web-based learning environment using aspect-oriented programming , 1999, OOPSLA '99.

[116]  Awais Rashid,et al.  Weaving aspects in a persistent environment , 2002, SIGP.

[117]  Gregor Kiczales,et al.  Macros that Reach Out and Touch Somewhere , 1991 .

[118]  Anne Rogers,et al.  Hancock: a language for processing very large-scale data , 1999, DSL '99.

[119]  David R. Barstow Domain-Specific Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[120]  Greg J. Badros JavaML: a markup language for Java source code , 2000, Comput. Networks.

[121]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[122]  Jeffrey G. Gray,et al.  Handling crosscutting constraints in domain-specific modeling , 2001, CACM.

[123]  Edward A. Lee,et al.  A code generation framework for Java component-based designs , 2000, CASES '00.

[124]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

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

[126]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[127]  Sandeep Neema,et al.  An Example of Constraint Weaving in Domain-Specific Modeling , 2001 .

[128]  Karl J. Lieberherr,et al.  Assuring good style for object-oriented programs , 1989, IEEE Software.

[129]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[130]  Edward J. Barkmeyer,et al.  XML Representation of EXPRESS Models and Data , 2001 .

[131]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[132]  Ted J. Biggerstaff,et al.  A perspective of generative reuse , 1998, Ann. Softw. Eng..

[133]  Frank Vahid,et al.  Platform Tuning for Embedded Systems Design , 2001, Computer.

[134]  Mary Shaw,et al.  Global variable considered harmful , 1973, SIGP.

[135]  Joshua J. Bloch Effective Java : programming language guide , 2001 .

[136]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[137]  John Grundy,et al.  Multi-Perspective Specification, Design and Implementation of Software Components Using Aspects , 2000, Int. J. Softw. Eng. Knowl. Eng..

[138]  Alan J. Perlis,et al.  Epigrams on Programming. , 1982 .

[139]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[140]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[141]  Jos Warmer,et al.  The object constraint language , 1998 .

[142]  Harold Ossher,et al.  Subdivided procedures: a language extension supporting extensible programming , 1990, Proceedings. 1990 International Conference on Computer Languages.

[143]  Sumit Gulwani,et al.  WebCaL - a domain specific language for web caching , 2001, Comput. Commun..

[144]  Arie van Deursen,et al.  REPORT RAPPORT , 1997 .

[145]  Charles Simonyi Intentional Programming: Asymptotic Fun? , 2002 .

[146]  Gregor Kiczales,et al.  Aspect-Oriented Programming The Fun Has Just Begun , 2002 .

[147]  David B. Stewart,et al.  Visual Aspect-Oriented Programming of Resource Constrained Real-Time Embedded Systems using the Port-Based Object Model of Computation , 2001 .

[148]  Gregor Kiczales,et al.  Overcoming the Prevalent Decomposition in Legacy Code , 2001 .

[149]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[150]  Robert E. Filman What Is Aspect-Oriented Programming, Revisited , 2001 .

[151]  Bernhard Thalheim,et al.  Future Directions of Conceptual Modeling , 1997, Conceptual Modeling.

[152]  D. C. Sharp,et al.  Reducing avionics software cost through component based product line development , 1998, 17th DASC. AIAA/IEEE/SAE. Digital Avionics Systems Conference. Proceedings (Cat. No.98CH36267).

[153]  Nancy S. Eickelmann ACM fellow profile: David Lorge Parnas , 1999, SOEN.

[154]  John Aycock,et al.  Compiling Little Languages in Python , 1998 .

[155]  Jean Bézivin,et al.  From Object Composition to Model Transformation with the MDA , 2001, TOOLS.

[156]  Krzysztof Czarnecki,et al.  Components and generative programming (invited paper) , 1999, ESEC/FSE-7.

[157]  Richard P. Gabriel,et al.  CLOS in context: the shape of the design space , 1993 .

[158]  William G. Griswold,et al.  Exploiting the map metaphor in a tool for software evolution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[159]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[160]  Gregor Kiczales,et al.  Structuring operating system aspects: using AOP to improve OS structure modularity , 2001, CACM.

[161]  Tzilla Elrad,et al.  Designing an aspect-oriented framework in an object-oriented environment , 2000, CSUR.

[162]  Ralph E. Johnson,et al.  Frameworks = (components + patterns) , 1997, CACM.

[163]  Calton Pu,et al.  Microlanguages for Operating System Specialization , 1997 .

[164]  M. Jackson,et al.  Some complexities in computerbased systems and their implications for system development , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[165]  Douglas C. Schmidt,et al.  The design and performance of a real-time CORBA event service , 1997, OOPSLA '97.

[166]  Karl J. Lieberherr,et al.  Aspect-oriented programming with adaptive methods , 2001, CACM.

[167]  Theo D'Hondt,et al.  Aspect-Orientated Logic Meta Programming , 1999, Reflection.

[168]  James Kinsley,et al.  83 To a Louse, on Seeing one on a Lady's Bonnet at Church , 1968 .

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

[170]  Terence Parr Language Translation Using PCCTS and C , 1999 .

[171]  Hayco de Jong,et al.  Generation of abstract programming interfaces from syntax definitions , 2004, J. Log. Algebraic Methods Program..

[172]  Yanchun Zhang,et al.  An analytical evaluation of NIAM'S grammar for conceptual schema diagrams , 1996, Inf. Syst. J..

[173]  Matthias Clauss,et al.  Generic Modeling using UML extensions for variability , 2001 .

[174]  Ellis Horowitz,et al.  A survey of Application Generators , 1985, IEEE Software.

[175]  Gabor Karsai,et al.  Composing Domain-Specific Design Environments , 2001, Computer.

[176]  Siobhán Clarke,et al.  Composition patterns: an approach to designing reusable aspects , 2001, ICSE 2001.

[177]  M. Jonge,et al.  A pretty-printer for every occasion , 2001 .

[178]  Guy L. Steele,et al.  Growing a Language , 1999, High. Order Symb. Comput..

[179]  Eric A. Meyer,et al.  Cascading Style Sheets: The Definitive Guide , 2000 .

[180]  Mohamed Fayad Introduction to the computing surveys' electronic symposium on object-oriented application frameworks , 2000, CSUR.

[181]  Dave Thomas,et al.  Software Archaeology , 2002, IEEE Softw..

[182]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[183]  Don S. Batory,et al.  Reengineering a complex application using a scalable data structure compiler , 1994, SIGSOFT '94.

[184]  Brian Randell,et al.  Edsger Dijkstra , 2003, 2003 The Ninth IEEE International Workshop on Object-Oriented Real-Time Dependable Systems.

[185]  Valdis Berzins,et al.  The Realizable Benefits of a Language Prototyping Language , 1988, IEEE Trans. Software Eng..

[186]  Gregory T. Sullivan Aspect-oriented programming using reflection and metaobject protocols , 2001, CACM.

[187]  Siobhán Clarke,et al.  Extending standard UML with model composition semantics , 2002, Sci. Comput. Program..

[188]  Iain D. Craig The interpretation of object-oriented programming languages - updated to include C# (2. ed.) , 2002 .

[189]  Jon Louis Bentley,et al.  Programming pearls: little languages , 1986, CACM.

[190]  Premkumar T. Devanbu GENOA—a customizable, front-end-retargetable source code analysis framework , 1999, TSEM.

[191]  Wolfgang Schröder-Preikschat,et al.  On aspect-orientation in distributed real-time dependable systems , 2002, Proceedings of the Seventh IEEE International Workshop on Object-Oriented Real-Time Dependable Systems. (WORDS 2002).

[192]  Raghu V. Hudli,et al.  CORBA fundamentals and programming , 1996 .

[193]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[194]  Jeffrey G. Gray,et al.  Using software component generators to construct a meta-weaver framework , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.