DevGang
[SE-09] 소프트웨어 품질 보증 본문
1. 소프트웨어 품질과 품질 관리
- 소프트웨어 품질 (Quality)
- 주어진 요구사항을 만족시키는 능력을 갖추고 있는 소프트웨어의 측정 가능한 기능 및 특성을 의미함
- 소프트웨어 품질의 종류
- 설계 품질: 설계자가 한 품목을 위해 규정한 특성
- 일치 품질: 설계 내용들이 개발 과정에서 지켜지는 정도
- 품질 관리 (Quality Control)
- 주어진 요구사항에 맞는 소프트웨어를 개발하기 위해 소프트웨어 개발의 전 과정 동안에 이루어지는 모든 활동과 그 활동의 결과로 생산되는 산출물에 대한 품질을 통제하고 보증하기 위한 작업
- 소프트웨어 품질관리 위원회의 기본적인 목적 : 소프트웨어 품질 향상
2. 소프트웨어 공학에 적용되는 품질 표준(목표) 항목
- 품질 표준(목표)
- 명확하게 정의된 소프트웨어의 특성을 의미함
- 소프트웨어의 품질을 평가하는 기준 항목으로 사용됨
- 분류
구분 | 품질 표준(목표) | 의미 |
소프트웨어 변경 수용 능력 | 유지보수성(Maintainability) | 변경 및 오류 시험의 교정에 대한 노력을 최소화하는 정도 |
유연성(Flexibility) | 소프트웨어를 얼마만큼 쉽게 수정할 수 있는가 하는 정도 | |
시험 역량(Testability) | 의도된 기능을 수행하도록 보장하기 위해 프로그램을 시험할 수 있는 정도 | |
소프트웨어 운영 특성 | 정확성(Correctness) | 사용자의 요구 기능을 충족시키는 정도 |
신뢰성(Reliability) | 정확하고 일관된 결과를 얻기 위해 요구된 기능을 오류 없이 수행하는 정도 옳고 일관된 결과를 얻기 위하여 요구된 기능을 수행할 수 있는 정도 | |
효율성(Efficiency) | 요구되는 기능을 수행하기 위해 필요한 자원의 소요 정도 | |
무결성(Integrity) | 허용되지 않는 사물이나 자료의 변경을 제어하는 정도 | |
사용 용이성(Usability) | 사물에 필요한 노력을 최소화하고 쉽게 사용할 수 있는 정도 | |
소프트웨어 적용 능력 | 이식성(Portability) | 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정될 수 있는 정도 |
재사용성(Reusability) | 전체나 일부 소프트웨어를 다른 목적으로 사용할 수 있는가 하는 정도 과학 계산용 라이브러리와 같이 이미 만들어진 프로그램을 사용하는 것 | |
상호 운용성(Interoperability) | 다른 소프트웨어와 정보를 교환할 수 있는 정도 |
3. 소프트웨어 품질 보증 (SQA, Software Quality Assurance)
- 어떤 항목이나 제품의 설정된 기술적 요구사항과 일치하는가를 적절하게 확인하는데 필요한 체계적이고도 계획적인 유형의 활동
4. 정형 기술 검토 (FTR, Formal Technical Review)
- 가장 일반적인 검토 방법으로 소프트웨어 기술자들에 의해 수행되는 소프트웨어 품질 보증 활동
- 정형 기술 검토 목적
- 사용자 요구사항의 확인
- 기능과 로직의 오류 발견
- 프로젝트 관리의 편리성
- 정형 기술 검토 유형
1) 검토 회의(Walk-through, 워크 스루)
- 소프트웨어 개발의 각 단계에서 개최하는 기술 평가 회의
- 소프트웨어 구성 요소와 같은 작은 단위를 검토하는 것
- 검토를 위한 자료를 사전에 배포하여 검토하도록 함
- 오류 검출에 초점을 두고 해결책은 나중으로 미룸
- 발견된 오류는 문서화함
2) 검열(Inspections)
- 검토 회의를 발전시킨 형태
- 소프트웨어 개발 단계에서 산출된 결과들의 품질을 평가하여 이를 개선시키는 데 사용됨
- 검열팀은 관련 분야에 대해 훈련을 받은 1~4명의 요원으로 구성됨
- 검열자는 검열 항목에 대한 체크 리스트를 이용하여 작업을 수행함
- 기술 검토의 지침사항
- 논쟁과 반박을 제한하라.
- 제품의 검토에 집중하라.
- 참가자의 수를 제한하라.
5. 소프트웨어의 신뢰성과 가용성
- 소프트웨어의 신뢰성은 프로그램이 주어진 환경에서 주어진 시간 동안 오류 없이 작동할 확률을 의미한다.
- 소프트웨어의 신뢰성은 소프트웨어의 품질을 평가하는 다른 품질 표준과는 달리 과거의 자료와 개발상의 자료를 이용하여 측정과 예측이 가능하다.
- 소프트웨어의 신뢰성은 하드웨어 신뢰성 측정의 기본 이론을 근거로 측정한다.
- 소프트웨어의 가용성은 한 프로그램이 주어진 시점에서 요구사항에 따라 운영되는 확률을 의미한다.
6. 신뢰성과 가용성 측정
- 소프트웨어의 간단한 신뢰성 측정은 MTBF를 이용한다.
- MTBF(Mean Time Between Failure)
- 평균 고장 간격으로 수리가 가능한 시스템이 고장 난 후부터 다음 고장이 날 때까지의 평균 시간
- MTTF(Mean Time To Failure)
- 평균 가동 시간으로, 수리 불가능한 시스템의 사용 시점부터 고장이 발생할 때까지의 가동 시간 평균, 고장 평균 시간이라고도 한다.
- MTTR(Mean Time To Repair)
- 평균 수리 시간으로, 시스템에 고장이 발생하여 가동하지 못한 시간들의 평균
* 가용성(신뢰도) 측정
- 시스템의 총 운용 시간 중 정상적으로 가동된 시간의 비율
'정보처리 > SE' 카테고리의 다른 글
[SE-11] 형상 관리 (0) | 2021.02.08 |
---|---|
[SE-10] 위험관리 (0) | 2021.02.08 |
[SE-08] 프로젝트 일정 (0) | 2021.02.08 |
[SE-07] 프로젝트 조직 구성 (0) | 2021.02.08 |
[SE-06] 프로젝트 비용 산정 (0) | 2021.02.08 |
Comments