Skip to main content
QUICK REVIEW

[논문 리뷰] Using Dependence Analysis to Support Software Architecture Understanding

Jianjun Zhao|ArXiv.org|2001. 05. 05.
Software Engineering Research참고 문헌 15인용 수 38
한 줄 요약

이 논문은 소스 코드가 아닌 소프트웨어 아키텍처 기술서에 적응한 의존성 분석 기법인 아키텍처적 의존성 분석을 소개한다. ACME와 같은 아키텍처 설명 언어(ADL)에서 컴포넌트 및 커넥터 관계를 모델링하기 위해 소프트웨어 아키텍처 의존성 그래프(SADG)를 구성함으로써, 아키텍처 슬라이싱을 통한 자동화된 아키텍처 이해, 유지보수 및 재사용 지원이 가능해지며, 시스템 진화 및 설계 복원 과정에서 개발자의 인지 부담을 크게 줄인다.

ABSTRACT

Software architecture is receiving increasingly attention as a critical design level for software systems. As software architecture design resources (in the form of architectural descriptions) are going to be accumulated, the development of techniques and tools to support architectural understanding, testing, reengineering, maintaining, and reusing will become an important issue. In this paper we introduce a new dependence analysis technique, named architectural dependence analysis to support software architecture development. In contrast to traditional dependence analysis, architectural dependence analysis is designed to operate on an architectural description of a software system, rather than the source code of a conventional program. Architectural dependence analysis provides knowledge of dependences for the high-level architecture of a software system, rather than the low-level implementation details of a conventional program.

연구 동기 및 목표

  • 아키텍처 기술서가 축적됨에 따라 아키텍처 이해, 유지보수, 테스트, 재설계 및 재사용을 지원하는 도구의 필요성이 증가하고 있는 데 이에 대응하기 위해.
  • 기존 프로그램 의존성 분석이 저수준 코드를 대상으로 설계되어 컴포넌트 및 커넥터와 같은 고수준 아키텍처 구성요소를 모델링할 수 없는 한계를 극복하기 위해.
  • 아키텍처 설명 언어(ADL)에 특화된 의존성 분석 기법을 개발하여 아키텍처 수준에서 시스템 동작에 대해 추론할 수 있도록 하기 위해.
  • 유지보수 및 컴포넌트 재사용을 위한 관련 아키텍처 요소를 격리하는 데 아키텍처 슬라이싱이 어떻게 활용될 수 있는지 보여주어 인지 부담을 줄이기 위해.
  • ADL 도구체인에 의존성 분석을 핵심 기능으로 통합하기 위한 기반을 마련하기 위해.

제안 방법

  • 소스 코드가 아닌 아키텍처 기술서를 대상으로 작동하는 새로운 형태의 의존성 분석인 아키텍처적 의존성 분석을 제안한다.
  • 컴포넌트 및 커넥터 상호작용 기반으로 데이터 흐름, 제어 흐름, 구조적 의존성 등을 포함한 아키텍처 의존성 관계를 정의한다.
  • 다양한 유형의 아키텍처 의존성을 명시적으로 표현하기 위해 소프트웨어 아키텍처 의존성 그래프(SADG)를 도입한다.
  • 프로그램 슬라이싱 기법을 아키텍처 수준으로 적응시켜, 특정 포트 또는 컴포넌트를 슬라이싱 기준으로 삼아 아키텍처 슬라이싱을 가능하게 한다.
  • 대상 ADL로 ACME를 사용하여 접근법을 구현하지만, 언어 독립적으로 설계되어 있어 다양한 ADL에 적용 가능하다.
  • 아키텍처 이해 및 컴포넌트 재사용을 지원하기 위한 프로토타입 아키텍처 의존성 분석기 개발

실험 결과

연구 질문

  • RQ1의존성 분석은 어떻게 소스 코드가 아닌 아키텍처 기술서에서 작동하도록 적응시킬 수 있는가?
  • RQ2아키텍처 기술서에서 컴포넌트와 커넥터 사이에 존재하는 의존성 관계의 유형은 무엇인가?
  • RQ3어떻게 아키텍처 슬라이싱이 소프트웨어 유지보수 및 컴포넌트 재사용을 지원할 수 있는가?
  • RQ4기존 프로그램 의존성 분석과 아키텍처적 의존성 분석 사이의 주요 차이는 무엇인가?
  • RQ5아키텍처적 의존성 분석은 실세계 소프트웨어 아키텍처 개발 과제인 이해 및 재사용을 효과적으로 지원할 수 있는가?

주요 결과

  • 아키텍처적 의존성 분석은 아키텍처 기술서 내 컴포넌트 및 커넥터 간의 의존성을 성공적으로 모델링하여 기존 의존성 분석을 아키텍처 수준으로 확장한다.
  • 소프트웨어 아키텍처 의존성 그래프(SADG)는 아키텍처 의존성을 공식적이고 명시적으로 표현함으로써 자동 분석을 가능하게 한다.
  • SADG 기반 아키텍처 슬라이싱을 통해 개발자는 관련 아키텍처 조각을 격리할 수 있으며, 유지보수 작업을 크게 단순화할 수 있다.
  • 자기 포함된, 의존성이 있는 아키텍처 단위를 식별하고 격리함으로써 재사용 가능한 아키텍처 컴포넌트를 추출할 수 있다.
  • 이 방법은 ADL 간 일반화 가능하며, 언어별 구문 및 구조에 따라 실행 구현 세부 사항은 다를 수 있다.
  • 저자들은 ACME를 대상으로 프로토타입 분석기를 구현하여, 아키텍처 이해 및 재사용 분야에서의 실현 가능성과 실용성을 입증했다.

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

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

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

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