2016년 1월 29일 금요일

PRINCE2 모델

PRINCE2 모델은 영국정부(OGC: Office of Government Commerce)에 의해 개발되어 전 세계적으로 사용되고 있는 관리방법론으로 주로 IT분야에서 많이 이용된다. PRINCE2는 다양한 산업계와 기초 환경으로부터 가장 잘 입증된 경험들을 활용하며 문서들에는 항상 템플릿이 제공되고, 명확한 의시결정시기가 있는 것이 특징이다.

PRINCE2는 프로세스 기반의 접근방법을 이용하여 각 프로세스들이 프로젝트 수행동안에 수행되어지는 관리활동을 정의하고 있다. 프로세스는 Starting up a Project(SU), Directing a Project(DP), Initiating a Project(IP), Managing Stage Boundaries(SB), Controlling a Stage(CS), Managing Product Delivery(MP), Closing a Project(CP), Planning(PL)로 구성된다.


프로세스와 별도로 Business Case, Organization Plans, Controls, Management of Risk, Quality, Configuration Management, Change Control이 구성되어 있다. 이들은 프로젝트 관리에 영향을 미치게 되며 이슈를 언제 어떻게 등록하는지에 대한 가이드를 제공하고 있다.

< PRINCE2모델 프레임워크 >
자료 : http://commons.wikimedia.org/wiki/File:PRINCE2_Process_Model

SPICE(Software Process Improvement and Capability dEtermination, ISO15504) 모델

SPICE(Software Process Improvement and Capability dEtermination, ISO15504) 모델은 여러 프로세스 개선모형을 국제표준으로 통합한 ISO(International Standardization Organization)의 SW프로세스 모델이다.

SW 프로세스에 대한 개선 및 능력 측정 기준이기도 하다. 기존 ISO9000-3이 SW분야 특성 및 프로세스적인 명을 개선하지 못해 등장했으며 기존 What만 있고 How가 없는 12207의 단점을 해결하고자 개발되었다.

SPICE는 SW프로세스 전반을 심사하여 조직의 SW개발 프로세스를 개선하고 개발자의 개발능력을 향상시킴으로서 개발위험을 통제하기 위한 목적으로 ISO에서 추진하는 SW품질 표준화심사평가 모형으로 SW프로세스 전반을 심사하고 그 결과에 따른 조직의 프로세스를 개선해 나가는 활동에 대한 표준화 방법이다.

< SPICE모델 단계 및 프레임워크 >
자료 : ISO15504(SPICE : Software Process Improvement Capability Determination)


자료 : http://www.itib.net

CMMI(Capability Maturity Model Integration)

CMMI(Capability Maturity Model Integration)란 미국방성의 요청에 의해 카네기멜론 대학의 SW공학연구소가 개발한 성숙도 평가모델을 기준으로 여러 CMM모델을 포함한 통합모델이다. 국제적 권위를 가진 인증을 통해 회사의 프로세스 및 제품에 대한 신뢰성을 보장하고 CMMI 심사를 통해 부족한 프로세스에 대해 외부검토를 수행하고 개선사항을 도출할 수 있는 모델이다.

< CMMI모델 프레임워크 >
자료 : http://www.dthomas.co.uk


주. Management = Mgt. 자료 : http://www.infotechconsulting.se

2016년 1월 28일 목요일

SW프로세스개선 컨설팅 모델

SW프로세스 개선을 위한 컨설팅 모델은 주로 CMMI, SPICE, PRINCE2 등이 있다. 또한 SP인증모델을 기준으로 프로세스 컨설팅을 추진하기도 한다. SW프로세스 개선 컨설팅을 받는 이유는 해당조직이 보다 이상적인 모습으로 발전하고 보다 안정적인 조직운영과 성공적인 SW개발을 하기 위해서이기 때문이다.

국내에서 가장 활발히 컨설팅을 추진하는 모델은 CMMI로 대기업을 중심으로 컨설팅이 추진·운영되고 있다. SW개발에 있어서 여타의 컨설팅보다도 가장 효율적이고 효과적인 컨설팅은 바로 프로세스 개선 컨설팅이다. SW와 관련된 컨설팅 중 현장에서 선호하는 분야는 테스트, 아키텍쳐, 도구도입 등 직접지원 컨설팅으로 컨설팅 중 또는 직후 단기적인 효과를 누릴 수 있지만 장기적으로 전사적 내재화가 발생하기에는 어려움이 많다. 컨설턴트가 빠지고 나면 경우에 따라 원래 상태로 회복되기도 한다.

SW프로세스개선 컨설팅의 경우 도입 시 많은 이슈와 충돌이 발생하기도 하지만 장기적 이행관점에서 봤을 때 해당 조직의 발전가능성이 가장 높다. 또한, 주먹구구식 개발을 하던 SW기업들이 논리적이고 구조적인 프로세스를 통해 보다 체계적인 개발을 할 수 있게 만들어 주어 조직의 안정성과 발전 가능성을 확보할 수 있는 기반이 되는 것이다. SW프로세스와 관련된 모델들은 다양하지만 다른 모델 또는 표준간의 관계를 통해 유기적으로 연관관계를 맺고 있으며 다양하게 확장되고 있다.

