프로그램 개발 및 유지보수를 지원하는 횡단관심사 명세 기법

Specification of Crosscutting Concerns to Support Program Development and Maintenance

  • 발행 : 2007.09.15

초록

관점지향 프로그래밍은 기존의 소프트웨어 개발 방법론으로 해결하기 어려운 횡단관심사를 모듈화 하는데 목적을 두고 있다. 초기 관점지향 프로그래밍은 프로그램 개발 단계에 초점을 맞추어 발전하다가 최근에는 요구사항 분석 및 설계부터 코드 구현 단계까지 전체 프로세스에 관점지향 프로그래밍 방법론을 적용하고자 많은 연구가 이루어지고 있다. 하지만, 관점지향 프로그래밍에서 필요한 교차점, 결합점, 충고 정의를 위한 표준화된 지침 및 명세가 없어 프로그램 개발 및 유지보수를 어렵게 하고 있다. 본 논문에서는 이와 같은 문제점을 해결하기 위하여 관점지향 프로그래밍 개발 및 유지보수를 지원하는 횡단관심사 명세 기법을 제시한다. 관심사 명시, 관심사 설계, 그리고 코드 구현 세 단계로 이루어지는 명세 단계는 요구사항 분석 단계에서 얻어지는 횡단관심사 정보를 코드로 개발할 수 있도록 단계별 지침을 제공한다. 명세 과정의 각 단계에서는 전체 횡단 관심사 목록, 횡단관심사 명세서, 애스펙트 클래스 참조 테이블, 핵심 클래스 참조 테이블을 구축하여 코드 개발 및 유지보수시 프로세스간의 추적 자료로 사용된다. 본 논문의 명세 기법은 관점지향 프로그래밍에서 해결하기 어려운 구현의 문제점, 프로그램 이해의 어려움, 재사용의 문제점을 해결함으로써 시스템 개발을 지원한다.

Aspect-Oriented Programming (AOP) has focused on improving the modularity of the crosscutting concerns. The existing AOP methodology has been mainly focused on the implementation method of programs and thus developer-oriented concern extraction and development were performed. Recently, many studies for applying AOP to the entire software development processes ranging from requirement analysis to design and implementation are being conducted. But specification methods having consistency from the initial phase of concern extraction to implementation phase are not sufficient. In this paper, we have presented the specification of crosscutting concerns so as to solve these problems. The specification of crosscutting concerns provides guidelines and specification from the requirement analysis phase to the process of converting extracted crosscutting concerns to codes. This method reduces the gap to the process of mapping extracted crosscutting concerns into a single class and thus enhances program development and understandability. In addition, it raises program reusability, maintenance and extensibility by enhancing traceability.

키워드

참고문헌

  1. Shari Lawrence Pfleeger, Software Engineering Theory and Practice, Prentice Hall, 2005
  2. G. Kiczales and et al., 'Aspect-Oriented Programming,' In Proceeding of European Conference for Object-Oriented Programming, LNCS, Vol. 1241, pp. 220-243, 1997
  3. G. Kiczales and et al., 'An Overview of AspectJ,' in Proceeding of European Conference for Object-Oriented Programming, LNCS, Vol.2072. pp. 327-352, 2001
  4. 이준상, '미래소프트웨어 개발 기술: Apsect-Oriented Programming과 Subject-Oriented Programming,' 정보처리학회지, Vol.10, No.5, pp. 94-101, 2003
  5. Timo Aaltomen, Joni Helin, Mika Katara, Pertti Kellomaki., 'Coordinating Aspects and Objects,' Electronic Notes in Theoretical Computer Science 68, No.3, 2003
  6. Georgia, S., Sergio, S., Paulo, B., and Jaelson, C., 'Separation of Crosscutting Concerns from Requirements to Design: Adapting and Use Case Driven Approach,' Aspect-Oriented Requirements Engineering and Architecture Design Workshop, pp. 93-102, 2004
  7. Mik A. Kersten et al., 'Atalas: A Case Study in Building a Web-Based Learning Environment using Aspect-Oriented Programming,' Technical Report Number TR-99-04, 1999
  8. Davy Suvee, Wim Vanderperren, and Viviane Jonckers, 'JAsCo: An Aspect-Oriented Approach tailored for Component Based Software Development,' AOSD Conference, pp. 21-29, 2003
  9. Ossher, H, and P. Tarr, 'Multi-Dimentional Separation of Concerns and The Hyper Approach,' Software Architecture and Component Technology, Kluwer, 2001
  10. R. Pawlak, L. Seinturier, L. Duchein, and G. Florin, 'JAC: A Flexible Solution for Aspect-Oriented Programming in Java,' In Proceeding of Reflection, LNCS, Vol.2192, pp. 1-21, 2001
  11. Iris Gropher, Thomas Baumgarth, 'Aspect-Orietned from Design to Code,' in Proceedings of the Workshop on Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design; AOSD, March, 2004
  12. Siobhan Clarke, Robert J. Walker, 'Composition Patterns: An Approach to Designing Reusable Aspects,' AOSD, 2002
  13. Jonathan Sillito, Christopher Dutchyn, Andrew David Eisenberg, and Kris De Volder, 'Use Case Level Pointcuts,' European Conference on Object- Oriented Programming(ECOOP), 2004
  14. Ivar, Jacobson., Pan-Weing, Aspect-Oriented Software Development with Use Case, Addison Wesley, 2005
  15. Elisa Baniassad, Paul C. Clements, Joao Araujo and Ana Moreira, Awais Rashid, Bedire Tekinerdogan, 'Discovering Early Aspect,' IEEE Software, pp. 61-70, 2006
  16. Ivar Jacobson, 'Use Cases and Aspects-Working Seamlessly Together,' Journal of Object Technology, Vol.2, No.4, 2003
  17. Ramnivas, Laddad, AspectJ in Action. Manning, pp. 2005
  18. The AspectJ Team, 'The AspectJ Programming Guide,' http://www.eclipse.org/aspectj/doc/next/progguide/index.html
  19. Renaud Pawlak, Houman Younessi, 'On Getting Use Cases and Aspects to Work Together,' Journal of Object Technology, Vol.3, No.1, January-February, 2004
  20. 박옥자, 박종각, 유철중, 장옥배, 'AOP 코드 이해를 지원하는 애스펙트 클래스 참조 테이블', 한국정보처리학회 춘계학술발표대회 논문집 제31권 제1호, 2006
  21. 유 일, 신선진, 소순후, '모바일뱅킹서비스 수용요인에 관한 실증연구', Journal of Information Technology Application and Management, 제13권, 제2호, pp. 67-86, 2006