$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

메트릭을 이용한 객체 지향 설계 재구조화
Restructuring of Object-Oriented Designs using Metrics 원문보기

정보과학회논문지. Journal of KIISE. 소프트웨어 및 응용, v.28 no.6, 2001년, pp.414 - 428  

이병정 (서울대학교 컴퓨터공학부) ,  우치수 (서울대학교 컴퓨터공학부)

초록
AI-Helper 아이콘AI-Helper

객체 지향 설계를 재구조화하기 위해서는 메소드와 속성들 사이의 관계를 파악해야 한다. 메소드와 속성들이 동일한 클래스에 속하는지를 추론하는 과정은 클래스 자료 참조 분석과 메소드 호출 분석에 의존한다. 최근의 많은 소프트웨어들은 규모가 방대하고 복잡하여 개발자가 도구를 사용하지 않고 수작업으로 설계를 재구조화기 어려우며 또한 너무 많은 시간과 노력이 요구된다. 본 논문에서는 메트릭을 이용하여 객체 지향 설계를 자동적으로 재구조화하는 방법을 기술한다. 먼저 메소드, 속성, 클래스, 그리고 그들의 관계츨 추상화된 모델로 표시한다. 이 모델을 기반으로 객체 지향 설계를 정량적으로 측정할 응집도와 결합도 메트릭을 정의한다. 본 논문의 메크릭은 재고조화 과정 동안에 여러 다른 설계들을 효율적으로 비교하기 위한 유용한 기준을 제공한다. 기본 재구조화 행위들과 그 의미(semantics)를 정의하고 메트릭과 행위들을 사용하여 설계를 자동적으로 재구조화한다.

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 본 논문에서는 메트릭을 이용하여 객체 지향 설계를 자 동적으로 재구조화하는 방법을 기술하였다. 자동화를 위하여 먼저 객체 지향 설계를 가시적인 추상화 모델로 표시 하고 이 모델로부터 설계를 정량적으로 측정할 수 있는 응 집도와 결합도 메트릭을 정의한다.
  • 본 논문에서는 메트릭을 이용하여 객체 지향 설계를 재 구조화하는 기법을 제안한다. 먼저 시스템을 추상화된 모 델로 표시하고, 이 모델을 기반으로 응집도(cohesion)와 결합도(coupling) 메트릭을 정의한다, 응집도는 클래스에 속한 메소드와 속성들 사이의 관련성(relatedness)을 의미 하고, 결합도는 클래스들 시-이의 연결성(connectedness) 을 의미한다.
  • 객체 지향 스키마 변형의 의미 [24]는 객체 지향 소프트 웨어의 동작 측면보다 패러다임에 기반한 상속 자료 모델 에 초점을 맞춘다. 본 연구는 재구조화 과정에서 구성 요 소인 메소드, 속성, 그리고 동작을 나타내는 그들 사이의 관계 에지가 새로 추가되거나 삭제되지 않고 그대로 보존 되는 것이 목적이고 다음과 같이 정의한다.
  • 본 연구에서는 객체 지향 설계를 측정하기 위하여 정보 교환 행렬에 기반한 클래스 유사성을 사용하여 응집도와 결합도 메트릭을 정의한다.

가설 설정

  • . CUG는 방향성 있는 비순환(acyclic) 그래프이고, CAG에서 상호작용 관계는 순환(cyclic)할 수 있지만 상 속 관계는 비순환한다.
  • . CUG와 CAG의 각 노드는 유일한 이름을 가진다. 그림 2는 C++ 언어와 유사한 객체 지향 설계 예로서 “use”는 CUG 모델의 사용 관계, “call”은 호출 관계, 그리고 매개 변수 s와 t는 지역 변수를 나타낸다.
  • 본 논문에서 제안한 응집도의 타당성을 검증하기 위하여 Briand[15]7> 제안한 성질(표 2)을 이용하여 COFI(D) 를 평가한다. Briand 성질의 모듈과 모듈화 시스템은 본 연구의 클래스와 객체 지향 설계로 각각 가정한다. 응집도 정의가 메소드 벡터 각의 코사인 유사성으로부터 출발하 므로 GOH(D)는 비음수성을 갖고 0과 "사이 값으로 정규 화되므로 첫 번째 성질 비음수성과 정규화를 만족한다.
  • 행위 1이외에 어떤 재구조화 행위 집합도 CUG 노드 이름을 변경할 수 없다.
  • 본 유전자 알고리즘을 이용한 재구조화 방법의 시간 복 잡도(time complexity)를 분석하면 다음과 같다. 먼저 객 체 지향 설계 D의 전체 메소드 개수를 777, 전체 클래스 개 수를 n, 모집단의 크기를 p, 최대 세대 반복수를 幼见라고 가정한다. 전체 클래스 개수 冷은 재구조화 중간에 변할 수 있으나 모두 m으로 나타낸다.
본문요약 정보가 도움이 되었나요?

