요구사항 확인

1. 요구공학 (Requirements Engineering)

  • 소프트웨어 개발의 기초가 되는 요구사항을 정의, 문서화, 관리하는 프로세스
  • 관계자 간 소통 효율성 향상, 비용 절감
  • 요구사항 변경 추적 가능 및 손실 최소화

1. 요구공학 프로세스 단계

  • 도출 (Elicitation): 요구사항 수집
  • 분석 (Analysis): 분류, 모델링, 협상
  • 명세 (Specification): 시스템 정의 및 명세서 작성
  • 검증 (Validation): 테스트로 요구사항 점검

2. 요구사항 관리 도구

  • 요구사항 정의 및 변경 관리를 위한 도구

  1. 주요 기능
  • 변경 영향 분석 및 비용 편의성 제공
  • 변경 이력 추적 가능
  • 조직적 관리 및 우선순위/리스크 관리
  • 협업 환경 제공

2. 요구사항 도출 (Requirement Elicitation)

1. 요구사항 도출 정의

  • 소프트웨어가 해결할 문제를 이해하는 첫 번째 단계.
  • 요구사항을 어디서, 어떻게 수집할지 결정하는 과정.
  • 목적: 이해관계자와 개발자, 고객 간 의사소통 강화.

2. 요구사항 도출 기법

다양한 도출 기법

  • 인터뷰: 다양한 사용자 의견 청취.
  • 설문: 내부 정보와 개선 의견 수집.
  • 사용자 스토리: 바라는 기능을 이야기로 형상화.
  • 업무절차 조사: 업무 매뉴얼 등 분석.
  • 브레인스토밍: 여러 아이디어 수집.
  • 프로토타이핑: 빠르게 예시 구현 후 피드백.
  • 유스케이스: 시스템 이용자와의 관계 표현.

2-1) 유스케이스 다이어그램 (Use Case Diagram)

1. 정의

  • 사용자와 다른 외부 시스템들이 목표 시스템을 이용해 수행하는 기능을 사용자 관점에서 표현한 도표
  • 주요 요소: 시스템 범위, 액터(actor), 유스케이스, 관계.

2. 구성 요소

  • 사용자(주) 액터: 상호작용을 통해 이득을 얻는 대상 (주로 사람).
  • 시스템(부) 액터: 주 액터의 목적 달성을 위해 제공되는 외부 시스템
  • 유스케이스: 제공 서비스나 기능.
  • 관계: 유스케이스 간 연결.
  • 시스템 범위 : 관련 유스케이스들을 사각형으로 묶어서 표현.

3. 작성 주의사항

  • 실행순서가 아닌 관계를 간단히 표현. (흐름도처럼 그리지 않음)

4. 유스케이스 기술서

  • 액터가 시스템과 상호작용하는 과정을 보다 구체적으로 ㅓ술한 문서

기술서 구성 요소

  • 유스케이스명, 액터명, 개요, 사전조건, 사후조건, 기본흐름, 대체흐름.

2-3) 유스케이스 다이어그램의 관계

1. 포함 관계 (Include)

  • 공통으로 사용되는 기능을 별도로 추출하여 새로운 유스케이스로 생성.
  • 기존 유스케이스에서 새로운 유스케이스 방향으로 점선 화살표를 연결하고, <<include>>를 표시.
  • 예: 회원 등록 시, "정보 확인" 기능을 포함.

2. 일반화 관계

  • 유스케이스 간의 상위-하위 관계를 표현.
  • 상위 유스케이스에서 하위 유스케이스 방향으로 속이 빈 실선 화살표를 연결.
  • 예: "회원 관리"는 "회원 등록"과 "회원 삭제"를 포함.

3. 확장 관계 (Extend)

  • 특정 조건에서만 실행되는 유스케이스를 연결하는 관계.
  • 선택적 유스케이스에서 원래 유스케이스 방향으로 점선 화살표를 연결하고, <<extend>>를 표시.
  • 예: 회원 등록 시, "추가 인증" 기능이 선택적으로 실행.

3. 요구사항 분석 (Requirement Analysis)

1. 정의

  • 도출된 요구사항을 분석하여 목표 시스템의 기능 및 특성을 조정.
  • 문제 해결: 모호한 요구사항 명확화.

2. 요구사항 분석 특징

  • 소프트웨어의 범위를 명확히 파악하고 외부 환경과 상호작용 분석 가능.
  • 분석된 자료는 시스템 설계와 문서화에 활용.
  • 요구사항 변경이 전체 개발 과정에 미치는 영향을 정확히 분석 필요.

2. 요구사항 분석 기법

  1. 요구사항 분류
  • 기능적 요구사항: 시스템의 기능, 제어 연산 등.
  • 비기능적 요구사항: 성능, 보안, 품질 등.

2. 개념 모델링

  • 업무 처리의 실체(Entity)와 그들의 관계(Relation)를 모델링.
  • UML(Unified Modeling Language) 사용.

3. 정량적 요구사항 할당

  • 시스템의 각 요소들에 요구사항을 명확히 할당.

4. 요구사항 협상

  • 충돌하는 요구사항 간 합의 도출.
  • 예: 이해관계자 요구 간 충돌, 기능 vs 비기능 간 충돌.

5. 정형 분석

  • 요구사항을 정형화된 언어로 분석하여 명확히 표현.

3. 구조적 분석

  • 정형화된 분석 절차에 따라 요구사항을 파악하고 도형 중심으로 표현한 도표.
  • 분석 원리: 추상화, 정형화, 분할 정복, 계층화.

도구

  1. 자료 흐름도 (DFD)
  • 시스템 내 데이터 흐름을 시각적으로 표현.
  • 구성 요소: 단말, 프로세스, 자료 흐름, 자료 저장소.

2. 자료 사전 (DD)

  • 자료의 이름과 속성을 메타 데이터(데이터의 정의 및 설명 등을 위해 사용하는 데이터)로 정의.
  • 기호 활용: =(정의), +(연결), [](선택), *(주석) 등.

3. NS(Nassi-Schneiderman) 차트

  • 순차, 선택, 반복 제어구조를 표현.

4. HIPO (Hierarchy Input Process Output)

  • 기능과 데이터 관계를 계층적으로 표현.
  • 3가지 도표: 가시적(Table of Contents), 총체적(Overview Diagram), 세부적(Detail Diagram).

4. 요구사항 명세 (Requirement Specification)

  • 분석된 요구사항을 체계적이고 명확하게 문서화하여 검토, 평가, 승인 가능하도록 만드는 것.

1. 명세 방식 분류

정형 명세 기법

  • 수학적 표현으로 정확하게 요구사항을 기술.
  • 오류 모호성을 쉽게 파악 가능.
  • 단점: 이해하기 어렵고 작성에 시간 소요.

비정형 명세 기법

  • 자연어로 요구사항을 친숙하게 표현.
  • 개발자와 사용자의 의사소통이 용이.
  • 단점: 명확성과 완전성 확보가 어려움.

2. 명세 작성 시 고려사항

  • 정확성: 요구사항이 소프트웨어에 완전히 반영.
  • 명백성: 애매한 표현 없이 명확히 기술.
  • 완전성: 모든 기능, 제약사항, 속성 포함.
  • 일관성: 요구사항 간 모순이나 상충이 없음.
  • 중요도: 우선순위에 따른 요구사항 나열.
  • 수정 가능성: 변경 시 다른 요구사항에 영향 최소화.
  • 추적성: 관련 문서와 자료를 참조 가능.

5. 요구사항 검증 (Requirement Validation)

1. 요구사항 검증 기법

  • 요구사항을 기반으로 생성된 결과물이 올바르게 반영되었는지 확인하는 방법.
  • 잘못된 요구사항은 소프트웨어 수정 비용을 증가시킬 수 있음.

검증 기준

  • 유효성: 요구사항을 만족하는 기능 제공 여부.
  • 일관성: 서로 상충되는 요구사항 존재 여부.
  • 완전성: 모든 요구사항이 포함되었는지 여부.
  • 현실성: 환경, 예산 등으로 인해 개발 가능 여부.
  • 검증 가능성: 소프트웨어에서 요구사항 검증 가능 여부.

검증 방법

  • 단계별 검토: 프로토타이핑, 모델 검증, 인수 테스트 등.

2. 요구사항 검증 방법 종류

  1. 검토 (Review)
  • 작성된 요구사항 명세서를 검토 담당자들이 직접 검증하는 일반적 방법.

종류

  • 동료 검토 (Peer Review): 작성자가 아닌 이해관계자가 직접 분석.
  • 워크스루 (Walkthrough): 사전 검토 후 짧은 회의로 결함 확인.
  • 인스펙션 (Inspection): 작성자 외 전문가가 상세 분석.

2. 프로토타이핑

  • 빠른 시제품을 개발해 즉각적인 피드백을 받고 문제를 조기에 발견.
  • 단점: 반복될수록 비용 증가 가능.

3. 모델 검증

  • 분석 단계에서 작성된 모델이 요구사항을 만족하는지 검증.
  • 동적 분석(실제 실행을 통해 검증하는 것)이 아닌 정적 분석(모델 구조와 상호작용 점검).

4. 인수 테스트 (Acceptance Test)

  • 완성된 소프트웨어를 인수자가 직접 테스트하여 요구사항 만족 여부 확인.
  • 테스트 계획 수립이 필요.

정리

1. 요구공학 (Requirements Engineering)

  • 소프트웨어 개발의 기초가 되는 요구사항을 정의, 문서화, 관리하는 프로세스.
  • 관계자 간 소통 효율성 향상, 비용 절감, 변경 추적 가능 및 손실 최소화.

