Design Maintenance System®

DMS® is a 21st Century Vision for
Software Engineering and Software Maintenance

A software engineering environment that supports the incremental engineering and maintenance of large application systems, driven by domain knowledge, semantics, captured designs and automation.

DMS records:

  • what the software is supposed to do (specification),
  • how the software does it (the code), and
  • why the software works correctly (the design).

Using practical program generation and transformation technology, DMS will enable designers to:

  • understand the design, and
  • modify the design to obtain new code

while yielding a 50% reduction in software maintenance cost and cycle time

  • by reducing the program understanding cost
  • by eliminating errors in implementing changes
  • by reusing sophisticated, performant implementation knowledge

The DMS concept is fundamentally different from other Software Engineering methods:

  • DMS emphasizes tool-supported design capture and modification.
  • DMS organizes problem domain concepts and code generation knowledge into domains.
  • A hierarchy of domains shows how to map abstract problem domain ideas to target languages.
  • DMS uses the domains to transform specified domain concepts to code for the problem at hand.
  • The software engineer can navigate the recorded map to understand how the code works.
  • DMS requires the design to be updated before the code, so design knowledge isn't lost.

The DMS vision thus provides a continuous, incremental model of software construction.

We call this approach a semantically-based software engineering method, because DMS "understands" far more about the problem and the final program than conventional CASE tools.

What can one do with a DMS-like technology?

  • Legacy code modification and reverse engineering (Software maintenance, code porting, restructuring, optimization, design recovery to domain abstractions, massive changes)
  • Domain-specific program generation (Factory Control synthesis, Partial Differential Equation solver generators, Entity-Relationship compilers,Your Domain Here)

DMS is designed for large scale software systems

  • Reusable knowledge about problem and technology areas organized as domains
  • Fast parsing and transformation engines (procedures, trees, graphs)
  • Software Engineers as clients, DMS as server
  • Implemented in SD's parallel programming language, PARLANSE
  • Presently supports C++

Additional Information:

Technical Papers Related to DMS

DMS R&D was funded by the National Institute of Standards and Technology, Advanced Technology Program

For more information:    Follow us at Twitter: @SemanticDesigns

Design Maintenance
System Vision