요구사항 도출
- 이해당사자들의 업무 지원을 위해 신규 시스템을 활용하는 방식을 이해하는 것
- 요구사항을 알아내기 위해 소프트웨어 엔지니어는 이해당사자들과 함께 일함
- 예 ) 응용 도메인, 업무 활동, 이해당사자들이 원하는 시스템 기능, 필요한 기능, 하드웨어 제약 등
요구사항 도출이 어려운 이유
- 애매하고 비현실적인 요구사항
- 아주 일반적인 용어로만 표현
- 타당하고 그른 것을 잘 모름
- 도메인 경험이 전제된 상태에서의 요구사항
- 요구사항을 전문용어를 사용해서 표현 → 경험 없는 요구사항 엔지니어는 이해 못 함
- 요구사항을 전문용어를 사용해서 표현 → 경험 없는 요구사항 엔지니어는 이해 못 함
- 여러 명의 이해당사자들의 서로 다른 요구사항
→ 요구사항 엔지니어는 요구사항에 대한 모든 잠재적 출처를 찾고 공통점과 상충점을 찾아내야 함 - 정치적 요소가 시스템 요구사항에 영향을 줄 수 있음
- 권력을 얻기 위해 관리자에게 요구사항 요청할 수 있음
- 권력을 얻기 위해 관리자에게 요구사항 요청할 수 있음
- 동적인 경제, 비즈니스 환경
- 분석 프로세스를 거치는 동안, 환경이 바뀔 수 있음
- 특정 요구사항의 중요성도 바뀔 수 있음
- 새로운 이해당사자가 신규 요구사항을 요구할지도
요구사항 도출과 분석 프로세스
— 각각의 조직의 특성에 따라 변형하거나 응용
요구사항 발견 및 이해
- 요구사항을 발견하기 위한 이해당사자들 간의 상호 작용 프로세스
- 도메인 요구사항과 문서를 확보
요구사항 분류 및 구성
- 요구사항들을 모으고 조직화해서 일관성 있는 그룹으로 분류
- 요구사항들을 모으고 조직화해서 일관성 있는 그룹으로 분류
요구사항 우선순위 정하기 및 협상
- 요구사항 우선순위를 정하고 서로 충돌하는 요구사항이 있으면 협상을 통해 해결
- 요구사항 우선순위를 정하고 서로 충돌하는 요구사항이 있으면 협상을 통해 해결
요구사항 문서화
- 다음 단계에서 사용할 수 있도록 요구사항 문서화
요구사항 도출에서 중요한 사항들
- 이해당사자들 간의 정보 조직화 및 그룹화
- 이해당사자 그룹 관점으로 요구사항을 모으는 것
→ 요구사항 분석 과정을 단순화하는데 도움
- 이해당사자 그룹 관점으로 요구사항을 모으는 것
- 이해당사자들과 정기적들과 정기적 미팅을 가지는 것
- 이해당사자들이 관심사를 표현하고 절충안에 동의할 수 있는 기회 제공
- 이해당사자들이 관심사를 표현하고 절충안에 동의할 수 있는 기회 제공
- 문서화 단계에서 쉬운 언어와 다이어그램 사용
- 이해당사자들이 해당 요구사항을 이해하고 의견을 낼 수 있도록 하기 위함
→ 정보 공유를 쉽게 하기 위해 공유 문서나 위키 사용
- 이해당사자들이 해당 요구사항을 이해하고 의견을 낼 수 있도록 하기 위함
요구사항 도출 기법
- 다양한 유형의 이해당사자와 미팅을 가짐
- 기존 시스템에 대한 정보 및 사용 방법, 변경 필요성에 대한 이해
- 기존 시스템에 대한 정보 및 사용 방법, 변경 필요성에 대한 이해
- 두 가지 접근법
인터뷰
: 사람들이 무엇을 하는지에 대해 이야기하는 방법관찰 또는 문화기술적 연구
: 일을 하는 사람들의 모습을 관찰하는 방법
인터뷰
- 인터뷰를 통해 현재 사용하고 있는 시스템과 개발해야 하는 시스템에 대한 질문
- 두 가지 유형으로 나뉨
폐쇄적 인터뷰
- 이해당사자들이 미리 정의된 질문에 답
- 이해당사자들이 미리 정의된 질문에 답
개방적 인터뷰
- 미리 정해진 내용 x
- 시스템 이해당사자들과 여러 가지 문제 탐색, 이를 통해 요구를 더 잘 이해할 수 있음
- 실제로는 이 두 개를 혼용해서 사용
- 보통 인터뷰를 시작하기 위한 질문들을 던지고, 이후에는 인터뷰의 초점 유지
인터뷰의 어려움
- 도메인 지식 추출 어려움
- 전문가들은 자기들 업무 관련 전문용어 사용
- 전문가 입장에서는 그 용어 없이 도메인 요구사항 논의가 불가능
- 용어 사용으로 인해 오해가 있을 수 있음
- 전문가들은 자기들 업무 관련 전문용어 사용
- 조직적 요구사항과 제약에 대한 지식을 도출하기 어려움
- 외부인에게 이론적 구조 이상의 실제 정보를 제공하기 꺼려함
- 요구사항에 영향을 줄 수 있는 정치적이고 조직적인 문제에 대해 이야기 x
- 외부인에게 이론적 구조 이상의 실제 정보를 제공하기 꺼려함
효과적인 인터뷰를 위해 필요한 두 가지 사항
- 이해당사자들의 말을 귀담아 들어야 함
- 열린 자세, 요구사항에 대해 넘겨짚는 행동 삼가
- 갑작스러운 요구사항을 꺼낼 경우 시스템에 대한 생각을 기꺼이 바꿀 수 있어야 함
- 인터뷰를 받는 사람이 논의를 시작할 수 있도록 유도해야 함
- 시작 질문, 요구사항 제안서, 프로토 타입을 활용
← 일반적 용어보다는 정의된 맥락에서 이야기하는 것이 훨씬 쉽다고 생각함
- 시작 질문, 요구사항 제안서, 프로토 타입을 활용
문화기술적 연구
- 동작 프로세스를 이해하고, 이 프로세스를 지원하는 소프트웨어에 대한 요구사항을 얻기 위해 관찰 기법
- 정형적 프로세스보다 잘 드러나지 않는 시스템 요구사항 발견하는데 도움
- 정형적 프로세스보다 잘 드러나지 않는 시스템 요구사항 발견하는데 도움
- 요구공학 프로세스에서는 시스템 사용에 영향을 주는 사회적, 조직적 문제를 이해하는 것은 중요
- SW시스템은 사회적이고 조직적 환경에서 사용
- SW시스템은 환경과 영향을 주고받음
- 사람들은 상세한 업무를 명확하게 설명하는데 어려움을 겪음
문화기술적 연구로 쉽게 찾을 수 있는 요구사항
- 일하는 방식으로부터 얻을 수 있는 요구사항
- 사람들은 정형적 프로세스를 따르지 않는다.
- 예) 관제탑에서 사용하는 충돌 경고 시스템
- 시스템이 민감해서 비행기가 멀리 떨어져 있어도 경고를 발생시켜 관제사의 주의를 산만하게 함
→ 항공 교통 관제사가 해당 경고를 끄는 경우가 많음
- 시스템이 민감해서 비행기가 멀리 떨어져 있어도 경고를 발생시켜 관제사의 주의를 산만하게 함
- 예) 관제탑에서 사용하는 충돌 경고 시스템
- 사람들은 정형적 프로세스를 따르지 않는다.
- 협력과 다른 사람이 활동에 대한 인지로부터 얻을 수 있는 요구사항
- 작업자가 다른 작업자의 정보를 보거나, 같이 협업할 수 있음
- 예) 교통 관제사의 담당 통제 구역 관리
- 진입할 비행기의 숫자를 예측하기 위해 다른 관제사 담당 지역의 비행기 정보 필요
- 예) 교통 관제사의 담당 통제 구역 관리
- 작업자가 다른 작업자의 정보를 보거나, 같이 협업할 수 있음
문화적 기술 연구의 특징
- 프로토타입 개발과 결합될 수 있음
- 프로토타입 개선 주기를 줄일 수 있도록 도움
- 프로토타이핑을 문화 기술적 연구에 초점을 맞출 수 있음
- 논의해 볼 수 있는 문제와 질문들을 찾아내는 방법을 활용(추후 답변도 찾아야 함)
- 논의해 볼 수 있는 문제와 질문들을 찾아내는 방법을 활용(추후 답변도 찾아야 함)
- 항상 혁신과 어울리지는 않음
- 혁신은 신규 제품 개발과 관련
- 문화기술적 연구는 **기존 시스템을 이해하기 위해서 도움
- Nokia vs Apple : Nokia는 문화기술적 연구를 이용해 휴대폰 개발
- 혁신은 신규 제품 개발과 관련
- 최종 사용자에 집중
- 다른 요구사항 도출 기법으로는 놓치기 쉬운 중요한 프로세스의 상세한 내용을 찾을 수 있음
- 광범위한 조직이나 요구사항, 혁신을 위한 제안 발견에는 효과적이지 않음