소프트웨어공학 3

LeemHyungJun·2023년 4월 20일
0

Lecture #3. 요구 분석

1. 요구란?

1-1. 요구 분석 과정

  • 현재(as-is) 시스템에서 새로운 시스템(to-be)로 옮겨가는 과정
  • 분석 단계
    • 요구를 찾고, 요구를 정리
  • 요구 분석
    • 요구 정의
    • 요구 추출 : 인터뷰, JAD 회의, 설문, 관찰
    • 요구 정리 : 기능적 모델링, 정적 모델링, 동적 모델링
    • 요구 검토

1-2. 요구 분석 사전 능력

  • 응용 분야에 대한 지식이 필수적
  • 하드웨어, 소프트웨어를 포함한 컴퓨터에 대한 기술을 이해
  • 의사소통 능력인 듣고, 말하고, 쓰고, 발표하는 능력이 매우 중요
    -> 오감을 사용
  • 상대의 관점(고객 관점) 에서 문제를 볼 수 있는 눈이 필요
    -> 오감을 사용
  • 사용자 및 고객과의 대화를 통하여 그들의 다양한 관점을 통합하는 의무
  • 사용자들로부터의 모순되는 요구사항을 해결하는 능력
  • 분석에 있어서 키워드!
    • 쉬운 용어
    • 의사소통을 위한 그림 (쉽고 간단한 표현)
    • 주도적인 일처리
    • 많은 대화
    • 사용자의 요구사항과 도메인 전문가의 전문지식을 뽑아내기
  • 라포
    • rapport
    • 고객과 마음의 다리를 놓기 - 공감 형성, 친근감
    • 라포는 태도다, 목소리나 눈빛

1-3. 요구 분석 모델링

  • 실체를 축약하여 표현하는 작업
  • 기능적 모델
    • 사용자와 환경이라는 관점의 모델
  • 정적(구조적) 모델
    • 클래스(프로세스와 자료의 묶음)의 구조 관점
  • 동적 모델
    • 시스템의 동작과 내부요소의 상호작용

1-4. 요구 분석 과정? 또 나옴

  • 요구사항 수집의 특징 (사람의 성격과 관련)
    • 당돌함
    • 공평성
    • 제약에 얽매이지 않는 특성
    • 세심한 주의력
    • 참신성

1-5. 요구 정의

  • 요구란?
    • 시스템이 무엇을 하여야 하는지, 어떤 특성을 가져야 하는지를 기술한 것
    • 사용자가 필요한 것
  • 요구는 설계, 구현에 이르면서 계속 변경될 수 있음
  • 요구의 종류
    • What: 비즈니스 요구 (분석 단계)
    • How: 시스템 요구 (설계 단계)

1-6. 기능적 요구와 비기능적 요구

  • 기능적 요구
    • 시스템이 수행하여야 할 처리나 정보 저장 등의 기능
    • ex) 상품검색, 장바구니, 상품주문, 마일리지, 상품 찜
  • 비기능적 요구
    • 성능, 사용용이성, 보안, 프로젝트 환경
    • ex) 평균 반응 시간, 가용성, 개인 정보 보호, 처리량, 데이터 복구

1-7. 요구 정의 사례

  • 명세서

1-8. 요구 정의 작성

  • 반복적이며 계속적인 작업
  • 요구 작성 과정

1-9. 요구 결정

  • 비즈니스나 IT 측면에서 요구를 결정
  • 사용자와 엔지니어가 정보를 나누고 이해
  • 비즈니스 프로세스 분석 기법을 사용

2. 프로세스 분석

2-1. 비즈니스 프로세스 분석 기법

  • 시스템에 담길 변화의 종류에 따라 세가지로 나눔
    • BPA : 자동화
    • BPI : 개선
    • BPR : 리엔지니어링 -> 완전히 바꾸기
  • BPA와 BPR이 BPI보다 더 효과적이지만, 위험성이 높다.

2-2. 비즈니스 프로세스 분석

  • 세 가지 단계
    • 현 상황을 이해 (as-is)
    • 개선할 점 파악 (BPA, BPI, BPR)
    • 새 시스템을 정의 (to-be)

2-3. 비즈니스 프로세스 자동화

  • 컴퓨터 기술의 도입이 필요한 프로세스
  • 효율을 높일 수는 있지만, 비즈니스 가치나 영향이 적음
  • 문제 분석 : ex) 수작업 시스템에서 개선할 부분 (BPA)
  • 근본 원인 분석

