Computers/SW Engineering

day 2. 프로젝트 관리 - 조직 구성, 품질 보증, 신뢰성/가용성

emzei 2016. 3. 17. 15:18
  • 프로젝트 조직 구성 계획
    • 프로젝트를 수행하기 위해 참여하는 각 구성웓늘의 역할 할당, 협력 방법 정의
    • 프로젝트 단위로 팀 구성하여 수행
    • 수행기간, 작업 특성, 팀 구성원 사이의 의사 교류 횟수에 따라 팀 구성 방법이 달라질 수 있음

  • 프로젝트 팀 구성의 종류
    • 분산형 팀 구성
      • 팀원 모두가 의사 결정 참여, 비이기적 구성 방식 (민주주의)
      • 팀 구성원의 참여도와 작업 만족도 높임
      • 장기 프로젝트 개발에 적합
      • 다양한 교류로 인해 의사 결정 시간 지체, 개개인의 생산성, 책임감 하락 가능성
    • 중앙 집중형 팀 구성
      • (= 책임 프로그래머 팀 구성)
      • 한 관리자가 의사 결정하고, 팀 구성원들은 그 결정에 따르는 방식
      • 비교적 소규모 프로젝트에 적합
      • 프로젝트 성공은 책임 프로그래머 능력에 달려있음
      • 각 구성원의 역할
        • 책임(고급) 프로그래머, 프로그래머, 프로그래머 사서, 보조 프로그래머
    • 계층적 팀 구성
      • (=혼합형 팀구성)
        • 여러  초보 프로그래머를 소그룹화하여, 각 그룹을 고급 프로그래머가 관리
        • 경험자(고급)과 초급 구별
        • 기술 인력이 관리를 담당하여 좋은 기술력을 사장시킬 수 있음. 기술인력이 업무 능력을 갖춰야 함

  • 소프트웨어 품질 보증
    • 소프트웨어 품질 (Quality)
      • 주어진 요구 사항을 만족시키는 능력을 갖추고 있는 소프트웨어의 측정 가능한 기능 및 특성
        • 설계 품질 : 설계자가 규정한 특성
        • 일치 품질 : 설계 내용들이 개발 과정에서 지켜지는 정도
    • 소프트웨어 품질 관리 (Quality control)
      • 주어진 요구사항에 맞게 개발하는 과정동안의 모든 활동과, 그 활동의 결과로 생산되는 산출물에 대한 품질 통제 및 보증

    • 품질 표준 (목표)
      • 명확하게 정의된 소프트웨어의 특성. 소프트웨어의 품질을 평가하는 기준 항목으로 사용
      • 구분
        • 소프트웨어 운영 특성
          • 정확성 / 신뢰성 / 효율성 / 무결성 / 사용 용이성
        • 소프트웨어 변경 수용 능력
          • 유지보수성 / 유연성 / 시험 역량
        • 소프트웨어 적응 능력
          • 이식성 / 재사용성 / 상호운용성

    • 소프트웨어 품질 보증 (Software Quality Assurance, SQA)
      • 어떠한 소프트웨어가 이미 설정된 요구사항과 일치 여부 확인에 필요한 개발 단계 전체에 걸친 계획적 체계적 작업
      • 개발 초기 - 소프트웨어의 특성과 요구사항 파악하여 품질 목표 설정
      • 개발 단계 - 정형 기술 검토를 통하여 품질 목표의 충족 여부를 점검
      • 개발 후 - 디버깅 및 테스트

    • 정형 기술 검토 (Formal Technical Review, FTR)
      • 특징
        • 가장 일반적 검토 방법. 기술자들에 의해 수행되는 소프트웨어 품질 보증 활동
        • 검토 유형 : 검토회의, 검열 (모두 회의 형태로 수행)
      • 목적
        • 검토중인 소프트웨어가 해당 요구 사항과 일치하는지 검증
        • 표준 준수 여부 확인 및 기능과 로직의 오류 여부 판별
        • 소프트웨어가 균일한 방식으로 개발되도록
        • 프로젝트를 보다 용이하게 관리
      • 검토 지침 사항
        • 제품 검토에 집중
        • 의제 제한
        • 논제 및 반박 제한
        • 문제 영역 명확히 표현
        • 해결책 개선책 논하지 말것
        • 참가자 수 제한, 사전 준비 강요
        • 검토 확률 있는 제품에 대한 체크리스트 개발
        • 자원과 시간 일정 할당
        • 모든 검토자들을 위한 의미있는 훈련 필요
        • 검토자들은 사전에 작성된 메모 공유
        • 검토의 과정과 결과를 재검토

      • 검토 회의 (walkthrough)
        • 개발의 각 단계에서 개최하는 기술 평가(검토) 회의
        • 구성요소와 같은 작은 단위 검토
        • 오류 조기 검출 목적, 발견된 오류는 문서화
        • 검출된 오류는 회의 후 해결
        • 3-5명이 검토 참여 및 회의 시간은 2시간 이내
        • 검토 자료는 미리 배포. 미리 검토하는 시간은 2시간 이내

      • 검열 (inspection, 심사)
        • 검토회의의 발전형태
        • 개발 단계에서 산출된 결과물의 품질을 평가하며 이를 개선시키는 데 사용

      • cf. 기타 품질 보증 활동 : 검증, 확인, 인증, 소프트웨어 시험, 오류 시험

  • 소프트웨어의 신뢰성과 가용성
    • 신뢰성 : 주어진 환경에서 주어진 시간 동안 오류 없이 작동할 확률
      • MTBF
    • 가용성 : 한 프로그램이 주어진 시점에서 요구사항에 따라 운영되는 확률
      • MTBF / (MTBF + MTTR)
    • 측정
      • MTBF(mean time b/w failure) = MTTF + MTTR
      • MTTF(mean time to failure) = sum(running#) / #
      • MTTR(mean time to review) = sum(failure#) / #