43,580 research outputs found
Using a Combination of Measurement Tools to Extract Metrics from Open Source Projects
Software measurement can play a major role in ensuring the quality and reliability of software products. The measurement activities require appropriate tools to collect relevant metric data. Currently, there are several such tools available for software measurement. The main objective of this paper is to provide some guidelines in using a combination of multiple measurement tools especially for products built using object-oriented techniques and languages. In this paper, we highlight three tools for collecting metric data, in our case from several Java-based open source projects. Our research is currently based on the work of Card and Glass, who argue that design complexity measures (data complexity and structural complexity) are indicators/predictors of procedural/cyclomatic complexity (decision counts) and errors (discovered from system tests). Their work was centered on structured design and our work is with object-oriented designs and the metrics we use parallel those of Card and Glass, being, Henry and Kafura's Information Flow Metrics, McCabe's Cyclomatic Complexity, and Chidamber and Kemerer Object-oriented Metrics
Restructuring Object -Oriented Designs Using a Metric-Driven Approach.
The benefits of object-oriented software are now widely recognized. However, methodologies that are used to develop object-oriented software are still in their infancy. There is a lack of methods to assess the quality of the various components that are derived during the development process. The design of a system is a crucial component derived during the system development process. Little attention has been given to assessing object-oriented designs to determine the goodness of the designs. There are metrics that can provide guidance for assessing the quality of the design. The objective of this research is to develop a system to evaluate object-oriented designs and to provide guidance for the restructuring of the design based on the results of the evaluation process. We identify a basic set of metrics that reflects the benefits of the object-oriented paradigm such as inheritance, encapsulation, and method interactions. Specifically, we include metrics that measure depth of inheritance, methods usage, cardinality of subclasses, coupling, class responses, and cohesion. We define techniques to evaluate the metric values on existing object-oriented designs. We then define techniques to utilize the metric values to help restructure designs so that they conform to predetermined design criteria. These methods and techniques are implemented as a part of a Design Evaluation Assistant that automates much of the evaluation and restructuring process
Generalization Index: Defining a metric for the detection of smells in UML Class Diagrams in Eclipse Modeling Framework in Eclipse
In the field of Software Engineering, while designing the software design and maintaining the source code quality, a lot of good and bad practices come into being. With the continuous evolutions in the field of modeling in software development processes, Model Driven Software Development (MDSD), focuses towards the quality of software models. Unified Modeling Language (UML) is a graphical notation for expressing object-oriented designs. With its emergence as a modeling standard and being widely accepted by most software development organizations, in this research paper we focus on UML Class Diagrams. Metrics are mathematical models used for measuring. In software engineering, metrics are utilized for measuring quality aspects of software models. A manual model review is very time consuming and prone to errors, so it becomes essential to automate the tasks as effectively as possible. The Eclipse plug-in EMF Metrics supports specification and calculation of metrics wrt. specific EMF based models. A new definition technique for EMF quality assurance can be defined using Java, an OCL query or Henshin Pattern. In this paper we propose an algorithm for the calculation a new metric named Generalization Index Metric (GIX) for Java Code
An eclipse plug-in for metamodel driven measurement
In this dissertation, we present a new plug-in for the Eclipse integrated development environ-ment that calculates software quality metrics using a metamodel driven approach to software
measurement.
Metamodel driven measurement is a technique that surged with the popularization of
object-oriented systems and model-driven approaches to software design. It involves of in-stantiating software designs according to a language metamodel and calculating metrics with
formalized queries over the obtained data.
Our objectives consisted of creating a new Eclipse plug-in to analyse software developed
in Java that, thanks to the metamodel driven approach, would allow users to easily define new
software metrics without having to change a single line of Java code. To achieve our goals,
we devised the Eclipse Java Metamodel, a new Java metamodel based on data provided by
Eclipseâs Java Development Tools and implemented it on a prototype Eclipse plug-in. We
have also formalized certain software metrics and an existing library for metrics extraction
called FLAME, as sets of queries over our developed metamodel using the Object Constraint
Language, which can be used directly on our prototype.Nesta dissertacão apresentamos uma nova extensão para o ambiente de desenvolvimento integrado Eclipse para o cålculo de metricas de qualidade de software através da medicão por
metamodelos.
MedicĂŁo por metamodelos Ă© uma abordagem Ă medicĂŁo de software que surgiu com a
popularização de sistemas orientados por objectos e design de software através de modelos. Esta técnica consiste em medir software através de definiçÔes formalizadas de métricas
como queries sobre um metamodelo representativo da linguagem sobre a qual o software foi
conceptualizado ou desenvolvido.
Os nossos objectivos consistem em criar uma nova extensĂŁo para Eclipse para analisar
software desenvolvido em Java que, graças ao uso de metamodelos, permite a utilizadores
calcular novas mĂ©tricas de software facilmente sem ter que programar uma Ășnica linha de
cĂłdigo em Java. Para concretizar estes objectivos, desenvolvemos o Eclipse JavaMetamodel,
um metamodelo da linguagem Java baseado nas Java Development Tools oferecidas pelo
Eclipse e implementamos uma extensão protótipo. Também formalizamos certas métricas de
software e uma biblioteca existente para o auxĂlio de cĂĄlculo de mĂ©tricas chamada FLAME,
como conjuntos de queries sobre o metamodelo feitas com a Object Constraint Language,
que podem ser usadas directamente no nosso protĂłtipo
Design Structural Stability Metrics and Post-Release Defect Density: An Empirical Study
This paper empirically explores the correlations between a suite of structural stability metrics for object-oriented designs and post-release defect density. The investigated stability metrics measure the extent to which the structure of a design is preserved throughout the evolution of the software from one release to the next. As a case study, thirteen successive releases of Apache Ant were analyzed. The results indicate that some of the stability metrics are significantly correlated with post-release defect density. It was possible to construct statistically significant regression models to estimate post-release defect density from subsets of these metrics. The results reveal the practical significance and usefulness of some of the investigated stability metrics as early indicators of one of the important software quality outcomes, which is post-release defect density
Design Structural Stability Metrics and Post-Release Defect Density: An Empirical Study
This paper empirically explores the correlations between a suite of structural stability metrics for object-oriented designs and post-release defect density. The investigated stability metrics measure the extent to which the structure of a design is preserved throughout the evolution of the software from one release to the next. As a case study, thirteen successive releases of Apache Ant were analyzed. The results indicate that some of the stability metrics are significantly correlated with post-release defect density. It was possible to construct statistically significant regression models to estimate post-release defect density from subsets of these metrics. The results reveal the practical significance and usefulness of some of the investigated stability metrics as early indicators of one of the important software quality outcomes, which is post-release defect density
Next generation software environments : principles, problems, and research directions
The past decade has seen a burgeoning of research and development in software environments. Conferences have been devoted to the topic of practical environments, journal papers produced, and commercial systems sold. Given all the activity, one might expect a great deal of consensus on issues, approaches, and techniques. This is not the case, however. Indeed, the term "environment" is still used in a variety of conflicting ways. Nevertheless substantial progress has been made and we are at least nearing consensus on many critical issues.The purpose of this paper is to characterize environments, describe several important principles that have emerged in the last decade or so, note current open problems, and describe some approaches to these problems, with particular emphasis on the activities of one large-scale research program, the Arcadia project. Consideration is also given to two related topics: empirical evaluation and technology transition. That is, how can environments and their constituents be evaluated, and how can new developments be moved effectively into the production sector
Software design metrics for predicting maintainability of service-oriented software
As the pace of business change increases, service-oriented (SO) solutions should facilitate easier maintainability as underlying business logic and rules change. To date, little effort has been dedicated to considering how the structural properties of coupling and cohesion may impact on the maintainability of SO software products. Moreover, due to the unique design characteristics of Service-Oriented Computing (SOC), existing Procedural and Object-Oriented (OO) software metrics are not sufficient for the accurate measurement of service-oriented design structures. This thesis makes a contribution to the field of SOC, and Software Engineering in general, by proposing and evaluating a suite of design-level coupling and cohesion metrics for predicting the maintainability of service-oriented software products early in the Software Development LifeCycle (SDLC). The proposed metrics can provide the following benefits: i) facilitate design decisions that could lead to the specification of quality SO designs that can be maintained more easily; ii) identify design problems that can potentially have a negative effect on the maintainability of existing service-oriented design structures; and iii) support more effective control of maintainability in the earlier stages of SDLC. More specifically, the following research was conducted as part of this thesis: - A formal mathematical model covering the structural and behavioural properties of service-oriented system design was specified. - Software metrics were defined in a precise, unambiguous, and formal manner using the above model. - The metrics were theoretically validated and empirically evaluated in order to determine the success of this thesis as follows: a. Theoretical validation was based on the property-based software engineering measurement framework. All the proposed metrics were deemed as theoretically valid. b. Empirical evaluation employed a controlled experimental study involving ten participants who performed a range of maintenance tasks on two SO systems developed (and measured using the proposed metrics) specifically for this study. The majority of the experimental outcomes compared favourably with our expectations and hypotheses. More specifically, the results indicated that most of the proposed metrics can be used to predict the maintainability of service-oriented software products early in the SDLC, thereby providing evidence for the validity and potential usefulness of the derived metrics. Nevertheless, a broader range of industrial scale experiments and analyses are required to fully demonstrate the practical applicability of the metrics. This has been left to future work
Recommended from our members
An empirical study of evolution of inheritance in Java OSS
Previous studies of Object-Oriented (OO) software have reported avoidance of the inheritance mechanism and cast doubt on the wisdom of âdeepâ inheritance levels. From an evolutionary perspective, the picture is unclear - we still know relatively little about how, over time, changes tend to be applied by developers. Our conjecture is that an inheritance hierarchy will tend to grow âbreadth-wiseâ rather than âdepth-wiseâ. This claim is made on the basis that developers will avoid extending depth in favour of breadth because of the inherent complexity of having to understand the functionality of superclasses. Thus the goal of our study is to investigate this empirically. We conduct an empirical study of seven Java Open-Source Systems (OSSs) over a series of releases to observe the nature and location of changes within the inheritance hierarchies. Results show a strong tendency for classes to be added at levels one and two of the hierarchy (rather than anywhere else). Over 96% of classes added over the course of the versions of all systems were at level 1 or level 2. The results suggest that changes cluster in the shallow levels of a hierarchy; this is relevant for developers since it indicates where remedial activities such as refactoring should be focused
Design Structural Stability Metrics and Post-Release Defect Density: An Empirical Study
This paper empirically explores the correlations between a suite of structural stability metrics for object-oriented designs and post-release defect density. The investigated stability metrics measure the extent to which the structure of a design is preserved throughout the evolution of the software from one release to the next. As a case study, thirteen successive releases of Apache Ant were analyzed. The results indicate that some of the stability metrics are significantly correlated with post-release defect density. It was possible to construct statistically significant regression models to estimate post-release defect density from subsets of these metrics. The results reveal the practical significance and usefulness of some of the investigated stability metrics as early indicators of one of the important software quality outcomes, which is post-release defect density
- âŠ