Software Measurement is a discipline of Software Engineering which allows us to quantify, measure different characteristics of the software product. Applying measures for software development can prove to be useful because it allows us to deal with the three major problems encountered in software development: uncertainty, irreversibility and complexity. This is a short introduction into the world of measures which will show you how to use measures in software development.
Recently I have made a small presentation about Software measurement based on a lecture I attended to at the CASE Summer School (2009), from Bolzano, Italy. My presentation relies on the lecture given by Prof. Eng. Alberto Sillitti and Prof. Eng. Giancarlo Succi.
Software development is a combination of mutually dependent activities that often overlap in time and scope. So, good organization is the key towards success. The following question can be addressed: How to decide WHAT, HOW and WHEN to produce? The answer is to use measures.
Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly defined rules (N. Fenton, S. L. Pfleeger, 1997). But, to give a more simple and intuitive definition, to measure means to evaluate a problem with quantitative and qualitative analysis.
On the one hand, Software Measurement can apply to planning, managing and reviewing. As already mentioned, by using measures we can address the three major problems that a software developer encounters in their activities: uncertainty, irreversibility and complexity. Those three issues occur before, during and after developing the software process. Simply put, measurement can help at controlling software development.
On the other hand, collecting metrics in a traditional way is against the basic principles of the Agile Methods because developers should focus on what provides value to the customer, not waste time in metrics collection However, without measures it is impossible to follow the principles of the lean management and therefore a compromise must be made.
Choosing the right measures for the right purpose is very important and one must know the goal of measurement: select those internal attributes that can be relevant for assessing / predicting the external properties of the final system.
How can a software developer use measures in his/her work?
For example, we can use the Personal Software Process. PSP is a personal framework that software developers can apply to improve predictability, quality and productivity. It includes a set of methods, forms and scripts which help us with planning and managing our work. The PSP shows developers how to estimate and plan their work using effort, size and defect measurement, by relying on relevant historical data and statistic methods.
For example, effort estimation can be made using the COnstructive COst Model (COCOMO). This is a simple mathematical model which, for instance, allows the association of effort with code size, or duration with effort.
At the University of Bolzano, Italy, a software application called PROM was developed for allowing users to easily and interactively use measuring in their work. Our software application, iManagement, can also help with applying measures in the software process. Thus, tools for software measurement exist and they ease the work of a developer. They help the developer to improve the quality of the work and to gain experience.
Finally, there’s another very important peculiarity of what does Cialis that brings it so high above its alternatives. It is the only med that is available in two versions – one intended for use on as-needed basis and one intended for daily use. As you might know, Viagra and Levitra only come in the latter of these two forms and should be consumed shortly before expected sexual activity to ensure best effect. Daily Cialis, in its turn, contains low doses of Tadalafil, which allows to build its concentration up in your system gradually over time and maintain it on acceptable levels, which, consequently, makes it possible for you to enjoy sex at any moment without having to time it.