In software development, the fundamental purpose of software measurement is to manage the needs. Improve the software process by using measurements. People cannot manage things that cannot be measured. In the history of software development, we can realize that the software crisis faced by large software in the late 1960s s reflects the importance of management in software development. For management personnel, the visibility of software processes cannot be managed, and there is no proper measurement or criterion for the items to be seen to judge, evaluate, and make decisions, and cannot perform excellent management. We say that the software engineering methodology mainly focuses on providing visibility. However, the improvement of methodology alone cannot make it an engineering discipline. This requires the use of measurement. A measurement is a comparable object that can be used for decision-making. Known measurements are used for tracking and evaluation. For unknown things, measurements are used for prediction. This topic will discuss some basic questions about software measurement. However, it should be realized that the results of software measurement are very preliminary, and a lot of work is required to make it practical, however, its practical achievements will have immeasurable impact on the high quality and rapid development of software. So what is a metric? 1. measurement concept: measurement exists at the core of many systems that affect our lives. In the economic field, measurement determines the increase in price and payment. In radar systems, measurement enables us to detect aircraft through the cloud layer; in medical systems, measurements enable the diagnosis of certain special diseases. In the weather forecasting system, measurements are the basis of weather forecasting. Without measurements, the development of technology is impossible. The formal definition of a measurement is that, in the real world, a measurement specifies a number or symbol to a certain attribute of an object,
In this way, we can describe them according to clear rules.
Therefore, measurements focus on getting information about object attributes. An entity can be a physical object, such as a person or room, or an event, such as traveling, or a testing phase of a software project. Attributes are the characteristics or characteristics of the entity we are concerned with, such as the height (person) of blood pressure, time (test phase), range or color (room), and cost (travel. Therefore, the "measurement thing" or "measurement attribute" statement is not completely correct; it should be said that "measurement thing attribute ". The "measure room" statement is vague; we can say that it measures its length, range, and temperature. The "Temperature Measurement" statement is also vague. It should be said that we measure the temperature at a specific geographic location and under specific circumstances. ==> 2
2. To measure software engineering in engineering disciplines, a method with model and theoretical support is required.
For example, we apply Ohm's law when designing a circuit. This law describes the relationship between resistance, current, and voltage in a circuit. However, these theories are beyond the scope of scientific methods in the general sense. In this category, the most basic thing is measurement. In addition to playing a role in developing a theory, measurements are used and applied. Therefore, when designing a circuit with a specific current and resistance, we know how much voltage is needed.
Without measurement, it is hard to imagine that laws on electronics, machinery, and general engineering can develop. In fact, measurements are ignored in the mainstream of software engineering.
The current situation is:
■ When we design and develop software products, we are not able to define a measurement goal. For example, we promise that we will make the user interface friendly, reliable, and easy to maintain; instead of using metric terms to describe their specific meanings. Gilb once said: the so-called fuzzy target theorem means that projects without clear targets cannot achieve their goals explicitly.
■ We fail to effectively measure the different parts that constitute the actual cost of the software project. For example, we usually don't know how much time the design phase takes compared to the test phase.
■ We did not try to make the quality of the products we developed qualified. Therefore, we fail to use the term (for example, the possibility of using a fault for a period of time, the workload required to install the product in the new environment, etc.) to indicate to potential users that the product is highly reliable.
■ We always try to persuade ourselves to use another innovative development technology and method for software development.
In fact, we do very little work in software measurement, and the measurement work is also separated from the measurement in the general scientific sense. We often see this: "80% of the software fee is spent on maintenance. "Or" software has 55 buckets per one thousand lines of programs. ". However, these words do not tell us how such a result is produced, how the experiment is designed, executed, what the entity is measured, and what the wrong framework is. Without these things, we cannot objectively carry out repeated measurements in our own environment, reproduce the measurement results to obtain a true comparison with industrial standards. Therefore, the problem of insufficient measurement is caused by the lack of strict measurement methods.
In addition to the traditional measurement of computer hardware performance, the measurement of algorithm complexity has always been an important part of computer science. However, this measurement method is only applicable to small programs, but it is powerless for large and complex software. This belongs to the scope of software engineering. If we do not acknowledge that measurement will play a more important role, the software crisis will continue to exist in the next few years.
Iii. Scope of Software Measurement Research
Now we know that software engineering requires measurement. The importance of how to measure is obvious. First, we must understand that "software measurement" is a term that contains many completely different activities. It mainly includes:
Cost and workload estimation models and Measurements
Productivity measurement models and standards
Quality control and assurance
Data collection
Quality Model and Measurement
Reliability Model
Performance Evaluation and Model
Algorithm/computing complexity Measurement
Structure and complexity Measurement
Gqm method (goal/question/metric)
Others
In this topic, we will give a brief introduction to the above aspects to give readers a general understanding of the methods and technologies currently in use. The order of these aspects is not arbitrary. It reflects the order in which software measurements are performed from high-level, high-goal to the most basic things they depend on.