오픈소스 기반 소프트웨어 프로세스 자동화 개선 방안

Slides:



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

Popcon 이규태 김준수 강예진. 목차  Popcon 이란  개발동기 및 목적  필요성  차별성  설계  개발일정  기대효과 및 향후 계획.
1 08 시스템 구성도 고려사항 * 웹 서버 클러스터 구성  클러스터 구축은 ㈜ 클루닉스의 Encluster 로 구축 (KT 인증,IT 인증 획득, 실제 클러스터 구축 사이트 200 여곳 )  웹 서버 클러스터는 Dynamic, Static, Image.
Cinema Manager System 최종 발표 조 team05 발표자 : 임 창목 1.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
컴퓨터 종합설계 2012 년 2 학기 Syllabus 개요 (1/2) 목표  실 세계의 문제를 제시하고, 이에 대한 해결책을 컴퓨터 공학적인 방법으로 해결하기 위하여 팀을 주축으로 소프트웨어 개발 프로젝트 수행  프로젝트 계획에서부터 구현까지.
밥 팀 명 : TTL 조 팀 원 : 김정용 (PM) 서종규 노재현 엄성욱.
갤럭시S6 마시멜로 업데이트 및 루팅 안내 2016/05/10 SPIRE TECHNOLOGY INC.
Android 프로그램개발 환경. 학습 목표 ■ 교육 목표  JDK 설치  JDK 환경 설정  Eclipse 설치  Android SDK 설치  ADT Plug-in 설치  Android Virtual Device(AVD) 설치  Android 예제 프로그램.
2016 유성환 Hybrid MOBILE.
MS SQL Server 학기, 소프트웨어 설계 및 실험 ( Ⅰ )
Youngmin Jung JOSSO 설치 Youngmin Jung
Data Interface, Data mart Technology
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
SAS Foundation Client 9.4 설치 가이드
Web Service Computing and Practice_
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
자동 소프트웨어 프로세스 구축을 위한 공개 소프트웨어 툴 체인 연구
Windows 8 Ksystem G&I 설치.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
NCS 학사운영 시스템 Guide.
1.4 프로그래밍을 위한 환경 설정.
Capstone-Design : IoTeam Introduction Abstract
FTP 프로그램 채계화 박재은 박수민.
컴퓨터과학 전공탐색 배상원.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
WinCE Device Driver 실습 #2
JAVA CDT install
Grade Server Team14. Attention Seeker
Eclipse 를 이용한 네트워킹 퍼즐 게임 “Scrambled Net” 담당 교수님 전진우 교수님 최은아.
Method & library.
‘2012년 정보화 사업 교육 버그추적시스템(BTS) 사용 절차 2012, 02.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
아틱 기반 전력 통합 모니터링 시스템 검증을 위한
개발 환경 세팅.
홀인원2.0 설치 메뉴얼.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
RMI Messenger 지도 : 김정배 교수님 조봉진.
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
요구사항 추적성을 위한 소프트웨어 프로세스 가시화 구축 자동화 (Automatic Construction of Software Process Visualization for Requirement Traceability) 홍익대학교 소프트웨어공학.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
클로즈 아키텍처 메커니즘 기반의 요구사항 추적성 매트릭스 (Requirement Traceability Matrix Based on Closed Architecture Mechanism) 홍익대학교 소프트웨어 공학 연구실 변 은 영 안녕하세요.
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
(Service Modularization for the Code Visualization)
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
데이터 베이스 DB2 관계형 데이터 모델 권준영.
※ 편리한 사이버 연수원 사용을 위한 인터넷 최적화 안내 ※
Kangwon National Univ. | Computer Science
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
( Windows Service Application Debugging )
“웹과 모바일을 연동한 평가 간편 시스템” vol
Cold Spring Harbor Laboratory Press 저널 이용 매뉴얼
Level 0 Level 1 Level 2 Level 3 공모전 후기 모음 웹 서비스 1. 웹 페이지 설계 2. 웹 서버 구현
KISTI Supercomputing Center 명훈주
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
DBMS & SQL Server Installation
펌웨어(S/W) Upgrade 방법 Samsung Kies3
M.B.TEAM 중간 발표 (5.18) 이 제걸 백 인호.
엑셀 리포트를 웹 클라이언트에서 사용시 설정 방법
소프트웨어 설계 및 실습 강기준.
J2SE 설치 부산대학교 인공지능 연구실.
Presentation transcript:

오픈소스 기반 소프트웨어 프로세스 자동화 개선 방안 Improving Automatic Construction of Software Process based on Open Source 2018. 01. 30. 홍익대학교 소프트웨어공학 연구실 이진협 지도교수 : 김영철 안녕하십니까 오픈소스 기반 소프트웨어 프로세스 자동화 개선 방안을 발표할 홍익대학교 소프트웨어공학 연구실에 이진협 입니다.

