Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study

This is a case study in the use of product-line architectures (PLAs) and domain-specific languages (DSLs) to design an extensible command-and-control simulator for Army fire support. The reusable components of our PLA are layers or “aspects” whose addition or removal simultaneously impacts the source code of multiple objects in multiple, distributed programs. The complexity of our component specifications is substantially reduced by using a DSL for defining and refining state machines, abstractions that are fundamental to simulators. We present preliminary results that show how our PLA and DSL synergistically produce a more flexible way of implementing state-machine-based simulators than is possible with a pure Java implementation.

[1]  Roberto Erick Lopez-Herrejon,et al.  A Standard Problem for Evaluating Product-Line Methodologies , 2001, GCSE.

[2]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

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

[4]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[5]  Martin L. Griss Implementing Product-Line Features By Composing Component Aspects , 2000 .

[6]  Jan Bosch,et al.  Product-line architectures in industry: a case study , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

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

[9]  Charles Simonyi,et al.  The Death of Computer Languages, The Birth of Intentional Programming , 1995 .

[10]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

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

[12]  Richard C. Waters,et al.  The programmer's apprentice , 1990, ACM Press frontier series.

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

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

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

[16]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[17]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[18]  Robert Bruce Findler,et al.  Modular object-oriented programming with units and mixins , 1998, ICFP '98.

[19]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[20]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[21]  BerryGérard,et al.  The ESTEREL synchronous programming language , 1992 .

[22]  Martin L. Griss Product-line architectures , 2001 .

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

[24]  Dieter Hogrefe,et al.  SDL : formal object-oriented language for communicating systems , 1997 .

[25]  Vijayan Sugumaran,et al.  A Knowledge-Based Approach to Generating Target System Specifications from a Domain Model , 1992, IFIP Congress.

[26]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[27]  Calvin Lin,et al.  Comparing frameworks and layered refinement , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

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

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

[30]  Yannis Smaragdakis,et al.  Architectural Styles as Adaptors , 1999, WICSA.

[31]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[32]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

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