scispace - formally typeset
Search or ask a question
Book ChapterDOI

Cohesion Measure for Restructuring

15 May 2020-pp 609-614
TL;DR: In this article, the authors proposed the need for refactoring and focused on exploring how to use object-oriented metrics as guidance where code re-actoring may be used.
Abstract: The object-oriented programming is widely adopted in recent software developments. The development of a well-designed software system is needed that reduces software maintenance costs. On the other hand, the internal structure of the software system is deteriorating due to prolong maintenance operations. In such cases, restructuring is one of the strategies to strengthen the system’s overall internal structure without changing its external behavior. Another restructuring strategy is to use refactoring on the current system. Code refactoring is an effective approach to software development to improve the internal structure of the program. Through refactoring, the quality of the program can be enhanced by maintenance and improvement in reliability. Code refactoring is done without any modification in its features. Cohesion is used to assess a software system’s design quality and is the main pillar of object-oriented software development in good software design. Using software metrics, the quality of object-oriented classes that require code refactoring is assessed. This work proposes the need for refactoring and focuses on exploring how to use object-oriented metrics as guidance where code refactoring may be used. We present object-oriented software metric, i.e., cohesion metric and analyzes the need of metric for restructuring.
Citations
More filters
Journal ArticleDOI
TL;DR: An attempt was made to optimize the component selection problem through the multi-objective optimization by maximizing the Fuzzy-Intra Coupling Density (FBuzzy-ICD) and functionality as objective functions, and also taking into account budget, delivery time, reliability, and FuzzY- ICD as constraints of multi- objective problems.
Abstract: Component-Based Software Engineering (CBSE) is an approach to building and developing software systems based on software components. In component-based software systems, there are various software components, including Commercial off the Shelf (COTS) and in-house components. Software developers can build their desired software component as in-house or COTS. The problem of deciding optimally between COTS and in-house components is one of the major challenges of software developers, which is known as the component selection problem. This can be resolved by evaluating the criteria for optimality in component selection and then solving the component selection problem by optimization techniques. In this paper, an attempt was made to optimize the component selection problem through the multi-objective optimization by maximizing the Fuzzy-Intra Coupling Density (Fuzzy-ICD) and functionality as objective functions, and also taking into account budget, delivery time, reliability, and Fuzzy-ICD as constraints of multi-objective problems. Fuzzy ICD is a more accurate criterion to calculate the relationship between Cohesion and Coupling of components, which is obtained through the fuzzy computing of each of them, based on the Meyers classification. Thus, after a two-criterion optimization model formulation, this optimization problem was solved by fuzzy multi objectives approach. Finally, the proposed method was evaluated by performing the case study of financial-accounting system. Comparison of the results showed that the proposed method could select optimal components with maximum functionality and Fuzzy-ICD and fewer rates of time and Budget (0.29, 0.43, 1.1 s, and 88$ were the improved rates of functionality, Fuzzy-ICD, time, and budget, respectively).

3 citations

References
More filters
Book
01 Jan 1982
TL;DR: Software Engineering A Practitioner's Approach recognizes the dramatic growth in the field of software engineering and emphasizes new and important methods and tools used in the industry.
Abstract: From the Publisher: Well-suited for both the student and the working professional,Software Engineering A Practitioner's Approach recognizes the dramatic growth in the field of software engineering and emphasizes new and important methods and tools used in the industry.

8,224 citations

Book
02 Sep 2011
TL;DR: This research addresses the needs for software measures in object-orientation design through the development and implementation of a new suite of metrics for OO design, and suggests ways in which managers may use these metrics for process improvement.
Abstract: Given the central role that software development plays in the delivery and application of information technology, managers are increasingly focusing on process improvement in the software development area. This demand has spurred the provision of a number of new and/or improved approaches to software development, with perhaps the most prominent being object-orientation (OO). In addition, the focus on process improvement has increased the demand for software measures, or metrics with which to manage the process. The need for such metrics is particularly acute when an organization is adopting a new technology for which established practices have yet to be developed. This research addresses these needs through the development and implementation of a new suite of metrics for OO design. Metrics developed in previous research, while contributing to the field's understanding of software development processes, have generally been subject to serious criticisms, including the lack of a theoretical base. Following Wand and Weber (1989), the theoretical base chosen for the metrics was the ontology of Bunge (1977). Six design metrics are developed, and then analytically evaluated against Weyuker's (1988) proposed set of measurement principles. An automated data collection tool was then developed and implemented to collect an empirical sample of these metrics at two field sites in order to demonstrate their feasibility and suggest ways in which managers may use these metrics for process improvement. >

5,476 citations

Book
Martin Fowler1
01 Jan 1999
TL;DR: Almost every expert in Object-Oriented Development stresses the importance of iterative development, but how do you add function to the existing code base while still preserving its design integrity?
Abstract: Almost every expert in Object-Oriented Development stresses the importance of iterative development. As you proceed with the iterative development, you need to add function to the existing code base. If you are really lucky that code base is structured just right to support the new function while still preserving its design integrity. Of course most of the time we are not lucky, the code does not quite fit what we want to do. You could just add the function on top of the code base. But soon this leads to applying patch upon patch making your system more complex than it needs to be. This complexity leads to bugs, and cripples your productivity.

5,174 citations

Proceedings ArticleDOI
05 Nov 1997
TL;DR: In this paper, a unified framework for object oriented cohesion measures is presented, which is based on the issues discovered in a review of object-oriented cohesion measures, and contributes to an increased understanding of the state of the art as it is a mechanism for comparing measures and their potential use.
Abstract: The increasing importance being placed on software measurement has led to an increased amount of research in 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 an interesting body of work, there is little understanding of the motivations 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. To help remedy this situation a unified framework, based on the issues discovered in a review of object oriented cohesion measures, is presented. The unified framework contributes to an increased understanding of the state of the art as it is a mechanism for: (i) comparing measures and their potential use, (ii) integrating existing measures which examine the same concepts in different ways, and (iii) facilitating more rigorous decision making regarding the definition of new measures and the selection of existing measures for a specific goal of measurement.

490 citations

Proceedings ArticleDOI
01 Aug 1995
TL;DR: It is found that most of the classes in the C++ system are quite cohesive, but that the classes that are reused more frequently via inheritance exhibit clearly lower cohesion.
Abstract: We define and apply two new measures of object-oriented class cohesion to a reasonably large C++ system. We find that most of the classes are quite cohesive, but that the classes that are reused more frequently via inheritance exhibit clearly lower cohesion.

463 citations