728x90
SRS review의 한 방법
소프트웨어 개발 전 단계에 걸쳐서 두루 적용 가능
문서 공유를 통한 소통과 이를 기록
요구사항의 오류를 소프트웨어 개발 단계 중 뒤에서 고칠 수록 비용이 많이 들기 때문에 필요
Fagan 인스펙션
- 4~5명이서 적당한 준비 후 결함을 찾기 위한 집중적인 검토 모임을 가짐
- 한 번에 최대 두 시간, 하루에 최대 두 번씩으로 제한하도록 추천
- 참여자들은 Moderator, Reader, Inspector, Recorder 등으로 맡은 역할이 있음
- 오류를 찾는 목적에 집중할 수 있도록 모두 노력
- 과정
- Planning 및 Overview: 검토 대상이 되는 product를 설명하는 단계. 그 대상은 SRS 문서, 소스코드 등
- Preparation: 각 참여자들이 개인적으로 자료 검토 등 준비. checklist 사용
인스펙션 성공에 중요하며 준비가 불충분하면 인스펙션을 하면 안됨 - Examination: 역할을 나누어 오류의 가능성이 있는 부분에 대해 가능하면 짧게 토론하고 결론을 내는 과정
- Rework & Follow-up: 다음 인스펙션이 포함될 수 있음
- 더 효과적인 인스펙션을 위한 방법
- 미리 리뷰를 남기고 peer comment에 대한 응답
- peer comment에 대해서 작성자가 이해가 안되거나 동의하지 않은 내용에 대하여 회의
- 소프트웨어가 매우 큰 경우 - 중요도를 자발적으로 분류하고 가장 중요하다고 지정된 코드에 대하여 인스펙션
- 각자 전문성을 가지고 있는 분야의 오류 탐지에 집중
- checkllist의 항목을 과거의 개발 경험이나 과거와 유사한 오류에 대한 검토를 집중할 수 있도록 특화
Modern Code Review
기존 인스펙션의 목적: 결함 발견 및 제거 -> 오류 발견, 코드 향상, 지식 전달, 개발 프로세스 향상, 팀 인식 증가
- 2명에서부터 group problem solving까지 가능
- change size를 작게
- 가볍고 유연한 프로세스
- 리뷰가 빠르고 자주 발생
- sw의 크기가 큰 경우 자발적으로 소스코드의 중요도를 분류할 수 있음
- Best Practices:
- 개발자: 리뷰를 위한 code change 준비
- changes를 주의깊게 확인. 작고 점진적인 changes를 목표로 함.
- 관련된 changes를 cluster. changes와 그 이유를 설명.
- 리뷰에 제출하기 전에 검증 혹은 분석. change가 정말 리뷰가 필요한지 확인.
- 개발자: reviews를 확인하고 선택
- 얼마나 많은 reviewer가 필요한지 결정. 배울 code base를 잘 알거나 경험이 풍부한 reviewers 선택.
- reviewer가 가능한 시간을 선택하도록 함.
- reviewer가 review를 확인하도록 가능한 한 빨리 알리고 설명.
- Reviewer: code review를 받고 수행
- 코드 리뷰를 위한 제한된 시간 설정. 한 번에 조금씩 자주 리뷰.
- 가능한 한 빨리 피드백 제공.
- 핵심 이슈에 먼저 집중. 필요하다면 checklist 활용
- Reviewer: 피드백을 개발자에게 제공
- 논쟁을 초래할 이슈는 직접 대화하는 등 소통 매체 선택.
- 결정 추적을 제공하는 도구 사용.
- 건설적이고 정중한피드백 제공. 리뷰 반복에 준비.
- 개발자: 대답하고 change 반복
- reviewers에게 감사.
- changes 반복에 준비. review와의 대화 촉진.
- changes를 추적하여 수정됨을 확인. 결정 추적을 제공하는 도구 사용.
- 개발자: code change를 commit
- 결정이 문서화됐는지 확인. 프로세스에 반영하고 어떻게 향상되었는지 고려.
- 조직
- 긍정적인 리뷰 문화 건설 및 유지.
- 코드 리뷰 정책을 만들고 반영하고 수정.
- 시간을 보장하되 평가에 부정적인 영향을 미치지 않도록 함.
- 적절한 도구가 제공되고 사용되도록 보장.
- 적절한 리뷰 체크리스트 개발 촉진.
- 코드 리뷰 활동에 대한 충분한 교육 제공.
- 개발자: 리뷰를 위한 code change 준비
- 코드 리뷰 도구: 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 |