Measuring the Software Size of Sliced V-Model Projects
Total Page:16
File Type:pdf, Size:1020Kb
2014 Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement Measuring the Software Size of Sliced V-model Projects Andreas Deuter PHOENIX CONTACT Electronics GmbH Gregor Engels Dringenauer Str. 30 University of Paderborn 31812 Bad Pyrmont, Germany Zukunftsmeile 1 Email: [email protected] 33102 Paderborn, Germany Email: [email protected] Abstract—Companies expect higher productivity of their soft- But, the “manufacturing” of software within the standard ware teams when introducing new software development methods. production process is just a very short process when bringing Productivity is commonly understood as the ratio of output the binaries of the software to the device. This process is hardly created and resources consumed. Whereas the measurement of to optimize and does not reflect the “production of software” the resources consumed is rather straightforward, there are at all. The creation of the software is namely done in the several definitions for counting the output of a software de- developing teams by applying typical software engineering velopment. Source code-based metrics create a set of valuable figures direct from the heart of the software - the code. However, methods. However, to keep up with the high demands on depending on the chosen process model software developers and implementing new functionality (e.g. for PLC) the software testers produce also a fair amount of documentation. Up to development process within these companies must improve. now this output remains uncounted leading to an incomplete Therefore, they start to analyze their software processes in view on the development output. This article addresses this open detail and to identify productivity drivers. They enhance the point by proposing a novel automated way on software quantity way they specify, implement and test their software products. measurement. It extends source code-based metrics, namely the Improvements can address some of the following elements: size of code changes which is called churn, by the counting of work items representing the design and test documentation • Choose, implement or change the software process belonging to that churn. We demonstrate the validity of this model, suitable to their specific environment approach on the sliced V-model process which is an agility • extension of the traditional V-model. Implement an appropriate tool landscape for software life-cycle management Keywords—Software productivity, software quantity, work items, version control, sliced V-model • Implement test automation • Train and qualify the teams I. INTRODUCTION As it is possible to enhance the team’s performance in The importance of software in the industrial sector is even more areas, the main challenge for the companies is now growing enormously these days. The reason is the increas- to find out whether their expectations on improvements are ing percentage of software in the added value of industrial really met. The first challenging issue is to create objectives products. More and more devices perceive their innovations by and requirements about the expectations before starting the software. Examples of industrial products with a high degree of improvement activities. As with all good-quality requirements, software inside are the Programmable Logic Controllers (PLC) their validation must be clearly possible, and precise target of Phoenix Contact. Phoenix Contact is a leading supplier of figures should be announced at an early stage. An example for electrical and electronic components for industrial applications precise target figures can be: “Reduce the development time by with a wide range of products. The overwhelming part of them 30 percent for the same amount of software”. After establishing are mechanical and hardware components. That means the one or more of the mentioned improvement elements and using core competences of the company are hardware development it in a software development project, the requirements have and production, but not software. However, the importance to be validated. This validation should then be continuously of software grows rapidly. The software in a PLC consists repeated in the subsequent projects. of several hundred thousand lines of code. New versions of A typical approach to validate the objectives is to ask the existing PLC types are generated almost only by software stakeholders (e.g., from the management) and the teams for updates. their evaluation of the situation before and after installing the new procedures. This can be done by formal questionnaires The mechanical and electronic assembly of the PLCs or by informal talks in the team meetings. Obviously, this is highly automated. A full range of figures are used for gives a good estimation of how the changes are accepted by monitoring the production process ensuring maintaining and the involved team staff. However, it does surely not give an increasing the manufacturing productivity. A typical set of objective assessment on the situation. figures contains number of pieces per time, cost of material or quality losses. This means that there is a very good A technical way for measuring improvements is to auto- understanding about productivity in the assembly lines. matically generate output numbers of the software created, 978-1-4799-4174-2/14 $31.00 © 2014 IEEE 233 DOI 10.1109/IWSM.Mensura.2014.22 for example by using a reporting tool. When setting these TABLE I. REQUIREMENTS FOR SOFTWARE OUTPUT MEASUREMENT numbers in ratio with consumed resources, typical productivity R1 Figures on software output are concrete numbers information as known from the assembly lines is available, R2 Figures are objective (i.e., they are not based on questionnaires) Equation (1). R3 Figures include the size of software and its development documentation R4 The measurement of the figures is automated output productivity = R5 The figures are useable for trend analysis resources (1) Having access to such figures enables companies to mea- complete set of our requirements. It proposes a novel approach sure their software productivity and to address the following extending source-code based methods by counting the size of questions on productivity formulated by Albrecht [1]: the networks of artifacts used for documentation. • Are we doing as well as we can? This document is structured as follows: Section II presents • Are we competitive? related work. Section III describes in detail the proposed concept. Section IV explains its practical implementation at • Are we improving? Phoenix Contact. Section V outlines the conclusions and the future work. Whereas the answers of the first two questions are of some interest, the focus for the companies is on finding satisfying answers for the third one by comparing a first set of II. RELATED WORK measurement figures with successive ones. Once these sets are integrated in trend analysis, the companies are in a position to This section gives an overview about the known work on illustrate increasing (or also decreasing) performance due to measuring software quantity. Before we start with this we any changing activity. explain the sliced V-model as it is the process base of the proposed approach. Having identified the need for measuring the software productivity, the challenge arises how to figure out and identify the output created and the resources consumed. Whereas A. Sliced V-Model the latter is mainly represented by the hours spent by the team staff for a certain software project, it is very difficult As mentioned before, there are good reasons for the to create an understanding of the output. There are many companies of the industrial sector to use the V-model. The different, but not at all harmonized, views of defining “software V-model was originally defined by Boehm [3]. It is nowadays output”. Very popular methods create figures based on the considered little flexible and stiff in time behavior. In a recent heart of the software - the code. Other methods quantify the work, the first author refined it in his so-called sliced V-model functionality provided by the software with points. Looking [4]. The sliced V-model maintains the V&V strength of the at a company like Phoenix Contact, that is not enough. Its traditional V-model, but reduces the teams’s Work in Progress software development teams spend a lot of effort on writing (WiP), which is a major objective of agile methods. Further- requirements specifications, system design specifications and more, it reduces the effort for managing the documentation. test reports. This documentation is needed for managing the The documents in the sliced V-model are container of work products over a long life-cycle of up to 20 years. Furthermore, items of the type of the document. The work items in the it is required to provide thorough documentation of the soft- different documents are connected via so-called “links” to ware development process to customers or even to approval form a “V” shape (Fig. 1). This shape is called “V”-slice. authorities. For example, when it is required to get an IEC Each link means that a work item is verified or validated by 61850 [2] certification for safety products. the linked work item. As the work items consist of a title, a The development software lifecycle demanded by safety meaningful description and other attributes, they represent the standards must follow the V-model. The V-model gives good development and the test documentation of a software project guidance for documentation and instructions to prove the (Example shown in Table II). The work item of the “module” correctness of all verification and validation (V&V) activities. type is directly linked to the source code revisions created to To have only one process model in place, companies apply the implement the requirement. V-model also for standard software products. Having a high expertise on monitoring assembly lines TABLE II. EXAMPLE:WORKITEMOFTHE“TEST” TYPE productivity, the companies seek for methods allowing to ID ID45 measure software output as they are used to for production Teststage Acceptance output.