Task: Assure a Quality Solution
Validate the structure (static analysis) and behavior (runtime analysis) of the implementation.
Purpose
To assess and improve the quality of the code produced, based on guidelines and best practices.
Relationships
RolesMain: Additional: Assisting:
InputsMandatory: Optional:
  • None
External:
  • None
Outputs
Main Description

Quality analysis encompasses both static analysis and runtime analysis. Static analysis focuses on the structural aspects of the software (conformity with coding guidelines, code complexity, code dependencies, etc). Runtime analysis looks at a program's behavior based on what it does when it runs (memory leaks, bottlenecks, memory footprint, etc)

Steps
Adopt guidelines for quality analysis

Create the Code Analysis Guidelines early in the project. See Coding Standard for tips on creating good coding guidelines.

Review the coding guidelines at regular intervals, such as during iteration assessments or after baselines have been created. This can be done as a quick agenda item asking of it would be useful to change or add any coding guidelines. Some guidelines may be useless and can be dropped. There may be new guidelines that would be helpful that can be adopted. Or existing guidelines may need to be better enforced.

When adopting new guidelines or changing guidelines, the team will need to consider if they want to apply those guidelines to existing code. The benefit of doing so may not outweigh the cost and inconvenience of changing existing code. It may be worth using the guidelines on new code (and fixes to existing code), and asking later if the new guidelines provide enough value to change existing code.

Improve the structure of the code

Examine the code for compliance to coding guidelines. Compare the source code of an application with a set of predefined coding standards in the team's code analysis guidelines to ensure that the source code complies with those standards. Make changes to the implementation to conform to the guidelines and repair static analysis issues. Review the code to determine if it is unnecessary complex, and identify potential simplifications. Look at code dependencies between implementation elements. Identify design patterns (best practices) and antipatterns (unwanted dependencies).

Make changes to the implementation to conform to the guidelines and repair static analysis issues.

See Concept: Coding Standard for links to common platform standards.

Improve the behavior of the code
Inspect the execution of your code to validate if your latest implemented elements have a negative impact on the application's behavior. Make changes to the implementation to conform to the guidelines and repair runtime analysis issues. See Concept: Runtime Observation and Analysis for more information.
Address regression errors

Check for regression errors in any code that was changed. Execute existing white-box and black-box tests against the affected code and repair any errors that were introduced as a result of improving the implementation.

Properties
Multiple Occurrences
Event Driven
Ongoing
Optional
Planned
Repeatable
More Information