Publications

Detailed Information

Visual Analytics for Understanding Software Development History : 소프트웨어 개발 이력의 이해를 위한 시각적 분석

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

김영택

Advisor
서진욱
Issue Date
2021
Publisher
서울대학교 대학원
Keywords
Software VisualizationGit History ExplorationSoftware Repository VisualizationStoryline Visualization소프트웨어 시각화Git 이력탐색Git 메타 데이터 시각적 분석소프트웨어 리파지토리 시각화저자 기반스토리라인 시각화
Description
학위논문(박사) -- 서울대학교대학원 : 공과대학 컴퓨터공학부, 2021.8. 서진욱.
Abstract
Git metadata contains rich information for developers to understand the overall context of a large software development project. Thus it can help new developers, managers, and testers understand the history of development without needing to dig into a large pile of unfamiliar source code.
However, the current tools for Git visualization are not adequate to analyze and explore the metadata: They focus mainly on improving the usability of Git commands instead of on helping users understand the development history. Furthermore, they do not scale for large and complex Git commit graphs, which can play an important role in understanding the overall development history.

The goal of this dissertation is to design interactive visual analytics systems that enable software engineers to effectively understand the context of development history.

First, we present Githru, an interactive visual analytics system to help users explore and understand the context of development history. We design an interactive visual encoding idiom to represent a large Git graph in a scalable manner while preserving the topological structures in the Git graph.
To enable scalable exploration of a large Git commit graph, we propose novel techniques (graph reconstruction, clustering, and Context-Preserving Squash Merge (CSM) methods) to abstract a large-scale Git commit graph. Based on these Git commit graph abstraction techniques, Githru provides an interactive summary view to help users gain an overview of the development history and a comparison view in which users can compare different clusters of commits.
The efficacy of Githru has been demonstrated by case studies with domain experts using real-world, in-house datasets from a large software development team at a major international IT company.
A controlled user study with 12 developers comparing Githru to previous tools also confirms the effectiveness of Githru in terms of task completion time.

Furthermore, we extended the study to help users to discover necessary information within clusters or topological neighbors and identify where to incorporate the user-collected information. We implemented an interactive visualization as an extension of Githru to support discovering and expanding information from the development history varied in repositories.

Next, we propose ActivityFlow to understand author-centric development activities.
Git metadata can inform actual development activities contributed to the project through the history of committing source codes.
However, in addition to deal with the complex topology and large structure of Git metadata, a commit is rather file-grained to obtain a narrative flow of activity and observe collaborative works within it.
ActivityFlow transformed the Git metadata into a collection of tasks containing developers' activities and applied reorganization techniques to improve scalability.
Then we presented the transformed data as a storyline visualization and proposed three rules established to reduce its complexity.
We performed a case study followed by an interview with a domain expert.
Git 메타데이터는 개발자들이 대규모의 소프트웨어 개발 프로젝트의 전체 컨텍스트를 이해할 수 있는 풍부한 정보가 포함되어 있다.
따라서 새로 팀에 참여한 개발자나 매니저, 테스터 등은 익숙하지 않은 소스코드를 파헤치지 않아도, 메타데이터는 전반적인 개발 이력을 이해하는데 도움이 될 수 있다.
그러나, 현재의 Git 시각화 도구들은 이런 메타 데이터를 분석하고 탐색하는데 적합하지가 않다.
기존 도구들은 사용자가 개발 이력을 이해하는데 도움을 주는 것 보다는 Git 명령을 편리하게 사용할 수 있도록 하는데 주로 초점을 맞추고 있다.
또한 그것들은 전체 개발 내역을 이해하는데 중요한 역할을 하는 대규모의 복잡한 Git 커밋 그래프를 지원하는데 어려움을 겪고 있다.

이 연구의 목표는 소프트웨어 엔지니어가 개발 이력의 컨텍스트를 효과적으로 이해할 수 있도록 지원하는 대화형 시각적 분석 시스템을 설계하는데 있다.

첫 번째로 본 논문에서는 방대한 Git 메타데이터를 분석할 수 있는 기법 및 효율적 가시화 기법을 제시하고, 이를 활용한 대화형 시각적 분석 시스템을 제안한다.
먼저 Git 그래프의 전체 위상을 유지하면서, 큰 규모의 그래프를 시각적으로 표현할 수 있는 기법들을 디자인하였다.
그리고 확장성을 고려한 그래프 탐색을 위한 다양한 Git 커밋 그래프 추상화 기법들(그래프 재구성, 클러스터링, 컨텍스트 보존 스쿼시 머지)을 제안한다.
이를 바탕으로 Githru는 사용자들이 개발이력의 전반을 확인할 수 있는 요약 뷰 및 클러스터 간의 차이점을 확인할 수 있는 비교 뷰를 제공한다.
대규모 소프트웨어 개발 팀과 실제 필드에서 사용되는 데이터셋을 활용한 사례 연구를 수행하고, 개발자들을 대상으로 한 유저 스터디를 진행하여 Githru의 유용성 및 사용성을 검증하였다.
또한 해당 연구를 확장하여 개발자들이 클러스터 혹은 근접 노드들 안에서 필요한 정보를 발견하고, 수집한 정보를 통합하는데 도움을 주는 대화형 시각화를 추가적으로 구현하였다.

두 번째로 저자 중심의 개발 활동을 이해하기 위한 ActivityFlow를 제안한다.
프로젝트 관리자는 구성원들의 실제 개발 활동 내역을 이해할 필요가 있으나, 기존의 태스크 관리 프로그램으로 소스 코드 작성 이력을 자세하게 파악하기가 쉽지 않고, 특히 저자 중심으로 개발자들의 협업관계를 이해하기가 어려운 점이 있다.
본 논문에서는 커밋 데이터를 컨텍스트를 파악하기에 용이하고, 협업관계를 포함하고 있는 태스크 형태로 변환하는 기법을 제안하였다. 그리고, 개발자들의 개발 활동을 확인하고, 그들의 협업 관계를 파악할 수 있도록, 변환된 태스크들을 시각화하는 스토리라인 시각화 기법을 제안하였다.
아울러 해당 연구에 대한 실제 개발자들의 사례 연구 결과를 보고하였다.
Language
kor
URI
https://hdl.handle.net/10371/178742

https://dcollection.snu.ac.kr/common/orgView/000000167954
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share