Goal
Examine functional and quality properties.
Description
Software code analysis can be done in two different ways:
| 1. |
Structure Analysis This gives information about the structure of the source code and will indicate how maintainable, efficient, portable, compliant, etc. the system is. Output will be metrics, visualizations of the code structure, rules that are violated (and where). Metrics and visualizations need some interpretations to come to a judgment. This subjective part is preferably done by the customer. LaQuSo can e.g. identify outlying values or possible weak spots. |
| 2. |
Behavior Analysis This gives information about the behavior of the source code and will indicate if desired functional properties are present in the system. Output will be in the form of assertions that are violated with the corresponding system state or other counterexamples. |
Input
- Output from architecture phase;
- Source code;
Output
Metrics, visualizations, rule violations, assertion violations, counterexamples.
Case Studies
- Software code review of a complex planning system. This system is an overall system that plans services and guards and keeps track of the rules and regulations of thousands of employees. This code review looks at compliance to standards, use of memory and looks for errors in the code structure. Both an in-depth analysis and a quick overview approach are used.
- Review of the security code of a model train system. In this project several different tools are used to derive quality metrics and structure information. Assertion checking was part of the job.
- Review of the code of a warmth control system in a blood transfusion machine. Compliance checking to international standards. Finding programming errors. Preparation of the certification process.
- Review of structure of a print control system. This system is embedded on a new chip and controls the operation of the printer and the colour management. The system contains some errors that are not traceable. The LaQuSo approach intends to find these errors.

