Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
1998
The MOOD project within the Software Engineering Group at INESC aims at delivering a broad spectrum quantitative framework to support the design of object oriented systems. A central role in this effort is played by GOODLY (a Generic Object Oriented Design Language? Yes!)[Abreu97] which was first conceived for facilitating the extraction of MOOD design metrics [Abreu94].
… , IEEE Transactions on, 1998
This paper describes the results of an investigation into a set of metrics for object-oriented design, called the MOOD metrics. The merits of each of the six MOOD metrics is discussed from a measurement theory viewpoint, taking into account the recognized object-oriented features which they were intended to measure: encapsulation, inheritance, coupling, and polymorphism. Empirical data, collected from three different application domains, is then analyzed using the MOOD metrics, to support this theoretical validation. Results show that (with appropriate changes to remove existing problematic discontinuities) the metrics could be used to provide an overall assessment of a software system, which may be helpful to managers of software development projects. However, further empirical studies are needed before these results can be generalized.
Software design metrics, since their apparition, suffer from a lack of formalism in their definition opening room to ambiguities and thus to misleading results. Although, several studies attempted to bring rigor to most well-known suite of metrics, the degree of formalism used to define them, constitutes a significant obstacle towards the built of solid tools support, considered as the key point to an easy integration of measurement in the industry. This paper is a logical continuation of a previous published work where a Zbased formalization of the CK metrics is presented, offering an innovative and easy to follow methodology which successfully manages to provide a solid definition of metrics that deals with complexity, coupling and cohesion. While this work brings formalism at the classifier level, we proceed, in the present, to propose formalism for an overall quality measurement of the object-oriented systems, introducing the invisibility concept formalization and extending the quality indicator properties to encapsulation and polymorphism.
LECTURE NOTES IN COMPUTER …, 1999
The GOODLY language can be used to specify the design of applications or libraries built according to the Object Oriented paradigm. It was conceived with the main purpose of facilitating the extraction of MOOD design metrics . It allows expressing the most relevant design information for that purpose, such as the class structure with corresponding inheritance relations, uses relationships, message exchanges and information hiding. This language, whose syntax and semantics are fully described, is being used in the production of a new generation of the MOODKIT tools that allow the MOOD metrics extraction.
Al-Rafidain Journal of Computer Sciences and Mathematics, 2013
Software Quality still a vague and multifaceted concept, which means different things to different people, metrics for object oriented design focuses on measurements that are applied to the class and design characteristics. These measurements allow designers to access the software early in process, making changes that will reduce complexity and improve the continuing capability of the design. This paper focused on a set of object oriented metrics that can be used to measure the quality of an object oriented design. We study carefully Metrics for object oriented design and focus on MOOD model.
1996
The main mechanisms of the Object-Oriented paradigm are supposed to help produce better and cheaper software. As with other things, their usage is more or less intensive, depending mostly on the designer knowledge, experience and ability. This paper reviews a set of metrics called MOOD, suited for evaluating the use of those mechanisms. A MOOD-to-Eiffel binding is introduced. Some code fragments are presented to illustrate the concepts and to clarify the measurement process. A sample of Eiffel libraries is used to collect these metrics. Statistical analysis is performed on the sample and some hypotheses are drawn and discussed. Some preliminary heuristics that can be used during the design process are then derived. Those heuristics can be of some help to designers, mainly if embedded in CASE tools.
1998
In this paper, we describe and evaluate some recently innovated coupling metrics for object-oriented OO design. The Coupling Between Objects CBO metric of Chidamber and Kemerer are evaluated empirically using ve OO systems, and compared with an alternative OO design metric called NAS, which measures the Number of Associations between a class and its peers. The NAS metric is directly collectible from design documents such as the Object Model of OMT. Results from all systems studied indicate a strong relationship between CBO and NAS, suggesting that they are not orthogonal. We h ypothesised that coupling would be related to understandability, the number of errors and error density. No relationships were found for any of the systems between class understandability and coupling. Only limited evidence was found to support our hypothesis linking increased coupling to increased error density. The work described in this paper is part of the`Metrics for OO Programming Systems' MOOPS project, which aims are to evaluate existing OO metrics, and to innovate and evaluate new OO analysis and design metrics, aimed speci cally at the early stages of development.
1997
Abstract In this paper, we examine the current state in the field of object-oriented design metrices. We describe three sets of currently available metrics suites, namely, those of Chidamber and Kemerer (1993), Lorenze and Kidd (1994) and Abreu (1995). We consider the important features of each set, and assess the appropriateness and usefulness of each in evaluating the design of object-oriented systems.
2007
Much of the complexity of software architecture design is derived from the inadequate modularization of key broadly-scoped concerns, such as exception handling and persistence. However, conventional architecture metrics are not sensitive to the driving architectural concerns, thereby leading a number of false positives and false negatives in the design assessment process. Hence, there is a need for assessment techniques that support a more effective identification of early design modularity anomalies relative to crosscutting concerns. In this context, this paper proposes a concern-driven measurement framework for assessing architecture modularity. It encompasses a mechanism for documenting architectural concerns, and a suite of concern-driven architecture metrics. We evaluated the usefulness of the proposed framework while comparing the modularity of aspect-oriented (AO) and non-AO architecture design alternatives in three different case studies.
Global journal of computer science and technology, 2020
The ever-evolving body of empirical results do confirmation on the theoretical perspective the validity of OOD metrics whose validity is determined by them demonstrating that [1] they measure what they purport to measure. Quite often OOD metrics have been used as indicators of both the internal and external behaviors in the software development process. Software metrics especially for Object Oriented Systems literature often describe complex models with the focus to help predict various properties of software products and processes by measuring other properties. Usually designers are met with challenges to work with these measures especially when and how to use them. The very process of collecting these measurements leads to a better organization of the software process and a better understanding of what designers do as long as they confine to measurements that are meaningful. To this end therefore, the initiation of these metrics during the initial software development process is important. This paper elicits an understanding of the OOD metrics used in OOS development.
Journal of Systems and Software, 2000
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 classifications higher than 80% and finds more than 90% of faulty classes. Besides the size of classes, the frequency of method invocations and the depth of inheritance hierarchies seem to be the main driving factors of fault proneness.
L'Objet, 2001
Modularization has many designations in the object-oriented world although it usually corresponds to system partitioning in groups (clusters) of classes. The problem is that this partitioning can be accomplished in many different ways, with two degrees of freedom: the number of clusters and the way to group classes to build them. We use Cluster Analysis to derive the optimal grouping for a fixed number of clusters. To find the optimal number of clusters we propose a decision criterion based on the definition of a modularization merit factor. We use this theoretical framework in the MOTTO tool and apply it to a reasonably large sample of software systems. The most important results are that (i) the proposed approach is feasible and easy to apply with appropriate tool support and that (ii) analyzed systems are far from fully exploiting the benefits of modularization. RÉSUMÉ: La modularisation peut avoir plusieurs sens dans le monde de l'orienté objet, même si elle correspond habituellement une division d'un système en groupes de classes. Le problème est que cette division peut être accomplie de différentes manières enjouant sur le nombre de groupes et la façon de regrouper les classes. Nous utilisons une méthode de regroupement automatique pour déterminer le regroupement optimal pour un nombre fixe de groupes. Pour trouver le nombre optimal de groupes, nous proposons un critère de décision basé sur la définition d'un facteur de mérite de la modularisation. Nous utilisons ce cadre théorique dans l'outil de MOTTO et nous l'appliquons à un échantillon raisonnablement grand de systèmes logiciels. Les résultats les plus importants sont que (i) l'approche proposée est faisable et est facile à appliquer avec le support d'un outil approprié et que (ii) les systèmes analysés sont loin d'exploiter pleinement les avantages de la modularisation KEY WORDS: Modularity of object-oriented systems, cluster analysis, modularity assessment, MOTTO tool MOTS-CLÉS: Modularité des systèmes à objets, regroupement automatique, évaluation de la modularité, l'outil MOTTO
IEEE Transactions on Software Engineering, 2000
The metrics formulated to date for characterizing the modularization quality of object-oriented software have considered module and class to be synonymous concepts. But, a typical class in object-oriented programming exists at too low a level of granularity in large object-oriented software consisting of millions of lines of code. A typical module (sometimes referred to as a superpackage) in a large object-oriented software system will typically consist of a large number of classes. Even when the access discipline encoded in each class makes for "clean" class-level partitioning of the code, the intermodule dependencies created by associational, inheritance-based, and method invocations may still make it difficult to maintain and extend the software. The goal of this paper is to provide a set of metrics that characterizes large object-oriented software systems with regard to such dependencies. Our metrics characterize the quality of modularization with respect to the APIs of the modules, on the one hand, and, on the other, with respect to such object-oriented intermodule dependencies as caused by inheritance, associational relationships, state access violations, fragile base-class design, etc. Using a two-pronged approach, we validate the metrics by applying them to popular opensource software systems.
Software Metrics Symposium, 1996., …, 1996
This paper describes the results of a study where the impact of Object-Oriented design on software quality characteristics is experimentally evaluated. A suite of metrics for OO design, called MOOD, was adopted to measure the use of OO design mechanisms. Data collected on the development of eight small-sized information management systems based on identical requirements were used to assess the referred impact. Data obtained in this experiment show how OO design mechanisms such as inheritance, polymorphism, information hiding and coupling, can influence quality characteristics like reliability or maintainability. Some predictive models based on OO design metrics are also presented.
Proceedings of TOOLS'96, 1996
The main mechanisms of the Object-Oriented paradigm are supposed to help produce better and cheaper software. As with other things, their usage is more or less intensive, depending mostly on the designer knowledge, experience and ability. This paper reviews a set of metrics called MOOD, suited for evaluating the use of those mechanisms. A MOOD-to-Eiffel binding is introduced. Some code fragments are presented to illustrate the concepts and to clarify the measurement process. A sample of Eiffel libraries is used to collect these metrics. Statistical analysis is performed on the sample and some hypotheses are drawn and discussed. Some preliminary heuristics that can be used during the design process are then derived. Those heuristics can be of some help to designers, mainly if embedded in CASE tools. 1 -It was recognised [Conner94] that, on average, students with some degree of proficiency in another paradigm (e.g. imperative) had more difficulties learning how to design the OO way, than those doing it from the start (i.e. with no previous software development knowledge whatsoever). The explanation was that students had to unlearn habits. 2 -In other related areas such as OO reuse metrics, some interesting experimental validation studies were conducted [Melo95], [Lewis91].
2011
Conclusion: This work contributes with evidence to fill gaps in the body of quantitative results supporting alleged benefits to software modularity brought by AOP languages, namely OT/J.
4th European Conference on Software Maintenance and Reengineering (CSMR'2000), 2000
This paper describes a validation experiment of a quantitative approach to the modularization of object oriented systems. The approach used is based on Cluster Analysis, a statistical technique used in many fields of science to group items. Here, the clusters are modules and the items are classes. A sample of some relatively large object oriented systems was used in this experiment. The calculation of the dissimilarity between classes is based on their relative couplings combined through six different rating schemes. These couplings are classified according to a taxonomy framework where categories were assigned weights. The coupling data were obtained with the MOODKit G2 tool. The results obtained allow to conclude on the applicability of the proposed approach. This work was developed in the realm of the MOOD Project that aims to deliver a quantitative framework to support the design of object oriented systems.
Journal of Object Technology, 2006
The importance of software measurement is increasing leading to development of new measurement techniques. As the development of object-oriented software is rising, more and more metrics are being defined for object-oriented languages. Many metrics have been proposed related to various object-oriented constructs like class, coupling, cohesion, inheritance, information hiding and polymorphism. The applicability of metrics developed by previous researchers is mostly limited to requirement, design and implementation phase. Exception handling is a desirable feature of software that leads to robust design and must be measured. This research addresses this need and introduces a new set of design metrics for object-oriented code. Two metrics are developed that measure the amount of robustness included in the code. The metrics are analytically evaluated against Weyuker's proposed set of nine axioms. These set of metrics are calculated and analyzed for standard projects and accordingly ways in which project managers can utilize these metrics are suggested. SOFTWARE DESIGN METRICS FOR OBJECT-ORIENTED SOFTWARE 122 J OURNAL OF OBJECT TECHNOLOGY V OL. 6, NO. 1
… Metrics Symposium, 1999 …, 1999
As object-oriented (OO) analysis and design techniques become more widely used, the demand on assessing the quality of OO designs increases substantially. Recently, there has been much research effort devoted to developing and empirically validating metrics for OO design quality. Complexity, coupling, and cohesion have received a considerable interest in the field. Despite the rich body of research and practice in developing design quality metrics, there has been less emphasis on dynamic metrics for OO designs. The ...
To cope with the complexity of large object-oriented software systems, developers organize classes into subsystems using the concepts of module or package. Such modular structure helps software systems to evolve when facing new requirements. The organization of classes into packages and/or subsystems represents the software modularization. the software modularization usually follows interrelationships between classes. Ideally, packages should to be loosely coupled and cohesive to a certain extent. However, Studies show that as software evolves to meet requirements and environment changes, the software modularization gradually drifts and looses quality. As a consequence, the software modularization must be maintained. It is thus important to understand, to assess and to optimize the organization of packages and their relationships. Our claim is that the maintenance of large and complex software modularizations needs approaches that help in: (1) understanding package shapes and relationships; (2) assessing the quality of a modularization, as well as the quality of a single package within a given modularization; (3) optimizing the quality of an existing modulariza- tion. In this thesis, we concentrate on three research fields: software visualizations, metrics and algorithms. At first, we define two visualizations that help maintainers: (1) to understand packages structure, usage and relationships; (2) to spot patterns; and (3) to identify misplaced classes and structural anomalies. In addition to visual- izations, we define a suite of metrics that help in assessing the package design quality (i.e., package cohesion and coupling). We also define metrics that assess the quality of a collection of inter-dependent packages from different view points, such as the degree of package coupling and cycles. Finally, we define a search-based algorithm that automatically reduces package coupling and cycles only by moving classes over existing packages. Our optimization approach takes explicitly into account the origi- nal class organization and package structure. It also allows maintainers to control the optimization process by specifying: (1) the maximal number of classes that may change their packages; (2) the classes that are candidate for moving and the classes that should not; (3) the packages that are candidate for restructuring and the packages that should not; and (4) the maximal number of classes that a given package can entail. The approaches presented in this thesis have been applied to real large object- oriented software systems. The results we obtained demonstrate the usefulness of our visualizations and metrics; and the effectiveness of our optimization algorithm.
2008 12th European Conference on Software Maintenance and Reengineering, 2008
Refactoring, in spite of widely acknowledged as one of the best practices of object-oriented design and programming, still lacks quantitative grounds and efficient tools for tasks such as detecting smells, choosing the most appropriate refactoring or validating the goodness of changes. This is a proposal for a method, supported by a tool, for cross-paradigm refactoring (e.g. from OOP to AOP), based on paradigm and formalism-independent modularity assessment.