포인트1. 소프트웨어 요구란 무엇인가? 포인트2. 사용자의 요구를 추출하는 방법은 무엇인가? 포인트3. 요구를 분석하고 정의하는 방법은 무엇인가? 포인트4. 유스케이스란 무엇이며 어떻게 찾아내는가? 포인트5. 소프트웨어 요구 명세서를 작성하는 방법은 무엇인가? 요구분석 소프트웨어 개발의 실질적인 첫 단계 사용자의 요구에 대해 이해하고 정리하는 작업 분석작업 1. 요구 추출
2. 요구 분석 및 정의
3. 요구 확인
4-1. 요구 시스템에 대한 고객의 요청을 확정한 것 진정한 요구를 찾는 것은 프로젝트 성공의 필수 조건이지만 진정한 요구를 찾아내기에는 제약사항들이 존재 제약사항들
제약사항은 소프트웨어 시스템의 해결책을 제한한다. 제약은 여러 가지 설계 구현안을 줄인다는 점 요구와 제약은 요구 분석 명세서에 우선순위 표시와 함께 잘 정리되어야 함 요구의 분류 용어에 대한 이해를 중심으로 공부하면 된다.
4-1-1. 기능요구 시스템이 외형적으로 나타내는 기능과 동작 예를 들어 현금인출기에서의 기능 요구는 현금의 인출, 잔금 조회, 계좌 이체 같은 것들이 된다. 시스템이 데이터나 인스트럭션에 대해 반응하는 동작, 상태의 변화도 기능요구이다. 시스템은 _______을/를 해야 한다. 기능요구에 포함되어야 하는 사항들
기능요구는 외부 사용자에게 직접적으로 혜택을 줄 수 있는 시스템의 기능을 말함 기능요구의 종류와 사례 ( 출처 - 소프트웨어 공학의 모든 것 142page )4-1-2. 비기능 요구 시스템이 제공하는 기능에 직접 관련되지 않은 요구 기능요구를 지원하기 위하여 파생적으로 필요한 요구이다. 비기능 요구의 종류
4-1-3. 요구 대상에 의한 분류 요구하는 대상에 따른 요구 분류
4-2. 요구 추출 사용자가 무엇을 원하는지 결정을 내리는 작업, 여러가지 기법이 동원 요구 추출을 위한 세 단계의 작업
4-2-1. 요구정보 출처 요구 추출 작업은 정보의 수집이 필요함 -> 어디서 정보를 얻느냐?(출처)를 알아야 함 정보 출처 유형 요구추출을 위한 정보의 출처 ( 출처 - 소프트웨어 공학의 모든 것 147page )- 고객
- 도메인 전문가
- 이해 당사자
- 사용자
- 역공학
요구 추출 뷰 포인트 요구를 추출할 때 기준이 되는 관점 개발자는 시스템에 대한 다양한 관점을 인식하여 다양한 요구사항들을 받아 냄 -> 요구사항에 모순이 있을 때 발견하기 쉬운 틀이 제공되기 때문 - 상호작용 관점(Interaction Viewpoint)
- 간접 관점(Indirect Viewpoint)
- 도메인 관점(Domain Viewpoint)
4-2-2. 고객의 발표 고객의 업무를 개발팀에게 소개시키고 의심되는 것을 명확히 할 수 있으며, 개발팀이 구축하는 시스템에 대하여 초기에 개념을 잡을 수 있음 효과적인 가이드라인
4-2-3. 문헌 양식 조사 유사한 프로젝트를 조사
업무 문서나 양식을 조사
산업 및 기업의 표준 조사
관련 정부의 정책/규제 조사
4-2-4. 인터뷰 질문지를 만들어 직접 사용자나 고객을 만나 요구사항을 들어보는 것 인터뷰 형식 - 정형적 인터뷰
- 비정형 인터뷰
- 부분 정형 인터뷰
인터뷰 절차
효과적인 인터뷰 원리
미숙한 질문의 원인
4-2-5. 설문 관리자나 사용자 같은 이해 대상자를 대상으로 한다 무기명 설문
설문지 사용에서 유의할 점
4-2-6. 브레인스토밍 아이디어를 낼 목적으로 여러 명으로부터 정보를 얻기 위한 회의 훈련된 요원이 주재 장점
JAD(Joint Application Development)
4-2-7. 프로토타이핑 최종 시스템의 예상 기능 중 일부를 빠르게 구현한 프로그램 목적
Papaer ProtoType
모의 사용자 인터페이스
4-3. 요구 분석 요구 후보를 분석하고 결정하여 요구로 확정하는 단계 4-3-1. 요구 품질 요구사항이 다음과 같은 성질을 가지는 지 분석해야 함
각 성질들의 예시를 적어놓은 표이다. ( 출처 - 소프트웨어 공학의 모든 것 156page ) 4-3-2. 도메인 분석 도메인 - 요구의 배경을 의미 도메인 분석 - 응용분야(현실)에 존재하는 개념을 잘 정의하고 분석하여 시스템에 존재하는 개념으로 정립하는 단계 왜 분석하는가?
도메인 분석 방법 - 도메인 개념 찾기
- 도메인 사전 작성
- 비즈니스 규칙 정리
4-3-3. 시나리오 기반 분석 다양한 사람들이 참여하여 다양한 용어와 개념을 전달하여 요구를 도출함 5W1H 원칙 (육하원칙) 사용 사용자 스토리
< 사용자/역할 (who) >는 위와 같은 형식에 맞추어 사용자 스토리를 작성한다. 예시 < 고객 >은 4-4. 유스케이스 도메인 분석의 결과를 액터, 사용사례, 관계들로 구성된 시스템 명세로 매핑하는 작업 = 유스케이스 모델링 : 시스템의 동작을 모형화 하는 것 유스케이스 - 네 가지 요소들(액터, 시스템 범위, 유스케이스, 관계)이 결합된 것 유스케이스 분석 작업
분석 작업의 결과 - 유스케이스 다이어그램, 유스케이스 명세 4-4-1. 유스케이스 다이어그램 시스템의 기능을 나타내기 위하여 사용자의 요구를 추출하고 분석하는 데 사용하는 그림 외부에서 보는 시스템의 동작에 초점을 맞춤 유스케이스, 액터로 구성 수강신청의 유스케이스 다이어그램 ( 출처 - 소프트웨어 공학의 모든 것 162page )액터 ( 출처 - 소프트웨어 공학의 모든 것 162page )액터 (actor)
액터를 찾고싶어요
유스케이스(use case)
유스케이스를 찾고싶어요
4-4-2. 유스케이스 명세 대상 시스템이 제공해야 할 서비스를 시간이 경과되는 순서로 정렬하여 기술한 것 요구분석에 사용되는 시나리오에 포함될 정보
이벤트 흐름 외부에서 보이는 시스템의 기능을 나타낸 것 유스케이스 이벤트 흐름 ( 출처 - 소프트웨어 공학의 모든 것 164page )이벤트 흐름 가이드라인
4-4-3. 유스케이스 사이의 관계 종류
포함관계
포함관계의 두 가지 경우
위 그림에서 예금과 고객인증, 현금인출과 고객인증은 포함관계이다. 확장관계
확장관계를 사용하는 목적
기본 유스케이스 자체는 완전해야 한다. = 확장에 대한 언급 없이 이해가 가능하여야 하고, 별도로 실행할 수 있어야 함 사용자 스토리와 유스케이스 공통점 - 사용자가 이해할 수 있는 일상 언어로 요구를 나타냄(이해관련자들이 소통할 수 있게 만드는 도구) 차이점
특징 정리
4-5. 요구 명세 명세 - 분석한 요구사항을 모두 빠짐없이 명확하게 작성하는 것 요구분석 명세서(SRS - Software Requirement Specification) - 명세한 문서 요구명세서 목차
SRS에는 대상 시스템이 어떻게 할 것인가가 아니라 무엇을 할 것인가가 기술이 된다. 4-5-1. 작성 방법
요구분서 명세서 작성 시 주의사항
4-6. 요구 검증 사용자의 요구가 요구분석 명세서에 올바르게 기술되었는지 검토하는 활동 검증을 위해 체크하는 내용은 다음 표와 같다. 요구 검증 사항 ( 출처 - 소프트웨어 공학의 모든 것 172page ) |