Requirements compiler (Master of Software Engineering, unofficial)
The process of developing an object-oriented software design from a functional requirements specification is a fundamental issue in software engineering. Important issues such as discovering data elements present in the requirements, deriving design objects, specifying object relationships, and others can be obscured as significant low-level clerical effort is expended to produce consistent, traceable, standards-compliant requirements and design documentation. This manuscript describes a software tool, Requirements Compiler (RC), which assists in the generation of quality functional requirements and guides the user through a well defined process to derive an object-based design. The tool explicitly exposes the user to central processes governing a formal software design methodology, alleviates much of the associated low level clerical effort and ensures consistency between the requirements and the corresponding design. RC provides an editor for composing and editing IEEE-compliant functional requirement documents, ensuring the requirements specified are structured correctly (i.e. syntax). RC also provides an interactive GUI environment which guides the user through a derivation process to obtain an object-based design for a selected requirements document. In addition to the generated design, the tool provides a detailed statistical report on the derivation process and source code stubs for each class specified in the design. The generated source code (Java, C# or C++) contains declarations for the attributes and signatures and pseudo-code for the methods, all based upon information parsed from the requirements document.