소프트웨어 설계 - 요구분석기법 (UML)
#요구사항 확인 1 - 요구분석 기법
■ 요구분석(Requirements Analysis)
- 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계
- 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해가 되지 않는 부분을 발견하고 이를 걸러내기 위한 과정
- 실제적인 첫단계로 사용자의 요구에 대해 이해하는 단계
- 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용
- 개발 비용이 가장 많이 소요되는 단계가 아님
- (개발 비용이 가장 많이 소요되는 단계: 유지보수)
- UML과 애자일 방법론을 사용해 요구사항 모델링함
■ 요구사항 분석 기술
- 청취 기술
- 인터뷰와 질문 기술
- 분석 기술
- 중재 기술
- 관찰 기술
- 작성 기술
- 조직 기술
- 모델작성 기술
■ 모델링 기법
1. 데이터 흐름도 (DFD; Data Flow Diagram)
- 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림
- 시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램
- 가장 보편적으로 사용되는 것 중 하나
- = 자료 흐름 그래프 또는 버블(Bubble) 차트
- 구조적 분석 기법에 이용
- 데이터 흐름에 중심을 둔 분석용 도구
- 시간의 흐름을 명확하게 표현할 수는 없음
구성요소
@프플스터
구분 | 표기 |
---|---|
처리기 (Process) | 원 ○ |
데이터 흐름(Data Flow) | 화살표 → |
데이터 저장소(Data Store) | 평행선 = |
단말(Terminator) | 사각형 □ |
자료 사전 (DD; Data Dictionary)
- 특정 자료 용어가 무엇을 의미하는지 알려주기 위하여, 용어의 정의를 조정·취합하고 문서로 명확히 하는 목적이 있음
자료 사전 기호
기호 | 설명 |
---|---|
= | 자료 정의 |
+ | 자료 연결 |
( ) | 생략 가능함 |
{ } | 반복 |
[ ] | 선택 |
** | 주석 |
■ 요구사항 분석이 어려운 이유
- 개발자와 사용자 간의 지식이나 표현의 차이가 크기 때문
- 사용자의 요구사항이 모호하고 불명확하기 때문
- 개발 과정 중에 요구사항이 계속 변할 수 있기 때문
- 사용자의 요구에는 예외가 많아 열거와 구조화가 어렵기 때문
★★★ UML (Unified Modeling Language)
- 객체 지향 소프트웨어 개발 과정에서 산출물을 통합하여 만든 표준화된 범용 언어
- 소프트웨어 설계 시 현장에서 가장 많이 사용되는 모델링 기법
■ UML 언어의 특징
@가구명문
- 가시화 언어
- 구축 언어
- 명세화 언어
- 문서화 언어
■ UML 구성요소
@사관다
- 사물 (Things)
- 관계 (Relationships)
- 다이어그램 (Diagrams)
■ UML 다이어그램 (★★★)
구조적 / 정적 다이어그램
@클객컴배복패
- 클래스 (Class)
- 객체 (Object)
- 컴포넌트 (Component)
- 배치 (Deployment)
- 복합체구조 (Composite Structure)
- 패키지 (Package)
■ 클래스 다이어그램(Class Diagram)
- 클래스 속성 사이의 관계를 표현
- 클래스 이름, 속성, 연산, 접근제어자(=접근 제한자)로 구성
행위적 / 동적 다이어그램
@유시커상활타
- 유스케이스 (Usecase)
- 시퀀스 (Sequence)
- 커뮤니케이션 (Communication)
- 상태 (State)
- 활동 (Activity)
- 타이밍 (Timing)
■ 유스케이스 다이어그램(Usecase Diagram)
- 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자 관점에서 표현하는 다이어그램
- 유스케이스, 액터, 시스템으로 구성
- 구성요소간의 관계에는 연관관계(Association), 포함관계(Include), 확장관계(Extend), 일반화관계(Generalization)가 있음
■ 시퀀스 다이어그램(Sequence Diagram)
- 메세지 흐름을 표현한 다이어그램
- 순차 다이어그램이라고도 함
- 객체, 생명선, 실행, 메세지, 회귀메세지로 구성
■ 상태 다이어그램(State Diagram)
- 클래스의 상태 변화 혹은 다른 객체의 상호작용에 따라 상태가 어떻게 변화하는지 표현하는 다이어그램
- 상태, 시작 상태, 종료 상태, 전이, 이벤트, 전이 조건으로 구성
UML 관계 (Relationships)
@연의 일실 포집
구분 | 표기 |
---|---|
연관 관계 | 실선 방향성: 화살표 (양방향일 경우 화살표 생략) |
의존 관계 | 점선 화살표 |
일반화 관계 | 속이 빈 화살표 |
실체화 관계 | 속이 빈 점선 화살표 |
포함 관계 | 포함되는 부분에서 포함하는 쪽으로 속이 채워진 마름모를 연결 |
집합 관계 | 포함되는 부분에서 포함하는 쪽으로 속이 빈 마름모를 연결 |
UML 확장 모델 - 스테레오 타입(Stereotype)
- 새로운 요소를 만들어 내기 위한 확장 메커니즘
- « » (길러멧; Guillemet) 기호를 사용하여 표현
<<include>>
,<<extend>>
,<<interface>>
,<<entity>>
,<<boundary>>
,<<control>>
This post is licensed under CC BY 4.0 by the author.