ABOUT ME

Today
Yesterday
Total
  • 내가 공부하기 위한 공간 - [소프트웨어공학] 13 - 품질
    소프트웨어공학 2025. 6. 7. 14:00
    반응형

    [품질]

    품질을 높이는 과정

    <테스트> - 기능적 검증

    • 늦게 수행
    • 좁게 다룸
    • 코드 품질만 향상

     

    <리뷰> - 비기능적 검증

    • 변경, 예상못한 조건에 대해 필요한 품질을 가지는지

     

    <품질보증>

    계획된 품질 수준을 갖고있음을 보증

    1. 표준과 절차 정의
    2. 준수하는지 확인
    3. 목표에 대한 진행사항을 제공

     

    <품질관리>

    품질 달성을 위한 관리기술을 적용

    • 측정 : 품질 제어 가능
    • 프로세스 평가 및 개선 : 프로세스를 변경안하면 품질에 한계가 있음

     

    <목적>

    고객만족, 요구적합성

     

     

    [모델]

    품질 속성

    • 유지보수, 융통, 테스트 용이
    • 정확, 신뢰, 효율, 통합, 사용
    • 이식, 재사용, 상호운용

     

    ISO/IEC 25010

    • 기능적합성, 성능효율성, 호환성, 사용성, 신뢰성, 보안, 유지보수성, 이식성

     

    ISO/IEC 25019

    • 효과성, 효율성, 만족도, 위험회피성, 맥락포괄성

     

     

    [품질관리]

    기능

    1. 프로세스 표준 정의
    2. 품질보증
    3. 프로세스 개선

     

    <프로세스관리조직>

    개발 조직과 별도(객관적이어야 하기 때문, 부족한 부분을 개석하도록 유도하기 위해)

    <프로세스 표준 정의>

    • 개발, 품질관리, 방법론 정의
    • 품질관리 표준, 절차, 가이드라인 정의

    개발된 소프트웨어가 일정 수준 이상의 품질을 유지할 수 있도록 구체적인 기준과 실천 방법을 제시합니다.

    • 측정과 평가를 위한 메트릭, 지표 정의

    개발 및 품질 활동의 성과를 객관적으로 측정하고, 지속적인 개선을 위한 데이터 기반 의사결정을 지원

     

    <활동>

    1. 품질계획
    • 목적, 관리, 표준, 관례, 리뷰, 감사, 형상관리, 프로세스방법론, 도구, 기술, 메트릭, 지표 포함

        2. 품질제어

    • 계획대로인지 확인, 문제 발견하면 수정

     

    <인스펙션>

    결함을 사전에 발견하기 위한 가장 정형화된 검토 기법

    소프트웨어 산출물(예: 설계서, 코드, 테스트 케이스 등)을 체계적이고 공식적으로 검토하여 결함을 발견하는 활동

    • 절차
    1. 계획(Planning) : 인스펙션 대상 선정, 참여자 지정
    2. 준비(Preparation) : 각 참여자가 문서를 읽고 결함 사전 조사
    3. 검토 회의(Inspection Meeting) : 리더 주도하에 결함을 하나씩 논의하고 기록
    4. 결과 기록(Logging) : 발견된 결함을 문서화
    5. 재작업(Rework) : 작성자가 결함을 수정
    6. 후속 점검(Follow-up) : 수정이 잘 되었는지 확인

     

     

    [품질측정]

    <기본개념>

    특성, 속성을 체계적으로 정량화

    <측정대상>

    프로세스(개발, 유지보수 등), 제품(결과물), 자원(인력, 시간 등)

    <측정분류>

    내부 메트릭 : 내부 속성을 평가하는데 사용

    외부 메트릭 : 외부 특성 관점에서 평가

    <목적>

    평가, 관리, 예측, 개선

     

    <품질메트릭>

    소프트웨어 개발의 단계별 품질 특성을 정량적으로 측정하여 품질을 관리하고 개선하는 데 활용

    요구메트릭 : 요구사항이 잘 정의되고, 사용자의 기대를 얼마나 잘 충족하는지를 측정

    • 기능적합성메트릭
    • 정확성(Accuracy): 요구사항과 실제 구현이 일치하는 정도
    • 완전성(Completeness): 누락 없이 모든 기능이 포함되어 있는지
    • 일관성(Consistency): 요구 간 충돌이나 모순 여부
    • 성능효율성메트릭
    • 응답 시간(Response Time): 사용자 입력에 대한 반응 속도
    • 처리량(Throughput): 단위 시간당 처리되는 작업 수
    • 자원 사용량(Resource Utilization): CPU, 메모리, 네트워크 사용량

    설계메트릭 : 소프트웨어 구조 설계의 품질을 정량적으로 평가

    • 팬인
    • 어떤 모듈을 호출하는 외부 모듈 수
    • 값이 높을수록 재사용성이 높지만, 너무 높으면 결합도가 커질 수 있음
    • 팬아웃
    • 모듈이 호출하는 외부 모듈 수
    • 팬아웃이 높으면 해당 모듈의 변경이 많은 다른 모듈에 영향을 줄 수 있음
    • 모듈복잡도
    • 제어 흐름의 복잡성 정도, 보통 사이클로매틱 복잡도(McCabe)로 측정
    • 예: V(G) = E - N + 2P (E: 엣지 수, N: 노드 수, P: 독립된 경로 수)
    • 모듈안정성
    • 모듈이 변경될 가능성 혹은 다른 모듈에 미치는 영향 정도
    • 내부 결합도 ↓, 외부 결합도 ↓, 응집도 ↑가 안정성 ↑로 이어짐

    구현및시스템메트릭 : 실제 코드, 실행 환경에서의 품질을 측정

    • 구현 메트릭
    • 코드 라인 수 (LOC) : 너무 많으면 유지보수 어려움
    • 코드 커버리지 : 테스트가 얼마나 코드를 실행하는지 (%)
    • 결함 밀도 (Defect Density) : LOC 1000줄당 결함 수
    • 중복 코드 비율 : 유지보수 비용 증가의 원인
    • 시스템 메트릭
    • 가용성(Availability) : 시스템이 정상 동작한 시간 비율 = (운영 시간 / 총 시간) × 100
    • 장애 발생률(Failure Rate) : 일정 시간 또는 이벤트당 장애 횟수
    • MTBF (Mean Time Between Failures) : 장애 간 평균 정상 동작 시간
    • MTTR (Mean Time To Repair) : 고장 후 복구까지 걸리는 평균 시간

     

     

    [프로세스개선]

    <CMM>

    소프트웨어 개발 조직의 프로세스 성숙도 수준을 평가하기 위한 모델

    • 조직의 현재 프로세스 수준 진단
    • 체계적인 프로세스 개선 방향 제시

     

    CMM의 5단계 성숙도 레벨

      명칭 설명
    Level 1 초기(Initial) 비정형, 비공식적. 성공은 개인 역량에 의존
    Level 2 반복 가능(Repeatable) 기본 프로젝트 관리 프로세스 수립, 성공 사례를 반복 가능
    Level 3 정의됨(Defined) 조직 차원의 표준 프로세스가 정립되고 문서화됨
    Level 4 정량적 관리(Managed) 프로세스를 수치적으로 측정하고 제어 가능
    Level 5 최적화(Optimizing) 지속적인프로세스개선과혁신이이루어짐

     

    <CMMI>

    CMM의 발전형, 여러 CMM 모델(소프트웨어, 시스템 엔지니어링 등)을 통합, 종합 프로세스 개선 모델

    • 소프트웨어뿐 아니라 조직 전반(관리, 개발, 유지보수 등)의 프로세스 개선
    • 더 포괄적이고 일관된 평가 및 개선 활동 가능

    CMMI 5단계 성숙도 레벨

      명칭 특징
    Level 1 Initial 무질서, 프로세스 없음
    Level 2 Managed 프로젝트 관리 중심의 프로세스
    Level 3 Defined 조직 차원의 표준화된 프로세스
    Level 4 Quantitatively Managed 정량적 품질 관리
    Level 5 Optimizing 지속적 개선 체계

    두 가지 방식으로 적용

    • Staged Model : 기존 CMM과 같은 5단계 성숙도 평가 방식
    • Continuous Model : 각 프로세스 영역을 독립적으로 Capability Level 0~5까지 평가

    CMMI의 주요 프로세스 영역 (Process Areas)

    • Project Management: 프로젝트 계획, 통제
    • Engineering: 요구사항 개발, 설계, 검증, 검토 등
    • Support: 품질보증, 형상관리, 측정 등
    • Process Management: 조직 프로세스 정의, 개선
    반응형

    댓글

Designed by Tistory.