[논문 리뷰] Software is a directed multigraph (and so is software process)
이 논문은 소프트웨어 시스템과 그 개발 프로세스를 방향성 다중그래프로 표현하는 그래프 기반 모델을 제안하며, 이는 통합된 아키텍처 지식 관리와 정량적 메트릭 계산을 가능하게 한다. 아티팩트를 정점으로, 의존성을 여러 종류의 간선으로 모델링함으로써, 그래프 데이터베이스를 활용한 도구에 종속되지 않는 분석, 지속적 통합 및 검증을 지원하며, 소프트웨어 품질과 프로세스 성숙도 평가를 위한 통합 기반을 제공한다.
For a software system, its architecture is typically defined as the fundamental organization of the system incorporated by its components, their relationships to one another and their environment, and the principles governing their design. If contributed to by the artifacts coresponding to engineering processes that govern the system's evolution, the definition gets natually extended into the architecture of software and software process. Obviously, as long as there were no software systems, managing their architecture was no problem at all; when there were only small systems, managing their architecture became a mild problem; and now we have gigantic software systems, and managing their architecture has become an equally gigantic problem (to paraphrase Edsger Dijkstra). In this paper we propose a simple, yet we believe effective, model for organizing architecture of software systems. First of all we postulate that only a hollistic approach that supports continuous integration and verification for all software and software process architectural artifacts is the one worth taking. Next we indicate a graph-based model that not only allows collecting and maintaining the architectural knowledge in respect to both software and software process, but allows to conveniently create various quantitive metric to asses their respective quality or maturity. Such model is actually independent of the development methodologies that are currently in-use, that is it could well be applied for projects managed in an adaptive, as well as in a formal approach. Eventually we argue that the model could actually be implemented by already existing tools, in particular graph databases are a convenient implementation of architectural repository.
연구 동기 및 목표
- 대규모 프로젝트에서 소프트웨어 및 소프트웨어 프로세스 아키텍처를 관리하는 복잡성 증가에 대응하기 위해.
- 소프트웨어 아티팩트와 개발 프로세스 아티팩트의 아키텍처 지식을 단일하고 일관된 모델로 통합하기 위해.
- 그래프 기반 메트릭을 통해 소프트웨어 품질과 프로세스 성숙도에 대한 체계적이고 정량적인 평가를 가능하게 하기 위해.
- 그래프 기반 기반으로 모든 아키텍처 아티팩트에 대한 지속적 통합 및 검증을 지원하기 위해.
- 기존 도구, 특히 그래프 데이터베이스를 활용하여 구현 가능성을 입증하기 위해.
제안 방법
- 아티팩트(예: 클래스, 메서드, 요구사항 등)를 정점으로, 의존성 유형(예: 포함, 구현, 반환 등)을 여러 종류의 간선으로 하여 소프트웨어 시스템과 프로세스를 방향성 다중그래프로 모델링한다.
- 특정 아티팩트 및 추적 유형(예: 포함, 구현, 반환 간선이 포함된 클래스 뷰)을 추상화하기 위해 그래프 뷰를 정의하여 집중적인 분석을 가능하게 한다.
- 간선 변환의 전이 폐쇄를 통해 그래프 맵을 도입한다(예: '포함' 및 '반환' 간선을 '의존'으로 매핑함으로써 클래스 다이어그램과 같은 고수준 추상화를 생성한다).
- 그래프 구성 요소(A, T, V, L, E)를 실수로 매핑하는 함수로서 메트릭을 정의하며, 그래프 알고리즘(예: 결합도 요소, 도달 가능성)을 통해 계산 가능하다.
- 아키텍처 그래프의 저장 및 쿼리에 실용적인 기반으로 그래프 데이터베이스를 사용한다.
- 쿼리 언어를 통해 필터링, 줌 인/아웃, 아키텍처 정보에 대한 드릴다운 탐색이 가능한 상호작용 탐색을 지원한다.
실험 결과
연구 질문
- RQ1소프트웨어 및 소프트웨어 프로세스 아티팩트를 어떻게 통일적으로 모델링하여 통합된 아키텍처 관리를 가능하게 할 수 있는가?
- RQ2어떤 그래프 기반 추상화(뷰 및 맵)가 다양한 수준의 추상화에서 소프트웨어 아키텍처를 효과적으로 표현할 수 있는가?
- RQ3그래프 모델에서 효율적으로 계산할 수 있는 정량적 메트릭은 무엇이며, 이를 통해 소프트웨어 품질과 프로세스 성숙도를 평가할 수 있는가?
- RQ4기존 도구, 특히 그래프 데이터베이스를 어떻게 활용하여 제안된 모델을 구현하고 쿼리할 수 있는가?
- RQ5그래프 모델은 실제 소프트웨어 프로젝트를 아키텍처 특성에 따라 체계적으로 비교 및 분류하는 데 기여할 수 있는가?
주요 결과
- 방향성 다중그래프 모델은 소프트웨어 및 소프트웨어 프로세스 아티팩트를 단일이고 분석 가능한 구조로 통합하여 통합된 아키텍처 관리를 가능하게 했다.
- 그래프 뷰와 맵은 기반 그래프 모델에서 일반적인 소프트웨어 다이어그램(예: 클래스 다이어그램)을 체계적으로 유도할 수 있도록 했다.
- 그래프 내 도달 가능성 성질을 활용하여 테스트 커버리지 및 요구사항 추적성과 같은 핵심 소프트웨어 품질 속성을 정의하고 검증할 수 있었다.
- 결합도 요소 및 기타 표준 메트릭은 모델 상에서 자연스럽게 표현되며 그래프 알고리즘을 통해 효율적으로 계산될 수 있었다.
- 이 모델은 기존 개발 방법론 및 도구와 호환되며, 현재의 그래프 데이터베이스 기술로도 구현이 가능했다.
- 이 프레임워크는 상호작용 가능한 아키텍처 탐색과 메트릭 계산을 위한 쿼리 언어 설계를 가능하게 했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.