Home > News > Spring 2006 MDA
About Us
Capabilities
Careers
News
November 5, 2007
Spring 2006 MDA
Contact
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
 © 2008 CohesionForce, Inc. | Contact Us