호우동의 개발일지

Today :

article thumbnail

요구사항 도출

  • 이해당사자들의 업무 지원을 위해 신규 시스템을 활용하는 방식을 이해하는 것
  • 요구사항을 알아내기 위해 소프트웨어 엔지니어는 이해당사자들과 함께 일함
    • 예 ) 응용 도메인, 업무 활동, 이해당사자들이 원하는 시스템 기능, 필요한 기능, 하드웨어 제약 등

 


요구사항 도출이 어려운 이유

  • 애매하고 비현실적인 요구사항
    • 아주 일반적인 용어로만 표현
    • 타당하고 그른 것을 잘 모름

  • 도메인 경험이 전제된 상태에서의 요구사항
    • 요구사항을 전문용어를 사용해서 표현 → 경험 없는 요구사항 엔지니어는 이해 못 함

  • 여러 명의 이해당사자들의 서로 다른 요구사항
    → 요구사항 엔지니어는 요구사항에 대한 모든 잠재적 출처를 찾고 공통점과 상충점을 찾아내야 함

  • 정치적 요소가 시스템 요구사항에 영향을 줄 수 있음
    • 권력을 얻기 위해 관리자에게 요구사항 요청할 수 있음

  • 동적인 경제, 비즈니스 환경
    • 분석 프로세스를 거치는 동안, 환경이 바뀔 수 있음
    • 특정 요구사항의 중요성도 바뀔 수 있음
    • 새로운 이해당사자가 신규 요구사항을 요구할지도

 


요구사항 도출과 분석 프로세스

— 각각의 조직의 특성에 따라 변형하거나 응용

요구사항 도출 프로세스
요구사항 도출 프로세스

  1. 요구사항 발견 및 이해
    • 요구사항을 발견하기 위한 이해당사자들 간의 상호 작용 프로세스
    • 도메인 요구사항과 문서를 확보

  2. 요구사항 분류 및 구성
    • 요구사항들을 모으고 조직화해서 일관성 있는 그룹으로 분류

  3. 요구사항 우선순위 정하기 및 협상
    • 요구사항 우선순위를 정하고 서로 충돌하는 요구사항이 있으면 협상을 통해 해결

  4. 요구사항 문서화
    • 다음 단계에서 사용할 수 있도록 요구사항 문서화

 


요구사항 도출에서 중요한 사항들

  • 이해당사자들 간의 정보 조직화 및 그룹화
    • 이해당사자 그룹 관점으로 요구사항을 모으는 것
      → 요구사항 분석 과정을 단순화하는데 도움

  • 이해당사자들과 정기적들과 정기적 미팅을 가지는 것
    • 이해당사자들이 관심사를 표현하고 절충안에 동의할 수 있는 기회 제공

  • 문서화 단계에서 쉬운 언어와 다이어그램 사용
    • 이해당사자들이 해당 요구사항을 이해하고 의견을 낼 수 있도록 하기 위함
      → 정보 공유를 쉽게 하기 위해 공유 문서나 위키 사용

 


요구사항 도출 기법

  • 다양한 유형의 이해당사자와 미팅을 가짐
    • 기존 시스템에 대한 정보 및 사용 방법, 변경 필요성에 대한 이해

  • 두 가지 접근법
    • 인터뷰 : 사람들이 무엇을 하는지에 대해 이야기하는 방법
    • 관찰 또는 문화기술적 연구 : 일을 하는 사람들의 모습을 관찰하는 방법

 


인터뷰

  • 인터뷰를 통해 현재 사용하고 있는 시스템과 개발해야 하는 시스템에 대한 질문
  • 두 가지 유형으로 나뉨
    • 폐쇄적 인터뷰
      • 이해당사자들이 미리 정의된 질문에 답

    • 개방적 인터뷰
      • 미리 정해진 내용 x
      • 시스템 이해당사자들과 여러 가지 문제 탐색, 이를 통해 요구를 더 잘 이해할 수 있음

    • 실제로는 이 두 개를 혼용해서 사용
      • 보통 인터뷰를 시작하기 위한 질문들을 던지고, 이후에는 인터뷰의 초점 유지

 


