Post

소프트웨어 설계 - 요구분석기법 (UML)

#요구사항 확인 1 - 요구분석 기법

■ 요구분석(Requirements Analysis)

  • 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계
  • 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해가 되지 않는 부분을 발견하고 이를 걸러내기 위한 과정
  • 실제적인 첫단계로 사용자의 요구에 대해 이해하는 단계
  • 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용
  • 개발 비용이 가장 많이 소요되는 단계가 아님
    • (개발 비용이 가장 많이 소요되는 단계: 유지보수)
  • UML과 애자일 방법론을 사용해 요구사항 모델링함

■ 요구사항 분석 기술

  • 청취 기술
  • 인터뷰와 질문 기술
  • 분석 기술
  • 중재 기술
  • 관찰 기술
  • 작성 기술
  • 조직 기술
  • 모델작성 기술

■ 모델링 기법

1. 데이터 흐름도 (DFD; Data Flow Diagram)

  • 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림
  • 시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램
  • 가장 보편적으로 사용되는 것 중 하나
  • = 자료 흐름 그래프 또는 버블(Bubble) 차트
  • 구조적 분석 기법에 이용
  • 데이터 흐름에 중심을 둔 분석용 도구
  • 시간의 흐름을 명확하게 표현할 수는 없음

구성요소

@프플스터

구분표기
처리기 (Process)원 ○
데이터 흐름(Data Flow)화살표 →
데이터 저장소(Data Store)평행선 =
단말(Terminator)사각형 □

자료 사전 (DD; Data Dictionary)

  • 특정 자료 용어가 무엇을 의미하는지 알려주기 위하여, 용어의 정의를 조정·취합하고 문서로 명확히 하는 목적이 있음

자료 사전 기호

기호설명
=자료 정의
+자료 연결
( )생략 가능함
{ }반복
[ ]선택
**주석

■ 요구사항 분석이 어려운 이유

  1. 개발자와 사용자 간의 지식이나 표현의 차이가 크기 때문
  2. 사용자의 요구사항이 모호하고 불명확하기 때문
  3. 개발 과정 중에 요구사항이 계속 변할 수 있기 때문
  4. 사용자의 요구에는 예외가 많아 열거와 구조화가 어렵기 때문

★★★ 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.