본문 바로가기
자격증/정보처리기사 공부

[정보처리기사 실기] 요구공학

by JINJINC 2025. 4. 2.
728x90
반응형

요구공학 이란?

소프트웨어의 요구사항을 식별, 분석, 문서화하고, 이를 관리하는 과정

요구공학의 필요성

  • 품질 개선
  • 리스크 감소
  • 비용절감
  • 효율적인 프로젝트 관리
  • 사용자와 개발자 간의 소통 개선

요구사항 개발 프로세스

도출(Elicitation) -> 분석(Analysis) -> 명세(Specification) -> 확인(Validation)

도출 : 사용자와 이해 관계자들로부터 요구사항을 수집

분석 :
구조적 분석 도구
- DFD(Data Flow Dagram) : 자료 흐름도
- Data Dictionary : 자료 사전
- Mini-Spec : 소단위 명세서
- ERD(Entity Relationship Diagram) : 개체 관계도
- STD(State Transition Diagram) : 상태 전이도
객체 지향 분석 도구
- UML(Unified Modeling Language)
- 모델링

  • 도메인 분석
  • 요구사항의 배경을 말한다.
  • 설계 모델링에 필요한 여럭 개념과 비즈니스 룰을 파악한다.
  • 도메인 배경 파악을 위한 세가지 단계
  • 도메인 개념 찾기
  • 도메인 사전 작성
  • 비즈니스 규칙 정리

명세

  • 정형 명세 기법 : VDM,Z,Petri-net, CSP
  • 비정형 명세 기법 : 자연어 그림중심, FSM, Decision Table, ER모델링, SADT등
    • 기능 요구사항 : 시스템이 어떤 기능을 수행해야 하는지, 시스템이 제공해야 하는 서비스가 무엇인지 정의
    • 비기능 요구사항 : 시스템이 어떻게 동작해야 하는지에 대한 요구사항, 시스템의 품질 관련 특성이나 제약 사항, 시스템의 성능, 보안, 가용성, 유지보수성 등
  • 요구사항 분류

확인 및 검증

  • 요구사항을 이해했는지 확인
  • 요구사항 문서가 일관성 있고 완전한지 검증

요구사항 분석 기법

  • 인터뷰
  • 브레인스토밍
  • 원인-효과 다이어그램 : 시각화하여 다이어그램을 만들어 분석
  • 프로토타이핑 (Prototyping)
  • 사용사례(UseCase)
  • 요구사항 검토

요구사항 분석 도구

요구사항 분석 CASE(Computer Aided Software Engineering) 도구

  • 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하는 도구

상위 CASE

=> 모순검사, 오류검사, 자료 흐름도 작성 등

  • 생명 주기 전반부에 사용, 소프트웨어 의 계획과 요구분석, 설계 단계를 지원함

하위 CASE

=> 구문 편집기, 코드 생성기 등

  • 생명주기 후반부에 사용되며, 코드의 작성과 테스트, 문서화하는 과정을 지원한다.

통합 CASE

=> 소프트웨어 생명주기에 포함되는 전체 과정을 지원한다.

  • SADT : softTech사
  • SERM : 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 함
  • PSL/PSA : 미시간 대학
  • TAGS

HIPO(Hierarchical Input Process Output)

하향식 소프트웨어 개발을 위한 문서화 도구
시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 계층 구조를 표현한 도표

[Hipo의 기능]

  • 분석 및 설계 도구
  • 하향식 개발에 적합
  • 체계적인 문서관리에 효율적
  • 기능과 자료의 의존관계를 명시할 수 있음

<Hipo의 구성 요소 >
주요 프로세스, 하위 프로세스 , 입력/출력

<Hipo chart 종류>
가시적 도표
총체적 도표
세부적 도표

요구사항 분석 모델링

모델링 개념

  • 복잡한 시스템을 이해하고 효과적으로 개발하기 위해 간단한 모델로 표현하는 과정
  • 소프트웨어의 구성 모듈을 식별하고, 이틀 간의 연결을 도식화 한다.

모델링 구분

  • 기능적 모델링 : 사용자 관점에서 시스템의 기능 표현
    다이어그램, 액티비티 다이어그램
  • 정적 모델링 :시스템 구조를 클래스 단위로 표현
    클래스 다이어그램
  • 동적 모델링 : 시스템의 상호작용 및 동작을 표현
    순서 다이어그램, 상태 다이어그램, 커뮤니케이션 다이어그램 등

분석 모델의 종류

  • 구조적 분석 모델 : 시스템의 프로세스와 데이터 흐름을 중심으로
  • 객체지향 분석 모델 : 객체와 클래스를 중심으로
  • 정보공학 분석 모델 : 데이터 중심의 접근 방식
  • 정형화 분석 모델 : 수학적 기법

구조적 분석 모델

도형화된 도구를 이용해 정형화된 분석 절차에 따라 사용자 요구사항을 파악하고 문서화 하는 분석 기법
하향식 기능 분해 기법등을 사용 하는 특성

구조적 분석 도구

  1. 자료흐름도(DFD, Data Flow Diagram)
  • 시스템 내에서 자료가 어떻게 이동하고 처리되는지를 도형으로 나타내는 모델리 ㅇ도구
  • 기능 중심의 모델링에 특히 적합하며, 자료의 흐름과 처리 과정을 시각적으로 표현한다

DFD

 처리과정(Process) - 원

 자료 흐름(Data Flow) - 화살표

 자료 저장소(Data Store) - 이중선

 단말(Terminator) - 데이터의 입출력 주체를 나타냄
  1. 자료사전(DD, Data Dictionary)
  • 자료 흐름도에 기술된 모든 자료들에 대해 자세한 정의와 설명을 제공하는 중요한 도구
  • 시스템에서 사용되는 데이터의 성격, 형식, 구조 등을 명확하게 정의한다.
    • : 자료의 연결
      () : 자료의 생략
      [ | ] : 자료의 선택
      {} : 자료의 반복
      • : 자료의 설명
  • = : 자료의 정의
  • 예시)
    자료흐름 : 쇼핑몰 회원정보는 회원번호, 회원 성명, 전화번호, 휴대폰번호로 구성되어 있고, 전화번호와 휴대폰번호는 둘 중 하나만 선택이 가능하다.
    표기형식 : 회원정보 = 회원번호 + 회원성명 + [전화번호 | 휴대폰 번호 ]
  1. 소단위 명세서
  • 자료 흐름도에서 각 처리가 수행하는 업무를 상세하게 작성하는 문서
  • 프로세스 명세서
  • 구조적 언어를 사용하며, 선후 조건문, 의사 결정표 등을 포함할 수 있다.
  1. 개체 관계도(ERD , Entity Relationship Diagram)
    시스템에서 처리되는 구조인 객체와 그 속성, 개체 간의 관계를 도식화하여 모델링하는 도구

\

  1. 상태전이도(STD, State Transition Diagram)
  • 시스템의 상태와 상태 간의 전이를 모델화하는 도구
  • 시스템에 어떤 사건이 발생했을때 시스템의 상태 변화를 보여준다.
  • 개발자는 이=를 통해 시스템의 행위를 정의하고 예측할 수 있다.

객체 지향 분석 모델

사용자 요구사항을 객체지향적 관점에서 분석하고 모델링한다.
관련된 모든 클래스, 그 속성과 연산, 그리고 객체 간의 관계를 포함한다.

객체지향 분석 방법론

  1. 럼바우(Rumbaugh) 방법
  • 가장 일반적으로 사용되는 방법으로 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행
절차 설명
객체모델링(Obejct Modeling) 객체 다이어그램을 통해 시스템의 객체, 속성, 연산, 관계를 표현 세 가지 모델 중 가장 선행되어야 함
동적 모델링(Dynamic Modeling) 상태 다이어 그램을 사용하여 시간에 따른 객체의 행동과 상호작용을 표현
기능 모델링(Functional Modeling) DFD를 이용해 데이터 흐름 처리 과정을 표현
  1. Booch(부치) 방법
  • 미시적 거지석 개발 프로세스 모두 사용
  1. Jacobson 방법
  • Use case를 중심으로 한 분석 방법을 사용
  • 사용자 요구사항과 시스템의 상호작용을 중심으로 분석
  1. Coad와 Yourdon 방법
  • E-R다이어그램을 사용하여 객체의 행위를 모델링
  1. Wirfs-Brock 방법
  • 분석과 설계의 구분 없이 연속적으로 작업을 수행
  • 고객 명세서를 평가하여 설꼐 작업까지 이어지게 된다.
728x90
반응형

댓글