Results 1 - 10
of
44
A Unified Framework for Coupling Measurement in Object-Oriented Systems
, 1996
"... The increasing importance being placed on software measurement has lead to an increased amount of research developing new software measures. Given the importance of object-oriented development techniques, one specific area where this has occurred is coupling measurement in object-oriented systems. H ..."
Abstract
-
Cited by 140 (11 self)
- Add to MetaCart
The increasing importance being placed on software measurement has lead to an increased amount of research developing new software measures. Given the importance of object-oriented development techniques, one specific area where this has occurred is coupling measurement in object-oriented systems. However, despite a very interesting and rich body of work, there is little understanding of the motivation and empirical hypotheses behind many of these new measures. It is often difficult to determine how such measures relate to one another and for which application they can be used. As a consequence, it is very difficult for practitioners and researchers to obtain a clear picture of the state-of-the-art in order to select or define measures for object-oriented systems. This situation is addressed and clarified through several different activities. First, a standardized terminology and formalism for expressing measures is provided which ensures that all measures using it are expressed in a f...
A Unified Framework for Cohesion Measurement in Object-Oriented Systems
, 1997
"... The increasing importance being placed on software measurement has lead to an increased amount of research developing new software measures. Given the importance of object-oriented development techniques, one specific area where this has occurred is cohesion measurement in object-oriented systems. H ..."
Abstract
-
Cited by 97 (12 self)
- Add to MetaCart
The increasing importance being placed on software measurement has lead to an increased amount of research developing new software measures. Given the importance of object-oriented development techniques, one specific area where this has occurred is cohesion measurement in object-oriented systems. However, despite a very interesting body of work, there is little understanding of the motivation and empirical hypotheses behind many of these new measures. It is often difficult to determine how such measures relate to one another and for which application they can be used. As a consequence, it is very difficult for practitioners and researchers to obtain a clear picture of the state-of-the-art in order to select or define cohesion measures for object-oriented systems. This situation is addressed and clarified through several different activities. First, a standardized terminology and formalism for expressing measures is provided which ensures that all measures using it are expressed in a f...
Exploring the Relationships between Design Measures and Software Quality in Object-Oriented Systems
, 1998
"... The first goal of this paper is to empirically explore the relationships between existing object-oriented coupling, cohesion, and inheritance measures and the probability of fault detection in system classes during testing. In other words, we wish to better understand the relationship between exi ..."
Abstract
-
Cited by 84 (5 self)
- Add to MetaCart
The first goal of this paper is to empirically explore the relationships between existing object-oriented coupling, cohesion, and inheritance measures and the probability of fault detection in system classes during testing. In other words, we wish to better understand the relationship between existing design measurement in OO systems and the quality of the software developed. The second goal is to propose an investigation and analysis strategy to make these kind of studies more repeatable and comparable, a problem which is pervasive in the literature on quality measurement. Results show that many of the measures capture similar dimensions in the data set, thus reflecting the fact that many of them are based on similar principles and hypotheses. However, it is shown that by using a subset of measures, accurate models can be built to predict which classes contain most of the existing faults. When predicting fault-prone classes, the best model shows a percentage of correct clas...
Defining and Validating Measures for Object-Based High-Level Design
, 1999
"... The availability of significant measures in the early phases of the software development life-cycle allows for better management of the later phases, and more effective quality assessment when quality can be more easily affected by preventive or corrective actions. In this paper, we introduce and ..."
Abstract
-
Cited by 35 (2 self)
- Add to MetaCart
The availability of significant measures in the early phases of the software development life-cycle allows for better management of the later phases, and more effective quality assessment when quality can be more easily affected by preventive or corrective actions. In this paper, we introduce and compare various high-level design measures for object-based software systems. The measures
Fingerprinting Design Patterns
- WCRE 2004
, 2004
"... Design patterns describe good solutions to common and recurring problems in program design. The solutions are design motifs which software engineers imitate and introduce in the architecture of their program. It is important to identify the design motifs used in a program architecture to understand ..."
Abstract
-
Cited by 35 (9 self)
- Add to MetaCart
Design patterns describe good solutions to common and recurring problems in program design. The solutions are design motifs which software engineers imitate and introduce in the architecture of their program. It is important to identify the design motifs used in a program architecture to understand solved design problems and to make informed changes to the program. The identification of micro-architectures similar to design motifs is difficult because of the large search space, i.e., the many possible combinations of classes. We propose an experimental study of classes playing roles in design motifs using metrics and a machine learning algorithm to fingerprint design motifs roles. Fingerprints are sets of metric values characterising classes playing a given role. We devise fingerprints experimentally using a repository of micro-architectures similar to design motifs. We show that fingerprints help in reducing the search space of micro-architectures similar to design motifs efficiently using the Composite design motif and the JHotDraw framework.
A Comprehensive Investigation of Quality Factors in Object-Oriented Designs. An Industrial Case Study
, 1998
"... This paper aims at empirically exploring the relationships between most of the existing design coupling, cohesion, and inheritance measures for object-oriented (OO) systems, and the fault-proneness of OO system classes. The underlying goal of this study is to better understand the relationship betwe ..."
Abstract
-
Cited by 26 (5 self)
- Add to MetaCart
This paper aims at empirically exploring the relationships between most of the existing design coupling, cohesion, and inheritance measures for object-oriented (OO) systems, and the fault-proneness of OO system classes. The underlying goal of this study is to better understand the relationship between existing design measurement in OO systems and the quality of the software developed. In addition, we aim at assessing whether such relationships, once modeled, can be used to effectively drive and focus inspections or testing. The study described here is a replication of an analogous study conducted in a university environment with systems developed by students. In order to draw more general conclusions and to (dis)confirm the results obtained there, we now replicated the study using data collected on an industrial system developed by professionals. Results show that many of our findings are consistent across systems, despite the very disparate nature of the systems under study. Some of the strong dimensions captured by the measures in each data set are visible in both the university and industrial case study. For example, the frequency of method invocations appears to be the main driving factor of fault-proneness in all systems. However, there are also differences across studies, which illustrate the fact that, although many principles and techniques can be reused, quality does not follow universal laws and quality models must be developed locally, wherever needed.
Analyzing Java Software by Combining Metrics and Program Visualization
- In Proc. 4th European Conference on Software Maintenance and Reengineering (CSMR
, 1999
"... Shimba, a prototype reverse engineering environment, has been built to support the understanding of Java software. Shimba uses Rigi and SCED to analyze, visualize, and explore the static and dynamic aspects, respectively, of the subject system. The static software artifacts and their dependencies ar ..."
Abstract
-
Cited by 22 (1 self)
- Add to MetaCart
Shimba, a prototype reverse engineering environment, has been built to support the understanding of Java software. Shimba uses Rigi and SCED to analyze, visualize, and explore the static and dynamic aspects, respectively, of the subject system. The static software artifacts and their dependencies are extracted from Java byte code and viewed as directed graphs using the Rigi reverse engineering environment. The static dependency graphs of a subject system can be annotated with attributes, such as software quality measures, and then be analyzed and visualized using scripts through the end-user programmable interface. Shimba has recently been extended with the Chidamber and Kemerer suite of object-oriented metrics. The metrics measure properties of the classes, the inheritance hierarchy, and the interaction among classes of a subject system. Since Shimba is primarily intended for the analysis and exploration of Java software, the metrics have been tailored to measure properties of softwa...
Combining Metrics and Graphs for Object Oriented Reverse Engineering
, 1999
"... A software system may become very large during its evolution, getting less maintainable while its complexity rises. Since replacing the system with a new one is often out of question because of economic considerations, reengineering techniques are being developed to change the system into a form whi ..."
Abstract
-
Cited by 18 (13 self)
- Add to MetaCart
A software system may become very large during its evolution, getting less maintainable while its complexity rises. Since replacing the system with a new one is often out of question because of economic considerations, reengineering techniques are being developed to change the system into a form which makes it easier to maintain and to further develop. However, before a system can be reengineered, it has to be reverse engineered in order to understand its nature and inner logic. This work deals with a lightweight approach to software reverse engineering combining simple graphs with simple object oriented metrics. Our goal is to obtain a simple and scalable graphical display of a system and its parts through which we succeed to visually extract information, which is useful to the understanding of the system and the detection of its design problems. The primary goal of this work is to put up a repository of combinations of graphs and metrics which are useful to reverse engineer an obje...
Measuring Coupling in Aspect-Oriented Systems
- Information Processing Society of Japan (IPSJ
, 2004
"... Coupling is an internal software attribute that can be used to indicate the degree of interdependence among the components of a software system. Coupling is thought to be a desirable goal in software construction, leading to better values for external attributes such as maintainability, reusability, ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
Coupling is an internal software attribute that can be used to indicate the degree of interdependence among the components of a software system. Coupling is thought to be a desirable goal in software construction, leading to better values for external attributes such as maintainability, reusability, and reliability. Aspect-oriented software development (AOSD) is a new technique to support separation of concerns in software development. In aspect-oriented (AO) systems, the basic components are aspects or classes, which consist of attributes (aspect or class instance variables) and those modules such as advice, intertype declarations, pointcuts, and methods. Thus, in AO systems, the coupling is mainly about the degree of interdependence among aspects and/or classes. To test this hypothesis, good coupling measures for AO systems are needed. In this paper, we propose a coupling measure suite for assessing the coupling in aspect-oriented systems. We first present a coupling framework for AO systems which specially designed to count the dependencies between aspects and classes in the systems. Based on this framework, we formally define various coupling measures in terms of different types of dependencies between aspects and classes. We also discuss the mathematical properties of these measures. 1
Metrics, Do They Really Help?
- In Proceedings of LMO’99 (Langages et Modèles à Objets
, 1999
"... This paper presents a case study about a set of metrics for managing an iterative framework development process. The empirical data have been gathered from the VisualWorks#Smalltalk user-interface framework, which is one of the few industrial scale frameworks that provides full access to the di#eren ..."
Abstract
-
Cited by 16 (9 self)
- Add to MetaCart
This paper presents a case study about a set of metrics for managing an iterative framework development process. The empirical data have been gathered from the VisualWorks#Smalltalk user-interface framework, which is one of the few industrial scale frameworks that provides full access to the di#erent releases of its source code. After providing some details about the case study and the metrics evaluated #section 2#, the paper continues with an evaluation of metrics for problem detection #section 3# and stability measurement #section 4#. Before coming to a conclusion #section 6#, the paper reports on related work on object-oriented metrics #section 5#.

