Date of Award


Document Type


Degree Name

Master of Science (MS)


Computer Science

Committee Chair

Mikel D. Petty

Committee Member

Letha Etzkorn

Committee Member

Peter J. Slater


Computer software--Reusability., Software reengineering., UML (Computer science)


Research into a framework or methodology able to facilitate the integration or composition of existing software components into a new software system has a long history, both in software engineering in general and in modeling and simulation in particular. The potential benefits from the reuse of previously developed software components are well-known; they include reduction in both the cost and the time needed to develop a new system. In this thesis a methodology for the implementation of new simulation software systems using previously developed software components is developed and tested. The methodology is focused on semi-automated forces systems, an important class of large simulation software systems that are widely used in defense-related simulation. Semi-automated forces systems model combat at the level of entities, i.e., individual tanks and soldiers, and can autonomously generate tactical behavior for the entities in real time during execution. The methodology facilitates the selection of software components from a repository, the integration or composition of the selected components into an executable software system, and the verification of their correct interoperation according to the system's specifications. It is based on the production and use of metadata associated with each component designed to facilitate those processes and the creation of a software modeling language specific to semi-automated forces systems. Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) constraints are used to build a domain-specific modeling language that describes the domain of semi-automated forces systems. This domain-specific modeling language is used as a metamodel, with which a user can specify or model the new simulation software to be developed, in this case a specific semi-automated forces system. UML is used to identify the components required in the system and OCL to specify constraints (pre-conditions, post-conditions, and invariants) on attribute values that must be met during execution. From that model a "skeleton" code for the new semi-automated forces is developed that includes the required components and satisfies the constraints. The components in the skeleton code are "stubs"; they have the specified interfaces but do not have the internal functionality, such as realistic models of entity behavior or combat, required for the components. Then the skeleton components are replaced with fully functional components from the repository. After doing so, the simulation software is executed. The constraints are automatically checked during execution and any of the components that violate them are identified. When possible aspect oriented programming is used to adapt the behavior of any constraint-violating components so as to bring them into compliance with the constraints of the model. The list of constraints that each component violates, as well as the adapters that adjust its behavior in order to comply with the constraints, are saved in the repository as the metadata of the component. The existence of this component metadata associated with the components in the repository increases the value of the components, because the effort required to integrate them into future compositions is reduced.



To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.