[1권] 2. 요구사항 확인

jyoon·2021년 3월 9일

[요구사항]

sw가 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건등을 나타냄. 개발에 참여하는 이해관계자 들의 의사소통을 원활하게 도와줌

요구사항 유형 : 기능, 비기능, 시스템, 사용자

[요구사항 개발 프로세스]

도출 elicitation - 요구사항 수집, 효율적인 의사소통이 중요, SDLC 동안 반복

		ex) 인터뷰, 설문, 브레인스토밍, 워크샵, 유스케이스, 프로토타이핑 

분석 analysis - 이해되지 않는 부분을 발견하고 걸러냄, 타당성 조사

명세 specification - 요구사항을 분석 후, 문서화

확인 vaildation - 요구사항 명세서가 정확하고 완전하게 작성되었는지 검토

[UML]

시스템 개발자와 고객간의 의사소통 원활을 위해 표준화 한 대표적인 객체지향 모델링 언어

구성요소 : 사물, 관계, 다이어그램

  1. 사물 - 구조사물(클래스, 유스케이스, 컴포넌트), 행동사물, 그룹사물(패키지), 주해사물(노드)

  2. 관계 (직접그리기)
    (1) 연관

     
    (2) 집합

     
    (3) 포함

     
    (4) 일반화

     
    (5) 의존

     
    (6) 실체화
     

  3. 다이어그램
    1) 구조적 다이어그램
       클래스 - 속성, 클래스 사이의 관계 표현, 시스템 구조 파악 후 구조상의 문제점 도출 가능
       객체 - 인스턴스를 특정 시점의 객체와 객체사이의 관계로 표현
       컴포넌트 - 컴포넌트간의 인터페이스를 표현, 구현단계에서 사용
       배치 - 물리적 요소들의 위치를 표현, 구현 단계에서 사용
       복합체구조
       패키지
    2) 행위 다이어그램
      유스케이스 - 사용자의 요구를 분석, 모델링 작업에 사용
      시퀀스 - 객체들이 주고받는 메시지를 표현
      커뮤니케이션 - 객체들이 주고받는 메시지 표현, 객체들간의 연관까지 표현
      상태 - 클래스의 상태변화 혹은 다른객체와의 상호작용에 따라 상태변화를 표현
      활동 - 시스템이 어떤기능을 수행하는지 객체의 조건에 따른 처리의 흐름을 순서에 따라 표현
      상호작용 개요
      타이밍

[유스케이스 다이어그램]

사용자와 외부시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자 관점에서 표현한 것

외부요소와 시스템간의 상호작용 확인가능 / 요구사항 분석 / 시스템 범위 파악

  • 기능모델링
    사용자의 요구사항을 분석해 개발될 시스템이 갖춰야 할 기능을 정리 후 사용자와 공유위해 표현

유스케이스 구성요소
  시스템, 시스템 범위 - 내부,외부 구분위해 사각형으로 묶어 시스템범위 표시
  액터 - 이름 구체적 x
   ex) 주액터 : 이득을 얻는 대상, 주로 사람, 시스템의 왼쪽
       부액터 - 시스템에 거비스를 제공하는 외부시스템
  유스케이스 - 사용자가 보는 관점에서 액터에게 제공하는 서비스 또는 기능을 표현한 것, 타원으로 표현
  관계 - (포함 include , 확장 extends : 특정 조건에 부합해 기능이 확장)

[활동 다이어그램]

사용자의 관점에서 시스템이 수행하는 기능을 처리흐름에 따라 표현, 하나의 유스케이스 안에서 발생하는 복잡한 처리의 흐름을 명확하게 표현

구성요소
  액션 - 더이상 분해 X
  액티비티 - 몇 개의 액션으로 분리 O
  제어흐름 - 흐름을 표현
  노드 - 시작, 종료, 조건판단, 병합, 포크, 조인
  스윔레인 - 액티비티 수행을 담당하는 주체를 구분

[클래스 다이어그램]

시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 속성과 오퍼레이션에 대한 제약조건, 클래스 사이의 관계를 표현한 것 / 시스템 구성요소를 문서화 하는데 사용

  • 정적 모델링 - 사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적인 구조를 추상화해 표현
      ex) 클래스 다이어그램

클래스는 각각 객체들이 갖는 속성과 오퍼레이션(동작)을 표현한다.
  이름 - 반드시 명시
  속성 - 클래스의 상태나 정보 표현
  오퍼레이션 - 함수

접근제어자 - public(+) / private(-) / protected(#) / package(~)
제약조건 - 중괄호{} 이용
관계 - 연관. 집합, 포함, 일반화(extends), 의존

[시퀀스 다이어그램]

시스템이나 객체들이 메세지를 주고 받으며 시간 흐름에 따라 상호작용하는 과정을 그림으로 표현

  • 동적 모델링 - 시스템의 내부 구성요소들의 상태가 시간에 흐름에 따라 변화하는 과정과 발생하는 상호작용을 표현, 메시지 표현

구성요소
  액터 - 시스템으로 부터 서비스를 요청하는 외부요소
  객체 - 메세지를 주고받는 주체, 콜론(:)을 기준으로 앞쪽은 객체명 뒤쪽은 클래스명
  라이프라인 - 객체가 메모리에 존재하는 기간, 객체소멸(X)이 표시된 기간까지 존재
  활성상자 - 객체가 메세지를 주고받으며 구동되고 있음을 표현, 라이프라인 상에 겹쳐 직사각형 형태로 표현
  메세지 - 동기, 비동기, 생성, 응답
  객체소멸 - 마지막에 X로 표현
  프레임 - 왼쪽위에 다이어그램의 종류와 제목을 표기

[커뮤니케이션 다이어그램]

시스템이나 객체들이 메세지를 주고 받으며 시간 흐름에 따라 상호작용하는 과정을 그림으로 표현, 메세지 뿐만 아니라 객체들간 관계까지 표현

구성요소
  액터 - 시스템으로 부터 서비스를 요청하는 외부요소
  객체 - 메시지를 주고받는 객체
  링크 - 객체들간 관계표현, 실선사용, 링크에 메세지를 표현
  메세지

[상태 다이어그램]

객체들 사이에서 발생하는 이벤트에 의한 상태변화를 표현, 상태변환을 확인 해야하는 객체만 그림

구성요소
  상태 - 객체의 상태 표현
  시작 상태
  종료 상태
  상태전환 - 화살표에 이벤트를 표현
  이벤트 - 상태에 변화를 주는 현상, 조건, 외부신호, 시간의 흐름 등이 있다
  프레임 - 범위를 표현

0개의 댓글