컴공생의 다이어리

[정보처리기사] 소프트웨어 설계 - 요구사항 확인 - ② 요구 사항 확인 본문

자격증/정보처리기사

[정보처리기사] 소프트웨어 설계 - 요구사항 확인 - ② 요구 사항 확인

컴공 K 2021. 1. 28. 00:36

1. 소프트웨어 설계 - 01. 요구사항 확인

② 요구 사항 확인

(1) 요구분석(Requirements Analysis) 기법

A. 요구분석이란?

  • 도출된 요구사항 간 상충을 해결하고 소프트웨어의 범위를 파악하여 외부 환경(하드웨어, 소프트웨어, 네트워크 등의 환경)과의 상호작용을 분석하는 과정
  • 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정

 

B. 요구분석의 특징

  • 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용 가능
  • 보다 구체적인 명세를 위해 소단위 명세서 활용 가능
  • 개발 비용이 가장 많이 소요되는 단계는 X

 

C. 요구분석 기법

순서 절차
1 요구사항 분류
2 개념 모델링 생성 및 분석
3 요구사항 할당
4 요구사항 협상
5 정형 분석

 

D. 요구사항 분석 기술

분석 기술 설명
청취 기술 이해관게자로부터 의견을 듣는 기술
인터뷰와 질문 기술 이해관계자를 만나 정보를 수집하고 이야기를 나누는 기술
분석 기술 추출된 요구사항에 대해 충돌, 정복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 기술
중재 기술 이해관계자들의 상반된 요구에 대한 중재기술
관찰 기술 사용자가 작업하는 것을 관찰하면서 사용자가 언급하지 않은 미묘한 의미를 탐지할 수 있는 기술
작성 기술 문서 작성 기술
조직 기술 수집된 방대한 정보를 일관성 있는 정보로 구조화하는 능력
모델 작성 기술 수집한 자료를 바탕으로 제어의 흐름, 기능 처리, 동작 행위, 정보 내용 등을 이해하기 쉽도록 모델로 작성하는 기술

 

 

E. 요구사항 분석에 사용하는 기능 모델링 기법

a. 데이터 흐름도(DFD, Data Flow Diagram)

 ㉮. 데이터 흐름도란?

    • 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림
    • 시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램
    • 데이터 흐름도는 시스템의 모델링 도구로서 가장 보편적으로 사용되는 것 중의 하나
    • 자료 흐름 그래프 또는 버블 차트라고 함

 

 ㉯. 데이터 흐름도 특징

  • 구조적 분석 기법에 이용
  • 데이터의 흐름에 중심을 두는 분석용 도구
  • 제어의 흐름은 중요 X
  • 시간 흐름을 명확하게 표현 X

 

 ㉰. 데이터 흐름도 구성요소

구성요소 설명
처리기
(Process)
입력된 데이터를 원하는 형태로 변환해 출력하기 위한 과정
DFD에서는 원(○)으로 표시
데이터 흐름
(Data Flow)
DFD의 구성요소(프로세스, 데이터 저장소, 외부 엔터티)들 간의 주고 받는 데이터 흐름을 나타냄
DFD에서는 화살표(→)로 표시
데이터 저장소
(Data Store)
데이터가 저장된 장소
DFD에서는 평행선(=)으로 표시하며, 평행선 안에는 데이터 저장소의 이름을 넣음
단말
(Terminator)
프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타냄
사각형(□)으로 표시하며, 사각형 안에는 외부 엔터티의 이름을 넣음

 

b. 자료 사전(DD, Data Dictionary)

 ㉮. 자료 사전이란?

  • 자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전
  • 파일 혹은 데이터베이스에 있는 자료에 대한 자료 또는 각 자료 항목에 주어진 이름과 길이 그리고 서술과 같은 데이터를 포함하는 참조를 위한 작업

 

 ㉯. 자료 사전의 작성 목적

  • 조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지를 알려주기 위해, 용어의 정의를 조정하고 취합하고 문서로 명확히 하는 목적
  • 자료 흐름도에 나타나는 어떤 자료의 흐름도 자료 사전에 정의되어 있어야 함

 

 ㉰. 자료 사전 기호

