2016년 10월 7일 금요일

현장에 다가가는 SW 공학 - 프로세스와 프로젝트 매트릭스

프로세스와 프로젝트 매트릭스

SW프로세스와 프로젝트 지표는 SW프로세스 프레임워크 프로세스를 활용하여 수행하는 프로젝트에 대한 효과와 통찰력을 얻을 수 있도록 지원하는 정량적인 측정방법으로 기본적인 품질과 생산성데이터를 수집하고 이 데이터에 대한 경험치 평균과 비교 분석하여 품질과 생산성이 향상했는지여부를 결정하기 위해 진행된다. 또한, 측정을 통해 SW프로세스를 개선할 수 있도록 현황을 파악하는데 활용된다.

SW의 측정과 분석은 SW관리자에 의해 평가되고 SW개발자를 통해 데이터를 수집하게 된다. SW프로세스와 프로젝트를 측정하지 않는다면 결과는 주관적인 평가만을 통해 도출될 수밖에 없다. 측정을 통해 미래에 대한 준비 즉, 예측을 할 수 없게 되는 것이다.

프로세스 매트릭스를 구성하기 위한 측정은 모든 프로젝트 기간 동안 수집된다. 진행 중인 프로젝트의 상태를 평가하고 잠재적인 위험을 추적하고 중요한 문제 영역을 발견하거나 작업흐름 또는작업을 조정하고 프로젝트 팀을 평가하는 등 프로젝트 매트릭스를 기반으로 SW프로젝트 관리가가능하게 된다. 또한 프로젝트 팀에 의해 수집된 데이터들은 개선결과와 더불어 SW프로세스 개선에 영향을 미치게 된다

[ SW품질 및 조직의 효율성에 대한 결정 ]



자료: Software Engineering A Practitioner's Approach 7th, Roger S. Pressman

전략적 목적을 위해 사용되는 SW프로세스 측정과는 달리 SW프로젝트의 조치는 전술이다. 즉, 프로젝트 지표이며 이로 인해 파생되는 지표는 프로젝트 관리자 및 프로젝트 워크플로우, 기술 활동을 적용하는 SW개발팀에서 활용하게 된다.


현장에 다가가는 SW 공학 - 제품 매트릭스

제품 매트릭스

모든 공학 프로세스의 핵심요소는 측정이다. 보다 낳은 제품을 만들고 개발할 때 산출물의 품질을 평가하는 모델을 이용하기 위해서는 측정을 수행해야만 한다. 다른 공학분야와 달리 SW공학은 측정이 쉽지는 않다. SW공학에서 측정을 하는 사람들은 SW의 설계 및 구축에 대한통찰력을 갖출 수 있도록 SW공학적 작업의 산출물인 제품의 측정 속성에 대해 고려해야 한다.

언제나 어떠한 제품이라도 질적인 평가는 충분하지 않다. 데이터 구조, 인터페이스 및 구성요소의 설계를 살펴보고 도움이 될 수 있는 객관적인 기준이 필요하다. 또한, 테스트시 테스트케이스와 테스트 방법의 선택에 도움이 되기 위해 정량적인 가이드라인이 필요하게 된다. 데이터에서 도출되는 제품의 매트릭스는 요구사항과 설계 모델, 소스코드, 테스트케이스를 통해 연계되며 수집을 위해 목표를 설정하고 매트릭스를 정의해야 한다. 매트릭스의 정의는 SW개발 제품의 품질에 대한 통찰력을 얻기 위해 수행하게 된다.

제품 매트릭스를 위해서는 측정과 매트릭스 그리고 측정인자를 도출해야 한다. 또한 제품 매트릭스의 도출을 위해 여러 가지를 고려하고 추진해야 하지만 SW의 복잡성에 대한 포괄적인 측정이 쉽지만은 않은 상황이다. 측정자의 필요에 따라 해당 도메인과 제품을 평가하기 위한 매트릭스를 고려해야 한다. 제품 매트릭스는 분석 및 설계모델의 평가에 도움이 되고, 디자인과 소스코드에 대한절차의 복잡성에 관한 표식을 제공하며 효과적인 테스트 설계를 용이하게 해줄 수 있다.

요구사항 모델을 위한 매트릭스를 구성하기 위해서는 기능점수(FP)를 도출하여 SW데이터의 흐름을 확인하는 기능점수기반-매트릭스가 필요하다. SW제품에 대한 정량화를 위해 기능점수로 표현한 후 이를 통제하고 점검할 수 있는 기반을 마련하는 것이다. 아울러 품질요구사항에 대한 매트릭스를 추가로 구성하여 이를 고려해야 한다.



현장에 다가가는 SW 공학 - 형상관리

형상관리

오늘날의 SW개발에서 형상관리는 다양한 방식의 접근과 도구의 활용을 통해 이루어진다. 일반적으로 SW형상관리의 범위를 소스코드의 버전관리가 주된 활동들이라고 생각하는 경향이 있다. 소스코드의 버전관리에 대한 메타 태그와 인덱스를 정리하는 활동들이 형상관리라고 생각하고 이행되고있다.

하지만 실제 개발에 사용되는 것들과 표준화적인 요소를 반영하고 있는 CMMI, SPICE, SP인증, ITIL 등 SW공학관점의 형상관리의 기능은 단순한 소스코드 버전관리를 넘어서 변경되는 내용과이슈에 대한 관리, 릴리즈를 포함한 그 이상의 범위를 대상으로 하고 있다. 실질적으로 변경관리가된 것 들을 빌드하고 테스트한 후에 배포까지의 전체 프로세스 수행상황에 대해 정리하고 관리하는것이 바로 형상관리의 목표인 것이다.

형상관리를 공학적으로 어떻게 표현하든 SW개발과 관련된 산출물 및 과정 그리고 기타 활동들은 기록되고 관리되어 지며 검토를 통해 승인되고 저장되어 향후 발생할 수 있는 상황에 대해 대응하고 문제점과 개선점을 도출하여 보다 발전된 형태로 SW개발을 할 수 있는 기반을 마련하는 것이다.

[ ISO/IEC 15504(SPICE)의 Best Practice ]