• Title/Summary/Keyword: Object-Oriented metrics

Search Result 65, Processing Time 0.023 seconds

Complexity Metrics for Analysis Classes in the Unified Software Development Process (Unified Process의 분석 클래스에 대한 복잡도 척도)

  • 김유경;박재년
    • The KIPS Transactions:PartD
    • /
    • v.8D no.1
    • /
    • pp.71-80
    • /
    • 2001
  • Object-Oriented (OO) methodology to use the concept like encapsulation, inheritance, polymorphism, and message passing demands metrics that are different from structured methodology. There are many studies for OO software metrics such as program complexity or design metrics. But the metrics for the analysis class need to decrease the complexity in the analysis phase so that greatly reduce the effort and the cost of system development. In this paper, we propose new metrics to measure the complexity of analysis classes which draw out in the analysis phase based on Unified Process. By the collaboration complexity, is denoted by CC, we mean the maximum number of the collaborations can be achieved with each of the collaborator and detennine the potential complexity. And the interface complexity, is denoted by IC, shows the difficulty related to understand the interface of collaborators each other. We prove mathematically that the suggested metrics satisfy OO characteristics such as class size and inheritance. And we verify it theoretically for Weyuker' s nine properties. Moreover, we show the computation results for analysis classes of the system which automatically respond to questions of the it's user using the text mining technique. As we compared CC and IC to CBO and WMC, the complexity can be represented by CC and IC more than CBO and WMC. We expect to develop the cost-effective OO software by reviewing the complexity of analysis classes in the first stage of SDLC (Software Development Life Cycle).

  • PDF

An Empirical Study of Software Size Estimation Techniques by Use Case (Use Case에 의한 소프트웨어 규모 예측 방법에 대한 실증적 연구)

  • 서예영;이남용
    • The Journal of Society for e-Business Studies
    • /
    • v.6 no.2
    • /
    • pp.143-157
    • /
    • 2001
  • There has been a need for predicting development efforts and costs of the system during the early stage of the software process and hundreds of metrics have been proposed for computer software, but not all provide practical support to the software engineer. Some demand measurement that is too complex, others are so esoteric that few real-world professionals have any hope of understanding them, and others violate the basic intuitive notions of what high-quality software really is. It is worthwhile that metrics should be tailored to best accommodate specific products and processes after grasping their good and no good point. This paper describes two size estimation techniques, the Karner technique and the Marchesi technique, and compares and analyzes them with proposed evaluation criteria. Both techniques are to estimate software size analyzed by use case that is mainly described during the object-oriented analysis phase. We also present an empirical comparison of them, both are applied in the Internet Medicine Prescription System. We also propose some guidance for experiments based on our analysis. We believe that it should be facilitating project management more effective by adjusting software metrics properly.

  • PDF

A Coupling Metric for Measuring Strength of Dependency between Classes in Object-Oriented Systems (객체 지향 시스템에서의 클래스 간 의존성 강도 측정을 위한 커플링 척도)

  • Hwa, Ji-Min;Lee, Suk-Hee;Kwon, Yong-Rae
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.14 no.1
    • /
    • pp.81-85
    • /
    • 2008
  • The coupling measurements of object oriented programs can be valuable information for various maintenance tasks and there exists a variety of metrics proposed by numerous researchers. Those metrics, however, cannot measure the strength of dependencies between classes, but only imply the existence of dependencies. Hence they are of limited value for assisting maintenance tasks such as refactoring and system decomposition, which requires information about the strength of dependency. In this paper, a coupling metric which can measure the strength of dependence as well as detect the existence of dependencies is proposed. Our coupling metric is evaluated based on the cost required for performing the maintenance tasks. We have applied the proposed coupling metric to an example of system decomposition in an effort to assess the potential benefits of our approach for maintenance tasks.

Cohesion and Coupling Metrics for Component Design Model (컴포넌트 설계에 대한 응집도와 결합도 메트릭스)

  • Ko, Byung-Sun;Park, Jai-Nyun
    • The KIPS Transactions:PartD
    • /
    • v.10D no.5
    • /
    • pp.745-752
    • /
    • 2003
  • The component-based development methodology becomes famous as the reuse technology for independence and productivity of software development It is necessary component metrics for component-based systems, because It should be measurable to improve the quality of the software. Hence, in this paper, we propose component cohesion and coupling metrics which is reflected in characteristics of component. The operation use value is calculated by the information of classes interface commonly uses to offer the component's service. And, the operation similarity value is calculated by the operations use value. Component cohesion and coupling is calculated by the operation similarity and based of the information which is extracted in the analysis phase. And, we examine the necessity of component metrics in comparison with object-oriented metrics.

The Complexity of Object-Oriented Systems by Analyzing the Class Diagram of UML (UML 클래스 다이어그램 분석에 의한 객체지향 시스템의 복잡도 연구)

  • Chung, Hong;Kim, Tae-Sik
    • Journal of the Korean Institute of Intelligent Systems
    • /
    • v.15 no.6
    • /
    • pp.780-787
    • /
    • 2005
  • Many researches and validations for the complexity metrics of the object-oriented systems have been studied. Most of them are aimed for the measurement of the partial aspects of the systems, for example, the coupling between objects, the complexity of inheritance structures, the cohesion of methods, and so on. But the software practitioners want to measure the complexity of overall system, not partial. We studied the complexity of the overall structures of object-oriented systems by analyzing the class diagram of UML. The class diagram is composed of classes and their relations. There are three kinds of relations, association, generalization, and aggregation, which are making the structure of object-oriented systems to be difficult to understand. We proposed a heuristic metric to measure the complexity of object-oriented systems by putting together the three kinds of the relations. Tn analyze the complexity of the structure of a object-oriented system for the maintainability of the system, we measured the degree of understandability of it, the reverse engineering time to draw a class diagram from the source codes, and the number of errors in the diagram. The results of this experiment shows that our proposed metric has a considerable relationship with the complexity of object-oriented systems. The metric will be helpful to the software developers for their designing tasks by evaluating the complexity of the structures of object-oriented systems and redesigning tasks , of them for the future maintainability.

