Flylib.com

Books Software

 
 
 

3.2 Modeling: Mapping Among Measurement Domains

3.2 Modeling: Mapping Among Measurement Domains

There are clearly four distinctly different measurement domains. We would like very much to understand the complex relationships among these four domains. Much of what we wish to know about good software construction will be determined by the mappings that we will make between the four domains. Good programmers, for example, will follow good programming processes that will, in turn , produce good programs. Unfortunately, certain types of programmers will follow good development processes that will yield very bad programs.

The process of building strong functional (and useful) relationships among the four measurement domains will be governed by a distinct set of statistical procedures that will allow us to discover these relationships. This process is called statistical modeling. It is the subject of Chapter 7.

3.3 The Process of Software Measurement

Sometimes, software developers are very confused as to why they are measuring software. Metrics are dutifully collected and stored about programs, processes, people, and environments. These measures are similar to one-hand clapping - there is no opposing hand to make a sound. When measurements are being used effectively, we will use these measurements to map from one of the four taxonomic measurement domains to another for the purposes of developing predictive models and also for modifying the software development process.

In recent years , the focus of software development has shifted to understanding the software process. We now understand that programs evolve from a process milieu. Just as there is a software development process, there is a corresponding software measurement process. We should not think of measurement as an unpleasant activity that we will do but once and be done with it. Software systems are rapidly developing entities. Their characteristics change over time.

The measurement circumstances are rather like measuring a child. It would be unthinkable to measure the height of a human child at two years and then presume that we now know all there is to know about that person. Human beings grow until they reach maturity. Then, after a period of some years, they begin to shrink again. Programs are similarly dynamic. In their early evolutionary stages, these programs are relatively simple. As time progresses and we begin to get a better handle on just exactly what the customer really wants, these simple programs grow quite complex. As the programs age, unwanted or unused functionalities are trimmed from them and then the programs may become less complex. But the bottom line is that programs are dynamic objects. We must then conceive of a measurement process so that we can understand the program as it is now.

3.4 Summary

Much of the focus of this book will be on software products. This does not mean that process, people, and environment metrics are not important. Much of what we need to know in these areas is simply not known. There has been a lot of activity in reporting aspects of software processes and also about programmer/developer activity. However, there has been very little real scientific research activity in these fields. It is the real purpose of this book to show how to measure, how to build a measurement program, how to manage the measurement data, and how to institutionalize the improvement of this measurement program. Much of what we need to know about software development we will have to learn. What is worse , we are going to have to do this ourselves. It is not possible to buy engineering discipline. It is not possible to buy a miraculous measurement program. We cannot contract with someone to have our baby for us. We are going to have to do the work ourselves . We will learn that getting babies is not all that bad. There are aspects of this process that can be genuine fun.