Features

Many available metrics

Mia-Quality proposes a large range of metrics allowing to cover different quality aspects of a program.

Vocabulary analysis

It is the analysis of the operands and the operators of a program with as objective :

  • to qualify and to visualize the program variables and their use frequency in controls,
  • to quickly check the variables identification conformity compared to the standards of the company according to their type, their internal or external nature,
  • to watch some operators illicit uses by taking account of the company standards (DISPLAY, ACCEPT, GOTO DEPENDING, ALTER,...).


Complexity analysis

The complexity analysis module allows to apprehend the quality or the complexity of a program by the means of metrology.

This module contains main metrics of famous theories (HALSTEAD, McCABE, McCLURE, KNOT-COUNT), and others, from a more pragmatic use.

These metrics are produced when the program and its internal modules are analysed (paragraphs launched by a PERFORM).

 

Available metrics :

 

  • HALSTEAD
    •  Number of instructions
    •  Number of distinct operators
    •  Number of distinct operands
    •  Number of distinct literals
    •  Number of data uses
    •  Length
    •  Theoretical length
    •  Vocabulary
    •  Contents relevance
    •  Program level
    •  Effort of programming
    •  Total volume  
    •  Inputs/Outputs volume
  •  McCABE
    •  Cyclomatic number
    •  Essential cyclomatic number
  •  McCLURE
    •  Complexity
  •  KNOT-COUNT
    •  Number of "GO TO" crossovers
  •  Structure
    •  Number of control variables
    •  Number of complex module
    •  Number of paragraph activations (others than done by PERFORM statements)
    •  Number of hierarchical levels
    •  Number of root segments
    •  Number of illicit GO TO statements
    •  Number of comments lines
    •  Number of recursive paths
    •  Number of dead-code lines
  •  Inventory
    •  Number of arithmetic instructions
    •  Number of program terminaison instructions
    •  Number of files handling instructions
    •  Number of sort or merge instructions
    •  Number of COPY statements used by the program
    •  Number of PERFORM statements
    •  Number of MOVE statements
    •  Number of GOTO statements
    •  Number of CALL statements
    •  Number of IF statements
    •  Number of lines
    •  Number of lines for data
    •  Number of lines for instructions
  •  Ratios
    •  Dead code density
    •  PERFORM statements density
    •  Connection statements density
    •  Average number of instructions per module
    •  Hierarchical complexity
    •  Average number of modules per level

Weighting of metrics for the creation of an over-all metric of quality

It is very difficult ans somewhat nonsense to define a universal metric designed to represent the quality of a program. According to the points of view, the needs and the specificities of each site, each one will have a different definition for a quality program.

This is the reason why we do not provide only one global metric, but all aforesaid ones. Thus, the user is able to define itself its own metrics, perfectly answering its needs.

Then the different metrics results are weighted, to get the customer's own metric representing, as best we can, its vision of the complexity.

Powerful and scalable requesting module to take into account the standards

Each company has its book of standards. If some of them are generic and can apply everywhere, others are specific to the firm. A frozen system cannot answer the needs of each customer.

Mia-Quality considers all the standards, generic or specific, thanks to its flexible and powerful requesting system. A request is created for each standard, then the source codes analysis are launched.

Here are some examples of standards which can be evaluated :

 

  • Presence of a return code test after a subprogram call or an database access 
  • Number of overlapped IF statements levels 
  • Number of dead code lines 
  • Assignment of numeric variables with alphanumeric ones 
  • Disadvised statements search 
  • PERFORM statements advised syntax 
  • Norms of variable or paragraph naming 
  • ...