• 제목/요약/키워드: 크로스커팅 개념

검색결과 3건 처리시간 0.015초

크로스커팅 개념을 이용한 시스템 최적화 기법 (System Optimization Technique using Crosscutting Concern)

  • 이승형;유현
    • 디지털융복합연구
    • /
    • 제15권3호
    • /
    • pp.181-186
    • /
    • 2017
  • 시스템 최적화는 소스코드의 변경 없이 중복된 모듈을 추출하고, 추출된 모듈의 재사용을 위하여 프로그램의 구조를 변경하는 기법이다. 구조지향 개발과 객체지향 개발은 크로스커팅 영역의 모듈화에는 효율적이나 크로스커팅 개념을 모듈화 할 수 없다. 기존 시스템에서 크로스커팅 개념을 적용하기 위해, 각 시스템 내에 분산되어 있는 시스템 최적화 대상 모듈을 크로스커팅 영역으로 추출하는 기술이 필요하다. 본 논문에서는 개발이 완료된 시스템에서 중복 모듈을 추출하기 위한 방법을 제안한다. 제안하는 방법은 소스코드 분석을 통해 데이터 의존관계와 제어 의존관계를 분석하여 중복되는 요소를 추출한다. 추출된 중복된 요소는 시스템 최적화를 위하여 프로그램 의존 관계 분석에 사용될 수 있다. 중복된 의존관계 분석 결과는 제어 흐름 그래프로 변환되며, 이를 활용하여 최소 크로스커팅 모듈을 생성할 수 있다. 의존 관계 분석을 통해 추출된 요소는 크로스커팅 영역 모듈로 설정함으로써 시스템 내 중복된 코드를 최소화 할 수 있는 시스템 최적화 방법을 제시한다.

추상구문트리를 이용한 어스팩트 마이닝 프로세스 설계 (Aspect Mining Process Design Using Abstract Syntax Tree)

  • 이승형;송영재
    • 한국콘텐츠학회논문지
    • /
    • 제11권5호
    • /
    • pp.75-83
    • /
    • 2011
  • 어스팩트 지향 프로그래밍은 시스템에서 크로스커팅 개념을 추출하고 소프트웨어 모듈화를 통하여 기능의 분산과 코드의 혼란을 해결하기 위한 패러다임이다. 현존하는 어스팩트 개발 방법은 크로스커팅 대상 영역을 추출에 어려움이 있기 때문에, 어스팩트 마이닝을 적용하기가 쉽지 않다. 어스팩트 마이닝에서는 기존 프로그램의 리팩토링 요소를 크로스커팅 영역으로 변환하는 기술이 필수적이다. 본 논문에서는 리팩토링에 적합한 크로스커팅 영역 자동 추출을 위한 시스템에서 크로스커팅 개념을 추출하기 위한 어스팩트 마이닝 방법을 제안한다. 소스 모듈의 추상 구문구조 명세를 이용하여, 모듈의 구조적 중복 관계 요소를 추출한다. Apriori 알고리즘을 통하여 중복 구문트리를 생성하고, 크로스커팅 영역 대상인 중복된 소스 모듈을 자동 생성, 최적화 할 수 있다. Berkeley Yacc의 berbose.c 모듈을 제안하는 마이닝 프로세스에 적용해 본 결과, 원본 대비 9.47%의 길이와 부피의 감소하였고, CCFinder 대비 4.92%의 길이 감소, 5.11%의 부피 감소 효과를 확인하였다.

닷넷 프레임워크에서 클래스 최적화를 위한 추상구조트리 생성 및 크로스커팅 위빙 메커니즘 (AST Creating and Crosscutting Concern Weaving Mechanism for Class Optimization in .NET Framework)

  • 이승형;박제연;송영재
    • 한국콘텐츠학회논문지
    • /
    • 제10권2호
    • /
    • pp.89-98
    • /
    • 2010
  • 엔터프라이즈 시스템은 점점 복잡해지고 대형화되고 있다. 시대적 흐름에 따라 재사용에 초점을 맞춘 객체지향 프로그래밍 방법으로 시스템을 개발하고 있다. 하지만, 객체지향 방법에서는 core class에 중복되는 코드가 삽입되기 때문에, 생산성 저하, 새로운 요구사항을 적용하기 어려운 문제가 발생한다. 이 단점을 해결하기 위하여, 메타데이터와 크로스커팅 개념을 적용하는 위빙 메카니즘을 제안한다. 클래스 최적화와 다른 언어사이의 통합을 위하여 다음의 방법을 사용한다. 리플렉션을 이용한 메타데이타 생성, 추상구조트리로의 변환, 그리고 XML로 명세된 크로스커팅 정보를 통한 매핑을 이용한다. 제안하는 방법을 이용하여, 기능의 분산과 코드의 혼란을 해결함으로서 클래스를 최적화 할 수 있다.