The production of software design descriptions that record program design and that satisfy the requirements of government standards for software development, such as DOD-STD-2167A and its successor DOD-STD-498, consumes a significant portion of the software engineering budget. Traditional approaches to producing this sort of design documentation are labor-intensive, error-prone, and distract the software engineer from his primary responsibilities, those of designing, implementing, and testing program logic.
Software design is fluid and constantly evolving. Maintaining design descriptions in synchrony with current design is accomplished only with great effort and at high cost. The SDD (Software Design Description) generation tool, SDDPublisher, is designed to simplify the task of creating and maintaining software design documentation. It does this by translating program source code expressed in a variety of modern programming languages, directly into subprogram design descriptions conforming to user-specified formatting requirements.
Design descriptions generated by SDDPublisher include,
In function and form it is much like a compiler. Instead of generating machine-executable code, the SDD generation tool operates on annotated code units to produce design descriptions. The nature of these annotations depends to a small degree on the particular programming language chosen for system implementation. Annotating the code places no burden on software designers and implementers beyond those that are an integral part or their professional responsibilities.
SDD descriptions are constructed from commentary inserted into program logic by the software engineer during the design and implementation phases of the development process. Because design descriptions are generated automatically from source code, it is possible to effortlessly create design documents that correctly portrays code function and structure during all phases of a software system's lifecycle.
Most software engineering organizations establish coding standards designed to promote reliability, uniformity, and maintainability. However, coding standards are difficult to enforce. Internal review by the software engineering organization and external review by quality assurance groups are the most common means for enforcing standards. The sheer volume of code that must be examined, overwhelms reviewers and makes the manual review of code an ineffective method of guaranteeing compliance with standards. However, the SDD generation tool provides, as an added benefit, an automatic means for monitoring compliance with coding standards. Violations, wherever they occur in the code, are flagged by SDDPublisher with diagnostic messages.
SDDPublisher is a proprietary tool built and owned by PerfectLogic. It has been has been used on client projects to speed the production of required software design descriptions. PerfectLogic continues to make it available to its clients. There are no immediate plans to sell this product to a wider market.