Achieving Extensibility Through
Product-Lines and Domain-Speciﬁc
Languages: A Case Study
DON BATORY, CLAY JOHNSON, BOB MACDONALD, and DALE VON HEEDER
University of Texas at Austin
This is a case study in the use of
) to design an extensible command-and-control simulator for Army ﬁre 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 compo-
nent speciﬁcations is substantially reduced by using a DSL for deﬁning and reﬁning state machines,
abstractions that are fundamental to simulators. We present preliminary results that show how
our PLA and DSL synergistically produce a more ﬂexible way of implementing state-machine-based
simulators than is possible with a pure Java implementation.
(e.g., object-oriented, structured); D.2.2 [
Design Tools and Techniques—
; D.2.10 [
Methodologies and representations
; D.2.11 [
; D.2.13 [
]: Reusable Software—
; D.2.m [
General Term: Design
Additional Key Words and Phrases: GenVoca, domain-speciﬁc languages, simulation, aspects,
Software evolution is a costly yet unavoidable consequence of a successful appli-
cation. Evolution occurs when new features are added and existing capabilities
This work was supported in part by the University of Texas Applied Research Labs and the U.S.
Department of Defense Advanced Research Projects Agency in cooperation with the U.S. Wright
Laboratory Avionics Directorate under contract F33615-91C-1788.
Preliminary version presented at the International Conference on Software Reuse, Vienna, Austria,
July 2000. Updated for ACM TOSEM September 2001.
Authors’ addresses: D. Batory, Department of Computer Sciences, University of Texas at Austin,
Austin, TX 78712; email: email@example.com; C. Johnson, B. MacDonald, and D. von Herder,
Applied Research Labs, University of Texas at Austin, Austin Texas 78713; email:
Permission to make digital/hard copy of part or all of this work for personal or classroom use is
granted without fee provided that the copies are not made or distributed for proﬁt or commercial
advantage, the copyright notice, the title of the publication, and its date appear, and notice is given
that copying is by permission of the ACM, Inc. To copy otherwise, to republish, to post on servers,
or to redistribute to lists, requires prior speciﬁc permission and/or a fee.