2-4. 비즈니스 프로세스 개선

  • 조직을 운영하는 방법을 적절히 바꾸는 것
    • 효율과 효과를 높일 수 있음
    • BPA보다 시스템 이해에 시간을 적게 할애하고 비즈니스 프로세스에 집중
    • 기간 분석
      • ex) 현재 시스템에 있는 각 프로세스를 수행하는데 걸리는 시간 조사
    • 작업 비용 분석
      • ex) 가장 비용이 많이 드는 프로세스를 찾아낸 후 이를 개선
    • 비공식 벤치마킹
      • ex) 다른 기관과 비교 연구

    2-5. 비즈니스 프로세스 리엔지니어링

  • 조직이 수행하는 기본 틀을 수정
  • 새 아이디어와 기술에 초점
    • 성과 분석
    • 기술 분석
    • 작업 제거

    2-6. 분석 방법의 비교

  • 표 외워버리기~
  • 리엔지니어링이 가치가 높지만, 비용과 위험도도 높다

3. 요구 추출

3-1. 요구 추출 방법

  • 분석가는 명탐정이 되어야
  • 요구 추출의 실제
    • 파생 효과가 있음
    • 누가 참여할 것인지 신중히 결정
    • 참여자에게 감사의 표시
    • 인터뷰, JAD 회의, 설문, 문서분석, 관찰 중 적합한 방법 선택

3-2. 인터뷰

  • 사용자와의 심층 대화로부터 요구를 끌어내는 방법

  • 질문의 준비가 중요

  • 인터뷰 질문 작성 - 중요!!

    • 다른 곳에서 찾을 수 있는 질문은 피하기
    • 대상자가 알 수 있다고 예상되는 질문만 하기
    • 세가지 유형
      • 폐쇄형
      • 자유 대답형
      • 유도형
  • 인터뷰 후속 조치

    • 인터뷰 보고서 작성
    • 상대의 검토로 명확하게 하고 고칠 수 있게 함

3-3. JAD 회의 - 중요!!

  • Joint Application Development
  • 프로젝트 팀, 사용자, 관리자의 협의 회의
  • 브레인스토밍 아이디어 회의
    • 아이디어에 대한 자신의 의견을 말하지 않음
  • 발언권을 골고루 주기!
  • E-JAD : 무기명, 자유로움, 대기시간 줄임
  • JAD 회의 과정

3-4. 설문

  • 개인으로부터 정보를 취하기 위한 질의서
    • 광범위한 사용자로부터의 의견이 필요할 때
  • 지면, 이메일, 웹
  • 설문지 설계가 중요
    • 일관된 형식
    • 사실과 의견을 묻는 질문 구별
    • 관심을 끌도록 유도

3-5. 서류 분석(문서 분석)

  • 현재 시스템을 이해하기 위하여
    • 보고서, 메모, 정책 매뉴얼, 교육 매뉴얼, 조직도 등 문서 분석
  • 사용한 적이 없는 문서는 제외
  • 변경, 개선할 필요성을 찾아내기

3-6. 관찰

  • 작업 과정을 지켜보면서 현재 시스템에 관한 정보 수집
  • 직접 경험
    • 메모, 촬영
  • 인터뷰 정보를 보완할 목적으로 사용

3-7. 요구 취합 방법의 비교

  • 시험에 안나옴 ? 나올수도 있음?
  • 인터뷰와 JAD 회의 가 좋은 방법
  • JAD회의는 여러명이 오기 때문에 더 많이 사용
  • 인터뷰는 사람마다 결과가 달라질 수 있다는 단점

4. 요구 정리, 문서화

4-1. 요구 문서화

  • 사용자와 엔지니어가 같이 볼 수 있어야 함
  • 포함될 내용
    • 제목, 버전 번호, 수정 이력
    • 문제와 시스템 개요
    • 배경 지식과 환경
    • 기능적/비기능적 요구
    • 인수 테스트를 위한 기준
  • Github 버전관리!!

4-2. 요구 분석서 검토

  • 개발 지침 가이드라인을 준수
  • 리뷰 회의
    • 발견된 결함은 수정하여 다시 검토
  • 기준
    • 명확성 통일성
    • 일관성, 모호성
    • 실현가능성
    • 문제 해결
      ...

0개의 댓글