인터뷰의 어려움

  • 도메인 지식 추출 어려움
    • 전문가들은 자기들 업무 관련 전문용어 사용
      • 전문가 입장에서는 그 용어 없이 도메인 요구사항 논의가 불가능
      • 용어 사용으로 인해 오해가 있을 수 있음

  • 조직적 요구사항과 제약에 대한 지식을 도출하기 어려움
    • 외부인에게 이론적 구조 이상의 실제 정보를 제공하기 꺼려함
      • 요구사항에 영향을 줄 수 있는 정치적이고 조직적인 문제에 대해 이야기 x

 


효과적인 인터뷰를 위해 필요한 두 가지 사항

  • 이해당사자들의 말을 귀담아 들어야 함
    • 열린 자세, 요구사항에 대해 넘겨짚는 행동 삼가
    • 갑작스러운 요구사항을 꺼낼 경우 시스템에 대한 생각을 기꺼이 바꿀 수 있어야 함

  • 인터뷰를 받는 사람이 논의를 시작할 수 있도록 유도해야 함
    • 시작 질문, 요구사항 제안서, 프로토 타입을 활용
      ← 일반적 용어보다는 정의된 맥락에서 이야기하는 것이 훨씬 쉽다고 생각함

 


문화기술적 연구

  • 동작 프로세스를 이해하고, 이 프로세스를 지원하는 소프트웨어에 대한 요구사항을 얻기 위해 관찰 기법
    • 정형적 프로세스보다 잘 드러나지 않는 시스템 요구사항 발견하는데 도움

  • 요구공학 프로세스에서는 시스템 사용에 영향을 주는 사회적, 조직적 문제를 이해하는 것은 중요
    • SW시스템은 사회적이고 조직적 환경에서 사용
    • SW시스템은 환경과 영향을 주고받음

  • 사람들은 상세한 업무를 명확하게 설명하는데 어려움을 겪음

 


문화기술적 연구로 쉽게 찾을 수 있는 요구사항

  • 일하는 방식으로부터 얻을 수 있는 요구사항
    • 사람들은 정형적 프로세스를 따르지 않는다.
      • 예) 관제탑에서 사용하는 충돌 경고 시스템
        • 시스템이 민감해서 비행기가 멀리 떨어져 있어도 경고를 발생시켜 관제사의 주의를 산만하게 함
          → 항공 교통 관제사가 해당 경고를 끄는 경우가 많음

  • 협력과 다른 사람이 활동에 대한 인지로부터 얻을 수 있는 요구사항
    • 작업자가 다른 작업자의 정보를 보거나, 같이 협업할 수 있음
      • 예) 교통 관제사의 담당 통제 구역 관리
        • 진입할 비행기의 숫자를 예측하기 위해 다른 관제사 담당 지역의 비행기 정보 필요

 


문화적 기술 연구의 특징

문화적 기술 연구 특징

  • 프로토타입 개발과 결합될 수 있음
    • 프로토타입 개선 주기를 줄일 수 있도록 도움
    • 프로토타이핑을 문화 기술적 연구에 초점을 맞출 수 있음
      • 논의해 볼 수 있는 문제와 질문들을 찾아내는 방법을 활용(추후 답변도 찾아야 함)

  • 항상 혁신과 어울리지는 않음
    • 혁신은 신규 제품 개발과 관련
      • 문화기술적 연구는 **기존 시스템을 이해하기 위해서 도움
      • Nokia vs Apple : Nokia는 문화기술적 연구를 이용해 휴대폰 개발

  • 최종 사용자에 집중
    • 다른 요구사항 도출 기법으로는 놓치기 쉬운 중요한 프로세스의 상세한 내용을 찾을 수 있음
    • 광범위한 조직이나 요구사항, 혁신을 위한 제안 발견에는 효과적이지 않음