Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Achieving extensibility through product-lines and domain-specific languages: a case study
Batory D., Johnson C., MacDonald B., von Heeder D. ACM Transactions on Software Engineering and Methodology11 (2):191-214,2002.Type:Article
Date Reviewed: Jun 24 2002

Anyone interested in the current discussion of “agile development” supported by refactoring will find this paper interesting and useful. The paper describes an example of applying layered development methods to a complex, real-time, rapidly changing requirements environment.

This case study shows how software refactoring can be enhanced using abstractions of interfaces and domain-specific languages. The legacy fire support automated test system (FSATS) was redesigned to provide extensibility, using GenVoca. Although GenVoca and aspect-oriented programming (AOP) have different starting points, they both begin with some encapsulated representation of system function, and both provide a mechanism to define and apply large-scale refinements. The GenVoca system implemented in the Jakarta Tool Suite, along with a domain–specific language, is used to declare and define the state machines that form the core of the FSATS simulator.

The extension of these state machines is the motivation for the GenVoca tool. A detailed description of the legacy simulator, and of the changes made to provide extensibility, occupies the majority of the paper. Some background reading in aspect-oriented programming concepts, the GenVoca system, and layer distributed object systems are needed to gain value from the paper. Once these concepts and terminology are acquired, a second reading reveals deeper insight into the process of designing a layered state-driven system using automated tools.

Examples of Java state machine (JavaSM) declarations are provided. Refinements of these state machines, the refactoring processes, and their impacts on the overall system design provide the reader with detailed examples of how GenVoca is used to create a unique software development environment.

Although the paper describes techniques used for building state driven simulators, systems of this type can be found in other domains, including workflow processing, telecommunications, and business transaction processing.

By directly implementing the state specifications in JavaSM, the conceptual distance between specification and implementation was reduced. This approach is the motivation behind many of today’s modern software development methods. Here is a nontrivial example of how this can be done.

Reviewer:  Glen Alleman Review #: CR126202 (0208-0440)
Bookmark and Share
 
Methodologies (D.2.1 ... )
 
 
Domain Engineering (D.2.13 ... )
 
 
Evolutionary Prototyping (D.2.2 ... )
 
 
Languages (D.2.11 ... )
 
 
Miscellaneous (D.2.m )
 
Would you recommend this review?
yes
no
Other reviews under "Methodologies": Date
Multilevel specification of real time systems
Gabrielian A., Franklin M. Communications of the ACM 34(5): 50-60, 1991. Type: Article
May 1 1992
Software requirements
Davis A., Prentice-Hall, Inc., Upper Saddle River, NJ, 1993. Type: Book (9780138057633)
Nov 1 1994
The automated production control documentation system
Trammell C., Binder L., Snyder C. ACM Transactions on Software Engineering and Methodology 1(1): 81-94, 1992. Type: Article
Mar 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy