본문 바로가기
대학공부/소프트웨어공학

Inspection

by 진진리 2023. 10. 6.
728x90

SRS review의 한 방법

소프트웨어 개발 전 단계에 걸쳐서 두루 적용 가능

문서 공유를 통한 소통과 이를 기록

요구사항의 오류를 소프트웨어 개발 단계 중 뒤에서 고칠 수록 비용이 많이 들기 때문에 필요

 

Fagan 인스펙션

  • 4~5명이서 적당한 준비 후 결함을 찾기 위한 집중적인 검토 모임을 가짐
  • 한 번에 최대 두 시간, 하루에 최대 두 번씩으로 제한하도록 추천
  • 참여자들은 Moderator, Reader, Inspector, Recorder 등으로 맡은 역할이 있음
  • 오류를 찾는 목적에 집중할 수 있도록 모두 노력
  • 과정
    1. Planning 및 Overview: 검토 대상이 되는 product를 설명하는 단계. 그 대상은 SRS 문서, 소스코드 등
    2. Preparation: 각 참여자들이 개인적으로 자료 검토 등 준비. checklist 사용
      인스펙션 성공에 중요하며 준비가 불충분하면 인스펙션을 하면 안됨
    3. Examination: 역할을 나누어 오류의 가능성이 있는 부분에 대해 가능하면 짧게 토론하고 결론을 내는 과정
    4. Rework & Follow-up: 다음 인스펙션이 포함될 수 있음
  •  더 효과적인 인스펙션을 위한 방법
    • 미리 리뷰를 남기고 peer comment에 대한 응답 
    • peer comment에 대해서 작성자가 이해가 안되거나 동의하지 않은 내용에 대하여 회의
    • 소프트웨어가 매우 큰 경우 - 중요도를 자발적으로 분류하고 가장 중요하다고 지정된 코드에 대하여 인스펙션
    • 각자 전문성을 가지고 있는 분야의 오류 탐지에 집중
    • checkllist의 항목을 과거의 개발 경험이나 과거와 유사한 오류에 대한 검토를 집중할 수 있도록 특화

 

Modern Code Review

기존 인스펙션의 목적: 결함 발견 및 제거 -> 오류 발견, 코드 향상, 지식 전달, 개발 프로세스 향상, 팀 인식 증가

  • 2명에서부터 group problem solving까지 가능
  • change size를 작게
  • 가볍고 유연한 프로세스
  • 리뷰가 빠르고 자주 발생
  • sw의 크기가 큰 경우 자발적으로 소스코드의 중요도를 분류할 수 있음

 

  • Best Practices:
    1. 개발자: 리뷰를 위한 code change 준비
      • changes를 주의깊게 확인. 작고 점진적인 changes를 목표로 함.
      • 관련된 changes를 cluster. changes와 그 이유를 설명. 
      • 리뷰에 제출하기 전에 검증 혹은 분석. change가 정말 리뷰가 필요한지 확인.
    2. 개발자: reviews를 확인하고 선택
      • 얼마나 많은 reviewer가 필요한지 결정. 배울 code base를 잘 알거나 경험이 풍부한 reviewers 선택.
      • reviewer가 가능한 시간을 선택하도록 함.
      • reviewer가 review를 확인하도록 가능한 한 빨리 알리고 설명.
    3. Reviewer: code review를 받고 수행
      • 코드 리뷰를 위한 제한된 시간 설정. 한 번에 조금씩 자주 리뷰. 
      • 가능한 한 빨리 피드백 제공.
      • 핵심 이슈에 먼저 집중. 필요하다면 checklist 활용
    4. Reviewer: 피드백을 개발자에게 제공
      • 논쟁을 초래할 이슈는 직접 대화하는 등 소통 매체 선택. 
      • 결정 추적을 제공하는 도구 사용. 
      • 건설적이고 정중한피드백 제공. 리뷰 반복에 준비.
    5. 개발자: 대답하고 change 반복
      • reviewers에게 감사. 
      • changes 반복에 준비. review와의 대화 촉진. 
      • changes를 추적하여 수정됨을 확인. 결정 추적을 제공하는 도구 사용.
    6. 개발자: code change를 commit
      • 결정이 문서화됐는지 확인. 프로세스에 반영하고 어떻게 향상되었는지 고려.
    7. 조직
      • 긍정적인 리뷰 문화 건설 및 유지. 
      • 코드 리뷰 정책을 만들고 반영하고 수정. 
      • 시간을 보장하되 평가에 부정적인 영향을 미치지 않도록 함. 
      • 적절한 도구가 제공되고 사용되도록 보장. 
      • 적절한 리뷰 체크리스트 개발 촉진. 
      • 코드 리뷰 활동에 대한 충분한 교육 제공.
  • 코드 리뷰 도구: Microsoft 사의 CodeFlow, Google 사의 Gerrit, AMD 등

 

'대학공부 > 소프트웨어공학' 카테고리의 다른 글

SPI, CMMI, 기타 용어  (0) 2023.10.06
Formal Methods 정형 기법  (0) 2023.10.06
UML  (0) 2023.10.06
Requirements Engineering(요구공학)  (0) 2023.10.06
소프트웨어공학이란?  (0) 2023.10.06