자동 소프트웨어 프로세스 구축을 위한 공개 소프트웨어 툴 체인 연구 A study on Open Software Tool-Chain for Automatic Software Process Construction 2017. 12. 22. 홍익대학교 소프트웨어공학 연구실 이진협 지도교수 : 김영철
목차 1 연구 배경 2 관련 연구 3 소프트웨어 프로세스 자동구축 툴 체인화 4 적용 사례 5 결론 및 향후 연구 목차는 다음과 같습니다 4 적용 사례 5 결론 및 향후 연구
1 연구 배경
연구 배경 ▶ 소프트웨어 프로세스 구축 자동화 필요성 - 기업에서 프로젝트 진행 중 소스코드 버전관리, 일정관리, 이슈해결 등 문제 - 이를 해결하기 위한 소프트웨어 프로세스 시스템 구축과 적용 필요 - 하지만, 도구 선택, 도구 설치 방법, 버전에 따른 호환성 문제 등으로 구축이 어려움 - 많은 시간과 노력 소모로 프로젝트 수행 시간/비용 낭비 기업에서 프로젝트 진행할 때 소스코드 버전관리와 일정관리, 이슈해결 등 다양한 문제에 부딪히게 됩니다. 이를 해결하기 위해서는 소프트웨어 프로세스 시스템 구축과 적용이 필요합니다. 하지만 도구 선택, 버전에 따른 호환성 문제 등으로 인해 구축이 어렵습니다. 또한 많은 시간과 노력이 소모되므로 프로젝트 수행 시간과 비용이 낭비됩니다. 저희 연구실에서 중소기업을 대상으로 컨설팅한 결과 한 회사를 예를 들면 이러한 프로세스를 구축하는데 일주일이 걸렸습니다. 따라서 소프트웨어 프로세스 구축을 자동화한다면, 비교적 쉽게 해결될 것이라 생각하였습니다.
연구 배경 – 개발 프로세스 시스템 구축 체인화 소스코드 자동 빌드도구 프로젝트 관리도구 이 외 도구들 버전관리 도구 따라서 본 논문에서는 이를 해결하기 위해 오픈소스인 … 등을 체인화 하였습니다. 소프트웨어 프로세스 구축 자동화를 통해 쉽게 구축하여 개발 성숙도를 높이고자 하였습니다. 추가적으로 문서 자동화를 위한 PAL, 잘못된 코드 패턴을 추출하기 위한 PMD, 소스코드 가시화를 위한 Zoom in/out 기능 추가하였습니다. Redmine, Jenkins, MySQL, Apache, PHP 등 체인화 소프트웨어 프로세스 구축 자동화를 통해 쉽게 구축하여 개발 성숙도를 높이고자 함 추가적으로 문서 자동화를 위한 PAL, 잘못된 코드 패턴을 추출하기 위한 PMD, 소스코드 가시화를 위한 Zoom in/out 기능 추가
2 관련 연구
관련 연구 - Redmine 웹 기반 오픈 소스 프로젝트 관리 도구 레드마인은 웹 기반 오픈소스 프로젝트 관리 도구로, 기본적으로 게시판 형태를 갖추고 있으며, 일감 관리, 저장소, 간트차트 등의 기능을 제공합니다. 또한 자유로운 커스터마이징과 플러그인을 통해 원하는 형태의 프로젝트 관리를 가능하게 합니다. 웹 기반 오픈 소스 프로젝트 관리 도구 프로젝트 관리, 요구사항 관리, 이슈/변경/테스트 관리 등의 기능을 제공 Customizing과 plug-in을 통해 원하는 형태의 프로젝트 관리 가능
관련 연구 - Jenkins 오픈 소스 지속적 통합 도구 1100개 이상의 플러그인 제공 젠킨스 또한 오픈소스로 지속적 통합 도구 입니다. 1100여개 이상의 플러그인을 제공합니다. 자동 빌드가 가능하고, 빌드 시 배치커맨드를 통해 특정 프로그램 실행이 가능합니다. 오픈 소스 지속적 통합 도구 1100개 이상의 플러그인 제공 빌드 시 batch command 수행 가능 -> 특정 프로그램 실행
관련 연구 - Subversion(SVN) & Subclipse 서브버전은 소스코드 버전 관리 도구 입니다. 서브클립스는 개발자가 이클립스 상에서 서브버전을 사용할 수 있도록 지원해 주는 플러그인 입니다. Update를 이용해 서브버전 서버에 저장된 소스코드를 불러와 개발자의 코드를 최신화하고, Commit을 통해 수정한 소스코드를 서버에 저장합니다. Subclipse 소스코드 버전 관리 Eclipse에서 Subversion을 사용할 수 있도록 지원
3 소프트웨어 프로세스 자동구축 툴 체인화
소프트웨어 프로세스 자동구축 툴 체인화 구축 자동화 프로세스 기존에는 레드마인 젠킨스 서브버전을 개별적으로 구축하였습니다. 위 그림과 같은 순서로 구축을 자동화하고, 추가적으로 PAL, PMD, Zoom in/out기능을 추가하였습니다.
소프트웨어 프로세스 자동구축 툴 체인화 실제 구축 과정 JDK Subclipse Subversion Setting 이 그림들은 실제 자동구축 과정을 나타낸 것 입니다. 프로그램을 실행하고 앞서 말씀 드린 프로세스대로 설치를 진행합니다. Subclipse Subversion Setting Jenkins Subversion Redmine User Interface PAL PMD Zoom In/Out 완료
소프트웨어 프로세스 자동구축 툴 체인화 완료 후 초기화면 이 화면은 구축이 완료된 후 초기화면 입니다. 위의 메뉴를 이용해 여러 페이지를 띄울 필요 없이 쉽게 이동이 가능합니다.
소프트웨어 프로세스 자동구축 툴 체인화 Zoom in/out 이 그림은 줌인 줌아웃 입니다. 소스코드를 패키지 레벨부터 메소드 레벨까지 나타내줍니다. 만약 메소드 레벨로 확대하여, 디테일한 관계를 보고싶으면 플러스 버튼을 이용해 확대하여 확인할 수 있습니다.
소프트웨어 프로세스 자동구축 툴 체인화 PAL 이 그림은 프로세스 어셋 라이브러리입니다. 웹 상에서 문서화를 위해 XML로 저장된 데이터에 XSLT를 적용하여 위와 같은 형태로 문서화 합니다. XSLT(Extensible Stylesheet Language Transformations) : 원본 문서는 변경되지 않으며, 원본 문서를 기반으로 새로운 문서를 생성
소프트웨어 프로세스 자동구축 툴 체인화 구축 자동화를 위해 사용된 소프트웨어 NSIS(Nullsoft Scriptable Install System) : 스크립트 기반의 윈도우용 설치 프로그램 HM NIS Edit : 스크립트 작성 마법사를 제공하여 NSIS용 스크립트를 쉽게 작성하고 편집하도록 도와주는 프로그램 JSmooth : Java Jar 파일을 EXE 파일에 래핑 Bat To Exe Converter : NSIS에서 Batch 파일 실행이 어려워 EXE로 변환 다음은 구축 자동화를 위해 사용되었던 소프트웨어들 입니다. NSIS는 스크립트 기반의 윈도우용 설치 프로그램으로 오픈소스입니다. HM NIS Edit은 스크립트 작성 마법사를 제공해주며, 이를 이용해 NSIS용 스크립트를 쉽게 작성 및 편집을 할 수 있도록 보조해주는 도구입니다. 배치투이엑스이 컨버터는 배치파일을 exe파일로 변환해주는 도구이며, 오픈소스 입니다. 이것은 배치파일 실행 시 관리자 권한이 필요하면 변환중에 자동으로 관리자 권한을 얻어오는 기능도 제공하고 있어, 원인파악은 못했지만 구축 중 관리자 권한이 필요한 배치파일을 실행시키지 못할 때가 있어, 사용하게 되었습니다.
소프트웨어 프로세스 자동구축 툴 체인화 NSIS 소스코드 Installer 정보 입력 및 설정 기존 JDK 설치여부 확인, 없으면 window bit 확인 후 자동설치 다음은 NSIS 소스코드 일부입니다. 위에는 인스톨러의 기본적 정보이고, 아래에는 기존 J아 설치 여부를 확인하고 없으면 윈도우 비트를 확인하여 자동으로 설치됩니다.
소프트웨어 프로세스 자동구축 툴 체인화 NSIS 소스코드 이 다음부터는 순서대로 진행되며, 제 PC에서 설치 프로그램이 위치한 경로와 설치 진행 시 실행시킬 프로그램의 위치정보를 갖고 있습니다.
4 적용 사례
Coupling/Maintainability 적용 사례 – 소스코드 가시화 Dash Board Apache php MySQL Bitnami(Redmine) Redmine Apache Tomcat(jsp) File (설정파일 및 로그) Jenkins Bitnami(Jenkins) 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 다음은 이 소프트웨어 프로세스 구축자동화 도구를 이용하여 구축한 사례입니다. 추가적으로 소스코드 가시화 툴체인이 적용되어있습니다. 젠킨스에서 빌드 시 추가적으로 수행한 결과들을 대시보드를 통해 보여줍니다. +
적용 사례 – 일감 추적(관련 일감) 요구사항 분석 설계 구현 이 것은 레드마인의 일감 추적 기능을 이용하여 요구사항으로부터 구현, 구현으로부터 요구사항의 추적성을 보여줍니다. 일감을 등록할 때, 하위 일감과 관련 일감 등록을 통해 링크로 추적이 가능합니다.
5 결론 및 향후 연구
결론 및 향후 연구 결론 향후 연구 소스코드 버전관리, 일정관리, 이슈해결을 위한 소프트웨어 프로세스 시스템 구축이 필요 하지만, 도구 선택, 도구 설치 방법, 버전에 따른 호환성 문제 등으로 인해 구축이 어려움 소프트웨어 프로세스 구축 자동화를 통해 쉽게 시스템 구축 가능 PMD를 통해 나쁜 코드패턴 추출, PAL를 통해 문서자동화 , Zoom in/out을 통한 소스코드 가시화 향후 연구 Bitnami를 이용하지 않고 Redmine, Jenkins 설치와 통합 DB -> plug&play LDAP 인증 사용 -> Redmine, Jenkins 등 통합 로그인 링크가 아닌 Dash Board 형태 -> 추적에 더 용이
Q&A Thank You