기호 의미
= 자료의 정의로서 '~으로 구성되어 있다'는 것을 나타냄
정의는 주석을 사용하여 의미를 기술, 자료 흐름과 자료저장소에 대한 구성 내역을 설명하고, 자료 원소에 대하여 값이나 단위를 나타냄
+ 자료의 연결(and, along with)을 나타냄
( ) 자료 생략 가능함을 나타냄
{ } 자료의 반복을 나타냄
반복 횟수를 기록하는 데 { }에서 좌측에는 최소 반복 횟수를 기록하고, 우측에는 최대 반복 횟수를 기록
반복 횟수를 기록하지 않을 때는 디폴트로 최소는 0, 최대는 무한대를 나타냄
[ ] 자료의 선택을 나타냄
택일 기호 [ | ]는 '|'로 분리된 항목 중 하나가 선택된다는 것을 표시
** 자료의 설명을 나타냄
주석

 

 

(2) UML(Unified Modeling Language)

A. UML이란?

  • 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어

 

B. UML의 특징

특징 설명
가시화 언어 개념 모델 작성 시 오류가 적고 의사소통이 용이
구축 언어 다양한 프로그래밍 언어로 실행 시스템의 예측 가능
UML을 소스 코드로 변환하여 구축 가능, 역 변환하여 역공학 가능
명세화 언어 정확한 모델 제시, 완전한 모델 작성 가능
문서화 언어 시스템에 대한 평가 및 의사소통의 문서

 

C. UML 구성요소

구성요소
사물
(Things)
관계
(Relationships)
다이어그램
(Diagrams)

 

D. UML 다이어그램

구분 다이어그램 설명
구조적(정적)
다이어그램
클래스
(class)
시스템 내 클래스의 정적 구조를 표현
속성과 동작으로 구성
시스템의 구조를 파악하고 구조상의 문제점 도출 가능
객체
(object)
클래스에 속한 객체들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
객체 인스턴스를 나타내는 대신 실제 클래스를 사용
연관된 모든 인스턴스를 표현
컴포넌트
(componet)
코드 컴포넌트 기반의 물리적 구조표현
실질적 프로그래밍 작업에 사용
배치
(deployment)
컴포넌트 사이의 종속성을 표현
결과물, 프로세스, 컴포넌트 등 물리적 욧들의 위치를 표현
복합체 구조
(composite structure)
클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
패키지
(package)
유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현
행위적(동적)
다이어그램
유스케이스
(usecase)
사용자 관점에서 시스템의 활동을 표현
유스케이스는 시스템의 기능적 요구 정의에 활용
시퀀스
(sequence)
객체 간 상호작용을 메시지 흐름으로 표현
객체 사이 메시지를 보내는 시간을 표현
커뮤니케이션
(communication)
시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고 받는 메시지를 표현하는데, 메시지뿐만 아니라 객체 간의 연관까지 표현
상태
(state)
하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현
모든 가능한 상태와 전이를 표현
진입 조건, 탈출 조건, 상태 전이 등 기술
활동
(activity)
시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현
활동의 순서대로 흐름을 표현
타이밍
(timing)
객체 상태 변화와 시간 제약을 명시적으로 표현

(컴포넌트와 배치 다이어그램은 구현 단계에서 사용되는 다이어그램)

 

E. UML 상세

a. 클래스 다이어그램(Class Diagram)

 ㉮. 클래스 다이어그램이란?

  • 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램

 

 ㉯. 클래스 다이어그램 구성요소

구성요소 설명
클래스 이름
(class name)
클래스의 이름
속성
(attribute)
클래스의 특징에 이름을 부여
연산
(operation)
객체에 요청하여 행동에 영향을 줄 수 있는 서비스
접근 제어자
(access modifier)
클래스에 접근할 수 있는 정도를 표현
 -  : 클래스 내부접근만 허용 -> private
 + : 클래스 외부접근을 허용 -> public
 # : 동일 패키지 및 파생클래스에서 접근 가능 -> protected
 ~ : 동일 패키지 클래스에서 접근 가능 -> default

예시

