Conquering Complexity. - Holzmann, Gerard J. (Computer (00189162), 2007)
The article discusses how to prevent software flaws in increasingly large and complex systems. Statistics suggest that every 1,000 lines of code will contain 0.1 residual defects, so a coding project of one-million lines can be expected to have around 100 bugs. No one in itself may be dangerous, but small flaws can conspire in unexpected ways to produce major system failures. Several techniques can help reduce the incidence of such defects or minimize their impact. Decoupling individual software components helps, as does investing code with wider margins for error and providing functionality through layering that incorporates redundancy.