본문 바로가기
IT License/정처기-1과목

2024 #정보처리기사 필기요약 #1-5. 요구분석/요구공학

by 시뮝 2024. 7. 5.
728x90

제 1과목 소프트웨어 설계


요구분석 기법

요구분석(Recuirements Analysis) [2022년 1회]

  • 요구분석은 도출된 요구사항 간 상충을 해결하고 소프트웨어의 범위를 파악하여 외부 환경(시스템(소프트웨어)과 상호작용을 분석하는 과정)과의 상호작용을 분석하는 과정이다. 
  • 요구분석은 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정이다.
  • 소프트웨어가 무엇을 해야 하는가를 추적하여 요구사항 명세를 작성하는 작업이다.
  • 소프트웨어 개발의 출발점이면서 실질적인 첫 번째 단계이다.

요구분석 기법

요구사항 분석을 통해서 요구사항을 기술할 때에는 요구사항 확인(Requirements Validation, 요구사항 검증), 비용 추정이 가능하도록 충분하고 정확하게 기술해야 한다.

요구사항 확인(Requirement Validation)

  • 개발 자원을 요구사항에 할당하기 전에 요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동이다.
  • 분석가가 요구사항을 정확하게 이해한 후 요구사항 명세서를 작성했는지 확인(Validation)하는 것이 필요하다.
  • 요구사항 명세서의 내용이 이해하기 쉬운지, 일관성은 있는지, 회사의 기준에는 맞는지, 그리고 누락된 기능은 없는지 등을 검증(Verication)하는 것이 중요하다.
  • 요구사항 문서는 이해관계자들이 검토해야 한다.
  • 일반적으로 요구사항 관리 도구를 이용하여 요구사항 정의 문서들에 대해 형상관리를 수행한다.
  • 요구사항 검증 과정을 통해 모든 요구사항 문제를 발견할 수는 없다. [2021년 3회]

요구사항 분석 단계 절차

순서 절차 설명
1 요구사항 분류
요구사항이 기능인지 비 기능인지 확인
요구사항이 소프트웨어에 미치는 영향의 범위를 파악
요구사항이 소프트웨어 생명주기 동안 변경이 발생하는지를 확인
하나 이상의 상위 요구사항에서 유도된 것인지 또는 이해관계자나 다른 원천으로부터 직접 발생한 것인지 분류
2 개념 모델링
생성 및 분석
요구사항을 더 쉽게 이해할 수 있도록 현실 세계의 상황을 단순화, 개념적으로 표현한 것을 모델이라고 하며, 모델링은 이러한 모델을 만드는 과정
객체 모델(Object), 데이터 모델(Data Model), 유스케이스 다이어그램(Use Case Diagram), 데이터 흐름 모델(Data Flow Model), 상태 모델(State Model), 목표기반 모델(Goal-Based Model), 사용자 인터렉션(User Interactions), 객체 모델(Object Model), 데이터 모델(Data Model)
모델링 표기는 주로 UML을 사용한다.
3 요구사항 할당 요구사항을 만족시키기 위한 아키텍처 구성요소를 식별하는 활동
다른 구성요소와 어떻게 상호작용하는지 분석을 통해 추가적인 요구사항을 발견 가능
4 요구사항 협상 두 명의 이해관계자가 서로 상충되는 내용을 요구하는 경우, 어느 한 쪽을 지지하기보다는 적절한 지점에서 합의하기 위한 기법
요구사항이 서로 충돌되는 경우 각각 우선순위를 부여하면 무엇이 더 중요한지를 인식할 수 있으므로 문제 해결에 도움이 됨
5 정형 분석 형식적으로 정의된 의미를 지닌 언어로 요구사항을 표현
구문(Syntax)과 의미(Semantics)를 갖는 정형화된 언어를 사용하여 수학적 기호로 표현
요구사항 분석의 마지막 단계에서 이루어짐

 

요구사항 분석 기술

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

 

요구사항 도출(Requirement Elicitation, 요구사항 수집)

  • 요구사항 도출은 소프트웨어가 해결해야 할 문제를 이해하는 첫 번째 단계이다.
  • 요구사항 도출 단계에서 개발자와 고객 사이의 관계가 만들어지고 이해관계자(Stakeholder)가 식별된다.
  • 요구사항 도출은 소프트웨어 개발 생명 주기(SDLC; Software Development Life Cycle) 동안 지속적으로 반복된다.

요구사항 도출 기법 [2023년 3회]

  • 사용자 인터뷰
  • 설문 조사
  • (라피도) 프로토타이핑
  • 브레인 스토밍
  • 워크샵
  • 유스케이스

