작성 맥락
이 글은 직접 학습하거나 구현하며 남긴 개인 기술 기록입니다. 참고 자료가 있는 경우 본문에 출처를 남기고, 틀린 부분을 발견하면 수정합니다.
요구사항 확인
요구공학이란?
요구공학은 다음과 같은 특징을 가집니다:
- 요구사항을 정의, 문서화, 관리하는 체계적인 접근 방식
- 효과적인 소통 수단을 제공하여 불필요한 비용 절감
- 요구사항 변경 추적을 통한 손실 최소화
요구공학 프로세스
- 도출
- 분석
- 명세
- 검증
요구사항 관리 도구
주요 기능
- 변경에 따른 영향도 분석
- 변경된 이력을 추적
- 우선순위나 리스크 관리가 가능
- 외부 연동 및 협업 환경 제공
요구사항 도출
요구사항을 어디에서 어떻게 수집할지 결정하고, 효율적으로 진행하는 것이 중요합니다.
요구사항 도출 기법
사용자의 요구사항이 불명확할 수 있으므로 다양한 기법을 활용합니다:
- 인터뷰
- 설문
- 유스케이스 등
유스케이스 다이어그램
기능을 사용자의 관점에서 친숙하게 표현하며, 시스템 간의 상호작용을 중점적으로 다룹니다.
유스케이스 구성요소
- 시스템 범위(scope)
- 주 액터: 이득을 얻는 대상(사람)
- 부 액터: 목적 달성을 위해 제공되는 외부시스템
- 유스케이스: 제공 서비스나 기능(사용자 관점)
- 관계: 유스케이스-유스케이스, 액터-유스케이스
주의사항
- 과도하지 않게 간결하게 작성
- 실행순서를 나타내는 플로우차트와는 다른 개념
유스케이스 기술서
액터와 시스템간의 상호작용과정을 구체적으로 서술합니다.
구성 요소:
- 유스케이스 명
- 기본흐름
- 트리거
- 대체흐름
기본흐름
- 트리거: 시작점
- 대체 흐름: 3번 흐름에서 문제 발생 시 3a, 3b와 같이 대체흐름으로 진행
관계 유형
포함 관계(필수적)
- 공통적으로 사용되는 기능을 추출
- 기존 유스케이스에서 새로운 유스케이스 방향으로 점선 화살표로 연결 («include»)
일반화 관계
- 하위 유스케이스에서 상위 유스케이스 방향으로 빈 실선화살표로 표시
확장 관계(선택적)
- 특정 조건에서만 실행
- «extend»를 표기하고 점선 화살표로 연결
요구사항 분석
특성을 조정해나가는 활동으로, 명확하지 않거나 상충되는 요구사항을 분석합니다.
요구사항 분류
기능적/비기능적 요구사항
- 기능적 요구사항: 연산 (예: 도서를 등록하는 기능)
- 비기능적 요구사항: 성능, 품질 (예: 도서 검색 최대 2초 안에 완료)
사용자/시스템 요구사항
- 사용자 요구사항: 사용자 입장의 친숙한 표현
- 시스템 요구사항: 개발자 입장의 기술적 표현
분석 기법
개념모델링
- 유스케이스처럼 업무처리 실체와 관계를 분석
- 핵심단계: 현실 문제를 모델링
- 대부분 UML 사용
요구사항 할당
- 요구사항을 만족시키기 위한 ‘구성 요소’ 식별
요구사항 협상
상충되는 상황 발생 시:
- 우선순위 부여를 통한 합의
- 이해관계자 간 충돌
- 요구사항과 자원의 충돌
- 기능적/비기능적 요구사항 간 충돌
정형 분석
- 요구사항을 정확하고 명확하게 표현
- 정형화된 언어, 수학적 기호 활용
구조적 분석
도형 중심으로 표현하며 다음 원칙을 따릅니다:
- 추상화
- 정형화
- 분할 정복
- 계층화
분석 도구
자료 흐름도(DFD)
- 데이터의 흐름에 중심
- 작업소요 시간 파악 불가
- 구성요소:
- 프로세스
- 자료 흐름
- 자료 저장소
- 단말
자료 사전(DD)
자료 흐름도에 사용된 이름과 속성을 표기한 메타 데이터
규칙:
-
선택: 대괄호[]와 파이프라인 - 반복: 중괄호{}
- 주석: *에스터리스크로 감싸기
NS 차트
- 논리 중심으로 표현
- 순차, 선택, 반복의 제어 구조를 명확히 표현
- 순차적 접근으로 임의 제어 이동이 어려움
HIPO
- 계층 구조로 표현
- 기능과 자료의 의존성을 동시에 표현
- 하향식 소프트웨어 개발에 유용
- 가시성, 총체적, 세부적의 3가지 도표 사용
요구사항 명세
요구사항을 문서화하는 과정입니다.
명세 유형
- 정형 명세: 정확한 표현 중심
- 비정형 명세: 친숙한 표현으로 의사전달 용이
고려사항
- 정확성
- 명백성
- 완전성
- 일관성
- 중요도
- 수정 가능성
- 추적성
요구사항 검증
잘못된 요구사항으로 인한 비용 소모를 방지하기 위해 요구사항이 제대로 반영되었는지 확인합니다.
검증 기준
- 유효성
- 일관성
- 완결성
- 현실성
- 검증 가능성
검증 방법
요구사항 검토
- 동료 검토: 다수의 동료들에게 직접 설명
- 워크스루: 사전 검토 후 짧은 회의로 결함 분석
- 인스펙션: 전문 검토 그룹의 상세 결함 분석
프로토타이핑
- 시제품을 통한 확인
- 장점: 즉각적인 피드백과 사전식별 가능
- 단점: 비용 증가
모델 검증
- 개발된 모델의 요구사항 만족도 검증
- 정적 분석을 통한 모델 구조 검증
인수 테스트
- 인수자의 직접 테스트
- 요구사항별 테스트 계획 수립
- 만족 여부 판단
요구사항은 모든 개발 단계에서 생성 가능하며 지속적인 검증의 대상입니다.
댓글이 보이지 않으면 GitHub에 로그인한 뒤 새로고침해 주세요. 공개 댓글은 로그인 상태에서 더 안정적으로 표시됩니다.