Cyclomatic Complexity
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 atleast 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 Path 1
1 –
Path 2
—> 1 — 3 – – 1 – 9
Path 3
—>1 2 4 7 8 1-11
Path 4
-a1 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
Key Points | ||
- Independent path is any path through the program that introduces atleast 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.
Inspection
↓
Quality control
↓
Quality assurance
↓
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 oganisations 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 cylce 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
Description of Levels of CMM (Maturity Levels)
|
|
|
Complete people Project management
Definition of processes
Product and process quality
Continuous process improvement
Software project planning, software configuration management.
Process definition, training program, pre reviews.
Qualitative process metrics, software quality managements.
Defect prevention, process change management, technology change management.
Six Sigma (σ)
It is a disciplined, data driven approach to effeminate defects in any process from manufacturing to transactional and from product to service. A six sigma defect is defined as many system behaviour that is not as per customer specifications.
Key Points | |
- 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.