2016년 2월 3일 수요일

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 >

< CMMI의 Support Area>

< SP인증에서의 형상관리 >

다양한 표준들에서 형상관리항목을 중요하게 생각하고 형상관리를 잘 이행할 수 있도록 또는 점검할 수 있도록 관련 프로세스와 활동들을 정의하고 있으나 이러한 표준들은 현장에서 발생하는 활동들을 관점에 따라 다시 정리한 것으로 이미 현장에서 형상관리를 잘하고 있는 조직은 발전의 기회로 삼으면 될 것이다.

하지만 그렇지 않은 조직이라면 기 검증된 SP인증, CMMI, SPICE 등 표준들을 기반으로 전사적인 형상관리 체계를 구축하고 이행을 위한 기반을 마련하는 것도 하나의 방법일수 있다.

< 현장에서 생각하는 형상관리 범주 >


형상항목을 식별하여 체계적으로 형상의 변경을 통제하고 프로젝트 생명주기 전방에 형상의 추적성과 통합성을 유지하는 것은 매우 중요하다. 형상관리의 영역은 버전관리, 변경관리, 빌드관리, 릴리즈 관리, 워크스페이스관리를 모두 포함한다.

형상관리를 통해 산출물의 무결성을 확보하여 유지하고 불필요한 변경요청을 제어할 수 있고 모든 산출물을 프로젝트 팀원이 공유함으로써 커뮤니케이션이 원활해진다. 또한 객관적인 자료와 정보들을 통해 정량적인 진척관리가 가능해 지는 것이다.