목차 1 연구 동기 2 관련 연구 3 개선된 소프트웨어 프로세스 구축 자동화 4 적용 사례 5 결론 및 향후 연구 발표는 연구배경, 관련연구, 개선된 소프트웨어 프로세스 구축 자동화, 적용 사례, 결론 및 향후 연구 순으로 진행하겠습니다. 5 결론 및 향후 연구

0. 프로세스가 없다면? 요구사항 추적 어려움 스케줄 관리 및 통제 어려움 각 단계 별 품질 지표 측정 어려움 전체 참여 Stakeholders 빠른 동의 어려움 각 단계에서의 공정, 활동, 산출물들의 효율적 관리 어려움 프로세스 단계 별 도구의 Plug&Play 어려움

1. 소프트웨어 프로세스 구축 자동화의 필요성? 소프트웨어 프로세스 구축 어려움 1. 소프트웨어 프로세스 구축 자동화의 필요성? 소프트웨어 프로세스 구축 어려움 NIPA(구 공학센터) Visualization 1/2/3 각각 6개월 소요 Visualization 1 : Process 가시화 Visualization 2 : Architecture 가시화 Visualization 3 : Documentation 가시화 전문가(홍익대 SELab : 5명의 박사들)를 통한 구축 최소 3개월 (사례 : 육본 정체단) Visualization을 Season을 3개로 구분해서 Process, Architecture, Documentation 가시화가 있는데 각각 6개월 소요됨. 원래 중소기업들을 위해 나이파가 컨설팅 및 구축 지원해 줬었지만, 이제 없어져서 가이드 받기 어렵고, 전문 컨설팅을 받아야 한다. 그래서 우리 연구실 전문가들이 해도 3개월 걸렸다, 때문에 중소기업에서 이거를 할 이유가 없다. 엄청난 시간, 개발자들이 이걸 왜하는가… 자동화 하면 이런부분에 대한 고민이 없어질 것이다. 기대효과 정체단이 SP 3등급 제출 2등급 받음, 원클릭으로 30분 내 가능 결과적으로 30분 이내 구축으로 엄청난 시간 줄일 수 있다.

2. 관련 연구 (기존 오픈소스도구들) 체인화 지속적 통합 도구 프로젝트 관리도구 이 외 도구들 버전관리 도구 각 단계별로 많은 도구들이 있는데, 단계별로 적합한 도구들을 선택하고, 이들을 체인화하였습니다. 그리고 이 논문에서는 체인화한 것들을 자동화 하는 방법을 제안하였습니다. Redmine, Jenkins, MySQL, Apache, PHP 등 12개 오픈소스 도구 체인화

SWV Environment based on Plug&Play Reusability Measurement 자동화 제안 Process Visualization Architecture Visualization SWV Environment based on Plug&Play Toolchain Webservice Tools Development Database Server Apache Jenkins Redmine Tomcat JDK MySQL Ruby Graphviz SQLite Source Navigator xCode Parser PHP Reusability Bad Smell SVN Server css js dashboard SWV Env One-Click Installation Project Management Environment (Redmine) Continuous Integration Environment (Jenkins) Dashboard (PHP) Integrated Login Web Service Provision Continuously Running Showing Result Reusability Measurement Bad Smell Measurement Automatic Installing One-Click으로 체인화해서 구축 분석 결과 이러한 모듈들이 필요하다. Process에서는 이러한 전체 중에 이런게 필요하고, Architecture 가시화는 이런게 필요하다. 문서화는 아직이다. 재사용 모듈, 배드 스멜 모듈도 만들었다. 이렇게 구축해야지, 원클릭이 되는것이다.

2. 관련 연구 - Redmine 웹 기반 오픈 소스 프로젝트 관리 도구 프로젝트 관리, 요구사항 관리, 이슈/변경/테스트 관리 등의 기능을 제공 Customizing과 plug-in을 통해 원하는 형태의 프로젝트 관리 가능 프로젝트 관리 도구로는 레드마인을 사용하였습니다. 일감, 간트차트, 이슈 관리 등 여러 기능이 있고, 커스터마이징과 플러그인을 통해 원하는 형태의 프로젝트 관리가 가능합니다. 레드마인은 이러한 기능이있다…

2. 관련 연구 - Jenkins 오픈 소스 지속적 통합 도구 자동 빌드가 가능하고, 빌드 시 배치커맨드를 통해 특정 프로그램 실행이 가능합니다. 더불어 1100여개 이상의 플러그인을 제공하고 있어, 다양한 부가적인 활동이 가능합니다. 오픈 소스 지속적 통합 도구 프로젝트 별 지속적 통합, 자동 빌드 가능, 빌드 시 Batch 실행 가능 1100개 이상의 플러그인 제공