Player는 클래스 이름 moveSpeed, moveDir, targetPosition은 속성, Move()와 TraceTarget()은 연산이다.

속성과 연산을 접근제어자로 보면 moveSpeed와 TraceTarget()은 public, moveDir과 Move()는 private, targetPosition은 protected이다.

 

b. 유스케이스 다이어그램(Usecase Diagram)

 ㉮. 유스케이스 다이어그램이란?

  • 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램

 

 ㉯. 유스케이스 다이어그램 구성요소

구성요소 설명 표기법
유스케이스
(Usecase)
시스템이 제공해야 하는 서비스
액터가 시스템을 통해 수행하는 일련의 행위
액터
(Actor)
사용자가 시스템에 대해 수행하는 역할
시스템과 상호작용하는 사람 또는 사물
시스템
(System)
전체 시스템의 영역을 표현

 

c. 시퀀스 다이어그램(Sequence Diagram)

 ㉮. 시퀀스 다이어그램이란?

  • 객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램

 

 ㉯. 시퀀스 다이어그램 구성요소

구성요소 설명 표기법
객체
(Object)
객체는 위쪽에 표시되며 아래로 생명선을 가짐
객체는 사각형 안에 이름으로 명시
생명선
(Lifeline)
객체로부터 뻗어 나가는 점선
실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트를 명시
실행
(Activation)
직사각형은 함수가 실행되는 시간을 의미

 

직사각형이 길어질수록 함수 수행시간이 긺
메시지
(Message)
객체 간의 상호작용은 메시지 교환으로 이루어짐
한 객체에서 다른 객체로의 메시지를 전달하여 전달받은 객체의 함수를 수행

 

 

F. UML 확장 모델의 스테레오 타입

  • UML의 스테레오 타입은 UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘
  • 형태는 기존의 UML의 요소를 그대로 사용, but 내부 의미는 다른 목적으로 사용하도록 확장
  • UML의 스테레오 타입은 "<< >>" 기호를 사용하여 표현

 

 

 

ehpub.co.kr/tag/%EC%9E%90%EB%A3%8C-%ED%9D%90%EB%A6%84%EB%8F%84data-flow-diagram/

 

자료 흐름도(Data Flow Diagram) – 언제나 휴일

이번에는 정보처리기사 필기 과목인 소프트웨어 공학의 요구 분석을 살펴보아요. 요구 분석 이해관계자의 요구 사항을 분석하여 문서화하는 활동 소프트웨어 개발 첫 단계 소프트웨어 분석가

ehpub.co.kr

thinking-jmini.tistory.com/26

 

Class Diagram (클래스 다이어그램) - Basic

Class Diagram은 UML의 구조 다이어그램으로서 클래스 내부 구성 요소 및 클래스 간의 관계를 도식화하여 시스템의 특정 모듈이나 일부 또는 전체 구조를 나타낸다. 1. 목적 개념 기술 Class Diagram을 통

thinking-jmini.tistory.com

morm.tistory.com/88

 

UML 클래스 다이어그램 이해하기

[UML] 클래스 다이어그램 작성법 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io UML 클래스 다이어그램 기본상식 ( C# ) 본격적인 GOF의 디자인 패턴을 분석하기 전에, GOF의 디..

morm.tistory.com

googry.tistory.com/2

 

(UML) 유스케이스 다이어그램 - Usecase Diagram

유스케이스 다이어그램 시스템과 사용자의 상호작용을 다이어그램으로 표현한 것으로 사용자의 관점에서 시스템의 서비스 혹은 기능 및 그와 관련한 외부 요소를 보여주는 것이다. 사용자가

googry.tistory.com

www.aladin.co.kr/shop/wproduct.aspx?ItemId=258036320

 

2021 수제비 정보처리기사 필기 (1권+2권 합본세트) 2020년 기출 문제 수록

IT 비전공자를 위해 만들어진 수험서다. IT 분야의 최고 전문가 집단의 오랜 연구를 통한 정보처리기사 합격까지의 최단기 솔루션을 제안한다. 중요도에 따른 별점 체크, 두음쌤을 통한 암기비법

www.aladin.co.kr

 

728x90
Comments