Design Review and Improvement

Objectives

This task evolved because restructuring tools cannot correct poor program design. Design review and improvement is actually an extension of flaw analysis and removal, but deals with issues that become more apparent after restructuring repackages source logic. It is important to recognize that, while improving program level design does not correct system design issues, it is a logical point to begin and typically a prerequisite to the next level. Specific objectives for this process include:

· Optimizing program design so that analysts can more readily decipher functional intent

· Stabilizing design constructs so that new enhancements can be added more reliably

· Streamlining of logic in preparation for remodularization and process reusability based Transformation tasks

· Streamlining, in some cases, run-time efficiency

Note: Creating a plan for this task, without benefit of seeing the restructured source code that this task requires, is difficult. Some organizations may require a preliminary plan before gaining project approval.

Entrance Criteria

The entrance criteria for the design review and improvement task are listed below.

· Completion of the Inventory/Analysis, process flow analysis task for the systems/programs of interest

· Completion of flaw analysis & removal and code restructuring for programs targeted for this task

Note: Code may be run through this task in the absence of these prerequisite tasks if it is defect free and has a good structured rating.

· A defined need to correct program design issues based on preliminary review of restructured source code as defined in the restructuring task

· Completion of the application staging task for programs/ system of interest

Roles/Skills

The personnel and skill requirements necessary to meet the design review and improvement task objectives are identified below.

· Process Positioning Expert

- Expertise in structuring and iterative improvement using structuring and code analysis tools

· Current Systems Expert

- Knowledge of existing program/function breakdown

· Metrics analyst

- Analyst conversant with metric tools and interpretation for source language type(s)

Input Requirements

The system components and related inputs required to initiate and complete the design review and improvement task are listed below.

· Original, Input, Output and Final source code libraries produced by the restructuring task

· Positioning control log Form 022 as partially completed in restructuring task

· Production program source and Copy code loaded into Original/Input libraries and structured versions loaded into Output/Final libraries

Note: Input and Final versions of source programs will be used in this task. Further input changes will be applied to Input and/or Final versions based on the techniques applied to a given program in the steps below.

· Blank copy of Positioning work plan Form 020

· Updated static analysis, audit trail and compiler results from the restructuring process

Tool/Technology Support

Technologies supporting the design review and improvement task include restructuring, static analysis, program editor, compiler/preprocessors and comparator tools. These tools are used to represent information as required by this task.

Restructuring tool

In this task primary support for design review and improvement includes both static analysis and restructuring tools. Restructuring tools have been available for some time and are fairly mature products. Capabilities required in a restructuring tool include the ability to parse and analyze source code, determine all possible logic paths and recreate a functionally identical version of the program in structured form. The degree of flexibility in output formats and styles varies from tool to tool, but all allow the user some leeway in determining the format of the resultant code.

Static analysis tool

The static analysis tool in this task must be able to graphically analyze code to produce information on logic flow, program flaws and quality metrics.

Program editor

An on-line facility capable of serving as a source code editor to make modifications required by this task . Use a program editor appropriate to the environment.

Compiler/preprocessors

A source language compiler/preprocessor is required to parse source code and convert it into machine executable instructions. This compilation process identifies many types of errors, and requires their correction before it will complete successfully.

Comparator

This tool is used to identify changes made to source code by comparing the input programs line by line and producing listings of any differences it finds.

Task Steps

The design review and improvement task is comprised of the following task steps:

Optimize Program Size
Optimize Procedure & Paragraph Size
Eliminate Logic Spikes & Reduce Complexity
Review and Correct Switch Variables
Review and Improve Procedure Names
Review & Refine Table Handling Techniques
Finalize Design Review & Improvement Task