Saturday, June 11, 2011

Code Complete by Steve McConnell : Chapter 21

In this chapter the author focuses on issues arising out of the size of an application in terms of lines of code. The amount of effort and number of errors that occur in an application scale faster than linear in terms of lines of code.

The author then discusses the effect of team size on communication. As the number of programmers grow, the communication between them increases polynomially. The author shows how the proportion of different activities changes as the project size changes. Integration, Testing and Architecture takes much bigger proportion of the total efforts compared to code construction comprising of unit-testing, coding and debugging if the project size is much bigger.

The author states that code construction effort grows linearly with the size of project and then enlists some of the activities including planning, testing, architecture and integration that grow at more-than-linear rate as project size grows.

The author tries to differentiate between a software program and a software product. The former is used by the developer himself and maybe by a few others but the latter is used by people other than the developer in varying environments. The cost of developing a product is three times that of a program. The author defines a system as a group of programs that work together and the cost of developing a system is as much as a product.

The author then discusses the proportion of different kinds of errors as the project size changes. Analysis and architecture errors grow as the project size increases. The author then provides data related to error density as the project size grows. Errors per KLOC(kilo lines of code) increases as the project size grows.

The author then provides figures for change in productivity in terms of lines of code written per month as project size grows. A program with a size of 2K lines of code can be written in a span of 1-6 months but a program with a size of 512K lines of code can take a person's lifespan, i.e. lines of code written per month decreases as the project size grows.

No comments:

Post a Comment