< SW프로세스 표준간 관계도 >

자료 : Adapted from[S.A. Sheard, Evolution of the Frameworks Quagmire. IEEE (Computer, July 2001)


프로젝트 관점에서의 프로세스 컨설팅은 프로젝트를 진행할 때 필요한 방법론을 정의하고 그에 따른 WBS를 작성하고 관리하게 된다. 또한 방법론에서 정의한 각 단계(요구사항, 분석, 설계, 구현, 시험, 배포)에 대한 가이드라인을 제공하고 작성된 산출물에 대해 리뷰와 인스펙션을 주관하며 개발자와 관리자간의 조화로운 커뮤니케이션을 할 수 있도록 지원하기도 한다. 프로젝트의 이해당사자들이 합리적으로 일할 수 있는 기반을 제공하는 것이 바로 프로젝트 관점에서의 프로세스 컨설팅이다.

Sonarqube 가이드

소나큐브(Sonarqube)는 코드품질 검사를 위한 공개 소프트웨어 플랫폼이다.
  • JAVA , C/C++ , Objective-C , C# , PHP , COBOL 등을 지원한다 (일부 언어는 상업용).
  • 중복코드 , 코딩 스탠다드 , 유닛테스트 , 코드 커버리지, 코드 복잡도, 잠재적 버그, 주석, 설계, 아키텍처에 대한 보고서를 생성한다.
  • 수치 통계를 저장하고 그래프를 제공한다.



Jenkins 가이드

젠킨스 (Jenkins)는 지속 빌드 및 배포 공개 소프트웨어 시스템이다. 소프트웨어 프로젝트를 지속적으 로 빌드 및 테스트 하도록 해주는 자동화 도구이며, 배포에 필요한 프로세스를 통합하여 제공한다.


  • 빌드 프로젝트의 구성, 관리
  • 프로젝트의 구축, 테스트, 배포 및 자동화를 지원하는 다양한 플러그인과 연동 제공
  • Linux , Windows OS 지원
  • war 파일로 간단하게 배포 및 간편한 Web GUI 제공

Jenkins 가이드를 목차를 확인하고 관련 자료를 다운받을 수 있다.
  1. 설치
  2. 기본 설정
  3. 플러그인 설정: gcov , cppcheck , xUnit, NSIQ , Sonarqube

2016년 1월 27일 수요일

SW 테스트 전략

품질은 결코 우연으로 얻어질 수 있는 결과가 아니다. 많은 노력과 공수, 지식의 축적과 스킬들의 집합체다. 높은 품질은 표준과 SW 프로세스, 철학과 의지의 결과물이기도 하다. 지속되는 개발은 소스코드 분석과 위험 기반의 테스트, 커버리지 측정에 따른 자동화 모듈, 통합테스트를 통해 얻게 된다.

애자일 등 오늘날의 SW개발은 점점 더 방법론 기반의 개발에 의존하고 있는 상황이다. 결과물은 품질보증의 새로운 도전에서 비롯된다. 고품질 제품은 역동적인 목표의 정의와 짧은 개발 사이클을 통해 만들어 지고 지속적인 테스트와 고객의 피드백을 통해 성공의 포인트를 확인할 수 있다.

애자일 방법론의 경우 테스트 가능한 SW는 단계이전에 반드시 수행도록 권고하고 있다. 이러한 지원을 통해 좀 더 낳은 통합 테스트를 프로세스 단계에 포함시킬 수 있게 되는 것이다. 납기가 충분하지 않을 경우 고객의 요구사항을 만족시키기 위해 고객과의 피드백 프로세스와 팀 능력을 통해 이를 해결하기도 한다.


< SW Quality 5seps to excellence >
자료 : Quality is never an Accident, ’13. 3


테스트 전략은 단기 및 장기 테스트 요구사항 및 비즈니스 위험을 프로파일링 하고 개발자와 리소스 등의 환경 요소와 조직적 요구를 포함하는 테스트 전략을 개발하고 다양한 관점에서 평가할 수 있도록 수립해야 한다.

< SW테스트 관점별 전략 개발 요소 >


웹기반 테스트 전략은 일반적으로 코드인스펙션, 유닛 테스트, 통합테스트, 시스템 테스트 등이 수행되며 각각의 테스트 기법들은 설계, 코딩, 품질보증, 제품의 관점에서 시행된다.

< 단계별 결함 해결 비용 >


애자일 테스트 전략의 경우 애자일 방법론과 프로젝트에서 주어진 다양한 상황에 맞추어 테스트를 추진해야 한다.

< 애자일 생명주기에서의 테스팅 전략 >


자료 : Scott W. Ambler, 2006-2009


< 애자일 결함관리 프로세스 >

자료 : Scott W. Ambler, 2006-2009


< 애자일 개발과정에서 테스트 비용과의 관계 >
자료 : Scott W. Ambler, 2006-2009