7 research outputs found

    Property-based Software Engineering Measurement

    Get PDF
    Little theory exists in the field of software system measurement. Concepts such as complexity, coupling, cohesion or even size are very often subject to interpretation and appear to have inconsistent definitions in the literature. As a consequence, there is little guidance provided to the analyst attempting to define proper measures for specific problems. Many controversies in the literature are simply misunderstandings and stem from the fact that some people talk about different measurement concepts under the same label (complexity is the most common case). There is a need to define unambiguously the most important measurement concepts used in the measurement of software products. One way of doing so is to define precisely what mathematical properties characterize these concepts, regardless of the specific software artifacts to which these concepts are applied. Such a mathematical framework could generate a consensus in the software engineering community and provide a means for better communication among researchers, better guidelines for analysts, and better evaluation methods for commercial static analyzers for practitioners. In this paper, we propose a mathematical framework which is generic, because it is not specific to any particular software artifact, and rigorous, because it is based on precise mathematical concepts. This framework defines several important measurement concepts (size, length, complexity, cohesion, coupling). It does not intend to be complete or fully objective; other frameworks could have been proposed and different choices could have been made. However, we believe that the formalisms and properties we introduce are convenient and intuitive. In addition, we have reviewed the literature on this subject and compared it with our work. This framework contributes constructively to a firmer theoretical ground of software measurement. (Also cross-referenced as UMIACS-TR-94-119

    An Empirical investigation into metrics for object-oriented software

    Get PDF
    Object-Oriented methods have increased in popularity over the last decade, and are now the norm for software development in many application areas. Many claims were made for the superiority of object-oriented methods over more traditional methods, and these claims have largely been accepted, or at least not questioned by the software community. Such was the motivation for this thesis. One way of capturing information about software is the use of software metrics. However, if we are to have faith in the information, we must be satisfied that these metrics do indeed tell us what we need to know. This is not easy when the software characteristics we are interested in are intangible and unable to be precisely defined. This thesis considers the attempts to measure software and to make predictions regarding maintainabilty and effort over the last three decades. It examines traditional software metrics and considers their failings in the light of the calls for better standards of validation in terms of measurement theory and empirical study. From this five lessons were derived. The relatively new area of metrics for object-oriented systems is examined to determine whether suggestions for improvement have been widely heeded. The thesis uses an industrial case study and an experiment to examine one feature of objectorientation, inheritance, and its effect on aspects of maintainability, namely number of defects and time to implement a change. The case study is also used to demonstrate that it is possible to obtain early, simple and useful local prediction systems for important attributes such as system size and defects, using readily available measures rather than attempting predefined and possibly time consuming metrics which may suffer from poor definition, invalidity or inability to predict or capture anything of real use. The thesis concludes that there is empirical evidence to suggest a hypothesis linking inheritance and increased incidence of defects and increased maintenance effort and that more empirical studies are needed in order to test the hypothesis. This suggests that we should treat claims regarding the benefits of object-orientation for maintenance with some caution. This thesis also concludes that with the ability to produce, with little effort, accurate local metrics, we have an acceptable substitute for the large predefined metrics suites with their attendant problems

    Software Engineering Laboratory Series: Collected Software Engineering Papers

    Get PDF
    The Software Engineering Laboratory (SEL) is an organization sponsored by NASA/GSFC and created to investigate the effectiveness of software engineering technologies when applied to the development of application software. The activities, findings, and recommendations of the SEL are recorded in the Software Engineering Laboratory Series, a continuing series of reports that includes this document

    Software Engineering Laboratory Series: Collected Software Engineering Papers

    Get PDF
    The Software Engineering Laboratory (SEL) is an organization sponsored by NASA/GSFC and created to investigate the effectiveness of software engineering technologies when applied to the development of application software. The activities, findings, and recommendations of the SEL are recorded in the Software Engineering Laboratory Series, a continuing series of reports that includes this document

    An Approach to Improve Existing Measurement Frameworks in Software Development Organizations

    Get PDF
    Measurement is a key mechanism to characterize, evaluate, and improve software development, management, and maintenance processes. Nowadays, software organizations use metrics for very different purposes. Data is collected to describe, monitor, understand, assess, compare, validate, and appraise very diverse attributes related to software processes or products. Improving data collection and better using the existing data are important problems for software organizations. This dissertation proposes an approach for improving measurement and data use when a large number of diverse metrics are already being collected by a software organization. The approach combines two methods. One looks at an organization's measurement framework in a top-down fashion and the other looks at it in a bottom-up fashion. The top-down method, based on the Goal-Question-Metric (GQM) Paradigm, is used to identify the measurement goals of data users and map them to the metrics being used by the organization. This allows the measurement practitioners to: (1)~identify which metrics are and are not useful to the organization; and (2)~check if the goals of data user groups can be satisfied by the data that is being collected by the organization. The bottom-up method is based on a data mining technique called Attribute Focusing (AF). It is used to identify useful information in the existing data that the data users were not aware of. To validate the approach and to assess its usefulness, a case study was performed in a real industrial environment. The top-down and bottom-up methods were applied in the customer satisfaction measurement framework at the IBM Toronto Laboratory. The top-down method was applied to improve the customer satisfaction (CUSTSAT) measurement from the point of view of three data user groups. The bottom-up method was used to gain new insights into the existing CUSTSAT data. The top-down method identified several new metrics for the interviewed user groups. It also contributed to better understanding the data user needs and led to modification of some of the data analyses and presentations done for those groups. The bottom-up method produced important insights on both the customer satisfaction domain and the measurement framework itself. Unexpected associations between key variables prompted new insights on their importance for the organization. Some of these associations have also revealed problems with the metrics being used to collect the data. (Also cross-referenced as UMIACS-TR-97-82

    Un référentiel pour la mesure des logiciels avec la norme ISO 19761 (COSMIC-FFP) : une étude exploratoire

    Get PDF
    La problématique générale de cette thèse est le manque de standards et de références pour le design et pour l'utilisation des mesures en génie logiciel. Cette problématique rend le processus de mesurage des logiciels complexe et difficile. La méthodologie adoptée pour résoudre la problématique indiquée ci-dessus est à la fois exploratoire et qualitative. L'objectif de cette thèse est la construction d'un référentiel pour la mesure des logiciels. Le référentiel est composé de huit étalons de mesure des logiciels. Dans notre contexte, un étalon est défini comme «une mesure matérialisée, appareil de mesure, matériau de référence destiné a définir, réaliser, conserver ou reproduire une unité ou une ou plusieurs valeurs d'une grandeur pour servir de référence» (ISO, 1993). Ces étalons de mesure traitent un seul attribut du logiciel, soit la taille fonctionnelle, et ils touchent trois types de logiciels: applications de gestion, systèmes en temps réel et systèmes hybrides. Pour mesurer la taille fonctionnelle, ces étalons utilisent une mesure appelée les points de fonction (en anglais Function Point Analysis - FPA). «FPA, introduced in 1979 by Allan Albrecht, was proposed to help measure the productivity of software development. Function points have the advantage of well-known norms and well defined detailed procedures that allow a uniform method of counting and the establishment of a reference base for making comparisons, provided, of course, that the rules of calculation and accounting are correctly applied.» (Abran, 1994) Pour la construction du référentiel, une méthode de mesure des logiciels bien spécifique a été choisie, soit COSMIC-FFP (ISO 19761). COSMIC-FFP est une méthode rigoureuse de mesure des logiciels. Elle rend possible la mesure de la taille des logiciels tels qu'ils sont perçus par leurs utilisateurs, c'est-à-dire à travers les besoins fonctionnels. Le résultat de l'application de la mesure donne une valeur numérique qui quantifie la taille fonctionnelle du logiciel. Les raisons de la sélection de cette mesure spécifique et sa description sont expliquées dans le quatrième chapitre
    corecore