Measurement in Software Engineering

1.    INTRODUCTION
Measurement is one of the key actions behind any quality product not only in software engineering but also in all industries. It is quite challenging for software engineers as software is different from any other products. Measure of a software entity is very important because through measuring we can find the defects in process and also estimate efforts and time.

2.    MEASURE IN SOFTWARE ENGINEERING

2.1    What is Measurement
According to Fenton, The process by which numbers and symbols are assigned to attributes of entities in the real world, as to describe them according to clearly defined rules.
Measure helps us to understand our world, interact with/control our surroundings and improve our lives. In fact any type of measurement gives us some idea which helps us in better decision making.

2.2    Why Measure in Software Engineering
We need measurement to understand, compare, control, decide and estimate [1].
Software now a day became inseparable part of our daily life. We can’t think of passing a single day without using software from driving cars to flying from one part of the world to another part, making a phone call to communication between NASA and space ship in Mars, managing personal finance to world economy.
Not only these, in the current world business of most of the large organizations are depends on the software. From daily attendance to payroll systems are now automated in most of the organization whether it’s business or non-profit organization. So, very simple mistake may result serious loss or destruction. The ability to deliver software on time, within budget, and with the expected functionality is critical to all software customers, who either directly or indirectly are all of us [2]. To achieve this measure of all the entities are very important in all phase so that a project manager can estimate effort both development and testing, analysis risk, calculate stability and reliability.

According to Lord Kelvin, “When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of meager and unsatisfactory kind.”

3.    MEASURE IN SDLC

3.1    Development Process
Software Development Life Cycle (SDLC) consisting of several phases such as requirement analysis, design, coding and testing. Every phase involves time and budget. So, proper measurement ensures higher quality of a successful product release. Software measures are used to quantify software products, software development resources, and the software development process. There are many characteristics of software and software projects that can be measured, such as size, complexity, reliability, quality, adherence to process, and profitability [2].

3.1.1    Requirement Analysis
In this phase measure is required in order to ensure the requirement analysis is done properly. Because if the requirement is not collected properly, and if the requirements are not valid and verified problem may arise in any of the next phase and then reverse engineering may be needed this will cause more time and money. In this phase we can estimate resource and time which is very important. Nominal scale can be used to measure in this phase of software development by classifying the objects from the requirement.

3.1.2    Design Phase
Design phase is very much important for any successful product development and delivery in time and budget. In this phase software engineers have to identify all the objects from the requirements and design a system which will be developed accordingly. So, in order to design a stable and reliable system, software designers have to concentrate on measuring future stability, quality of the system and also have to think of future enhancement or rework if needed. Nominal scale is preferred for measurement of classification of objects in this phase. And ratio scale can be used to estimate resource involvement based on developers quality and budget. Ordinal scale can be used to measure complexity of the system.

3.1.3    Coding Phase
Most of the time is needed in this phase of software development. So, to ensure fewer rework and defects in the system software engineers should do various measurements. In this phase developers do coding of the software in any standard language according to the design done in design phase. But as rework and more defects costs more money and time, so software engineers should do some measurement so that they can ensure higher quality of their code and system. This is not only in terms of defects but also the standard of codes and function points. To measure performance of a system developers can use ratio scale taking lines of code and memory usage.

3.1.4    Testing
This phase ensures that the developed system meets all functional requirements as intended. To do so systems needs to be properly tested and it is very common that some defects are found by testers and developers have to do some rework to fix those defects. In this phase absolute scale can be used to measure defects and ration scale can be used to predict probable release time and reliability of the system.

3.2    Difficulties
It is really very challenging for software engineers to measure certain attributes as most of those are no physical. It’s not a easy task to express virtual objects in terms of numbers but we try to related those and measurement is done in various phase of software development to help the project managers in better decision making as discussed in the earlier part of the report. If we take reliability of system as example, we can predict certain level but it’s not concrete. If anyone say the software is 85% reliable, it is said based on the defects found at that point and situation. It also depends on the perspective of the testers. So, it’s really difficult to measure certain attributes.
Again, to measure quality of a system is not absolute. It is always comparative. One product may be best among all the current products in the market but it’s not obvious that that product will remain best forever. From this point of view measurement is situation based and not absolute.

4.    CONCLUSION
Though measurement is counted as luxury in software engineering but we cannot ignore the importance of this. Because to ensure the delivery of any software product in targeted time and budget and with all intended functions requirements, measurement plays a vital role to estimate time and resource and also helps much in decision making. We had to prepare this report as part of course of Software Metrics but I have personally learnt a lot about the measurement of software entities and attribute which is really important to know as a software engineer. This assignment covers software measurement methods, models in various phase of software development life cycle.

5.    REFERENCES
[1]    N.E. Fenton, Software Metrics, A Rigorous & Practical Approach.
[2]    Linda M. Laird and M. Carol Brennan, Software Measurement and Estimation.

One Comment

Экспериментатор Identicon Icon Экспериментатор  on September 28th, 2009

Сайт очень качественный. Награду бы Вам за него или просто орден почета. :)

Leave a Comment