3학년 2학기 공부 과정/소프트웨어공학

04. 요구 분석

환성 2022. 12. 19. 23:31
728x90

 

4.1 요구

요구

  • 시스템에 대한 고객의 요청을 확정한 것
  • 프로젝트 성공 필수 조건
  • 제약 사항
    • 특정 프로그래밍 언어, 특정 제품 사용
    • SW 시스템 해결책을 제한

 

요구 분석

  • SW의 개발 실질적인 첫 단계
  • 사용자의 요구에 대하여 이해하고 정리하는 작업
  • 세 가지 작업
    • 요구 추출
    • 요구 분석 및 정의
    • 요구 확인

 

4.2 요구 추출

  • 요구 분류

 

  • 기능의 종류

 

4.3 요구 분석

  • 요구 후보를 분석하고 결정하여 요구로 확정
  • 요구 품질
    • 원자적
    • 완전성
    • 비모호성, 통일성
    • 추적성
    • 우선순위화
    • 테스트 가능성

 

도메인 분석

  • 설계 모델링에 필요한 여러 개념과 비즈니스 룰 파악
  • 방법
    • 도메인 개념 찾기
    • 도메인 사전 작성
    • 비즈니스 규칙 정리

시나리오 기반 분석

  • 다양한 사람들이 참여하여 다양한 용어와 개념 전달하여 요구 도출
  • 커뮤니케이션의 장벽 해소
    • 시나리오 기반(5H1W)
  • 사용자 스토리
    • 사용자/역할(who)는 목표/혜택/이익(why)를 얻기 위하여 행위/작업(what)을 원한다.

4.4 유스케이스

  • 도메인 분석과 모델링 사이의 관문
  • 결과를 액터, 사용사례, 관계들로 구성된 시스템 명세로 매핑하는 작업
  • 요소
    • 액터, 시스템 범위, 유스케이스, 관계
  • 분석 과정
    • 액터 찾기, 유스케이스 찾기, 유스케이스 사이의 관계 찾기

 

유스케이스 다이어그램

  • 시스템의 기능을 나타내기 위하여 사용자 요구 추출 분석에 사용
  • 구성
    • 사용 사례 : 시스템 기능
    • 액터 : 시스템과 상호작용 하는것(사용자, 시스템)

 

액터

  • 시스템과 상호작용 하는 외부 엔터티
  • 구별되는 이름과 설명 필요
  • 액터가 될 수 있는 것
    • 사용자가 맡은 일
    • 다른 시스템
  • 외부 엔티티는 사람, 하드웨어, 다른 자동화 시스템이 될 수 있음
  • 여러 개의 참여 액터를 가질 수 있음

 

  • 예시(사건관리 시스템)
    • 시스템은 나중에 구체적인 사용 사례로 대치
     
    • 같은 사람이 동시에 두 가지 역할을 할 수도 있지만 다른 액터로 표현

 

  • 사건관리 시스템의 액터

 

  • 관련 액터를 그루핑
    • 소방관, 경찰관 → FieldOfficer
    • 사고처리 본부 → Dispatcher
    • 시장이나 행정관리 → 액터 X
  • 액터 찾는 방법
    • 찾음으로 써 시스템 범위, 필요한 사실을 발견

 

 

시나리오

  • 시스템을 사용할 떄 무엇을 하고 경험하는지 글로 표현한 것
  • 단일 액터의 관점
  • 구체적인 상호작용
  • 사용 사례의 인스턴스
    • 비디오 대여
  • 정의
    • 간단한 단어로 시나리오 이름 표현
  • 참여 객체 인스턴스
    • 시나리오에 참여하는 객체들과 소속 클래스
  • 사건의 흐름
    • 사건을 순서대로 기술
  • 작성에 도움이 되는 문서
    • 사용자 지침서
    • 절차를 설명한 매뉴얼
    • 회사 표준 규격
    • 사용자 노트 및 양식
    • 사용자와 인터뷰

 

유스케이스 찾기

  • 여러 개별 시나리오를 묶은 것
    • 정상적인 흐름
    • 오류, 예외 케이스
  • 시나리오로부터 유스케이스 형성
  • 개발자와 사용자가 함께 작성
  • 현재의 응용 도메인에 대하여 기술한 여러 문서 이용
  • 필요한 질문
    • 시스템이 어떤 작업을 수행하기를 액터가 원하는가?
    • 액터가 원하는 정보는 무엇인가?
    • 누가 데이터 생성? 언제 자주 일어나나?

 

포함 관계

  • 유스케이스 사이의 중복 제거
  • 어떤 유스케이스가 다른 유스케이스를 포함하는 관계

 

확장 관계

  • 유스케이스가 일정한 조건 아래 확장된 동작을 포함한다면 다른 유스케이스를 확장하는 관계
  • Ex.) 결제 과정에 멤버십이 있는 경우 할인 적용
  • 기본 유스케이스인 ‘결제’는 자체로 완전한 유스케이스

액터와 사용사례의 관계

  • 통신관계
    • 사용사례에 대한 정보 흐름
    • 구동시키는 액터
    • 사용사례와 통신하는 액터

 

  • 기본 사용 사례는 독립적으로 존재할 수 있는 stand-alone 사용 사례
  • 기본 사용 사례는 extension point에서 확장
  • 포함 관계
    • 사용 사례는 특정한 위치에 다른 사용 사례 포함 가능
    • 여러 사용 사례에 같은 이벤트 플로우가 중복되는 것을 피할 수 있음

확장 vs 포함 관계

  • 차이점
    • 관계의 방향
  • 포함관계
    • 출발 사용 사례 —→ 목표 사용 사례(구동 조건이 출발에 기록)
  • 확장관계
    • 기본 사용 사례 ←— 확장 사례
    • 확장 적용 조건이 확장 사용 사례의 시작 조건에 기록
  • 선택방법
    • 예외적이며 선택적이며 가의 발생 X → 확장
    • 두 개 이상의 사용 사례가 공유 → 포함

4.5 요구 명세

작성 방법

  • IEEE 830(현재는 ISO/IEC/IEEE 29148)
  • 사용자와 개발자간의 이해를 돕기 위함
  • Gilbert가 제안한 요구 분석서 작성시 주의사항
    • 모두가 쉽게 이해할수 있도록 씀
    • 개발자 사용자가 모두 동의
    • 목표 시스템에 의하여 수행될 모든 기능을 정확히 기술
    • 제약 조건 기술

 

 

4.6 요구 검증

요구 검증

'3학년 2학기 공부 과정 > 소프트웨어공학' 카테고리의 다른 글

06. 설계_1  (0) 2022.12.21
05. 요구 모델링  (0) 2022.12.21
03. 프로젝트 계획과 관리  (0) 2022.12.19
02. 프로세스와 방법론  (0) 2022.12.19
01. 소프트웨어 공학 개요  (0) 2022.12.16