3 분 소요

1. 품질의 이해와 요소

SW 품질의 정의와 목표

소프트웨어 품질의 다양한 측면을 이해하고, 품질 향상을 위한 전략을 학습합니다.

품질과 소프트웨어 품질

품질

•물건이 얼마나 좋은지, 나쁜지를 나타내는 정도 •품질은 모든 제품에서 가장 중요한 요소이며, 소프트웨어 제품도 예외는 아님

하드웨어 품질

•사용자의 요구 사항을 규격서에 서술하고, 이 규격서대로 만들면 큰 문제가 없다. •만든 제품이 규격서대로 작동하는지 테스트하는 것도 비교적 용이 •개발된 제품이 규격서대로 만들어지면 사용자가 만족할 만한, 품질이 좋은 하드웨어

소프트웨어 품질

•소프트웨어는 하드웨어의 규격서에 해당하는 사용자 요구분석명세서가 있음 •하드웨어의 규격서보다 소프트웨어의 요구분석명세서를 작성하는 것이 훨씬 어려움

(HW) 규격서 < (SW) 요구분석명세서

•품질 좋은 소프트웨어: 프로그램에 결함이 없고 사용자의 요구를 정의한 요구분석명세서대로 만든 소프트웨어

McCall / Garvin / Boehm

품질 평가 표준 모델

소프트웨어 제품 품질 특성 평가

  • 완성된 제품에 대한 평가
  • McCall, Boehm, Deutsch & Willis, IEEE 등에서 연구
  • ISO/IEC 9126 에서 제시하는 모델이 소프트웨어 품질에 대한 표준적인 모델

프로세스 품질 특성 평가

  • 소프트웨어 제품의 개발 프로세스를 평가
  • 소프트웨어 개발 과정의 각 단계마다 평가

2. 품질 평가 모델

ISO/IEC 14598 모델

ISO/IEC 14598의 특성 (다른 평가자 동일 기준, 동일 결과)

•반복성: 특정 제품을 동일한 평가자(기관)가 동일 기준을 적용해 평가했을 때 동일한 결과가 나와야 함 •재생산성: 특정 제품을 다른 평가자(기관)가 동일 기준을 적용해 평가했을 때 동일한 결과가 나와야 함 •공정성: 평가가 특정한 결과를 내기 위해 불공정한 편견이 없어야 함 •객관성: 평가는 주관적 판단을 최소화하고 객관적 자료를 근거로 해야 함 •ISO/IEC 9126 표준 준수: ISO/IEC 9126에 규정한 표준을 준수 •규정하지 않는 내용: 품질 평가의 측정 기술, 측정 결과의 해석 방법 등은 규정하고 있지 않음

sw_11_1

3. 프로세스 능력 특성 평가 모델

CMMI 의 개념과 특징

능력 성숙도 모델 통합에 대해 학습하고, 소프트웨어 프로세스 개선에 필요한 지식을 습득합니다.

표준 프로세스의 필요성

•표준 프로세스 •소프트웨어 개발에서 레시피, 하나의 매뉴얼, 내비게이션과 같은 역할 •조직원들이 우왕좌왕 해매는 시간을 줄여주고 생산성을 높임 •기준과 목표, 방향을 제시해주기 때문에 업무 처리 프로세스가 명확하고 계획적이며 결과를 충분히 예측할 수 있음

CMMI

CMMI(Capability Maturity Model Integration) •조직의 프로세스 개선을 위해 개발 •기업에 표준 프로세스를 만들 수 있는 지침을 제시하고, 그 기준을 제시

  • 능력 성숙도 통합 모델

CMMI 모델의 특징

•프로세스 표준화의 기준과 방향을 제시하므로 조직 프로세스에 대한 측정 뿐 아니라 평가 지표로도 활용할 수 있음 •능력을 평가하거나 성숙도를 평가할 수 있음 •C(능력), M(성숙도), M(모델), I(통합) 의 의미

Capability(능력)

•능력: 개발 목표(주어진 기간, 정해진 비용, 고품질 등)를 달성할 수 있는 힘 •능력이 없는 조직은 개발 목표를 달성하지 못함

Maturity(성숙도)

•성숙(사전적 의미): ‘생물의 발육이 완전히 이루어짐’, ‘몸과 마음이 자라서 어른스럽게 됨’, ‘경험이나 습관을 쌓아 익숙해짐 •성숙도가 높은 조직은 책임감이 있는 조직 •개발 과정에서 객관적이고 정량적인 근거에 따라 프로세스가 측정되고 지속적인 개선이 이루어짐

능력은 좋지만 성숙도가 높지 않다면 전부 발휘할 수 없을 것

Model(모델)

•일반적으로 알고 있는 모델의 의미와 약간 달라, 프로세스를 검사하는 의미로 사용 •기준(수행지침) 대로 하고 있는지, 그렇지 않은지를 검사 •무엇을 해야할지 수행 지침을 통해서 알려주지만 구체적으로 어떻게 할지는 조직의 역량에 달림

Integration(통합)

여러 가지 프로세스의 기준을 하나로 통합했다는 의미 •소프트웨어 개발 생명주기의 각 단계를 통합한 모델이라는 의미

단계적 표현 방법의 성숙 단계

sw_11_2

4. 품질 관리

품질 관리

품질 관리, 품질 통제, 품질 보증의 차이와 각 활동이 소프트웨어 품질에 미치는 영향을 학습합니다.

품질 관리

개발의 각 단계에서 일어나는 모든 활동과 활동 중에 생성되는 여러 산출물을 통제하고 보증해 품질을 관리하기 위한 활동 크게 통제와 보증으로 구분

품질 통제

품질 절차와 표준을 개발자들이 준수하도록 프로세스를 정의하고 규정을 만드는 것 •소프트웨어를 개발하고 운영하며 유지보수하는 과정에서 사용자의 요구사항을 만족할 수 있는 품질 좋은 소프트웨어를 만들기 위함

품질 보증

•품질 보증의 정의: IEEE •개발된 소프트웨어가 사용자의 요구를 만족시킨다는 것을 보장하는 데 필요한 계획적이고 체계적인 활동 •개발된 소프트웨어가 기술적인 요구 사항과 일치하는가를 적절하게 확인하는 데 필요한 체계적이고도 계획적인 유형의 활동 •소프트웨어의 결함을 줄여 품질 좋은 소프트웨어를 만들기 위해, 사용자가 요구하는 품질 수준을 파악하고 이를 어떻게 달성할 수 있는지를 정의하는 개발 단계 전역에 걸친 체계적인 작업

-> 결합은 낮추고, 요구하는 품질 수준을 파악함

품질 보증

품질 보증 활동의 기대 효과

•개발 체계 및 품질 환경 적립 •명확한 요구 사항 정립 및 검토와 개발 기법의 표준화로 프로그램의 이해도 증진 •문서 작성의 표준화 유도와 품질 정보의 체계적 관리로 유사 문제점 재발 방지 •개발 시스템 품질 향상 •개발 초기 단계에서 문제점 발견 및 보완 •객관적 품질 평가로 사용성 증대

품질 보증 활동의 문제점

•품질 보증에 대한 인식이 부족 •품질 요원을 중요시하지 않는 시각에 따라 경험 많은 품질 보증 요원이 부족 •품질 보증에 대한 제도의 표준화와 절차 확립이 부족

댓글남기기