• Title/Summary/Keyword: Software modifiability

Search Result 14, Processing Time 0.019 seconds

A Heuristic Metric for Measuring Complexity of Class Inheritance Structures (클래스 상속구조에 대한 경험적 복잡성 척도)

  • Chung, Hong;Kim, Tae-Sik
    • Journal of the Korean Institute of Intelligent Systems
    • /
    • v.12 no.4
    • /
    • pp.328-333
    • /
    • 2002
  • The deeper the hierarchy of a inheritance structure is, the better the reusability of the structure is, but the more difficult the understandability and the maintainability of it is. On the contrary, the shallower the hierarchy is, the worse the abstraction of the inheritance structure is, but the better the understandability and modifiability of it is. Therefore, it is to be desired that a deep hierarchy of a inheritance structure should be split to be shallow for the maintainability of a system. This paper proposed a complexity metric that is based on DIT and NOC of Chidamber and Kemerer, and solved the ambiguity of the metrics of them, which was pointed out by Li. The metric is a simple and heuristic one for measuring the complexity of class inheritance structures by considering the number of ancestor classes and descendant classes and the depth of inheritance hierarchy. This provides a quantitative information for assessing the complexity of a inheritance structure in splitting it.

A Cohesion Metric for Classes in Object-Oriented Systems (객체지향 시스템의 클래스에 대한 응집도)

  • Chae, Hong-Seok;Gwon, Yong-Rae;Bae, Du-Hwan
    • Journal of KIISE:Software and Applications
    • /
    • v.26 no.9
    • /
    • pp.1095-1104
    • /
    • 1999
  • 객체지향 시스템의 개발은 클래스를 통해서 이루어진다. 즉, 문제 영역에 존재하는 중요한 대상 또는 개념을 클래스로 모델링하고, 이로부터 생성된 객체들 사이의 메시지 교환을 통해서 시스템은 구축된다. 또한, 클래스는 정보 은닉을 제공함으로써, 객체지향 시스템의 재사용성과 유지보수성에 상당한 기여를 한다. 그러나, 설계 단계에서 실세계의 대상을 부적절하게 모델링하거나, 또는 유지보수 단계에서 클래스에 무분별한 변경을 가하는 경우 클래스의 품질은 악화될 수 있고, 이는 결국 시스템을 유지보수 하거나 확장하는데 상당한 장애를 초래한다.응집도는 모듈의 구성 요소들 사이의 연관성 정도를 나타내는 척도로서 전통적으로 모듈의 품질을 평가하기 위한 기준으로 사용되어 왔다. 이 논문에서는 클래스의 품질을 평가하는 방법으로서의 클래스 응집도를 제안한다. 즉, 클래스가 실세계의 대상을 적절하게 모델링한다면, 그 구성요소들 사이에 밀접한 관련이 있고 결국 높은 응집도를 가지게 될 것이다. 반대로 실세계의 대상에 대한 적절한 모델이 아니라면, 그 클래스의 구성 요소들 사이에는 밀접한 관련성이 없을 것이고 따라서 낮은 응집도를 보일 것이다.Abstract Object-oriented systems are developed by means of classes; that is, classes captures the essential entities or concepts in the problem domain, and the system is embodied by the interactions of objects instantiated from the classes. In addition to the basic units of object-oriented systems, classes serves as the units of encapsulation, which considerably promote the modifiability and the extensibility of them. However, improper modeling in the design phase or uncontrolled changes during the maintenance phase can degrade the quality of classes, which leads to systems cumbersome to maintain and extend.Cohesion refers to the degree of connectivity among the elements of a single module, and is being used as a factor which characterizes the quality of a module. In this paper, we propose a new cohesion metric for assessing the quality of classes. If a class captures properly the essential features of objects, the members of the class surely have strong relationship among them. On the contrary, the poor relationship among class members can indicate that the class is not a proper model of objects.

A Scalability Study with Nginx for Drools-Based Oriental Medical Expert System (Drools 기반 한방전문가 시스템의 Nginx를 이용한 확장성 연구)

  • Jang, Wonyong;Kim, Taewoo;Cha, Eunchae;Choi, Eunmi
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.7 no.12
    • /
    • pp.497-504
    • /
    • 2018
  • This paper studies about the Oriental Medical Expert System, based on Open Source Drools for rule engine processing, which contains scalability, availability, and modifiability. The system is developed with the Spring MVC framework and Ajax for stable services of the Web-based Medical Expert System. The diagnosis and treatment process of this Medical Expert system provides a service that provides the general users to accesses the web with a series of questionnaires. In order to compensate for the asynchronous communication between clients and services, and also for the complicated JDBC weaknesses, we applied the data handling in JSON to reduce the servers' loads, and also the Mybatis framework to improve the performance of the RDBMS, respectively. In addition, as the number of users increases to cope with the maximum available services of the web-based system, the load balancing structure using Nginx has been developed to solve the server traffic problems and the service availability has been increased. The experimental results show the stable services by approving the scalability test.

Architecture Design for the Image Processing System of Meteorological Satellite (기상위성 영상처리 기본체계 아키텍처 설계)

  • Kuk, Seung-Hak;Choi, Chang-Min;Seo, Yong-Jin;Kim, Hyeon-Soo;SaKong, Young-Bo;Lee, Bong-Ju;Jang, Jae-Dong;Oh, Hyun-Jong
    • Korean Journal of Remote Sensing
    • /
    • v.28 no.1
    • /
    • pp.79-93
    • /
    • 2012
  • This paper suggests a system architecture for the advanced meteorological satellite image processing system that is developing by NMSC(National Meteorological Satellite Center). The meteorology satellite image processing system has basically the image acquisition, the image processing, the data management, and the data dissemination functionalities. However, the existing system has some problems with respect to system integration as well as maintenance to accommodate new satellites and/or the new image processing systems for them which will be developed in the near future. To cope with these problems we propose a new system architecture for the advanced meteorology satellite image processing system. To do this we select as the architectural drivers the quality attributes such as modifiability, inter-operability, extendability, reusability, and platform independency and design the architecture to achieve such quality attributes. We expect that the new approach will solve current issues such as system integration, system dependency, or data management problems and will provide easy ways to incorporate new systems and to maintain them.