|
| |
Cracking the Code of Legacy Systems New tool provides
‘blueprints’ and a process for updating and programming software.
by Scott Tillett/stillett@nttc.edu
Imagine being an architect trying to renovate a skyscraper
without the original blueprint. Some programmers today
face a similar task when updating old software that, in
many cases, was assembled in a piecemeal fashion—without a
comprehensive, master diagram.
But a new tool, developed by CohesionForce, Inc.
(Huntsville, AL), will allow programmers to more easily diagram
and revamp existing software systems, enabling better
management of future code modifications. The tool, developed
with MDA SBIR funding, also will help programmers
diagram and then build new systems from scratch.
CohesionForce calls its new offering a “Programming
Support Environment” (PSE). The product is based on the
nonproprietary Unified Modeling Language (UML), which
allows a user to create an abstract model (a set of diagrams) of
a software system.
The company’s approach lets software engineers take existing
source code and pull information into the PSE, so that
programmers can use it to edit or enhance the system. "We
start with the source code and walk backward to create these
diagrams," said David Phillips, chief technical officer at
CohesionForce. "It’s for the purpose of getting the information
necessary to do the editing that you want to do to that
system." Also, in building new systems, CohesionForce’s
tool can reverse-engineer the final product and then compare
it with the original design—to validate the system and
see if programmers actually built what they set out to build.
MDA originally funded CohesionForce’s UML-based PSE
through a Phase I SBIR award. The technology shows promise
in dealing with the complex task of upgrading software in
legacy weapon systems or migrating software from prototype
systems to actual systems in the field.
Looking back
The reverse-engineering or "backward-looking" aspect of
the tool is unique, according to Phillips. Existing UML modeling
tools allow the user to construct a design of a "new" system
and then, in some limited cases, produce source code
from the design, he said. But CohesionForce’s tool can do the
same while also delivering unique capabilities for understanding
old or existing systems.
"CohesionForce’s PSE concept focuses on supporting existing
systems by transforming the ‘structural and behavioral’
information that is stored in the source code into knowledge
about the application and allowing the software developer to
manipulate that knowledge at a higher level of abstraction,"
Phillips said. "We do this by making a blended model that
contains information about not only the structure of the system,
but also the behavioral aspects as well."
Also, competing tools usually support only a small set of
programming languages, such as Java, C, and C++, according
to CohesionForce. But many users, including Defense
agencies and other large organizations, have a large bulk of
existing software written in Ada and other languages that
competing tools will not readily support. And even if language-
level support is available (usually through third-party
plug-ins), the source code still would need to be changed to
support code generation from the tool. Although
CohesionForce’s tool was originally developed to work with
the Ada programming language, Phillips said the technology
can be easily adapted to work with other languages, including
Java and C++.
Keying in on features
Phillips said the PSE revolves around four key features.
First, it provides a graphical environment for analysis and
modification of existing source code—in the form of a highlevel
model for the entire system or application. Second, it
maintains a "pedigree", giving users a sophisticated capability
to trace back to the original source code and to compare or
control various versions of an application. Third, it provides
software engineers and analysts with configuration-management
tools at the modeling level (such as requesting and
tracking changes to both the model and the software) that
typically are reserved for only software developers at the coding
level. And fourth, the PSE allows software developers or
managers to "understand" the source code and customize the
reports they generate, comparing results against the original
design model.
The company continues to look for customers—specifically
targeting organizations that have a strong need to verify their
software models. Organizations working with older languages
and large systems, therefore, are a prime target. Phillips said
the tool might also prove useful in educational environments,
giving software students a helpful way to view source code
graphically as they learn.
CONTACT INFO
David Phillips
CohesionForce, Inc.
Tel: (256) 562-0600
E-mail: dphillips@cohesionforce.com
Web: www.cohesionforce.com
_________________________________________________________________
Original article found at:
http://www.mda.mil/mdalink/pdf/spring_06.pdf
|
| | |