*** CMM(Capability Maturity Model)
Carnegie Mellon University의 Software engineering Institute에서 제안한
소프트웨어 개발에 있어서 개발 process의 성숙도에 대해서 판달한 수 있도록 만들
모델입니다.
일단 5단계로 개발 process의 성숙도를 판단합니다.
1단계 : Initial
Focus : 능력있는 개발자에 의존
특징 : 임기응변식 대응, 개발 process가 거의 정의되어 있지 않음
2단계 : Repeartable
Focus : Project management processes
특징 : Requirement management(고객 요구 분석)
Software project planning(개발 계획 수립)
Software project tracking and oversight(일정 관리 및 역할 분담 관리)
Sofware subcontract management(서브 개발 계약 관리)
Software quality assurance(소프트에어 품질 관리)
Software configuration management(버전 관리, 개발 변경 사항 관리)
3단계 : Defined
Focus : Engineering processes and organizational support
특징 : Organization process focus(조직의 역량 강화를 위한 절차 및 책임 규명)
Organizaion process definition(장기적인 절차 개선을 위한 개발 자원 관리)
Training program(조직원 훈련)
Integrated software management(조직의 개발 절차 및 자원 표준안 확립 및 관리)
Software product engineering(잘 규정된 엔지니어링 절차 확립 및 사용)
Intergroup coordination(그룹간 의사소통 및 협력 관계 확립)
Peer reviews(오류 제거를 위한 상호 관찰 및 비평 절차 및 방법)
4단계 : Managed
Focus : Product and process quality
특징 : Quantitative process management(정량적인 process의 성능 확인 및 개선)
Software quality management(제품의 품질 기준 확립 및 정량적인 측정 및 개선)
5단계 : Optimizing
Focus : Continual process improvement
특징 : Defect prevention(오류의 원인 분석 및 제거)
Technology change management(신기술 분석 및 도입, 적용)
Process change management(개발 절차의 계속적인 개선 및 생산성 향상)
Extreme Programming(XP)의 특징
XP는 기본적으로 나선형 개발 모델을 따릅니다.
즉 점진적인 성능 향상을 전제로 합니다.
Planning game : 우선 순위에 따른 차기 목표 수립
Small release : 짧은 시간 내에 신버전 release(2주-1달)
Metaphor : Guide all development with a simple, shared story of how the overall system works.
Simple design : 주어진 때에 가능한 한 간단하게 설계한다
Testing : Unit test를 먼저 한다. 그리고, 그 모듈을 이용해서 개발
Refactoring : 동작 방식의 변경 없이 중복되는 부분 제거, 정보 전달 개선, 간략화 및 융통성 부여
Pair programming : 모든 프로그램 코드는 한 기계에서 두명의 프로그래머가 담당
Collective ownership : 누구든지 어느 때, 어느 곳에서나 코드를 개선시킬 수 있다.
Continuous integration : integrate and build the system many times a day
40-hour weeks(sustainable pace) : 주당 40시간 이상의 작업을 피한다. 프로젝트를 지속할 수 있는 속도 유지
On-site customer : 고객(개발 요구자)가 항상 함께 하면서 작업 진행
Coding standards : 소스 코드 작성에 있어서 표준 룰 설정
XP의 경우에는 일반적인 프로젝트에서 초기 문서화 작업(요구사항 분석, 디자인 등등)에 있어서
시간이 많이 걸리는 부분과 절차를 간소화시키는 방법론입니다.
그래서 XP의 경우에는 작은 개발팀에서 주로 사용을 합니다.
위의 내용은
Software Engineering - A Practitioner's approach, Roger S. Pressman, 5판
IEEE Software manazine, 2001년 11-12월호
를 참고하여서 정리했습니다.
|