[소프트웨어 공학] 4강. 프로젝트 품질, 위험, 형상관리
프로젝트 품질, 위험, 형상관리
프로젝트 품질관리
품질관리란?
프로젝트의 최종 목적물이 요구수준의 맞는 품질이 나올 수 있도록
프로젝트 수행과정 전반에 걸쳐 어떠한 계획을 가지고 실행하는지 통제하는
전반적 관리 활동
프로젝트 목적물의 품질
- 프로젝트의 진행과정에서 보장되어야 함.
- 품질관리에 대하여 계획하고 그 계획에 맞도록 품질관리 활동이 실행됨.
- 일정, 품질, 수준이 유지되도록 통제하여야 함.
품질관리의 과정
-
계획을 수립하는 과정
- 사용자의 요구사항을 파악하여 최종목적물이 이에 맞도록 하기 위함이다.
- 처음 요구사항과 최종 목적물의 기능과 차이가 없음을 요청자와
개발자가 어떻게 합의할 것인지에 대한 품질 보증절차를 작성함 - 품질을 유지하도록 각 프로젝트 과정 중 어떻게 통제할 것인지 절차를 작성함.
- 어떤 품질검사조직을 두고 어떻게 운영할 것인지 절차를 정의함.
-
계획을 실행하는 과정
- 프로젝트 산출물을 검토하여 계획대로 진행되는지 살핌.
- 품질이 떨어질 수 있는 사항을 사전에 예방 조치를 함.
- 프로젝트 절차를 수시로 점검함.
- 고객에게 수시로 산출물에 대하여 검토를 요청하고 피드백을 요구함.
-
품질수준을 유지하도록 통제하는 과정
- 품질결과를 모니터링 함
- 수시로 계획된 품질 수준과의 차이를 분석함
- 필요하면 수정계획을 수립하고 수정활동의 대하여 항상 문서화함
(계획은 항상 최신 상태를 유지하여야 함)
소프트웨어 운영
- 정확성 (Correctness) : 사용자의 요구 정도를 충족 시키는 정도
- 신뢰성 (Reliability) : 옳고 일관된 결과를 얻기 위해 요구된 기능을 수행할 수 있는 정도
(사용자, 발주자, 유지보수자가 공통으로 관심을 보이는 항목) - 사용용이성 (Usability) : 쉽게 사용할 수 있는 정도
- 유용성 (Utility) : 사용자의 요구에 맞는 소프트웨어인가를 평가하는 척도
- 무결성 (Integriry) : 허용되지 않는 사용이나 자료의 변경을 허용하지 않는 정도
- 효율성 (Efficiency) : 최소의 시간과 기억용량을 소비하여 요구되는 기능을 수행할 수 있는 정도
소프트웨어 개조
- 유지보수성 (Maintainability) : 오류가 발견되었을 때 쉽게 교정되는 정도
- 유연성 (Flexibility) : 기능의 추가나 다른 환경에서 적응하기 위해 쉽게 수정될 수 있는 정도
- 검사용이성 (Testability) : 쉽고 철저하게 시험될 수 있는 정도
소프트웨어 전이
- 이식성 (Portability) : 여러 환경에서도 운용 가능하도록 쉽게 수정될 수 있는 정도
- 재사용성 (Reusability) : 전체나 일부가 다른 응용목적으로 사용될 수 있는 정도
- 상호운영성 (Interoperability) : 다른 소프트웨어와 정보를 교환 할 수 있는 정도
- 강건성 (Robustness) : 부적절한 입력 등에도 견뎌내는 정도,
요구 명세서에 표시되진 않은 상호아에서도 소프트웨어가 제대로 동작하는 성질
정형기술 검토 (Formal Technical Review)
- 소프트웨어 품질을 보증하기 위한 가장 일반적 활동
- 기능과 로직의 오류 발견 및 사용자요구사항 확인 등을 함.
- 검토 방법: 검토회의(Workthrough)와 심사(Inspection)
정형기술 검토 지침 사항
- 의제의 제한성, 논쟁과 반박의 제한성
- 제품 검토의 집중성, 참가인원의 제한성
- 검토자료의 사전 준비성
정형기술 검토회의 (Workthrough)
- 소프트웨어 품질을 검토하기 위한 기술적 검토회의
- 제품 개발자가 주최함
- 발견된 오류는 문서화 함.
- 오류 검출에 초점을 두고 해결책은 추후 진행함.
- 검토를 위한 자료를 사전에 배포하여 검토함.
- 목적 : 오류의 조기 검출
정형기술 심사 (Inspection)
- 검토회의를 발전시킨 형태로 공식 기술 검토전이나 테스트를 수행하기 전에
설계문서나 코드를 작성자가 아닌 전문가나 동료가 오류를 찾아내는 조직화되고
형식을 갖춘 검토방식 - 검열자는 심사항목에 대한 체크리스트를 이용하여 검열 작업을 수행함.
프로젝트 위험관리
-
프로젝트를 수행하는데 있어서 나타나거나, 나타날 것이라 생각되는 위험들을
예측하고 이를 제거하거나 수용가능한 수준으로 낮추는 작업을 하는 작업 - 총 위험 = 위협 * 취약성 * 자산의 가치
- 총 위험
- 위협, 취약성, 자산의 가치의 곱으로 평가될 수 있음
- 결국 위협이나, 취약성, 자산의 위험이 하나가 증가하더라도 전체 위험의 곱으로 나타남을 알 수 있음
위험관리의 목표
- 범위, 품질, 시간, 원가 등의 측면에서 프로젝트 목표에 영향을 주는 요소들을 구체적으로 미리 생각해보고 판단함.
- 각 요소들에 대하여 가능한 영향을 수치나 도표화함.
- 각 위험요소를 나열한 다음, 그 중 각 위험마다 어느 정도 수준에 도달하였을 때 프로젝트가 실패되는지 수치화함.
- 그 시점은 결국 위험 기준선(Baseline)임.
- 기준선 이하로 위험이 발생하도록 여러 활동을 통해 위험의 영향을(Impact) 완화함.
- 프로젝트 수행 중 발생하는 위험요소를 상시 모니터링을 통하여 사전에 감지하고 제거함.
- 프로젝트의 정상적인 수행을 보장하기 위한 사전활동 즉, 선제 방어 조치를 취함.
- 위험요소를 관리 / 제거를 통하여 프로젝트의 성공적 수행의 기반 구축
- 위험관리는 프로젝트 통제보다는 상위개념으로 우선 순위를 높은 활동으로 보고 가장 먼저 수행함.
위험관리 사례
위험요소 | 위험에 대한 대응 조치 (위험 관리) |
---|---|
인력 부족 | 유능한 인력을 모집 또는 사전에 확보, 긴급팀 구성, 교육 수행 |
비현실적 예산/일정 | 더 세부적인 비용을 측정, 일정을 보다 정확히 예측, 원가를 세밀히 분석 |
잘못된 소프트웨어 개발 | 사용자 회람, 프로토타이핑 사용, 사용자 지침서 조기 작성, 조직분석, 직능분석 |
잘못된 사용자 조작환경(UI) 개발 | 포로토파이핑, 시나리오 작성, 태스크 분석, 사용자 분류 (기능,스타일, 업무) |
계속적인 요구 변경 | 최대 변경 상한선, 점증적 개발, 다음 버전까지 변경 연기 |
기술적 취약 | 기술요소를 다시 분석, 프로토타이핑 등 |
위험관리 절차
-
위험식별
- 알려지거나 예측 가능한 프로젝트, 제품, 비즈니스의 위험을 식별, 위험점검목록을 작성함
-
위험분석 및 평가
- 프로젝트에 내재된 위험의 발생가능성과 영향을 평가하는 단계
- 위험 추산을 위해 위험표(Risk Table)를 작성함.
-
위험관리 계획
- 위험발생시 해당 위험에 대비하는 비상계획을 마련하는 단계
- 회피전략 / 최소화 전략
- 비상계획 : 최악의 경우에 대비하여 행동계획을 마련
- 위험발생시 해당 위험에 대비하는 비상계획을 마련하는 단계
-
위험 감시
- 위험이 생길 가능성이 있는지, 위험의 결과를 변하는 지를 결정하기 위하여
식별된 각 위험에 대해 정기적으로 평가함 - 위험을 계속해서 감시하여 위험에 대한 정보가 점점 더 많이 이용 가능해짐에 따라
위험이동에 대한 계획을 수정함
- 위험이 생길 가능성이 있는지, 위험의 결과를 변하는 지를 결정하기 위하여
프로젝트 형상관리
형상관리란?
-
개발과정에 변화되어 가는 소프트웨어의 각종 산출물들을 체계적으로
관리 소프트웨어에 가시성과 추적가능성을 부여하여 소프트웨어 관리를 강화하고
품질보증을 도모하기 위한 관리기법 -
프로젝트 진행 전반에 있어서 그때 그때 달성될 목표에 대하여 변동 없이 달성하고자 하는 관리 기법
형상관리의 목적
- 소프트웨어 변겨응로 인한 사용자의 충격 및 전체비용의 최소화
- 소프트웨어 공학 과정상의 생산물 확인, 통계, 변경 상태 등 기록
- 생산성 극대화, 변경용이성 향상, 노력 감소
형상관리의 항목
- 소프트웨어 개발 중 작성되는 문서 및 산출물은 형상관리의 대상
- 형상 항목
- 시스템 명세서
- 원시코드 목록
- 프로젝트 계획서
- 사용자 매뉴얼
- 설계 명세서
- 변경 요청서
형상관리의 기준점
- 프로젝트, 소프트웨어 개발 등 처리절차 진행 중 형상 마감이 이루어지는 기준점이 필요함.
- 소프트웨어 개발 생명주기 모델에서 각 단계 종료시점은 하나의 기준점으로 판단하여 형상관리를 하여야 함.
형상관리 기능
loop([형상식별] => [변경관리] => [형상감사] => [형상기록])
형상식별
- 형상관리를 하여야 할 대상들을 구분하고, 관리 목록을 작성하는 과정
- 형상식별 기능의 목표
- 문서 구조를 명료하고 예측 가능한 모습으로 정의하는 것
- 정보 기록에 의해 추적 및 관리를 용이하게 함
- 형상식별 내용 (제품 / 각종 문서 / 형상 항목 번호)
형상통제 (변경관리)
- 소프트웨어 형상 변경 제안을 검토하고 승인 또는 거절하여서 현재 개발 기능 기준을 재 변경하거나 하는 업무
- 변경 요구 관리 / 변경 제어 / 형상 관리 조직의 운영 및 개발업체, 외주업체에 대한 형상 통제 및 지원
형상감사
- 소프트웨어 기능 기준점에 대하여 문제가 없는지 평가하는 수단
- 성공적인 형상감사는 소프트웨어 기준선을 성공적으로 설정함.
- 검증(Verification), 확인(Validation)
형상기록
- 소프트웨어 형상 및 변경 관리에 대한 각종 수행 결과를 기록하고,
데이터베이스에 의한 관리를 하며, 보고서를 작성하는 작업