Design of the Metrics Suite $\pi_{java}$for Java Program Complexity (자바 프로그램의 복잡도 측정을 위한 척도 $\pi_{java}$의 설계)

  • Eun-Mi Kim
    • Journal of the Korea Computer Industry Society
    • /
    • v.2 no.3
    • /
    • pp.407-416
    • /
    • 2001
  • In this paper we propose a suite of metrics $\pi_{java}$ Java/, for evaluating the complexity of Java Programs based on a suite of metrics $\pi_{java}$ c++/, which we previously presented for C++ programs. So far, a lot of metrics for C++ are proposed for C++ programs. But since the specific properties of Java programs are not explicitly considered in those metrics, it is hard to apply them to Java programs. Thus we aim to develop a metric suite that is applicable to Java Programs. At first, we decide if any properties are commonly possessed by both C++ programs and Java programs, or not. For example, the multiple inheritance of the class in C++ is not implemented in Java. On the other hand, the features such as package and interface are newly implemented in Java, and therefore we cannot discuss the complexity of Java programs without considering these new features. Then we define a new suite of metrics $\pi_{java}$ Java/ for Java programs by deleting 3 metrics $\pi_{java}$/c++/, and then incorporating 3 metrics which are newly defined or modified for Java programs to $\pi_{java}$ c++/. Finally, we analytically evaluate the new metric with regard to Weyuker's measurement principles and also compare it with conventional metrics for Java.

  • PDF

Techniques to Predict External Quality from Internal Quality Metrics for Object Oriented Software Components (객체지향 기반 소프트웨어 컴포넌트의 내부 품질 메트릭을 이용한 외부 품질 추정 기법)

  • 박지환;신석규;김수동
    • Journal of KIISE:Software and Applications
    • /
    • v.30 no.7_8
    • /
    • pp.618-641
    • /
    • 2003
  • Various quality models using quality factor, quality criteria and metrics have been proposed in order to evaluate quality of software products. However, a customized quality model which is specific to the characteristics of software component is required. In this paper, we propose external quality prediction techniques enable us to predict what external quality the final software product will have by using metrics as with internal attributes of software in development. We also propose a model not only for measuring quality by using metrics but also for applying internal attributes of ISO 9126 into artifacts of software component development.

Establishment of the Software Quality Metrics for a Software Development Process (소프트웨어 개발 과정에서 제품의 품질 척도를 적용하는 방법)

  • Lee, Seon-ah;Choi, Byoung-Ju
    • Journal of KIISE:Software and Applications
    • /
    • v.27 no.3
    • /
    • pp.217-226
    • /
    • 2000
  • In order to develop high quality software, software metrics have been made to assess the quality of software, and recently, many object-oriented metrics have been suggested for this purpose as well. However, research on the utilization of metrics to control software quality in a development process has been inadequate. This is due to the difficulty in assessing the significance of metrics in a software development process from the perspective of overall software quality. In this paper, we propose a method of applying metrics to a development process using the Hierarchical Software Quality Model(H-SQM) which is defined in terms of the products' special features. The method represents the H-SQM as the cause-and-effect diagram and changes the diagram to the process-analysis diagram. And it applies software quality metrics to each development stage by the process-analysis diagram. In this way, we could utilize the software quality metrics efficiently in order to improve the quality of software in the software development process.

  • PDF

Metrics for Measurement of Component Reusability in Component-Based Development (CBD 환경에서 컴포넌트의 재사용성 측정 메트릭스)

  • Yoon, Hee-Whan
    • Journal of the Korea Society of Computer and Information
    • /
    • v.10 no.4 s.36
    • /
    • pp.103-111
    • /
    • 2005
  • The reuse of a programs is classified into white-box reuse to reuse with modification and black-box reuse to reuse without modification. A component in component-based development has the property of black-box reuse. In order to measure resuability of class and component, we must consider all the procedural and object-oriented attribute. In this paper, we propose a new model for measurement of class and component reusability and the measure criteria. A component that is measured by proposed model can know a degree of reuse and we can select which component is high in resuability.

  • PDF

A Pragmatic Framework for Predicting Change Prone Files Using Machine Learning Techniques with Java-based Software

  • Loveleen Kaur;Ashutosh Mishra
    • Asia pacific journal of information systems
    • /
    • v.30 no.3
    • /
    • pp.457-496
    • /
    • 2020
  • This study aims to extensively analyze the performance of various Machine Learning (ML) techniques for predicting version to version change-proneness of source code Java files. 17 object-oriented metrics have been utilized in this work for predicting change-prone files using 31 ML techniques and the framework proposed has been implemented on various consecutive releases of two Java-based software projects available as plug-ins. 10-fold and inter-release validation methods have been employed to validate the models and statistical tests provide supplementary information regarding the reliability and significance of the results. The results of experiments conducted in this article indicate that the ML techniques perform differently under the different validation settings. The results also confirm the proficiency of the selected ML techniques in lieu of developing change-proneness prediction models which could aid the software engineers in the initial stages of software development for classifying change-prone Java files of a software, in turn aiding in the trend estimation of change-proneness over future versions.