Notice
Recent Posts
Recent Comments
코드 위의 하루 (A Day on the Code)
Chapter 3 정리 - 요구사항과 유스케이스 다이어그램 쉽게 정리하기 본문
📌 과목 개요
- 과목명: 소프트웨어공학
- 교재: 『쉽게 배우는 소프트웨어공학 2판』 - 김치수 저
- 중간고사 범위: Chapter 1 ~ Chapter 6
- 시험 스타일: 요구사항 분류, 유스케이스 다이어그램 해석, 액터 관계 분석 문제
📚 Chapter 3 핵심 개념 요약
1. 요구사항 공학(Requirements Engineering)이란?
사용자가 필요로 하는 기능과 조건을 명확하게 정의하고 문서화하는 과정
→ 프로젝트 성공을 위해 가장 중요한 단계 중 하나
2. 요구사항의 분류
🔹 기능 요구사항 (Functional Requirements)
- 시스템이 무엇을 해야 하는지에 대한 설명
- 예: 회원가입 기능, 결제 처리, 게시글 작성 등
🔹 비기능 요구사항 (Non-functional Requirements)
- 시스템이 어떻게 동작해야 하는지에 대한 제약 조건
- 예: 반응 속도는 1초 이내, 사용자는 동시에 1000명 이상 가능, 보안 등
📌 비교 정리
구분 | 기능 요구사항 | 비기능 요구사항 |
목적 | "무엇을 할까?" | "어떻게 동작해야 할까?" |
예시 | 로그인, 검색, 업로드 | 성능, 안정성, 사용성, 보안 등 |
3. 유스케이스 다이어그램 (Use Case Diagram)
- 시스템이 사용자(액터)와 어떻게 상호작용하는지를 도식화한 다이어그램
- 시스템의 기능 요구사항을 시각적으로 표현함
4. 주요 구성 요소
- 액터(Actor): 시스템 외부의 사용자 또는 외부 시스템
- 유스케이스(Use Case): 액터가 수행하는 작업 (타원으로 표시)
- 시스템 경계(System Boundary): 유스케이스를 포함하는 사각형
- 관계(Relationship): include, extend, generalization
5. 유스케이스 관계 설명
🔹 Include 관계 (<<include>>)
- 공통 기능을 반드시 포함함
- 예: "게시글 작성" 유스케이스는 반드시 "로그인" 유스케이스를 포함
🔹 Extend 관계 (<<extend>>)
- 선택적으로 수행되는 기능을 표현
- 예: "게시글 작성" 중 "파일 첨부"는 선택적으로 확장될 수 있음
🔹 Generalization 관계
- 액터나 유스케이스 간의 상속
- 예: 관리자(Admin)는 일반 사용자(User)를 상속받음 (더 많은 기능 수행 가능)
💡 자주 나오는 시험 유형
- 기능/비기능 요구사항을 예시로 분류
- 유스케이스 다이어그램 그리기 또는 해석
- include / extend 관계 설명 및 구분
- 액터와 시스템의 상호작용 흐름 설명 문제
🎯 교수님이 강조한 포인트
- 비기능 요구사항은 성능, 보안, 신뢰성이 핵심
- 유스케이스 다이어그램은 기능 중심 → 화면 UI와는 다름
- include는 반드시 실행, extend는 조건부 실행임을 구분
📌 내 오답노트 & 복습 포인트
- 비기능 요구사항을 “기능처럼” 써서 틀림 (예: 빠른 응답 = 기능 ❌)
- extend 관계를 include로 잘못 연결
- 액터끼리 관계선 연결함 (❌) → 액터와 유스케이스 간 연결만 가능
📝 마무리 요약
- 요구사항 정리는 프로젝트의 뼈대를 만드는 작업
- 유스케이스 다이어그램은 시스템이 “무엇을 할 수 있는가”를 시각적으로 정리
- 시험에서는 요구사항 분류 + 다이어그램 해석 + 관계 구분이 핵심 포인트!
📘 다음 편 예고
《전공이 밥 먹여준다믄 - 소프트웨어공학 Chapter 4 정리》
프로젝트 관리와 WBS(작업 분할 구조), 간트 차트 쉽게 이해하기
'🍚전공이 밥 먹여준다믄 > 📕 소프트웨어공학' 카테고리의 다른 글
Chapter 6 정리 - 테스트와 디버깅, 소프트웨어 품질의 완성 (0) | 2025.05.12 |
---|---|
Chapter 5 정리 - 형상관리와 변경관리의 모든 것 (0) | 2025.05.12 |
Chapter 4 정리 - 프로젝트 관리, WBS, 간트 차트 쉽게 정리하기 (0) | 2025.05.12 |
Chapter 2 정리 - 소프트웨어 생명주기 완전 정복 (0) | 2025.05.12 |
Chapter 1 정리 - 소프트웨어란 무엇인가? (2) | 2025.05.12 |