2. 관련 연구 – VisualSVN Server 소스코드 버전 관리 서버 VisualSVN server는 서브버전은 소스코드 버전 관리 도구 입니다. Tortoise는 클라이언트가 서브버전 서버에 쉽게 접근할 수 있도록 지원해 주는 도구입니다.

2. 관련 연구 – 첫 번째 Toolchain화 Approach Plug&Play 불가능 Dash Board Apache php MySQL Redmine(Bitnami) Redmine Apache Tomcat(jsp) File (설정파일 및 로그) Jenkins Jenkins(Bitnami) PAL Batch Toolchain XML XSLT 계획서 Process Asset Library PMD Rule Checker Source Code Coupling/Maintainability SQLite Subversion Zoom In/Out Zoom In / Zoom Out User Action 이 그림은 이전 연구에서 구현한 구축 자동화 서비스 입니다. 여기에서도 기본적으로 레드마인 젠킨스를 사용하였지만 비트나미 레드마인을 보시면 통합되어있어, 사용자 입장에서 설치는 간편하지만 MySQL, 아파치 등의 분리가 어렵습니다. 이는 저희가 목표로하는 Plug&Play가 어려움을 의미합니다. Jenkins 또한 Apache Tomcat이 통합되어있어 역시 Plug&Play가 어렵습니다. 비트나미에서는 +

3. 개선된 소프트웨어 프로세스 구축 자동화 구축 자동화 구성 도구 버전 Java 1.8.0_151 Apache 2.4.29 PHP 7.1.11 Tomcat 8.5.23 (mod_jk 1.2.40) MySQL 5.7.20 phpMyAdmin 4.7.5 Ruby 2.3.3 (Rails 4.2.8) Devkit 4.7.2 Redmine 3.4.3.stable Jenkins 2.89 VisualSVN 3.7.1 TortoiseSVN 1.9.7 현재 내가 각 최신의 도구들을 호환되는 버전들을 Fix한 버전이다. 이러한것을 자동화한것이다.

3. 개선된 소프트웨어 프로세스 구축 자동화 실제 구축해본 결과 최소 3개월 최소 10시간 30분 이내 도구 버전 육본 정체단 구축 전문가 구축 구축 자동화 Java 1.8.0_151 최소 3개월 최소 10시간 30분 이내 Apache 2.4.29 PHP 7.1.11 Tomcat 8.5.23 (mod_jk 1.2.40) MySQL 5.7.20 phpMyAdmin 4.7.5 Ruby 2.3.3 (Rails 4.2.8) Devkit 4.7.2 Redmine 3.4.3. stable Jenkins 2.89 VisualSVN 3.7.1 TortoiseSVN 1.9.7 개선된 소프트웨어 프로세스 구축 자동화는 다음과 같은 구성을 가지고 있습니다. MySQL 데이터베이스와 Apache 서버 베이스에 레드마인 phpMyAdmin, php, Tomcat, Jenkins 등을 연동하였습니다. 때문에 필요한 것만 선택하여 설치가 가능합니다. 오른쪽 표는 각 도구들의 버전입니다. 자동 구축이 아닌 일반적으로 이러한 시스템을 구축하는 과정에 버전 호환성에 대해 큰 어려움을 겪습니다. 물론 구글링을 하면 해결은 가능하지만 오픈소스들이 버전이 너무 많아 현재의 정답을 얻기가 어렵습니다. 예를 들면 저 또한 Apache와 Tomcat을 연동할 때, 또는 레드마인을 설치할 때, Ruby, Devkit 설치가 버전이 맞지 않아 구축에 어려움을 많이 겪었었습니다. 하지만 이렇게 구축 자동화를 함으로써 30분 안에 구축이 가능해졌습니다.

3. 개선된 소프트웨어 프로세스 구축 자동화 실제 구축 과정 이 그림들은 실제 자동구축 과정을 나타낸 것 입니다. 프로그램을 실행하고 앞서 말씀 드린 프로세스대로 설치를 진행합니다.

4. 적용 사례 요구사항 이 것은 레드마인의 일감 추적 기능을 이용하여 요구사항으로부터 구현, 구현으로부터 요구사항의 추적성을 보여줍니다. 일감을 등록할 때, 하위 일감과 관련 일감 등록을 통해 링크로 추적이 가능합니다.

4. 적용 사례 분석 이 것은 레드마인의 일감 추적 기능을 이용하여 요구사항으로부터 구현, 구현으로부터 요구사항의 추적성을 보여줍니다. 일감을 등록할 때, 하위 일감과 관련 일감 등록을 통해 링크로 추적이 가능합니다.

