[Engineering] 요구사항 정의 #1
요구사항 정의
고객이 SW에 기대하는 기능 및 특징에 대한 요구를 도출해 명세(Specification)∙검증(Verification)∙확인(Validation)하는 활동
고객의 SW에 대한 요구에 따라 Use-Case 모델링을 한다. (건축에서도 건축짓기 전에 모델링하듯이 IT는 고객의 요구에 따라 모델링 함)
그러면 Use-Case 모델링을 어떤 식으로 표현할거냐에 대한 표준이 있어야 되겠지? 그게 바로 Use-Case Diagram !!
요구사항은 크게 2가지로 나뉜다.
- 기능적 요구사항 : 사용자 관점에서 사용될 직접적인 기능에 대한 정의
- 비기능적 요구사항 : 품질(성능, 신뢰성, 보안성, 안전성, 가용성)과 제약(개발 방법, 플랫폼 등)에 관해 정의
결론적으로 요구사항 정의 단계에서 해야할 사항과 그에 대한 산출물은 다음과 같다.
위 표에 나와있듯이, 요구사항 정의 단계에서는 순차적으로 총 4가지를 해야한다.
- Use-Case 모델 작성하기
- Use-Case 모델 작성한걸 토대로 상세화하기
- 작성한 Use-Case 모델을 구조화하기
- 구조화한 Use-Case 모델을 조직화하기
Use-Case 모델 작성하는 거부터 정리해보자
Use-Case 모델 작성 ( Use-Case Diagram 그리기 )
Use-Case Diagram을 이용해 Use-Case 모델링을 한다고 했다.
자, 그러면 고객의 요구를 어떻게 Use-Case Diagram으로 나타낼까? (이거 나도 헷갈림..)
Use-Case Diagram은 크게 2가지 개념만 알면된다.
- 액터 (Actor)
- 유스케이스 (Use-Case)
간단한 예제를 통해 위 2가지 개념을 알아보자
참고로 나는 StarUML 도구를 사용해 Use-Case Diagram을 그렸다. (학교에서 이걸로 실습했기 때문)
위에서 졸라맨 그림을 Actor라고 부른다. ( 되게 중요한 개념임 )
Actor는 시스템과 상호작용하는 시스템 외부의 존재를 나타낸다 ! ( 이 존재는 사람이 될수도 있고, 시스템 | 장치가 될 수도 있음 )
즉, 개발 대상 시스템에 입력을 주는 존재와 개발 대상 시스템의 출력을 받는 존재를 Actor로 나타냄
위의 Use-Case Diagram을 보면 SMS전송시스템을 학생과 마찬가지로 졸라맨(Actor)으로 표현했는데,
Actor는 개발될 시스템의 외부 대상이기 때문 !!
Actor의 유형은 크게 3가지로 나뉜다.
- 사용자 : 시스템에 입력을 주거나 시스템의 실행 결과를 수신하는 사람 (학생, 사서 등)
- 외부 시스템 : 개발 대상이 되는 시스템과 상호작용(입출력)을 하는 타 시스템
- 장치 : 개발 대상 시스템에서 입출력을 위해 사용되는 장치. (엘리베이터를 예로 들면 모터, 도착센서, 문 같은 것들 ?)
그러면 모든 Actor는 다 졸라맨으로 나타내면 되냐? 그건 아님.
위 3가지 유형 중에서 사용자, 외부 시스템 유형은 항상 졸라맨으로 나타내면되지만,
장치 유형은 해당 장치가 일반적으로 지원되는 장치라면(모니터, 키보드, 프린터 같은 것들?) 졸라맨이 아니라 지원되는 해당 장치 이미지를 그대로 사용한다 !
그러면 이제 Use-Case에 대해 알아보자
Use-Case는 개발 대상이 되는 시스템이 제공하는 개별적인 기능을 뜻함 !
위 예에서 동그라미로 포현된게 Use-Case다. ( 도서대출신청, 신착도서등록 )
즉, Use-Case Diagram은 Actor와 Use-Case간의 연관 관계를 이용하여 나타내는 것 !
'Software Engineering' 카테고리의 다른 글
[Engineering] 소프트웨어 설계 (0) | 2019.12.18 |
---|---|
[Engineering] 요구사항 정의 #2 (0) | 2019.12.18 |
[Engineering] UML - 모델링 언어 (0) | 2019.12.10 |
소프트웨어 개발 계획 - 인력 계획 (0) | 2019.10.22 |
소프트웨어 개발 계획 - 일정 계획 (4) | 2019.10.22 |
댓글
이 글 공유하기
다른 글
-
[Engineering] 소프트웨어 설계
[Engineering] 소프트웨어 설계
2019.12.18 -
[Engineering] 요구사항 정의 #2
[Engineering] 요구사항 정의 #2
2019.12.18 -
[Engineering] UML - 모델링 언어
[Engineering] UML - 모델링 언어
2019.12.10 -
소프트웨어 개발 계획 - 인력 계획
소프트웨어 개발 계획 - 인력 계획
2019.10.22