Abstract
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.
References
- FSATS 1999. "System Segment Specification (SSS) for the Fire Support Automated Test System", Applied Research Laboratories, The University of Texas. See URL http://www. arlut.utexas.edu/fsatswww/fsats.shtml.]]Google Scholar
- BATORY, D. AND O'MALLEY, S. 1992. The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Trans. Softw. Eng. Methodol. (Oct.).]] Google Scholar
- BATORY, D., COGLIANESE, L., GOODWILL, M., AND SHAFER, S. 1995. Creating Reference Architectures: An Example from Avionics. Symposium on Software Reusability, Seattle, WA. (Apr.).]] Google Scholar
- BATORY, D., LOFASO, B., AND SMARAGDAKIS, Y. 1998. JTS: Tools for Implementing Domain- Specific Languages. 5th International Conference on Software Reuse, Victoria, Canada (June). http://www.cs.utexas.edu/users/schwartz/JTS30Beta2.htm.]] Google Scholar
- BATORY, D. AND GERACI, B. J. 1997. Composition Validation and Subjectivity in GenVoca Generators. IEEE Trans. Softw. Eng. (Feb.), 67-82.]] Google Scholar
- BATORY, D. 1998. Product-Line Architectures. Smalltalk and Java Conference, Erfurt, Germany (Oct.).]]Google Scholar
- BATORY, D., SMARAGDAKIS, Y., AND COGLIANESE, L. 1999. Architectural Styles as Adaptors. Software Architecture, Patrick Donohoe, ed., Kluwer Academic Publishers.]] Google Scholar
- BATORY, D., CHEN, G., ROBERTSON, E., AND WANG, T. 2000. Design Wizards and Visual Programming Environments for GenVoca Generators. IEEE Trans. Softw. Eng. (May), 441-452.]] Google Scholar
- BAXTER, I. 1992. Design Maintenance Systems. CACM (Apr.).]] Google Scholar
- BERRY, G. AND GONTHIER, G 1992. The Esterel Synchronous Programming language: Design, Semantics, and Implementation. Science of Computer Programming. 87-152.]] Google Scholar
- BOSCH, J. 1999. Product-Line Architectures in Industry: A Case Study. ICSE, Los Angeles, CA.]] Google Scholar
- CARDONE, R. AND LIN, C. 2001. Comparing Frameworks and Layered Refinement. ICSE Toronto.]] Google Scholar
- CHIDAMBER S. R. AND KEMERER, C. F. 1991. Towards a Metrics Suite for Object Oriented Design. OOPSLA.]] Google Scholar
- CZARNECKI, K. AND EISENECKER, U. W. 1999. Components and Generative Programming. ACM SIGSOFT.]] Google Scholar
- VAN DEURSEN, A. AND KLINT, P. 1997. Little Languages: Little Maintenance? SIGPLAN Workshop on Domain-Specific Languages.]]Google Scholar
- EICK, S. G., GRAVES, T. L., KARR, A. F., MARRON, J. S., AND MOCKUS, A. 2001. Does Code Decay? Assessing the Evidence from Change Management Data. IEEE Trans. Softw. Eng., 27:1 (January), 1-12.]] Google Scholar
- ELLSBERGER, J., HOGREFE, D., AND SARMA, A. 1997. Formal Object-Oriented Language for Communicating Systems. Prentice-Hall, Englewood Cliffs, NJ.]]Google Scholar
- FINDLER, R. B. AND FLATT, M. "Modular Object-Oriented Programming with Units and Mixins", ICFP 98.]] Google Scholar
- GAMMA E., HELM, R., JOHNSON, R., AND VLISSIDES, J. 1995. Design Patterns Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, Massachusetts.]] Google Scholar
- GOGUEN, J. A. 1986. Reusing and Interconnecting Software Components. IEEE Computer (Feb.).]] Google Scholar
- GOMAA, H., KERSCHBERG, L., AND SUGAMARAN, V. 1992. A Knowledge-Based Approach to Generating Target System Specifications from a Domain Model. IFIP Congress 1, 252-258.]] Google Scholar
- GRISS, M. 2000. Implementing Product-Line Features by Composing Component Aspects. First International Software Product-Line Conference, Denver, CO. (Aug.).]] Google Scholar
- HAREL, D. 1987. Statecharts: A Visual Formalism for Complex Systems, Science of Computer Programming, 231-274.]] Google Scholar
- HAREL, D. AND GERY, E. 1996. Executable Object Modeling with Statecharts. ICSE.]] Google Scholar
- KANG, K. C., COHEN, S. G., HESS, J. A., NOVAK, W. E., AND PETERSON, A. 1990. Feature-Oriented Domain Analysis Feasibility Study, SEI. Technical Report CMU/SEI-90-TR-21 (Nov.).]]Google Scholar
- KICZALES, G., LAMPING, J., MENDHEKAR, A., MAEDA, C., LOPES, C., LOINGTIER, J., AND IRWIN, J. 1997. Aspect-Oriented Programming, ECOOP. 220-242.]]Google Scholar
- LOPEZ-HERREJON, R. E. AND BATORY, D. 2001. A Standard Problem for Evaluating Product-Line Methodologies. Third International Conference on Generative and Component-Based Software Engineering (GCSE 2001), (Sept. 9-13), Messe Erfurt, Erfurt, Germany.]] Google Scholar
- MAGNAVOX, 1999. System Segment Specification (SSS) for the Advanced Field Artillery Tactical Data System (AFATDS).]]Google Scholar
- NEIGHBORS, J. 1989. Draco: A Method for Engineering Reusable Software Components, in T. J. Biggerstaff and A. Perlis, eds., Software Reusability, Addison-Wesley/ACM Press.]] Google Scholar
- NEIGHBORS, J. 1997. "DataXfer Protocol," BayFront Technologies. 1997, URL http://bayfronttechnologies.com.]]Google Scholar
- REENSKAUG, T., ET AL. 1992. "OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems", Journal of Object-Oriented Programming, 5(6) (Oct.), 27-41.]]Google Scholar
- RICH, C. AND WATERS, R. C. 1990. The Programmer's Apprentice, ACM Press.]] Google Scholar
- Software Engineering Institute 2001. The Product Line Practice (PLP) Initiative, URL http://www.sei.cmu.edu/plp/plp init.html.]]Google Scholar
- SIMONYI, C. 1995. The Death of Computer Languages, the Birth of Intentional Programming, NATO Science Committee Conference.]]Google Scholar
- SMARAGDAKIS, Y. AND BATORY, D. 1998. Implementing Layered Designs with Mixin Layers, ECOOP.]] Google Scholar
- SMARAGDAKIS, Y. AND BATORY, D. 2002. Mixin Layers: An Object-Orinted Implementation Technique for Refinements and Collaboration-Based Designs. ACM Trans. Softw. Eng. Method.]] Google Scholar
- TARR, P., OSSHER, H., HARRISON, W., AND SUTTON, S. M. JR. 1999. N Degrees of Separation: Multi- Dimensional Separation of Concerns, ICSE.]] Google Scholar
- TAYLOR, R. 1999. Panel on Software Reuse. Motorola Software Engineering Symposium, Ft. Lauderdale.]]Google Scholar
- TOKUDA, L. AND BATORY, D. 1999. Evolving Object-Oriented Architectures with Refactorings. Conference on Automated Software Engineering, Orlando, FL.]] Google Scholar
- VAN HILST, M. AND NOTKIN, D. 1996. Using Role Components to Implement Collaboration-Based Designs, OOPSLA, 359-369.]] Google Scholar
- WEISS, D. M. AND LAI, C. T. R 1999. Software Product-Line Engineering. Addison-Wesley.]] Google Scholar
Index Terms
Achieving extensibility through product-lines and domain-specific languages: a case study







Comments