고품질 소프트웨어를 위한 군인력 자원관리 개발 프로세스 가시화 구축 사례 고품질 소프트웨어를 위한 군인력 자원관리 개발 프로세스 가시화 구축 사례 Speaker: Woo-Sung Jang
Contents 1 2 3 4 Motivation SW Process Visualization Constructive Software Quality V&V of Software Environment for SP Quality Contents 1 Motivation Software Development Process Need for software Process Visualization Software Process Visualization SW Process Visualization 2 Constructive Practice Plan Perform Verification 3 4 Conclusion
Environment for SP Quality Motivation 01 Software Quality 02 V&V of Software 03 Environment for SP Quality
Software Quality 소프트웨어의 품질 보장을 위한 체계적이고 정량적인 접근 방법이 필요 복잡해지고, 고도화된 SW 잠재적 위험의 증가 (내재된 버그 등) 납기지연, 비용초과, 품질저하 등의 문제 야기 본론에 앞서, 소프트웨어의 품질과 프로세스에 대한 설명을 잠깐 진행하겠습니다. 오늘날 소프트웨어는 점점 복잡해지고, 고도화되고 있습니다. 그렇기 때문에 현재의 소프트웨어는 옛날에 비해 내재된 버그와 같은 여러 가지 잠재적인 위험이 증가되고 있습니다. 그리고 증가된 소프트웨어의 잠재적인 위험은 납기지연, 비용초과, 품질저하 등의 문제를 야기할 수 있습니다. 그렇기 때문에 소프트웨어의 품질 보장을 위한 체계적이고 정량적인 접근 방법이 필요합니다.
V&V of Software 확인(Validation) 검증(Verification) 요구사항과 맞는 시스템을 만들고 있는가? 시스템을 올바르게 만들고 있는가? 소프트웨어의 품질을 보장하는 방법으로써, 확인과 검증을 들 수 있습니다. 확인은 현재의 시스템이 요구사항에 일치하는지 테스트 합니다. 검증은 시스템 개발 절차가 올바른지에 대한 테스트를 진행합니다. 현재의 소프트웨어 품질은 단순히 소프트웨어의 품질에 대한 보장을 넘어서 소프트웨어 개발 프로세스에 대한 품질 보장을 요구합니다. SP, CMMi, TMMi, TPI Next와 같은 다양한 인증이 존재하고, 특히 엄격한 안전성을 요구하는 소프트웨어 제품이라면, 이와 같은 인증을 요구하는 경우가 늘고 있습니다. 소프트웨어 제품에서 문제가 발생했을 때, 이와 같은 인증의 여부는 손해 배상액을 줄이거나 늘릴 수도 있습니다.
Environment for Software Development Process Quality 왜 구축해야 하는가? 어떻게 구축해야 하는가? 어떻게 사용해야 하는가? 소프트웨어 개발 프로세스의 품질을 증명하고, 테스트하기 위해서는 품질 증명을 위한 환경을 구축해야 합니다. 하지만 많은 사람은 왜 이것을 해야 하는지 알지 못합니다. 단순히 납품을 받는 업체에서 요구하기 때문에 인증을 해야 한다고 생각하는 경우도 있습니다. 또한 이러한 환경을 어떻게 구축하고, 어떻게 사용해야 하는지 모르는 경우도 있습니다. 프로세스 가시화 환경을 구축하면서, 멘티는 처음 과정에서 이러한 의문을 표했고, 저희는 이러한 의문에 대해 납득을 시키는 과정을 우선적으로 진행하였습니다.
Software Process Visualization 01 Software Development Process 02 Need for software Process Visualization 03 Software Process Visualization
Software Development Process Requirements Design Implementation Test Maintenance 우선 소프트웨어 개발 프로세스가 무엇인지에 대한 설명을 진행하겠습니다. 소프트웨어 개발 프로세스는 요구사항, 설계, 구현, 테스트, 유지보수의 단계로 진행됩니다. 요구사항 단계에서는 요구사항을 정의하고, 요구사항 아이디를 부여합니다.
Software Development Process Requirements Design Implementation Test Maintenance 설계 단계에서는 각 요구사항에 대한 설계를 구현합니다.
Software Development Process Requirements Design Implementation Test Maintenance 구현 단계에서는 각 설계에 대해 실제적으로 소프트웨어를 구현합니다.
Software Development Process Requirements Design Implementation Test Maintenance 테스트 단계에서는 구현된 소프트웨어를 요구사항 및 설계에 맞추어 테스트합니다.
Software Development Process Requirements Design Implementation Test Maintenance 마지막으로 유지보수 단계에서는 테스트가 완료된 소프트웨어를 수정하고, 유지보수 합니다.
Need for Software Process Visualization 소프트웨어 개발 프로세스는 얼마나(어떻게) 체계적인지, 얼마나(어떻게) 프로젝트 관리와 진행이 되는지, 얼마나(어떻게) SW 품질을 보장하는 개발이 진행되는지 육안으로 확 인하기 힘들다. 결과적으로 현재 개발 과정을 정량적으로 파악하지 못하고, 문제점 파악과 유지보수에 있어 많은 어려움을 겪을 수 있고,(특히 담 당자가 퇴사한다면) 개발 과정에 대한 검증과 품질 보장이 힘들다. 결과적으로 우리가 하는 모든 개발 작업은 프로세스에 포함된다. 하지만 소프트웨어 개발 프로세스는
Need for Software Process Visualization 소프트웨어 프로세스 가시화는 프로세스를 육안으로 확인할 수 있게 도와주고, 모든 과정을 체계적으로 정리하고, 자동 문서화가 될 수 있도록 지원하고, 개발 후 유지보수 비용을 줄이고, 소프트웨어의 검증 및 보장이 가능하도록 도와준다. 결과적으로 소프트웨어 개발 도중 부족한 부분을 쉽게 인지하고, 개선할 수 있다. 소프트웨어 전체 프로세스 및 결과물에 대한 검증과 보장이 가능하다. 전체적인 소프트웨어의 품질을 상승시킬 수 있다.
Software Process Visualization 계획 수행 검증 계획 프로젝트의 성공을 위한 목표를 수립 목표의 성공을 위해 현 조직이 지향하는 지표 및 개선 할 지표를 설정 수행 가시화 절차 수행을 위한 자동화 환경을 구축 소프트웨어의 요구사항과 개발 진척도를 자동으로 가시화 구현된 기능과 실제 요구사항을 추적할 수 있는 환경을 조성 검증 가시화 된 개발 과정을 모니터링 SW의 품질지표와 목표 수행 정도를 지속적으로, 실시간으로 확인 및 개선
Process Visualization of Military Human Resource Management System 01 Plan 02 Perform 03 Verification
계룡대 정보체계관리단의 SW 프로세스 가시화 계룡대 정보체계관리단의 ‘소프트웨어 가시화 – 소프트웨어 프로 세스 가시화’를 위한 멘토링 진행
계획 이해 관계자들 간의 토의를 통해 현재 개발 환경에서 가장 필요한 요소를 추출 군 지원 자원관리 시스템에서 가장 필요한 목표 정의 요구사항 달성 여부와 코딩룰 준수 관리자가 모든 프로젝트 진행상황을 한눈에 파악하기 위한 대시보드가 필요 목표의 달성을 위한 지표 수립 프로젝트의 진행상태 코딩룰 준수상태 사업 별 사업기간 테스트 결과 사업추진율 투입인원 요구사항 완료율 요구사항 지연율
수행 계획 단계에서 설정한 목표 및 지표를 가시화 요구사항 추적 매트릭스를 만들기 위한 자동화 환경을 구축 요구사항 및 진척도 입력 및 관리를 위해 레드마인을 사용 주기적으로 프로젝트 빌드, 진척도 확인, 목표/지표 계산을 위해 젠킨스를 사용 젠킨스를 통해 주기적으로 갱신된 결과를 가시화하기 위해 대시보드를 구축 도구 기능 레드마인 요구사항 관리 요구사항 추적 인력 관리 일정 관리 젠킨스 주기적인 소스코드 빌드 주기적인 진척도 확인 주기적인 SW 품질 점수 계산 대시보드 개발 진행 상황 가시화 SW 품질 점수 가시화 아파치 톰캣 젠킨스 아파치(PHP, Ruby) 레드마인 대시보드 MySQL 레드마인 DB 품질점수 DB
수행 단계에서 도구 간의 상호작용 레드마인은 소프트웨어 요구사항과 프로젝트 진척도 변경사항을 레드마인 DB에 입력 젠킨스는 주기적으로 소스코드를 빌드하고, 레드마인 DB를 읽어 품질점수를 계산하여 품질점수 DB에 입력 대시보드는 품질점수 DB를 읽어 품질점수를 테이블화 및 그래프화 사용자는 웹브라우저를 통해 대시보드에 접속하여 프로젝트 가시화 환경을 사용 지속적 통합 도구 (젠킨스) 품질점수 DB 대시보드 소스코드 읽기 쓰기 읽기 읽기 입력 받기 프로젝트 관리 도구 (레드마인) 레드마인 DB 소프트웨어 요구사항 쓰기
Dashboard 지표 표현 방법 프로젝트의 진행상태 : Progressive Bar 코딩룰 준수상태 : Color 사업 별 사업기간 : Date 테스트 결과 : Text 사업추진율 : Progressive Bar 투입인원 : Text 요구사항 완료율 : Text 요구사항 지연율 : Text
검증 구현된 시스템을 통해 현재 상황을 모니터링하고, 문제점을 개선 개선 결과는 레드마인 및 젠킨스에 반영 젠킨스는 반영된 결과를 계산하여 품질점수 DB에 업데이트 대시보드는 모든 개선 과정을 가시화 사용자는 대시보드를 통해 개선 결과를 개선 이전과 비교할 수 있음 지속적 통합 도구 (젠킨스) 품질점수 DB 대시보드 쓰기 읽기 개선결과 읽기 프로젝트 관리 도구 (레드마인) 레드마인 DB 쓰기
Conclusion 소프트웨어 품질에 대한 인식 정의 달성 목표와 품질 지표를 설정하여 시스템에 적용 소프트웨어 프로세스 가시화 환경 구축 및 사용을 위한 멘토링 멘토링 결과, SP 인증 2등급 획득 시스템 도입 초기 상태이므로, 성과는 모니터링 중
Thank you