Cyclomatic Complexity Tool Tutorial in Software Engineering with Example
It is a software metric that provides a quantitative measure of the logical complexity of a program. It defines the independent paths in a program which provides us with an upper bound for the number of tests that must be conducted to ensure that all statements are executed at least once,
Cyclomatic complexity V (G), for a flow graph G is defined as
V(G) = E N+2
where, N = Number of nodes
E = Number of edges
Cyclomatic complexity V(G), for a flow graph G is defined as V(G) P 1 where, P = Predicate nodes
Let’s take an example graph as shown in figure
—> 1 — 3 – 8 -1 – 9
—>1 – 2 -4 – 7 – 8 -1 -11
–> 1 -2- 5- 7- 8- 1 -11
Here, we can see that each new path introduces a new edge.
The flow graph has four regions (R1, R2, R3, R4)
V (G) = 10 edges – 8 nodes + 2 = 4
- Independent path is any path through the program that introduces at least one new condition or new set of processing statements.
The number of regions of the flow graph correspond to cyclomatic complexity.
Evolution of Quality System
Product Inspection This method gave a way to quality control.
- Quality Control It aims for correcting the cause of errors and not just rejecting the defective products.
- Quality Assurance If an organisation’s process are good and are followed rigorously, the product are bound to be of good quality.
Total Quality Management (TOM) The process followed by an organisation must be continuously improved through process measurements.
Total Quality Management (TOM)
Quality assurance method
ISO 9000 Certification
It specifies a set of guidelines for repeatable and high quality product development. ISO 9000 standard mainly addresses operational and organisational aspects such as responsibilities, reporting etc.
It is a series of three standards ISO 9001, ISO 9002 and ISO 9003.
- ISO 9001 standard applies to the organisations engaged in design, development, production and servicing of goods.
- ISO 9002 standard applies to those organisations which do not design products but are only involved in production.
- ISO 9003 standard applies to organisations involved only in installation and testing of the products.
Software Engineering Institute Capability Maturity Model (SEI-CMM)
It is a strategy for improving the software process, irrespective of the actual life cycle model used. CMM used to judge the maturity of the software Processes of an organisation and to identify the key practices that are required to increase the maturity of the process.
CMM is organized into five maturity levels as shown below
Six Sigma (σ)
It is a disciplined, data driven approach to effeminate defects in any process from manufacturing to transnational and from product to service. A six sigma defect is defined as many system behavior that is not as per customer specifications.
- Total number of six sigma opportunities equals to total number of chances for a defect
- Six sigma can be used to improve every fact of business from production to human resources to order entry to technical support.
The six sigma sub-methodologies are given below
DMAJC: It is (Define, Measure, Analyse, Improve, Control) an improvement for existing processes falling below specification and thus looking for incremental improvement.
DMADV: It is (Define, Measure, Analyse, Design, Verify) an improvement system used to develop new processes or products at six sigma quality level.
Sorting in Design and Analysis of Algorithm Study Notes with Example
Learn Sorting in Handbook Series: Click here