도메인 분석(Domain Analysis)

요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 된다.

프로토타이핑 모형(Prototyping Model, 원형 모델)

  • 사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 견본(시제)품(Prototype)을 만들어 최종 결과물을 예측하는 모형이다.
  • 시제품은 의뢰자나 개발자 모두에게 공동의 참조 모델이 된다.
  • 시스템의 일부 혹은 시스템의 모형을 만드는 과정으로서 요구된 소프트웨어를 구현하는데, 이는 추후 구현 단계에서 사용될 골격 코드가 된다.
  • 새로운 요구사항이 도출될 때마다 이를 반영한 프로토타입을 새롭게 만들면서 소프트웨어를 구현한다. [2023년 1회, 2회]
  • 단기가 제작을 목적으로 하다보니 비효율적인 언어나 알고리즘이 사용될 수 있다.

 

요구사항 관리 도구

요구사항 관리 도구의 개념

요구사항 관리 도구는 요구사항을 기반으로 프로젝트 관리, 설계, 개발, 테스트 등을 수행할 수 있는 역할을 지원하는 도구이다.

요구사항 관리 도구의 기능

구분 기능 설명
기본 기능 프로젝트 생성 프로젝트 타입 및 기본 모듈 템플릿
프로젝트 생성 및 재사용 가능
요구사항 작성 요구사항별 고유 ID, 식별자 사용 구분
요구사항 불러오기/내보내기 .doc .xls .html 등 다양한 확장자 제공
핵심 기능 요구사항 이력 관리 요구사항별 변경 이력 관리 기능 제공
요구사항 베이스라인 요구사항 확정을 위한 베이스라인 제공
요구사항 추적성 요구사항 이력 추적 가능
부가 기능 협업 환경 요구사항 산출물의 동시편집 기능 제공
외부 인터페이스 형상 관리 도구(SVN, Git)와의 연동 지원
확장성 API 등을 통한 타 시스템 연동 제공

 

 

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

  • 모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 있다. [2022년 2회]
  • 구조적 방법론에서는 DFD, DD 등을 사용하여 요구사항의 결과를 표현한다.
  • 객체지향 방법론에서는 UML 표기법을 사용한다.
  • 소프트웨어 모델을 사용할 경우 개발될 소프트웨어에 대한 이해도 및 이해 당사자 간의 의사소통 향상에 도움이 된다.

 

자료(데이터) 흐름도(DFD; Data Flow Diagram)

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

자료 흐름도 특징

  • 구조적 분석 기법에 이용된다.
  • 데이터(Data)의 흐름에 중심을 두는 분석용 도구이다.
  • 제어(Control)의 흐름은 중요하지 않다.
  • 시간 흐름을 명확하게 표현할 수는 없다. [2020년 3회]

자료 흐름도 구성요소 [2020년 1회, 2회] [2022년 1회] [2023년 3회]

구성요소 표시 설명
처리
(
Process) 
O 자료를 변환시키는 시스템의 한 부분(처리 과정)을 나타내며 처리, 기능, 변환, 버블이라고도 함. 입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정
  • 자료 흐름은 처리를 거쳐 변환될 때마다 새로운 이름을 부여한다.
  • 어떤 처리가 출력 자료를 산출하기 위해서는 반드시 입력 자료가 발생해야 한다.
  • 상위 단계의 처리와 하위 자료 흐름도의 자료 흐름은 서로 일치되어야 한다.
데이터 흐름
(Data Flow)
DFD의 구성요소(프로세스, 데이터 저장소, 외부 엔터티)들 간의 주고받는 데이터 흐름을 나타냄
데이터 저장소
(
Data Store)
= 데이터가 저장된 장소이고, 평행선 안에는 데이터 저장소의 이름을 넣음
단말
(Terminator) 
프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타내고, 사각형 안에는 외부 엔터티의 이름을 넣음


자료 사전(DD; Data Dictionary)

  • 자료 사전은 자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전이다.
  • 메타 데이터(Meta Data)라고 한다.
  • 모든 데이터 개체들에 대한 정보를 유지, 관리하는 시스템이다.
  • 일반 사용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.
  • 자료 사전은 데이터베이스의 무결성 유지를 위해 DBMS가 스스로 생성하고 유지한다. [2023년 3회]
  • 자료 사전은 파일 혹은 데이터베이스에 있는 자료에 대한 자료 또는 각 자료 항목에 주어진 이름과 길이 그리고 서술과 같은 데이터를 포함하는 참조를 위한 작업이다.

