요구공학 이란?
소프트웨어의 요구사항을 식별, 분석, 문서화하고, 이를 관리하는 과정
요구공학의 필요성
- 품질 개선
- 리스크 감소
- 비용절감
- 효율적인 프로젝트 관리
- 사용자와 개발자 간의 소통 개선
요구사항 개발 프로세스
도출(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 종류>
가시적 도표
총체적 도표
세부적 도표
요구사항 분석 모델링
모델링 개념
- 복잡한 시스템을 이해하고 효과적으로 개발하기 위해 간단한 모델로 표현하는 과정
- 소프트웨어의 구성 모듈을 식별하고, 이틀 간의 연결을 도식화 한다.
모델링 구분
- 기능적 모델링 : 사용자 관점에서 시스템의 기능 표현
다이어그램, 액티비티 다이어그램 - 정적 모델링 :시스템 구조를 클래스 단위로 표현
클래스 다이어그램 - 동적 모델링 : 시스템의 상호작용 및 동작을 표현
순서 다이어그램, 상태 다이어그램, 커뮤니케이션 다이어그램 등
분석 모델의 종류
- 구조적 분석 모델 : 시스템의 프로세스와 데이터 흐름을 중심으로
- 객체지향 분석 모델 : 객체와 클래스를 중심으로
- 정보공학 분석 모델 : 데이터 중심의 접근 방식
- 정형화 분석 모델 : 수학적 기법
구조적 분석 모델
도형화된 도구를 이용해 정형화된 분석 절차에 따라 사용자 요구사항을 파악하고 문서화 하는 분석 기법
하향식 기능 분해 기법등을 사용 하는 특성
구조적 분석 도구
- 자료흐름도(DFD, Data Flow Diagram)
- 시스템 내에서 자료가 어떻게 이동하고 처리되는지를 도형으로 나타내는 모델리 ㅇ도구
- 기능 중심의 모델링에 특히 적합하며, 자료의 흐름과 처리 과정을 시각적으로 표현한다

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

- 상태전이도(STD, State Transition Diagram)
- 시스템의 상태와 상태 간의 전이를 모델화하는 도구
- 시스템에 어떤 사건이 발생했을때 시스템의 상태 변화를 보여준다.
- 개발자는 이=를 통해 시스템의 행위를 정의하고 예측할 수 있다.
객체 지향 분석 모델
사용자 요구사항을 객체지향적 관점에서 분석하고 모델링한다.
관련된 모든 클래스, 그 속성과 연산, 그리고 객체 간의 관계를 포함한다.
객체지향 분석 방법론
- 럼바우(Rumbaugh) 방법
- 가장 일반적으로 사용되는 방법으로 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행
절차 | 설명 |
---|---|
객체모델링(Obejct Modeling) | 객체 다이어그램을 통해 시스템의 객체, 속성, 연산, 관계를 표현 세 가지 모델 중 가장 선행되어야 함 |
동적 모델링(Dynamic Modeling) | 상태 다이어 그램을 사용하여 시간에 따른 객체의 행동과 상호작용을 표현 |
기능 모델링(Functional Modeling) | DFD를 이용해 데이터 흐름 처리 과정을 표현 |
- Booch(부치) 방법
- 미시적 거지석 개발 프로세스 모두 사용
- Jacobson 방법
- Use case를 중심으로 한 분석 방법을 사용
- 사용자 요구사항과 시스템의 상호작용을 중심으로 분석
- Coad와 Yourdon 방법
- E-R다이어그램을 사용하여 객체의 행위를 모델링
- Wirfs-Brock 방법
- 분석과 설계의 구분 없이 연속적으로 작업을 수행
- 고객 명세서를 평가하여 설꼐 작업까지 이어지게 된다.
'자격증 > 정보처리기사 공부' 카테고리의 다른 글
[정보처리기사 실기] 미들웨어 (0) | 2025.04.01 |
---|---|
[정보처리기사 실기] 프로젝트 계획 및 분석 (0) | 2025.04.01 |
[ 정보처리기사 실기] 요구사항 확인2 (0) | 2023.06.20 |
댓글