ComplexityToday it is accepted practice to measure the complexity of code, data, user interface, input and output etc. The basic assumption, which has also been empirically tested, is that the more complex the software is, the more likely there are to be errors (which will generate faults). According to this approach, there is no need to prove that the software contains errors. Serious complexity is sufficient to disqualify the software. This is the approach adopted by organizations which place great emphasis on software quality and which prefer to invest resources in acceptance tests and other tests prior to system release rather than in repairing faults on site. Known complexity indices include the number of lines of code, the number of "If" sentences and branching commands, their degree of nesting, the number of "decision points," possible routes and passages etc. But the current tendency is to try to locate the focal points of complexity long before the encoding phase - at the design phase or even at the requirements analysis and definition phase. One accepted complexity tool is the McCabe cyclomatic model.
|
||