자료 사전의 작성 목적

  • 자료 사전은 조직원에게 특정한 자료 용어의 의미를 알려주기 위하여, 용어의 정의를 조정하고 취합하고 문서로 명확히 하는 목적이 있다.
  • 자료 흐름도에 나타나는 어떤 자료의 흐름도 자료 사전에 정의되어 있어야 한다.

자료 사전 기호

기호 의미
= ~으로 구성되어 있다는 것을 나타냄 (is Composed of)
+ 자료의 연결을 나타냄 (and, along with)
( ) 자료 생략 가능함을 나타냄 [2020년 1회]
{ } 자료의 반복을 나타냄 [2020년 2회]
[ ] 자료의 선택을 나타냄 [2020년 3회]
** 자료의 설명을 나타냄, 주석(Comment)

자료 사전의 작성 원칙

작성 원칙 설명
자료의 의미 기술 주석을 통해서 기술
자료 구성항목의 기술 구성항목들을 의미 있는 이름을 부여하여 그룹으로 묶음
동의어 규정 준수 서로 다른 이름들을 갖고 있을 수 있음
용어 통일보다 자료 정의가 간단
자료 정의의 중복 제거 자료 정의 중복 제거 필요

 


요구공학(Requirements Engineering)

  • 사용자의 요구 사항에 대한 도축, 분석, 명세, 확인 및 검증하는 구조화된 활동
  • 요구공학 방법론(Requirements Engineering Methodology)은 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 방법이다.

요구공학 특징

구조적 요구분석을 하기 위해 블록 다이어그램을 채택한 자동화 도구로 SADT가 있다.

SADT(Structured Analysis and Design Technique)

SoftTech 사에서 개발한 것으로 시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위해 널리 이용되어 온 구조적 분석 및 설계 도구이다.

요구공학의 목적

  • 효과적인 의사소통 수단 제공
  • 시스템 개발의 요구사항에 대한 공통된 이해를 설정
  • 요구사항 누락 방지
  • 이해 오류로 인한 불필요한 비용 절감
  • 요구사항 변경 추적을 가능하게 함

요구사항 관리 단계(CMM Level 2 프로세스 영역) (협기변확)

순서 절차 기법/산출물
1 요구사항  우선순위 설정, 시물레이션
2 요구사항 준선 설정 공식 회의, 형상 관리
3 요구사항 경관리 형상통제 위원회, 영향도 분석
4 요구사항 인 및 검증 확인 및 검증

요구사항 개발 단계(CMM Level 3 프로세스 영역) (도분명확) [2021년 2회]

순서 절차 내용
1 요구사항  문제 이해, 정보 식별, 수집 방법 결정
2 요구사항  요구사항 분석 활동
3 요구사항  문서 작성 단계
4 요구사항 인 및 검증 확인(Validation), 검증(Verfication) 단계

 

1. 요구사항 

요구사항 도출 단계의 주요 기법 [2020년 3회]

  • 인터뷰(Interview)
  • 브레인 스토밍(Brainstorming)
  • 델파이 기법(Delphi Method)
  • 롤 플레잉(Role Playing)
  • 워크숍(Workshop)
  • 설문조사(Survey)

 

2. 요구사항 [2020년 1회]

추출된 요구사항에 대해 충돌, 중복, 누락등의 분석을 통해 완전성과 일관성을 확보하는 단계

  • 비용과 일정에 대한 제약설정
  • 타당성 조사
  • 요구사항 정의 문서화

요구사항 분석 단계 기법

  • 자료 흐름 지향 분석
  • 객체지향 분석

요구사항 분석 단계 절차

순서 절차 설명
1 요구사항 분류 영향 범위 파악, 분류
2 개념 모델링 생성 및 분석 모델링 표기는 주로 UML을 사용
3 요구사항 할당 아키텍처 구성요소 식별
4 요구사항 협상 요구사항 충돌 시 우선순위 부여를 통한 문제 해결
5 정형 분석 구문(Syntax)과 의미(Semantics)를 갖는 정형화된 언어를 사용하여 수학적으로 표현

 

3. 요구사항 

요구사항 명세 단계의 주요 기법 [2020년 3회, 4회]

주요 기법 설명
비정형 명세 기법 사용자의 요구를 표현할 때 자연어를 기반으로 서술
사용자와 개발자의 이해가 용이
명확성 및 검증에 문제 발생 가능
정형 명세 기법 사용자의 요구를 표현할 때 수학적인 원리와 표기법을 이용
정형 명세 언어인 Z-스키마, Petri Nets, 상태 차트 활용
표현 간결, 명확성 및 검증 용이
기법 이해 어려움

