Computing Reviews

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: 06/24/02

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)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy