코드 위의 하루 (A Day on the Code)

Chapter 3 정리 - 요구사항과 유스케이스 다이어그램 쉽게 정리하기 본문

🍚전공이 밥 먹여준다믄/📕 소프트웨어공학

Chapter 3 정리 - 요구사항과 유스케이스 다이어그램 쉽게 정리하기

code.with.siyeon 2025. 5. 12. 19:00

📌 과목 개요

  • 과목명: 소프트웨어공학
  • 교재: 『쉽게 배우는 소프트웨어공학 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(작업 분할 구조), 간트 차트 쉽게 이해하기