참고문헌 (25)

  1. R. Arnold, 'Software Restructuring,' Proceedings of the IEEE, Vol. 77, No.4, pp. 607-617, 1989 

  2. S. R. Chidamber and C. F. Kemerer, 'Towards a Metrics Suite for Object-Oriented Design,' In Proceedings of Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'91) 

  3. S. R. Chidamber and C. F. Kemerer, 'Towards a Metrics Suite for Object-Oriented Design,' SIGPLAN Notices, Vol. 26, No. 11, pp. 197-211, 1991 

  4. Li W, Henry S., 'Object-Oriented Metrics That Predict Maintainability,' Journal of Systems and Software, Vol. 23, pp. 111-122, 1993 

  5. L. Briand, P. Devanbu, and W. Melo, 'An Investigation into Coupling Measures for C++,' In Proceedings of 19th International Conference on Software Engineering, pp. 412-421, 1997 

  6. Y. S. Lee, B. S. Liang, S. F. Wu, and F. J. Wang, 'Measuring the Coupling and Cohesion of an Object-Oriented Program Based on Information Flow,' In Proceedings of International Conference on Software Quality, 1995 

  7. S. Yacoub, H. Ammar, and T. Robinson, 'Dynamic Metrics for Object Oriented Designs,' In Proceedings of 6th International Symposium on Software Metrics, 1999 

  8. E. B. Allen and T. M. Khoshgoftaar, 'Measuring Coupling and Cohesion: An Information-Theory Approach,' In Proceedings of International Symposium on Software Metrics, 1999 

  9. S. R. Chidamber and C. F. Kemerer, 'A Metrics Suite for Object-Oriented Design,' EEE Transactions on Software Engineering, Vol. 20, No.6, pp. 476-493, 1994 

  10. M. Hitz, B. Montazeri, 'Measuring Coupling and Cohesion in Object-Oriented Systems,' n Proceedings of International Symposium on Applied Corporate Computing, 1995 

  11. J. M. Bieman and B. K. Kang, 'Cohesion and Reuse in an Object-Oriented System,' In Proceedings qf ACM Symposium Software Reusability(SSR'95), pp. 259-262, 1995. 

  12. H. S. Chae and Y. R. Kwon, 'A Cohesion Measure for Classes in Object-Oriented Systems,' In Proceedings of 5th International Software Metrics Symposium, pp. 158-166, 1998 

  13. L. C. Briand, S. Morasca, and V. R. Basili, 'Defining and Validating Measures for Object-ased High-Level Design,' IEEE Transactions on Software Engineering, Vol. 25, No.5, pp. 722-743, 1999 

  14. L. C. Briand, J. W. Daly, and]. Wust, 'A Unified Framework for Cohesion Measurement in Object-Oriented Systems,' In Proceedings of 4th International Software Metrics Symposium, pp. 43-53, 1997 

  15. L. C. Briand, J. W. Daly, and J. Wust, 'A Unified Framework for Coupling Measurement in Object-Oriented Systems,' IEEE Transactions on Software Engineering, Vol. 25, No.1, pp. 91-121, 1999 

  16. L. C. Briand, S. Morasca, and V. R. Basili, 'Property-Based Software Engineering Measurement,' IEEE Transactions on Software Engineering, Vol. 22, No.1, pp, 68-86, 1996 

  17. S. C. Choi and W. Scacchi, 'Extracting and Restructuring the Design of Large Systems,' IEEE Software, Vol. 7, No.1, pp. 66-71, 1990 

  18. Fernando Brito e Abreu, Goncalo Pereira, and Pedro Sousa, 'A Coupling-Guided Cluster Analysis Approach to Reengineer the Modularity of Object-Oriented Systems,' In Proceedings of 4th European Conference on Software Maintenance and Reengineering, March 2000 

  19. Deborah Tesch and Gary Klein, 'Optimal Module Clustering in Program Organization,' In Proceedings of the Twenty-Fourth Annual Hawii International Conference on System Sciences, Vol. 2, pp, 238-245, 1991 

  20. H. S. Kim, Y. R. Kwon, and I. S. Chung, 'Restructuring programs through program slicing,' International journal of Software Engineering and Knowledge Engineering, Vol. 4, No.3, pp. 349-368, 1994 

  21. B. K. Kang and J. M. Bieman, 'A Quantitative Framework for Software Restructuring,' Journal of Software Maintenance, Vol. 11, No.4, pp, 245-284, Jul-Aug, 1999 

  22. van Rijsbergen, C. J., Information retrieval, 2d ed. London:Buttcrworths, 1979 

  23. D. E. Goldberg, Genetic Alogrithms in Search, Optimization & Machine Learning, Addison Wesley, 1989 

  24. W. Stevens, G. Myers, and L. Constantine, 'Structured design,' IBM Systems journal, Vol. 13, No.2, pp, 115-139, 1974 

  25. J. Banerjee, W. Kim, H. J. Kim, and H. Korth, 'Semantics and Implementation of Schema Evolution in Object-Oriented Databases,' ACM SIGMOD, 1987 

저자의 다른 논문 :

섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로