Skip to main content
QUICK REVIEW

[논문 리뷰] Extending Design by Contract for Aspect-Oriented Programming

David H. Lorenz, Therapon Skotiniotis|ArXiv.org|2005. 01. 24.
Advanced Software Engineering Methodologies참고 문헌 17인용 수 23
한 줄 요약

이 논문은 설계 기반 계약(Design by Contract, DbC)을 액세스 기반 프로그래밍(Aspect-Oriented Programming, AOP)으로 확장하기 위해, 메서드 및 액세스 조건 검증에 대한 적절한 런타임 순서를 결정하는 데 사용되는 액세스의 종류로 무관형(agnostic), 복종형(obedient), 반역형(rebellious)으로 분류하는 방법을 도입한다. 이 접근법은 AOP 시스템에서 정확한 책임 소재 할당과 행동적 하위타입화를 보장하며, Cona 도구에 구현되어 클래스와 액세스 모두에서 강력하고 검증 가능한 계약을 구현한다.

ABSTRACT

Design by Contract (DbC) and runtime enforcement of program assertions enables the construction of more robust software. It also enables the assignment of blame in error reporting. Unfortunately, there is no support for runtime contract enforcement and blame assignment for Aspect-Oriented Programming (AOP). Extending DbC to also cover aspects brings forward a plethora of issues related to the correct order of assertion validation. We show that there is no generally correct execution sequence of object assertions and aspect assertions. A further classification of aspects as agnostic, obedient, or rebellious defines the order of assertion validation that needs to be followed. We describe the application of this classification in a prototyped DbC tool for AOP named Cona, where aspects are used for implementing contracts, and contracts are used for enforcing assertions on aspects.

연구 동기 및 목표

  • 기존 DbC 방법론이 지원하지 못하는 액세스 기반 프로그래밍(AOP)에서 런타임 계약 강제화 및 책임 소재 할당의 부재를 해결하기 위해.
  • 객체 및 액세스 조건 검증의 실행 순서에 대한 모호성 문제를 해결하여 AOP 시스템의 정확성과 오류 보고에 영향을 주는 문제를 해결하기 위해.
  • 메서드 계약에 대한 행동적 영향에 기반한 액세스의 형식적 분류를 정의하여 일관된 런타임 검증 및 하위타입 보장을 가능하게 하기 위해.
  • 조언(before/after/around)에 대한 계약을 지원하고, 원본 메서드와 액세스가 강화된 메서드 간의 행동적 하위타입화를 보장하기 위해 DbC 의미 체계를 확장하기 위해.
  • 이 확장을 Cona 도구에 구현하고 평가하기 위해, 이는 액세스를 통해 계약을 강제하고 타입 안정적이고 책임 인식 기반으로 진술을 검증한다.

제안 방법

  • 메서드 행동 및 계약 강제화 순서에 미치는 영향에 따라 액세스를 무관형, 복종형, 반역형으로 삼분류하는 방법을 제안한다.
  • 계약 검증을 위한 엄격한 실행 순서를 정의한다: 사전 조건은 조언 이전에, 사후 조건은 이후에 검증하며, 순서는 액세스 유형에 의해 결정된다.
  • 행동적 하위타입화 규칙을 도입한다: 조언된 메서드는 원본 대응 메서드의 행동적 대체자여야 하며, 이는 메서드 및 조언 양쪽의 진술 검증을 통해 검증된다.
  • Cona 도구를 사용하여 DbC 확장을 구현하며, AspectJ의 포인트컷 및 조언 메커니즘을 활용해 조언의 사전 및 사후 조건을 런타임 검사로 변환한다.
  • 액세스 유형과 검증 순서에 따라 계약 위반이 메서드 또는 액세스로 추적되도록 책임 소재 할당을 강제한다.
  • 액세스가 기본 시스템의 계약을 인지하지 못하도록 하여 모듈화를 유지하면서도 검증이 가능하게 한다.

실험 결과

연구 질문

  • RQ1AOP에서 객체 및 액세스 진술 검증에 대한 적절한 런타임 순서는 무엇이며, 왜 유일한 올바른 순서가 존재하지 않는가?
  • RQ2액세스의 행동적 영향이 메서드 계약에 미치는 영향을 기반으로 하여, 올바르고 일관된 진술 검증 순서를 결정할 수 있는 액세스의 분류 방법은 무엇인가?
  • RQ3조언이 메서드 행동을 수정할 경우 행동적 하위타입화를 어떻게 유지하고 런타임에서 어떻게 강제할 수 있는가?
  • RQ4메서드와 액세스 모두가 진술을 포함할 경우 계약 위반의 책임을 정확히 어떻게 할당할 수 있는가?
  • RQ5기본 언어를 수정하지 않으면서도 모듈화를 해치지 않고 DbC 메커니즘을 AOP로 확장할 수 있는가?

주요 결과

  • 모든 상황에서 객체 및 액세스 진술 검증에 대한 실행 순서는 존재하지 않으며, 올바른 순서는 액세스의 행동적 역할에 따라 달라진다.
  • 무관형, 복종형, 반역형으로 분류된 액세스는 올바른 검증 순서를 결정하고 행동적 하위타입화를 보장한다.
  • 무관형 액세스는 메서드 행동에 영향을 주지 않으며 메서드 이후에 검증된다; 복종형 액세스는 행동을 수정하여 사전 및 사후 조건을 순차적으로 검증해야 한다; 반역형 액세스는 행동을 대체하며 하위타입화를 유지하기 위해 엄격한 순서가 필요하다.
  • Cona 도구는 메서드 및 조언에 대한 계약을 성공적으로 강제하며, AOP 시스템에서 런타임 진술 검증과 정확한 책임 소재 할당을 가능하게 한다.
  • 이 방법은 액세스가 계약을 구현할 수 있도록 하면서도 계약이 액세스의 진술을 강제함으로써 자기 일관된 검증 메커니즘을 만들어낸다.
  • 분류 체계는 복잡한 경로 분석 없이도 책임 소재 할당을 가능하게 하여 AOP 응용 프로그램의 오류 보고를 단순화한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.