(Service Modularization for the Code Visualization)

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
2016 유성환 Hybrid MOBILE.
엑셀리포트를 이용한 날짜별 리포트 자동 저장 방법
컴퓨터와 인터넷.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
코크파트너 설치 가이드 Window 7.
Power Java 제3장 이클립스 사용하기.
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Power Java 제2장 자바 개발 도구.
CUDA Setting : Install & Compile
J2ME Install 부산대학교 인공지능 연구실.
ANSYS17.2 Student 제품 무료 다운로드
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
한국골프대학 종합정보시스템 Windows Vista 사용자를 위한 Component 설치안내서
한국골프대학 종합정보시스템 Windows 7 사용자를 위한 Component 설치안내서
PLISM 컴포넌트 설치 방법.
NCS 학사운영 시스템 Guide.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Outlook Addin 설치 방법 및 매뉴얼
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Cross Compiler 설치.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
[INA470] Java Programming Youn-Hee Han
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
2장. JSP 프로그래밍을 위한 환경구성 제2장.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
이메일 자동 포워딩 방법 (Outlook/OWA)
홀인원2.0 설치 메뉴얼.
영상처리 실습 인공지능연구실.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
1. 설치 2. SPC_Wave 사용설명 SPC_Reflow 사용방법은 Wave와 같습니다.
툴 설치 가이드 PrimeTime SynopsysMentor.
툴 설치 가이드 Formality SynopsysMentor.
USN(Ubiquitous Sensor Network)
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
1차시: 낮과 밤이 생기는 원리 지구과학
Eclipse CDT에서 프로젝트를 Export 하고 Import 하는 방법
자바 5.0 프로그래밍.
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
법령안편집기 연결버튼 표시가 안 될 경우 정부입법지원센터( 입안 및 심사안을 진행시
7주차 실습 FPGA 보드 사용법.
PMIS 서버 설정 환경설정 작성자 : 배경환.
빌드 성공.
Python 및 OpenCV 설치.
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
STS 또는 Eclipse 에서 프로젝트를 Export 하고 Import 하는 방법
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
농구 로봇 따라해 보기.
어드민 로그인 ID : admin 비밀번호 : 서보테크 1. 제품소개 등록 - MISUBISHI
Docker Study 6~7.
JAVA 프로그래밍 16장 JNLP.
SafeMSR 설정.
Presentation transcript:

(Service Modularization for the Code Visualization) 코드 가시화를 위한 서비스 모듈화 (Service Modularization for the Code Visualization) 2017. 04. 29. 홍익대학교 소프트웨어공학 연구실 이진협 지도교수 : 김영철 안녕하십니까 코드 가시화의 서비스 모듈화를 발표할 홍익대학교 소프트웨어공학 연구실 이진협 입니다.

목차 1 연구 동기 2 기존 연구 3 자동화 서비스의 모듈화 4 도구 설치 및 가시화 사례 5 결론 및 향후 연구 먼저 목차 입니다. 연구 배경, 기존 연구, 자동화 서비스의 모듈화, 도구 설치 및 가시화, 결론 및 향후 연구 순으로 발표하겠습니다. 4 도구 설치 및 가시화 사례 5 결론 및 향후 연구

연구 동기 연구 배경입니다.

연구 동기 소프트웨어 고품질화 서비스 모듈화 코드 가시화 개발자/프로그래머에게 코드 내부의 복잡도를 제시 개발자 스스로 나쁜 코딩 습관이나 복잡도를 해소하려는 동기 부여 서비스 모듈화 가시화 도구 구축이 쉽지 않음 기능적 관점, 품질 지표 가시화 서비스 2015년 IDC에 따르면 세계 SW 테스트 서비스 시장 규모는 2015년을 기준으로 193억 달러 우리 돈으로 23조 2천억 원이며, 연평균 15% 성장률을 보인다고 했습니다. 소프트웨어 테스팅 시장이 계속해서 성장함과 동시에 대규모 소프트웨어 개발 또한 많아지고 있습니다. 소프트웨어의 규모가 커짐에 따라 코드의 복잡도가 높아지고, 이는 소프트웨어 제품의 안정성과 고품질화를 어렵게 합니다. 그래서 소프트웨어의 품질 지표 중 결합도와 응집도 등을 이용해 복잡도 파악하고 소스코드를 개선할 수 있도록 소스코드 가시화를 연구하고 있습니다.

기존 연구 기존 연구 입니다.

기존 연구 Source Navigator Xcode Parser 기존 Visualization의 구성도 소스코드 분석 도구 특징 Source Navigator 오픈소스인 코드 분석도구이다. C, C++, Java 등 다양한 코드 분석을 지원한다. 코드 입력, 결과로 바이너리 파일 생성, DBdump로 데이터베이스화 한다. XcodeParser 홍익대학교 소프트웨어공학 연구실에서 자체 제작한 도구로 C, C++, Java 코드를 분석하여 ASTM(Abstract Syntax Tree Metamodel) 파일로 만들어준다. ASTParser 오픈소스인 코드 분석도구이다. Java로 짜인 소스코드만을 타겟으로 한다. JDT 라이브러리에 있는 API로, AST(Abstract Syntax Tree) 형태로 만들어준다. JavaParser 오픈소스인 코드 분석도구이다. JDT ASTParser를 기반으로 하여, 마찬가지로 Java 코드만을 대상으로하며, AST 형태로 만들어준다. 기존 연구 기존 Visualization의 구성도 < 정적분석 도구 > Source Navigator Source Navigator DB GraphViz Graph Source Code Xcode Parser 기존 visualization을 나타낸 구성도 입니다. 구성도 설명하기 전에 소스코드 분석 도구들의 종류들에 대해 간단히 설명 드리겠습니다. 이제 구성도를 다시 보면, 소스네비게이터를 이용한 방법과 엑스코드파서를 이용한 방법이 있습니다. 소스네비게이터를 사용한 것을 살펴보면 먼저 소스코드를 소스네비게이터에 입력하여 나온 결과물을 데이터베이스에 저장합니다. 저장된 데이터를 가시화 코드로 변환하여 그래프비즈에 입력하여 가시화 그래프를 생성합니다. 그리고 마찬가지 방법으로 아래의 엑스코드파서를 이용하여 가시화 그래프를 생성합니다. 이렇게 두 가지 방법을 살펴보면 파서 부분을 제외하고는 모두 공통되는 것이 대부분입니다. 따라서 파서 부분을 모듈화 하고 나머지 부분들은 동일하게 사용하여 하나의 모듈화된 비쥬얼라이제이션을 구현하였습니다. Xcode Parser DB GraphViz Graph Source Code

기존 연구 Source Navigator Xcode Parser 기존 Visualization의 구성도 < 정적분석 도구 > Source Navigator Parser Source Navigator DB GraphViz Graph Source Code Xcode Parser 기존 visualization을 나타낸 구성도 입니다. 구성도 설명하기 전에 소스코드 분석 도구들의 종류들에 대해 간단히 설명 드리겠습니다. 이제 구성도를 다시 보면, 소스네비게이터를 이용한 방법과 엑스코드파서를 이용한 방법이 있습니다. 소스네비게이터를 사용한 것을 살펴보면 먼저 소스코드를 소스네비게이터에 입력하여 나온 결과물을 데이터베이스에 저장합니다. 저장된 데이터를 가시화 코드로 변환하여 그래프비즈에 입력하여 가시화 그래프를 생성합니다. 그리고 마찬가지 방법으로 아래의 엑스코드파서를 이용하여 가시화 그래프를 생성합니다. 이렇게 두 가지 방법을 살펴보면 파서 부분을 제외하고는 모두 공통되는 것이 대부분입니다. 따라서 파서 부분을 모듈화 하고 나머지 부분들은 동일하게 사용하여 하나의 모듈화된 비쥬얼라이제이션을 구현하였습니다. Xcode Parser DB GraphViz Graph Source Code

기존 연구 Source Navigator Xcode Parser 기존 Visualization의 구성도 < 정적분석 도구 > Modularized Visualization Source Navigator Parser DB GraphViz Source Code Source Navigator DB GraphViz Graph Graph Xcode Parser 기존 visualization을 나타낸 구성도 입니다. 구성도 설명하기 전에 소스코드 분석 도구들의 종류들에 대해 간단히 설명 드리겠습니다. 이제 구성도를 다시 보면, 소스네비게이터를 이용한 방법과 엑스코드파서를 이용한 방법이 있습니다. 소스네비게이터를 사용한 것을 살펴보면 먼저 소스코드를 소스네비게이터에 입력하여 나온 결과물을 데이터베이스에 저장합니다. 저장된 데이터를 가시화 코드로 변환하여 그래프비즈에 입력하여 가시화 그래프를 생성합니다. 그리고 마찬가지 방법으로 아래의 엑스코드파서를 이용하여 가시화 그래프를 생성합니다. 이렇게 두 가지 방법을 살펴보면 파서 부분을 제외하고는 모두 공통되는 것이 대부분입니다. 따라서 파서 부분을 모듈화 하고 나머지 부분들은 동일하게 사용하여 하나의 모듈화된 비쥬얼라이제이션을 구현하였습니다. Source Code Xcode Parser DB GraphViz

Eclipse에 SoftwareVisualization Project Import 기존 연구 기존 서비스 Install Installer 실행 Source Navigator 설치 GraphViz 설치 Eclipse 설치 필요시 Java 설치 기존 서비스 수행 절차 기존에는 파서 중에 소스네비게이터만 자동 설치 패키지에 포함 됐었습니다. 그리고 프로그램 설치과정에 불필요한 부분이 있었고, 서비스 수행 시에는 이클립스를 구동하여 외부 프로젝트를 임포트 시키는 번거로움과 소스코드 상에서 타겟소스 경로, 소스네비게이터 경로 등을 개발자가 수정해줘야하는 번거로움이 있었습니다. 또한 이클립스가 없는 환경에서는 따로 설치가 필요했습니다. Eclipse에 SoftwareVisualization Project Import 소스코드 상에서 경로들 수정 Eclipse Run 결과물 저장

모듈화된 자동화 서비스 자동화 서비스의 모듈화 입니다.

모듈화된 자동화 서비스 모듈화 파서 품질지표 Source Navigator XcodeParser JavaParser . . . : 관리에 용이하도록 기능 단위로 분할하는 것 파서 품질지표 Source Navigator XcodeParser JavaParser . . . 먼저 모듈화란 관리에 용이하도록 기능 단위로 분할하는 것을 의미합니다. 이 서비스에서는 파서들과 데이터베이스에 있는 정보로 품질지표에 따라 가시화 코드를 생성하는 부분들을 모듈화 하였습니다. 파서와 품질지표를 모듈화 함에 따라 개발자가 지정하는 파서를 이용해 원하는 품질지표 그래프를 생성할 수 있습니다. 또한 새로운 파서 또는 새로운 품질지표가 생기면 기능을 추가 하기도 쉬워집니다. Coupling Cohesion Coupling &Cohesion ClassDiagram . . .

모듈화된 자동화 서비스 모듈화 파서 품질지표 Source Navigator XcodeParser JavaParser . . . : 관리에 용이하도록 기능 단위로 분할하는 것 파서 품질지표 Source Navigator XcodeParser JavaParser . . . 먼저 모듈화란 관리에 용이하도록 기능 단위로 분할하는 것을 의미합니다. 이 서비스에서는 파서들과 데이터베이스에 있는 정보로 품질지표에 따라 가시화 코드를 생성하는 부분들을 모듈화 하였습니다. 파서와 품질지표를 모듈화 함에 따라 개발자가 지정하는 파서를 이용해 원하는 품질지표 그래프를 생성할 수 있습니다. 또한 새로운 파서 또는 새로운 품질지표가 생기면 기능을 추가 하기도 쉬워집니다. Coupling Cohesion Coupling &Cohesion ClassDiagram . . .

Visualization _Installer.exe 모듈화된 자동화 서비스(구축 관점) Installer 생성 중 사용된 도구들 ToolChain (Java) ToolChain.jar ToolChain.exe SourceNavi + SNCommandLine SourceNavi.zip Visualization _Installer.exe 모듈화된 자동화 서비스의 구성도 및 installer 구성 방법입니다. 툴체인.exe는 소스네비게이터, 엑스코드파서, 그래프비즈를 이어주는 자바로 짜여진 툴체인을 이클립스로 java archive 형태로 추출한 것을 Jsmooth를 이용해 실행파일화 한 것입니다. 소스네비.zip은 파서 중에 하나인 소스네비게이터 오픈소스를 C++코드로 실행하는 SNCommandLine 파일을 함께 압축한 파일입니다. 엑스코드파서.jar 사용하기 쉽게 jar 파일화 해놓은 파서 입니다. 툴체인과 소스네비, 엑스코드파서, 그래프비즈를 NSIS를 이용해서 Visualization Installer를 생성 했습니다. 만약 새로운 파서나 가시화 지표를 추가한다면, 파서 모듈과 툴체인 실행파일 부분만 내용을 추가해서 설치해주면 즉시 사용할 수 있습니다. XcodeParser.jar GraphViz.exe

Visualization _Installer.exe 모듈화된 자동화 서비스 Eclipse(Jar) : Java Archive 확장자로 자바 클래스 파일과 연관 메타데이터 , 리소스를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 패키지 파일 포맷 Installer 생성 중 사용된 도구들 ToolChain (Java) ToolChain.jar ToolChain.exe SourceNavi + SNCommandLine SourceNavi.zip Visualization _Installer.exe 모듈화된 자동화 서비스의 구성도 및 installer 구성 방법입니다. 툴체인.exe는 소스네비게이터, 엑스코드파서, 그래프비즈를 이어주는 자바로 짜여진 툴체인을 이클립스로 java archive 형태로 추출한 것을 Jsmooth를 이용해 실행파일화 한 것입니다. 소스네비.zip은 파서 중에 하나인 소스네비게이터 오픈소스를 C++코드로 실행하는 SNCommandLine 파일을 함께 압축한 파일입니다. 엑스코드파서.jar 사용하기 쉽게 jar 파일화 해놓은 파서 입니다. 툴체인과 소스네비, 엑스코드파서, 그래프비즈를 NSIS를 이용해서 Visualization Installer를 생성 했습니다. 만약 새로운 파서나 가시화 지표를 추가한다면, 파서 모듈과 툴체인 실행파일 부분만 내용을 추가해서 설치해주면 즉시 사용할 수 있습니다. XcodeParser.jar GraphViz.exe

Visualization _Installer.exe 모듈화된 자동화 서비스 JSmooth : Java JAR 파일을 EXE 파일에 래핑하기위한 도구로, 설치된 JVM을 직접 찾을 수 있기 때문에, Java 배치를 더 유연하고 사용하기 쉽게 함 Installer 생성 중 사용된 도구들 ToolChain (Java) ToolChain.jar ToolChain.exe SourceNavi + SNCommandLine SourceNavi.zip Visualization _Installer.exe 모듈화된 자동화 서비스의 구성도 및 installer 구성 방법입니다. 툴체인.exe는 소스네비게이터, 엑스코드파서, 그래프비즈를 이어주는 자바로 짜여진 툴체인을 이클립스로 java archive 형태로 추출한 것을 Jsmooth를 이용해 실행파일화 한 것입니다. 소스네비.zip은 파서 중에 하나인 소스네비게이터 오픈소스를 C++코드로 실행하는 SNCommandLine 파일을 함께 압축한 파일입니다. 엑스코드파서.jar 사용하기 쉽게 jar 파일화 해놓은 파서 입니다. 툴체인과 소스네비, 엑스코드파서, 그래프비즈를 NSIS를 이용해서 Visualization Installer를 생성 했습니다. 만약 새로운 파서나 가시화 지표를 추가한다면, 파서 모듈과 툴체인 실행파일 부분만 내용을 추가해서 설치해주면 즉시 사용할 수 있습니다. XcodeParser.jar GraphViz.exe

Visualization _Installer.exe NSIS : Nullsoft Scriptable Install System (NSIS)는 스크립트 기반으로 동작하는 윈도우용 설치 프로그램으로 오픈소스이며, DLL, ActiveX 컨트롤, 바로 가기 파일, 레지스트리 키 등 많은 기능을 지원 HM NIS Edit : NSIS를 위한 오픈소스 스크립트 편집기로, 스크립트 작성 마법사를 지원하고, 자세한 설명이 되어있어 쉽게 스크립트를 작성 모듈화된 자동화 서비스 Installer 생성 중 사용된 도구들 ToolChain (Java) ToolChain.jar ToolChain.exe SourceNavi + SNCommandLine SourceNavi.zip Visualization _Installer.exe 모듈화된 자동화 서비스의 구성도 및 installer 구성 방법입니다. 툴체인.exe는 소스네비게이터, 엑스코드파서, 그래프비즈를 이어주는 자바로 짜여진 툴체인을 이클립스로 java archive 형태로 추출한 것을 Jsmooth를 이용해 실행파일화 한 것입니다. 소스네비.zip은 파서 중에 하나인 소스네비게이터 오픈소스를 C++코드로 실행하는 SNCommandLine 파일을 함께 압축한 파일입니다. 엑스코드파서.jar 사용하기 쉽게 jar 파일화 해놓은 파서 입니다. 툴체인과 소스네비, 엑스코드파서, 그래프비즈를 NSIS를 이용해서 Visualization Installer를 생성 했습니다. 만약 새로운 파서나 가시화 지표를 추가한다면, 파서 모듈과 툴체인 실행파일 부분만 내용을 추가해서 설치해주면 즉시 사용할 수 있습니다. XcodeParser.jar GraphViz.exe

모듈화된 자동화 서비스 Installer 생성 위한 NSIS용 스크립트 설치 파일 SourceNavigator GraphViz 가장 위에는 설치 파일에 대한 실행파일에 대한 설정부분이고, 두 번째 부분은 SetOutPath는 설치 파일을 실행 시켰을 시 소스네비게이터를 어느 위치에 설치를 하는가 경로를 설정하는 부분입니다. 그리고 SetOverwrite는 해당 프로그램이 이미 설치되어있는지 여부를 확인하여 이미 설치가 되어있으면 덮어쓸 것 인지 확인하는 부분입니다. ExecWait은 다운로드한 파일을 바로 실행하여 전체 프로그램 설치 과정 중에 같이 설치하도록 하는 명령어 입니다. 마지막으로 CreateShorCut은 가시화 프로그램 실행 파일을 바탕화면에 바로가기로 생성하는 부분입니다. 이 모든 섹션들은 설치과정 중에 수행할 것인지를 체크하여 실행 여부를 결정할 수 있습니다. XcodeParser ToolChain

모듈화된 자동화 서비스 ( 품질지표 서비스 ) DB 저장 GraphViz 선택된Parser 테이블 생성 소스코드 경로 결과출력 경로 파일이름 DB 저장 선택된Parser Source Navigator Xcode Parser Coupling Cohesion & Class Diagram 모듈화된 자동화 서비스 절차를 순차적으로 나타낸 그림입니다. 먼저 가시화 프로그램을 실행 시키고 입력화면에 분석할 소스코드가 있는 위치 경로를 선택합니다. 그리고 결과물을 출력할 경로를 선택하고, 출력할 결과물의 이름을 입력합니다. 다음으로 첫번째 빨간 박스에 있는 파서 중 사용하고자 하는 파서를 선택하면 해당 파서로 가시화할 수 있는 지표들만 활성화됩니다. 그렇게 두번째 빨간 박스에 있는 지표들 중 가시화할 지표를 선택한 후 실행 버튼을 누르면 테이블이 생성되고, 선택된 파서로 분석한 정보를 DB에 저장합니다. DB에 저장된 정보를 가지고 선택했던 지표를 표현할 수 있는 가시화 코드를 생성합니다. 마지막으로 가시화 코드를 GraphViz에 입력하여 다음과 같은 최종 결과물인 소스코드 가시화 그래프를 생성합니다. 정보 추출 및 선택된 지표의 그래프로 코드화 GraphViz

Software Visualization Import 기존 도구와 모듈화된 자동화 서비스 비교 설치 과정 비교 실행 과정 비교 Installer 실행 SourceNavi 설치 GraphViz 설치 Eclipse 설치 필요 시 Java 설치 기존 Installer 실행 Parser 설치 GraphViz 설치 ToolChain 설치 필요 시 Java 설치 개선 기존 도구와 모듈화된 자동화 서비스를 비교해보면 아래 그림과 같습니다. 우선 설치과정에서는 Doxygen는 사용하지 않아 빼고, Eclipse를 굳이 설치하지 않아도 되도록 Toolchain을 실행파일을 설치합니다. 실행 과정 비교에서는 기존 방법에서는 이클립스에서 프로젝트를 임포트 시키고, 프로젝트 내에 경로부분에 대한 소스코드를 사용자 상황에 맞게 수정하고, 메인에서 어떤 가시화 지표를 사용할지 수정 후 실행합니다. 반면 개선된 방법에서는 툴체인을 실행시키고 경로 선택하고, 프로젝트 이름 입력 후 파서와 지표 선택하고 실행 시키면 선택한 가시화 그래프가 생성됩니다. Software Visualization Import Eclipse Run 중간 결과물 저장 지정한 경로에 최종 결과물 출력 기존 ToolChain 실행 지정한 경로에 중간 결과물, 최종 결과물 저장 개선

도구 설치 및 가시화 사례 도구 설치 및 가시화 사례 입니다.

도구 설치 및 가시화 사례 이번에는 개발자가 작성한 자바 소스코드를 가시화하기까지의 과정을 살펴 보겠습니다. 먼저 Visualization_setup 파일을 실행 시킵니다. 한번도 설치해본 적 없는 pc를 사용한다는 가정 하에 별도의 설정 없이 다음 또는 설치 버튼만 클릭해주면 바로 가시화 도구가 설치됩니다.

도구 설치 및 가시화 사례 가시화 도구에서 타겟 소스 경로, 출력파일 경로, 프로젝트 이름을 지정한 뒤 파서를 선택하고, 품질 지표를 선택한 뒤 실행 버튼을 클릭합니다. 이 사례에서는 파서를 XcodeParser로, 품질 지표는 결합도와 응집도를 한번에 나타내는 그래프로 선택하였습니다.

도구 설치 및 가시화 사례 가시화 도구에서 타겟 소스 경로, 출력파일 경로, 프로젝트 이름을 지정한 뒤 파서를 선택하고, 품질 지표를 선택한 뒤 실행 버튼을 클릭합니다. 이 사례에서는 파서를 XcodeParser로, 품질 지표는 결합도와 응집도를 한번에 나타내는 그래프로 선택하였습니다.

도구 설치 및 가시화 사례 가시화 도구에서 타겟 소스 경로, 출력파일 경로, 프로젝트 이름을 지정한 뒤 파서를 선택하고, 품질 지표를 선택한 뒤 실행 버튼을 클릭합니다. 이 사례에서는 파서를 XcodeParser로, 품질 지표는 결합도와 응집도를 한번에 나타내는 그래프로 선택하였습니다.

도구 설치 및 가시화 사례 가시화 도구에서 타겟 소스 경로, 출력파일 경로, 프로젝트 이름을 지정한 뒤 파서를 선택하고, 품질 지표를 선택한 뒤 실행 버튼을 클릭합니다. 이 사례에서는 파서를 XcodeParser로, 품질 지표는 결합도와 응집도를 한번에 나타내는 그래프로 선택하였습니다.

도구 설치 및 가시화 사례 클래스 다이어그램 (클래스 이름) (속성, 메소드) 가시화 도구에서 타겟 소스 경로, 출력파일 경로, 프로젝트 이름을 지정한 뒤 파서를 선택하고, 품질 지표를 선택한 뒤 실행 버튼을 클릭합니다. 이 사례에서는 파서를 XcodeParser로, 품질 지표는 결합도와 응집도를 한번에 나타내는 그래프로 선택하였습니다.

도구 설치 및 가시화 사례 결합도 : 모듈 간의 상호 의존 정도 가시화 도구에서 타겟 소스 경로, 출력파일 경로, 프로젝트 이름을 지정한 뒤 파서를 선택하고, 품질 지표를 선택한 뒤 실행 버튼을 클릭합니다. 이 사례에서는 파서를 XcodeParser로, 품질 지표는 결합도와 응집도를 한번에 나타내는 그래프로 선택하였습니다.

도구 설치 및 가시화 사례 응집도 : 모듈 내의 기능적 관련 정도 가시화 도구에서 타겟 소스 경로, 출력파일 경로, 프로젝트 이름을 지정한 뒤 파서를 선택하고, 품질 지표를 선택한 뒤 실행 버튼을 클릭합니다. 이 사례에서는 파서를 XcodeParser로, 품질 지표는 결합도와 응집도를 한번에 나타내는 그래프로 선택하였습니다.

도구 설치 및 가시화 사례 D : Data S : Stamp C : Control E : External M : Common 가중치&결합도 D : Data S : Stamp C : Control E : External M : Common N : Content 낮음 높음 그 결과로 그림과 같이 결합도와 응집도를 동시에 나타낸 가시화 그래프가 나타납니다. 위 그림을 간단히 설명 드리자면 각각의 네모 박스가 클래스이고, 클래스 내에 있는 라인들이 각각 메소드를 의미합니다. 메소드 뒤에 있는 괄호안에 나타난 수치 즉, 노란색 동그라미 안의 수치는 메소드의 응집도를 의미합니다. 또한 클래스끼리 연결된 화살표에 나타난 괄호 안의 수치 즉, 빨간 동그라미 안의 수치는 클래스간의 결합도를 의미합니다.

중간, 최종 결과물 GraphViz 입력코드 (지표를 활용한) GraphViz 결과 그래프 가시화를 위해 생성된 중간 결과물들 즉, 소스네비게이터에 대한 결과물, 엑스코드파서에 대한 결과물, 가시화 코드 그리고 최종 결과물인 가시화 그래프가 이 폴더 저 폴더에 흩어져 있으면 매번 찾기 번거롭고, 관리하기 어렵습니다. 때문에 사용자가 지정했던 결과물 출력 경로에 output 디렉토리를 생성하여 실행 중에 생성되는 모든 결과물들을 저장하여 관리에 용이하도록 하였습니다. XCodeParser 결과물

결론 및 향후 연구 결론 및 향후 연구 입니다.

결론 및 향후 연구 기존 가시화 서비스가 수작업이라면, 서비스 모듈화는 가시화 서비스 자동화 사용자가 별도의 기능 설명 문서 없이도 가시화 서비스를 설치하고 입력, 실행을 쉽게 직관적으로 수행 가시화 과정에 생성되는 모든 결과물들을 하나의 디렉터리에 저장하여, 결과물 확인 및 관리에 용이 현재 모듈화된 서비스 자동화 툴은 선택할 수 있는 품질 지표가 적고, 파서의 종류도 두 가지, 차후 다른 파서와 품질 지표를 추가하여 더 다양한 소스코드 가시화를 할 수 있도록 할 예정 기존 가시화 서비스에서 불필요한 것은 줄이고 보완하여, 가시화 서비스를 자동화하였습니다. 사용자가 별도의 기능 설명 문서 없이도 가시화 서비스를 설치하고 입력, 실행을 쉽게 직관적으로 수행할 수 있습니다. 가시화 과정에 생성되는 모든 결과물들을 하나의 디렉터리에 저장하여, 결과물 확인 및 관리에 용이합니다. 현재 모듈화된 서비스 자동화 툴은 기존에 연구된 여러 지표를 사용한 가시화 방법들 중 일부만을 사용, 또한 파서의 종류도 두 가지 뿐이므로 차후 다른 파서와 품질 지표를 추가하여 더 다양한 소스코드 가시화를 할 수 있도록 할 예정입니다.

Q&A