An object-oriented high-level design-based class cohesion metric
نویسندگان
چکیده
Context: Class cohesion is an important object-oriented software quality attribute. Assessing class cohesion during the object-oriented design phase is one important way to obtain more comprehensible and maintainable software. In practice, assessing and controlling cohesion in large systems implies measuring it automatically. One issue with the few existing cohesion metrics targeted at the high-level design phase is that they are not based on realistic assumptions and do not fulfill expected mathematical properties. Objective: This paper proposes a high-level design (HLD) class cohesion metric, which is based on realistic assumptions, complies with expected mathematical properties, and can be used to automatically assess design quality at early stages using UML diagrams. Method: The notion of similarity between pairs of methods and pairs of attribute types in a class is introduced and used as a basis to introduce a novel high-level design class cohesion metric. The metric considers method-method, attribute-attribute, and attribute-method direct and transitive interactions. We validate this Similarity-based Class Cohesion (SCC) metric theoretically and empirically. The former includes a careful study of the mathematical properties of the metric whereas the latter investigates, using four open source software systems and ten cohesion metrics, whether SCC is based on realistic assumptions and whether it better explains the presence of faults, from a statistical standpoint, than other comparable cohesion metrics, considered individually or in combination. Results: Results confirm that SCC is based on clearly justified theoretical principles, relies on realistic assumptions, and is an early indicator of quality (fault occurrences). Conclusion: It is concluded that SCC is both theoretically valid and supported by empirical evidence. It is a better alternative to measure class cohesion than existing HLD class cohesion metrics.
منابع مشابه
A Design-Based Cohesion Metric for Object-Oriented Classes
Class cohesion is an important object-oriented software quality attribute. It indicates how much the members in a class are related. Assessing the class cohesion and improving the class quality accordingly during the object-oriented design phase allows for cheaper management of the later phases. In this paper, the notion of distance between pairs of methods and pairs of attribute types in a cla...
متن کاملA Design-Based Cohesion Metric for Object-Oriented Classes
Class cohesion is an important object-oriented software quality attribute. It indicates how much the members in a class are related. Assessing the class cohesion and improving the class quality accordingly during the object-oriented design phase allows for cheaper management of the later phases. In this paper, the notion of distance between pairs of methods and pairs of attribute types in a cla...
متن کاملImproving the quality of software cohesion metrics through dynamic analysis
Class cohesion is an important object oriented software quality attribute. Assessing the class cohesion and improving the class quality accordingly during the object oriented design phase allows for cheaper management of the later phases. Most of the cohesion metrics planned in the journalism describes static cohesion measurement at design level. Static metrics is a measure that is applied at t...
متن کاملComparison of High Level Design Based Class Cohesion Metrics
Class cohesion is an object-oriented software quality attribute and refers to the extent to which the members of a class are related. It is one of the fundamental measures of the goodness of a software design. Software developers use class cohesion measures to assess the quality of their products and to guide the restructuring of poorly developed software. To obtain a more comprehensive and mai...
متن کاملInformation System Decomposition Quality
Object-oriented design is becoming very popular in today's software development. An object-oriented information system is decomposed into subjects, each subject is decomposed into classes of objects. Good object-oriented system design should exhibit high cohesion inside subjects and low coupling among subjects. Yet, few quantitative studies of the actual use of cohesion and coupling have been c...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Information & Software Technology
دوره 52 شماره
صفحات -
تاریخ انتشار 2010