-
소프트웨어 품질 관리Topcit/소프트웨어 개발 2018. 6. 11. 23:05
- 소프트웨어 품질 관리
- 소프트웨어 품질관리의 정의
- 어플리케이션 생명 주기 동안에 이루어지는 모든 활동 결과로 작성되는 산출물에 대한 품질을 통제, 보증하기 위한 활동
- 구성
- 소프트웨어 품질 보증
- 소프트웨어 품질 통제
- 소프트웨어의 품질 목표, 정책, 책임, 역할을 결정
- 품질관리 목적
- 기술 평가
- 적합한 추정 기준, 소프트웨어 품질 예측
- 자원 평가
- 적절한 자원, 비용 산정
- 프로세스 평가
- 어플리케이션 생명 주기 프로세스 통제
- 제품 확인
- 검수 시험, 산출물 확인, 타 제품과의 비교
- 소프트웨어 품질 요소
- 운용
- 정확성, 신뢰성, 효율성, 확장성, 사용 용이성, 무결성, 유지보수성
- 수정
- 유지보수성, 이식성
- 적응
- 시험성, 재사용성, 상호 운영성, 유지성
- 소프트웨어 품질 관점
- 사용자 관점
- 소프트웨어의 사용, 성능, 사용 효과에 관심을 가짐
- 소프트웨어의 내부적인 면, 어떻게 개발되었는지 모르고 소프트웨어를 평가
- 개발자 관점
- 중간 제품 품질에도 관심을 가짐
- 개발 주기 각 단계에서의 품질 평가를 위해 단계마다 다른 척도를 사용
- 소프트웨어를 유지보수 하는 사람들이 필요로 하는 품질특성의 관점 포함
- 관리자 관점
- 전반적인 품질에 관심을 가짐
- 각 특성에 사업상 요구를 반영하는 가중치 부여 필요
- 관리 기준과 품질 향상을 조화시킬 필요가 있음
- 소프트웨어 품질 특성 및 주요 소프트웨어 품질 모델
- 소프트웨어 품질 특성
- 기능성
- 명시된 요구와 묵시된 요구를 만족하는 기능을 제공하는 소프트웨어 제품 능력
- 부특성 : 적합성, 정확성, 상호 호환성, 유연성, 보안성
- 신뢰성
- 규정된 조건에 사용될 때 규정된 성능 수준을 유지할 수 있는 능력
- 사용자가 오류를 방지할 수 있도록 하는 SW 제품의 능력
- 부특성 : 성숙성, 오류 허용성, 회복성
- 사용성
- 사용자에 의해 쉽게 이해되고 학습되며, 선호 할 수 있게 하는 SW 제품의 능력
- 부특성 : 이해성, 운용성, 습득성
- 효율성
- 투입된 자원에 대하여 제공되는 성능의 정도
- 요구되는 기능을 수행 하기 위해 필요한 자원의 소요 정도
- 부특성 : 실행 효율성, 자원 효율성
- 유지보수성
- 운영 환경, 요구 사항, 기능적 사양에 따른 SW의 수정, 개선 등 변경될 수 있는 능력
- 부특성 : 해석성, 안정성. 변경 용이성. 시험성
- 이식성
- SW가 다른 HW, SW등의 환경으로 옮겨질 수 있는 능력
- 다른 환경으로 이전되는 SW능력의 정도
- 부특성 : 적응성, 일치성, 이식 작업성, 치환성
- 주요 소프트웨어 품질 모델
- 대표적인 소프트웨어 품질 모델
-
구분
제품 관점
프로세스 관점
특징
제품 측정, 제품 검증, 제품 확인
소프트웨어 프로세스 향상과 심사
방법
기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성 평가
프로세스 준수 여부 평가
표준 및 모델
ISO/IEC9126, 14598, 12119, 25000SQuaRE
ISO 9000, ISO/IEC 12207, SPICE, CMM, CMMI
장점
모든 종류의 소프트웨어에 적용
전문적 판단의 객관화
많은 종류의 제품에 적용
검사 기간이 짧고 인증 비용이 절감됨
단점
전수 시험의 비용 및 시간 소모
최신 소프트웨어 평가가 어려움
상대적으로 품질을 보증 못함
혁신적 소프트웨어에 적용 곤란
- 소프트웨어 품질 측정 방법
- 정의
- 소프트웨어 측정 : 소프트웨어의 코드, 개발 프로세스를 수치화하여 정량적으로 나타낸 방법
- 방법
- 직접 측정
- 하나의 묶음으로 소프트웨어의 크기를 측정하는 방법
- 비용, 일정, 공수, LOC, 메모리 크기, 에러 등을 측정
- 간접 측정
- 직접 측정 값을 계산해 소프트웨어의 품질을 측정하는 방법
- 기능, 품질, 복잡도, 신뢰도, 유지보수성, 효율성 등을 측정
- 소프트웨어 측정 종류
- 품질 척도 : 사용자 요구사항에 대한 소프트웨어의 품질 척도를 명시적, 묵시적 표시
- 생산성 척도 : 소프트웨어 엔지니어링 절차에 대한 출력에 초점을 둔다.
- 기술적 척도 : 논리적 복잡도, 모듈화 정도 등 소프트웨어의 특성에 초점을 둔다.
- 크기 중심 척도 : 소프트웨어 엔지니어링 절차에 따른 산출물 크기를 직접 측정하여 수집한다.
- 인간 중심 척도 : 개발자의 태도, 툴, 방법의 효율성에 대한 정보 수집
- 기능 중심 척도 : 간접 측정에 의한 정보
- 소프트웨어 품질 관리
- 소프트웨어 품질 관리
- 소프트웨어 품질 관리 구분과 주요 활동
- 품질 계획
- 실행할 품질의 표준을 식별하고, 실행 방법을 결정
- 활동
- 품질 시스템 요구사항 파악
- 품질 보증 절차 파악
- 품질 통제 절차 파악
- 운영 절차 정의
- 품질 관리 체크리스트 작성
- 품질 관리 계획 작성
- 품질 보증
- 소프트웨어 제품과 요구사항의 일치 여부를 제3자의 입장에서 수행
- 활동
- 프로젝트 산출물 검토
- 품질 사고 예방조치 강구
- 프로젝트 정차 검토
- 품질 통제
- 소프트웨어 생명 주기에서 자체적으로 품질 활동을 수행하는 것
- 활동
- 품질 경과 모니터링
- 계획된 품질 수준과 차이 분석
- 필요시 수정 계획 수립
- 수정 활동의 문서화, 계획의 최신 상태 유지
- 소프트웨어 품질 보증 활동
- 정의
- 특정 소프트웨어가 이미 정의된 요구사항과 일치하는지를 확인하는 작업
- 소프트웨어의 특성, 요구사항을 파악하여 품질 목표를 설정, 품질 목표의 달성 여부 확인, 디버깅, 테스팅
- 장점
- 사용자 요구사항 최대 만족을 통한 생산성 향상
- 개발 과정에서 품질문제점 조기 발견, 제거
- 납기 준수, 제품의 견고성, 제품의 확장성
- 비용 노력 절감, 생산성 향상, 재사용성 증가
- 소프트웨어 품질 보증 기법
- 공식 기술 검토
- 소프트웨어 품질 보증의 대표적인 기법
- 개발자들에 의해 수행되는 소프트웨어 품질 보증 활동
- 유형
- 워크스루
- 소프트웨어 개발 각 단계에서 수행 가능한 기술 평가 회의
- 소프트웨어의 모듈, 소스코드 등의 작은 단위를 검토
- 결함의 조기 검출을 목적으로 하며, 발견된 결함은 문서화한다.
- 인스펙션
- 검토회의를 보다 공식화, 정형화 시킨 형태
- 소프트웨어 개발 단계의 산출물의 품질을 검토
- 소프트웨어 품질 보증 절차 및 활동
- 수행 절차를 정의하여 체계적으로 수행하는 것이 필요
- 소프트웨어 생명 주기 전반에 걸쳐 체계적으로 수행되어야 함
- 소프트웨어 품질 활동 종류
- 검증
- 소프트웨어 분석, 설계의 각 과정이 올바른지 검사
- 소스 코드에 결함이 있지 않은가 검사
- 확인
- 요구 정의, 분석이 잘 되었는지 검사
- 인증
- 소프트웨어의 품질을 공식적으로 확인하는 활동
- 소프트웨어 테스트
- 결함을 발견하기 위하여 프로그램을 수행시키는 활동
- 결함 수정
- 발견된 결함의 원인을 정확히 진단하고 수정하는 활동
- 품질 실사
- 프로젝트 품질 실사를 통해 프로젝트의 표준 프로세스, 요구사항 정의서, 프로젝트 계획서 등에 대한 적합성을 평가.
- 표준, 계획과의 불일치점을 관찰하고 필요 시 시정조치를 요구
- 소프트웨어 품질 통제, 평가 활동
- 소프트웨어 품질 통제
- 소프트웨어의 개발, 운영, 유지보수 과정에서 기대하는 소프트웨어의 품질 수준을 유지하기 위해서 반드시 필요한 기본 프로세스
- 소프트웨어 개발 조직, 운영 조직, 유지보수 조직 내에서 자체적으로 수행
- 소프트웨어 품질 보증
- 관련 이해당사자에게 소프트웨어의 신뢰성을 보장해주기 위해 품질 통제 프로세스를 지원해 주는 프로세스
- 객관적인 입장을 가진 제3자가 수행
'Topcit > 소프트웨어 개발' 카테고리의 다른 글
모바일 컴퓨팅 (0) 2018.06.11 애자일 개발 (0) 2018.06.11 소프트웨어 형상 관리 (0) 2018.06.11 소프트웨어의 요구사항 관리 (0) 2018.06.11 소프트웨어 유지보수, 역공학, 재공학 (0) 2018.06.11
댓글