4. 적용 사례 설계 이 것은 레드마인의 일감 추적 기능을 이용하여 요구사항으로부터 구현, 구현으로부터 요구사항의 추적성을 보여줍니다. 일감을 등록할 때, 하위 일감과 관련 일감 등록을 통해 링크로 추적이 가능합니다.

4. 적용 사례 구현 이 것은 레드마인의 일감 추적 기능을 이용하여 요구사항으로부터 구현, 구현으로부터 요구사항의 추적성을 보여줍니다. 일감을 등록할 때, 하위 일감과 관련 일감 등록을 통해 링크로 추적이 가능합니다.

추적성 … … 요구사항 추적성 매트릭스로 Forward와 Backward Traceability의 과정은 다음과 같습니다. MD1 O1 MD2 Forward O2 MD3 … R2 UC2 US3 O3 MD4 O4 … MD5 ① 요구사항(R) – 유스 케이스(UC) ② 유스 케이스(UC) – 유스 케이스 시나리오(US) ③ 유스 케이스 시나리오(US) – 객체(O) ④ 객체(O) – 메소드(MD) 유스 케이스(UC) 요구 사항(R) 우선 순위 UC1 UC2 UC3 UC4 UC5 UC6 R1 5 R2 2 R3 R4 4 R5 R6 1 R7 R8 R9 유스 케이스 시나리오(US) 유스 케이스(UC) 우선 순위 US1 US2 US3 US4 US5 UC1 5 UC2 2 UC3 UC4 4 … UC5 UC6 1 객체(O) 유스 케이스 시나리오(US) 우선 순위 O1 O2 O3 O4 O5 US1 5 US2 2 US3 US4 4 … US5 US6 1 메소드(MD) 객체(O) 우선 순위 MD1 MD2 MD3 MD4 MD5 O1 5 O2 2 O3 … O4 4 O5 UC2 US3 O1 O2 O3 O4 MD1 MD2 MD3 MD4 MD5 O1 R2 UC2 O2 US3 O3 O4 요구사항 추적성 매트릭스로 Forward와 Backward Traceability의 과정은 다음과 같습니다. 먼저 Forward에서 Requirement2의 추적성을 보면 UC2로 UC2는 US3로 US3는 O1,2,3,4로 O1,2,3,4는 MD1,2,3,4,5로 연결성을 갖습니다. Backward

추적성 … … 요구사항 추적성 매트릭스로 Forward와 Backward Traceability의 과정은 다음과 같습니다. MD1 O1 MD2 Forward O2 MD3 … R2 UC2 US3 O3 MD4 O4 … MD5 ① 요구사항(R) – 유스 케이스(UC) ② 유스 케이스(UC) – 유스 케이스 시나리오(US) ③ 유스 케이스 시나리오(US) – 객체(O) ④ 객체(O) – 메소드(MD) 유스 케이스(UC) 요구 사항(R) 우선 순위 UC1 UC2 UC3 UC4 UC5 UC6 R1 5 R2 2 R3 R4 4 R5 R6 1 R7 R8 R9 유스 케이스 시나리오(US) 유스 케이스(UC) 우선 순위 US1 US2 US3 US4 US5 UC1 5 UC2 2 UC3 UC4 4 … UC5 UC6 1 객체(O) 유스 케이스 시나리오(US) 우선 순위 O1 O2 O3 O4 O5 US1 5 US2 2 US3 US4 4 … US5 US6 1 메소드(MD) 객체(O) 우선 순위 MD1 MD2 MD3 MD4 MD5 O1 5 O2 2 O3 … O4 4 O5 UC1 UC2 US1 US2 US3 O1 MD3 R1 R2 R3 R4 R5 UC1 UC2 US1 US2 US3 O1 요구사항 추적성 매트릭스로 Forward와 Backward Traceability의 과정은 다음과 같습니다. 먼저 Forward에서 Requirement2의 추적성을 보면 UC2로 UC2는 US3로 US3는 O1,2,3,4로 O1,2,3,4는 MD1,2,3,4,5로 연결성을 갖습니다. R1 US1 R2 UC1 O1 MD3 US2 R3 UC2 US3 R4 R5 Backward

5. 결론 및 향후 연구 결론 향후 연구 소프트웨어 프로세스 시스템 구축 시 요구사항 추적 가능 스케줄 관리 가능 내재화 가능 소프트웨어 고품질화 가능 But, 벤처/스타트업/중소기업에서는 인력부족, 비용 등 문제로 구축 어려움 소프트웨어 프로세스 구축 자동화를 통해 쉽게 시스템 구축 가능 향후 연구 사용자 지정 디렉터리 사용 통합 데이터베이스 구축 >> 모든 산출물 및 데이터 관리 용이 상용도구 Plug&Play LDRA와 같은 상용도구를 Plug&Play하여 정적분석이나 테스트 부분에 더 많은 분석을 할 수 있도록 할 예정입니다.

Q&A Thank You