요구사항 명세 원리 및 검증 항목 (명완검 일수 추개)

확성 / 전성 / 증 가능성 / 관성 / 정 용이성 / 적 가능성 / 발 후 이용성

 

4. 요구사항 확인 및 검증

요구사항 확인 및 검증 절차

순서 절차
1 요구사항 목록 확인
2 요구사항 정의서 작성 여부 확인
3 비기능적 요구사항의 확인
4 타 시스템 연계 및 인터페이스 요구사항 확인

요구사항 확인 및 검증 단계의 주요 기법

주요 기법 설명
요구사항 검토 시스템 정의서, 시스템 사양서, 소프트웨어 요구사항 명세서를 완성한 시점에서 검토
정형 기술 검토 활용
(동워인)
료 검토(Peer Review)
- 2~3명이 리뷰 진행
- 요구사항 명세서 작성자가 명세서 내용을 직접 설명하고 동료들이 이를 들으면서 결함을 발견하는 형태의 검토 방법
크스루(Walkthrough)
- 오류 조기 검출 목적, 짧은 회의 리뷰로 오류를 검출하고 문서화
- 사용 사례를 확장하여 명세하거나 설계 다이어그램, 원시 코드, 테스트 케이스 등에 적용할 수 있다.
- 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용하다.
- 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것이다.
[2020년 1회]  [2022년 3회]
스펙션(Inspection)
- 워크 스루를 발전시킨 형태로, 소프트웨어 개발 단계에서 산출된 결과물의 품질을 평가하고 이를 개선하기 위한 방법 등을 제시
- 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견하는 형태의 검토 방법
프로토타이핑 활용 일부분 개발 후 요구사항 확인
모델 검증 객체들 사이의 의사소통 경로를 검증하기 위한 정적 분석 수행에 유용
테스트 케이스 및
테스트를 통한 확인
인수 테스트에는 알파 테스트와 베타 테스트가 있음
CASE 도구 활용 검증 구조화된 요구사항 명세서에 대해서는 자동화된 일관성 분석을 제공하는 CASE 도구 활용 가능
베이스라인
(Baseline)을 통한 검증
요구사항 지속적 검증 수행
요구사항 추적표
통한 검증
최종 산출물 반영 결과 확인 문서

*요구사항 추적표 (
RTM; Requirement 
Traceability Matrix)

 


CASE(Computer Aided Software Engineering, 분석 자동화 도구)

CASE의 특징 [2020년 2회] [2021년 1회] [2023년 2회, 3회]

  • 표준화 적용과 문서화를 통한 보고를 통해 품질 개선이 가능하다.
  • 변경사항과 변경으로 인한 영향에 대한 추적이 쉽다.
  • 명세에 대한 유지보수 비용의 축소가 가능하다.
  • 소프트웨어 모듈의 재사용성이 향상된다.
  • 자동화된 기법을 통해 소프트웨어 품질이 향상된다.
  • 소프트웨어 유지보수를 간편하게 수행할 수 있다.
  • 소프트웨어의 생산성이 향상된다.
  • 객체지향 시스템, 구조적 시스템 등 다양한 시스템에서 활용되는 자동화 도구이다.

CASE의 주요 기능 [2020년 1회] [2021년 1회]

  • 그래픽을 지원한다.
  • 소프트웨어 생명주기의 전 단계를 연결한다.
  • 다양한 소프트웨어 개발 모형을 지원한다.
  • 표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다.
  • 작업 과정 및 데이터 공유를 통해 작업자 간의 커뮤니케이션을 증대한다.

CASE의 원천 기술 [2021년 2회]

  • 구조적 기법
  • 프로토타이핑 기술
  • 응용 프로그래밍 기술
  • 정보 저장소 기술
  • 분산처리 기술

CASE의 분류

분석 자동화 도구 설명
상위 CASE (Upper CASE)
[2021년 2회]
계획수립, 요구분석, 기본설계 단계를 다이어그램으로 표현
모델들 사이의 모순 검사 기능
모델의 오류 검증 기능
자료흐름도 작성 기능
하위 CASE (Lower CASE)
구문 중심 편집 지원
정적,동적 테스트 지원
시스템 명세서 생성 지원
소스 코드 생성 지원
통합 CASE (Integrated CASE) SW 개발 주기 전체를 지원

 

728x90

댓글