요구공학 프로세스 단계

  1. 도출 (Elicitation): 요구사항 수집.
  2. 분석 (Analysis): 분류, 모델링, 협상.
  3. 명세 (Specification): 시스템 정의 및 명세서 작성.
  4. 검증 (Validation): 테스트로 요구사항 점검.

2. 요구사항 관리 도구

  • 정의: 요구사항 정의 및 변경 관리를 위한 도구.

주요 기능

  • 변경 영향 분석 및 비용 편의성 제공.
  • 변경 이력 추적 가능.
  • 조직적 관리 및 우선순위/리스크 관리.
  • 협업 환경 제공.

3. 요구사항 도출 (Requirement Elicitation)

  • 소프트웨어가 해결할 문제를 이해하는 첫 번째 단계.
  • 목적: 이해관계자와 개발자, 고객 간 의사소통 강화.

요구사항 도출 기법

  • 인터뷰: 사용자 의견 청취.
  • 설문: 내부 정보와 개선 의견 수집.
  • 사용자 스토리: 바라는 기능을 이야기로 표현.
  • 업무절차 조사: 업무 매뉴얼 분석.
  • 브레인스토밍: 아이디어 수집.
  • 프로토타이핑: 빠르게 예시 구현 후 피드백.
  • 유스케이스: 시스템 이용자와의 관계 표현.

4. 유스케이스 다이어그램 (Use Case Diagram)

  • 사용자와 외부 시스템들이 목표 시스템을 이용해 수행하는 기능을 사용자 관점에서 표현한 도표.

주요 요소

  • 시스템 범위, 액터(actor), 유스케이스, 관계.

유스케이스 다이어그램의 관계

  1. 포함 관계 (Include): 공통 기능을 추출해 연결 (<<include>>).
  2. 일반화 관계: 상위-하위 관계 표현 (속이 빈 실선 화살표).
  3. 확장 관계 (Extend): 특정 조건에서만 실행되는 관계 (<<extend>>).

5. 요구사항 분석 (Requirement Analysis)

  • 도출된 요구사항을 분석하여 목표 시스템의 기능 및 특성을 조정.

분석 기법

  1. 요구사항 분류:
  • 기능적 요구사항: 시스템 기능, 제어 연산.
  • 비기능적 요구사항: 성능, 보안, 품질.

2. 개념 모델링:

  • 업무 처리 실체(Entity)와 관계(Relation)를 모델링 (UML 사용).
  1. 정량적 할당: 시스템 각 요소에 요구사항 할당.
  2. 요구사항 협상: 충돌 해결 및 합의 도출.
  3. 정형 분석: 정형화된 언어로 분석하여 명확히 표현.

6. 구조적 분석 (Structured Analysis)

  • 정의: 정형화된 분석 절차로 요구사항을 도형 중심으로 표현.
  • 분석 원리: 추상화, 정형화, 분할 정복, 계층화.

구조적 분석 도구

  1. 자료 흐름도 (DFD): 데이터 흐름을 시각적으로 표현.
  2. 자료 사전 (DD): 데이터 정의 및 속성 기술 (메타 데이터).
  3. NS 차트: 순차, 선택, 반복 제어구조 표현.
  4. HIPO: 기능과 데이터를 계층적으로 표현.

7. 요구사항 명세 (Requirement Specification)

  • 정의: 분석된 요구사항을 체계적, 명확하게 문서화.

명세 방식 분류

  1. 정형 명세 기법:
  • 수학적 표현, 명확한 오류 파악 가능.
  • 단점: 작성 어렵고 시간 소요.

2. 비정형 명세 기법:

  • 자연어 기반, 의사소통 용이.
  • 단점: 명확성과 완전성 부족.

작성 시 고려사항

  • 정확성, 명백성, 완전성, 일관성, 수정 가능성, 추적성.

8. 요구사항 검증 (Requirement Validation)

  • 정의: 요구사항이 올바르게 반영되었는지 확인.

검증 기준

  • 유효성, 일관성, 완전성, 현실성, 검증 가능성.

검증 방법 종류

  1. 검토 (Review): 명세서를 이해관계자가 직접 검증.
  • 동료 검토, 워크스루, 인스펙션.

2. 프로토타이핑: 빠른 시제품으로 문제 조기 발견.

3. 모델 검증: 분석 모델의 구조와 상호작용 점검.

4. 인수 테스트: 인수자가 소프트웨어 만족 여부 확인.

 



'정처기' 카테고리의 다른 글

UI 요구사항  (0) 2025.02.11
UML  (0) 2025.02.11
소프트웨어 개발 환경 분석  (0) 2025.02.11
소프트웨어 개발 방법론 테일러링  (0) 2025.02.11
소프트웨어 개발 방법론  (0) 2025.02.09