임베디드기사 실기 11 — 프로그램 분석·설계 (UML, 클래스 관계, 럼바우, 개발 모형)
임베디드기사 실기 11 — 프로그램 분석·설계 (UML, 클래스 관계, 럼바우, 개발 모형)
출제기준 4-1: 임베디드 프로그램 분석 및 설계하기
UML은 거의 매년 출제! 특히 상태 다이어그램은 3번 반복 출제됐어요.
이름만 정확히 쓰면 점수가 나오는 구간입니다.
📎 필기 시리즈의 소프트웨어 공학(UML·개발 모형) 편과 함께 보면 좋아요. (링크 추가 예정)
실기 출제 포인트 ⭐⭐⭐
| 키워드 | 핵심 내용 | 빈도 | 기출 |
| 상태 다이어그램 | 객체의 상태와 전이를 도식화 | ⭐⭐⭐ | 2016 Q2, 2017 Q5, 2021 Q1 |
| 유스케이스 다이어그램 | 사용자 관점의 시스템 기능 | ⭐⭐ | 2023 Q9 (2022 Q15는 답 모호) |
| UML 종류 / 정의 | 구조 vs 행위 다이어그램 | ⭐⭐ | 2019 Q1, 2020 Q17 |
| 클래스 관계 | 일반화, 집합(집단화) | ⭐⭐ | 2018 Q13, 2025 Q6 |
| 럼바우 OMT | 객체·동적·기능 모델링 | ⭐⭐ | 2018 Q15 = 2024 Q4 |
| 개발 모형 | 프로토타입, V-모델, 나선형 | ⭐⭐⭐ | 2015 Q9 = 2023 Q7, 2016 Q16 |
| 간트 차트 | 작업별 일정·진행 시각화 | ⭐ | 2025 Q14 |
키워드 박스 — 답안에 반드시 들어가야 할 단어
상태 다이어그램 : 객체의 상태 + 이벤트에 의한 상태 전이(Transition)
유스케이스 : 사용자(Actor) 관점에서 본 시스템 기능
일반화 / 집합 : 상속(빈 삼각형) / 전체-부분(빈 마름모)
럼바우 3모델 : 객체 - 동적 - 기능 (객체 / 상태 / DFD 다이어그램)
프로토타입 : 견본품(시제품)을 먼저 만들어 요구사항 확인
간트 차트 : 가로 막대로 작업 기간·진행도 표시
UML 다이어그램 분류 ⭐⭐⭐
기출 (2020 Q17) 다이어그램 등을 제공하여 시스템의 구조나 동작을 시각화하는 통합 모델링 언어는?
→ UML (Unified Modeling Language)
기출 (2019 Q1) UML 다이어그램 종류 3가지는?
→ 클래스, 객체, 패키지, 유스케이스, 시퀀스 다이어그램 등 중 3가지 (정리본 답에 5개가 적혀 있어요. 3개만 쓰면 됩니다.)
| 분류 | 다이어그램 | 한 줄 설명 |
| 구조 (정적) | 클래스 | 클래스의 속성·함수·타입으로 구성 |
| 객체 | 클래스의 인스턴스(특정 시점의 객체) | |
| 패키지 | 모델 요소를 그룹화 | |
| 컴포넌트 | 컴포넌트 간 구조 관계 | |
| 배치 | 소프트웨어·하드웨어 등 시스템의 물리적 구조 | |
| 행위 (동적) | 유스케이스 | 사용자 관점에서 본 시스템 |
| 액티비티 | 여러 활동의 순차·병행 흐름 | |
| 상태 | 객체의 상태 변화 | |
| 시퀀스 | 여러 대상 간 상호작용을 시간 순서로 표현 | |
| 커뮤니케이션 | 객체 간 메시지 교환 관계 |
⚠️ 함정: "UML 다이어그램 3가지"를 물으면 구조/행위 구분 없이 아무 3개나 맞게 쓰면 돼요.
시간이 아까우니 가장 확실한 클래스·유스케이스·시퀀스 정도로 쓰세요.
상태 다이어그램 ⭐⭐⭐
기출 (2016 Q2 = 2017 Q5) 객체의 행동 다이어그램 중 하나로, 특정 상태를 지니며 이벤트와 같은 액션에 의해 상태가 변경되는, 객체의 상태와 변화를 도식화한 다이어그램은?
→ 상태 다이어그램 (State Diagram / State Machine Diagram)
기출 (2021 Q1) 그림(전자레인지: 'Place the food inside', 'Set the timer', 'Set the temperature' 등의 상태가 'open door', 'close door', 'Timer stops' 같은 이벤트로 이어지는 도식)이 의미하는 다이어그램은?
→ 상태 다이어그램
| 구성 요소 | 설명 | 표기 |
| 상태 (State) | 객체가 머무르는 조건/상황 | 둥근 사각형 |
| 이벤트 (Event) | 상태 변화를 일으키는 자극 | 화살표 위의 글자 |
| 전이 (Transition) | 한 상태에서 다른 상태로 이동 | 화살표 |
| 액션 (Action) | 전이 시 수행하는 작업 | — |
| 시작 / 종료 | 시작 지점 / 끝 지점 | 검은 점 / 이중 원 |
그림 문제는 둥근 사각형(상태) + 이벤트가 적힌 화살표 + 검은 점에서 이중 원으로 끝남
이 세 가지가 보이면 상태 다이어그램이에요.
유스케이스 다이어그램 ⭐⭐
기출 (2023 Q9) 시스템이 제공하는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램은?
→ 유스케이스 다이어그램 (Use Case Diagram)
| 구성 요소 | 설명 |
| 액터 (Actor) | 시스템과 상호작용하는 외부 요소 (사용자, 외부 시스템) |
| 유스케이스 | 시스템이 제공하는 각각의 기능 |
| 시스템 경계 | 시스템 범위를 사각형으로 구분 |
| 관계 | 액터-유스케이스 연결, 포함(include)·확장(extend) |
⚠️ 2022 Q15는 답이 두 개로 갈려요
기출 (2022 Q15, 복원) UML 중 사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름대로 표현하는 다이어그램은?
→ 정리본에 1안 유스케이스, 2안 액티비티 가 함께 적혀 있고, "정확한 복원이 아니라 문구가 애매하다"고 되어 있어요.
판단 기준 (제가 정리한 규칙)
- "사용자 관점 / 시스템이 제공하는 기능" 이 핵심이면 → 유스케이스
- "처리 흐름 / 순차·병행·분기" 가 핵심이면 → 액티비티
- 시험장에서 문제 문구를 읽고 어느 쪽 단어가 강조되는지 보고 결정
클래스 다이어그램 관계 ⭐⭐
기출 (2018 Q13) 클래스 다이어그램을 보고 연관 관계의 유형을 쓰시오.
(그림: Entry를 File, Directory가 상속, Directory가 여러 Entry를 포함)
→ 일반화 관계 (Generalization), 집합 관계 (Aggregation)
기출 (2025 Q6) 같은 형태의 클래스 다이어그램을 보고 연관 관계의 유형을 쓰시오.
→ 정리본 정답은 집합 관계 (Aggregation / 집단화)
| 관계 | 표기 | 의미 |
| 일반화 (Generalization) | 실선 + 빈 삼각형 | 상속 (is-a) |
| 실체화 (Realization) | 점선 + 빈 삼각형 | 인터페이스 구현 |
| 연관 (Association) | 실선 / 화살표 | 객체 간 관계 |
| 의존 (Dependency) | 점선 화살표 | 한 클래스가 다른 클래스를 일시적으로 사용 |
| 집합 (Aggregation) | 빈 마름모 | 전체-부분, 부분이 독립적으로 존재 가능 |
| 합성 (Composition) | 채운 마름모 | 전체-부분, 전체가 사라지면 부분도 소멸 |
위 표 중 집합·합성의 생명주기 차이(독립 vs 종속)는 기출 해설에 합성이 직접 나오지 않아 📌 개념 보강으로 넣었어요.
⚠️ 함정
- 2018 Q13은 "일반화 + 집합" 두 개를 모두 써야 하고,
2025 Q6은 정리본 정답이 "집합" 하나예요. 그림에서 묻는 관계 개수를 먼저 확인!
- 집합(빈 마름모)과 합성(채운 마름모)을 서로 바꿔 쓰지 않기
- 정답 정리본에는 그림이 빠져 있으니, 실제 시험 그림의 마름모/삼각형을 직접 확인
럼바우 객체지향 분석 (OMT) ⭐⭐
기출 (2018 Q15 = 2024 Q4) 럼바우의 객체 모델링의 3가지 모델링 방식을 쓰시오.
→ 객체 모델링, 동적 모델링, 기능 모델링
| 모델링 | 다이어그램 | 설명 |
| 객체 (Object) | 객체 다이어그램 | 시스템의 정적 구조 (객체·클래스·속성·관계). 3가지 중 가장 중요 |
| 동적 (Dynamic) | 상태 다이어그램 | 시간에 따른 상태 변화, 제어 흐름, 이벤트 |
| 기능 (Functional) | 자료 흐름도 (DFD) | 입력 데이터가 출력으로 변환되는 처리 과정 |
암기: 객체 → 객체 다이어그램, 동적 → 상태, 기능 → DFD.
바로 위 상태 다이어그램이 럼바우의 "동적 모델링"에 해당해서 두 문제가 연결돼요.
소프트웨어 개발 모형 ⭐⭐⭐
기출 (2015 Q9 = 2023 Q7) 사용자의 기본적인 요구사항에 따른 모형 시스템을 신속히 개발해 제공하고, 사용자 의견을 바탕으로 개선·보완해 가는 프로세스 모형(폭포수 모델의 단점 보완)은?
→ 프로토타입 모델 (Prototype Model)
| 모형 | 특징 |
| 폭포수 | 각 단계를 확실히 매듭짓고 검토·승인 후 다음 단계로 |
| 프로토타입 | 견본품을 먼저 만들어 요구사항을 정확히 파악, 기술적 위험을 미리 확인 |
| 나선형 | 폭포수 + 프로토타입 + 위험 분석, 여러 번 반복하며 점진적으로 완성 |
| V-모델 | 개발 단계와 테스트(검증) 단계를 대응시킴 (📌 개념 보강) |
기출 (2016 Q16) 하드웨어와 소프트웨어의 동시 개발 시 상호 피드백이 불가능해 많은 위험 요소를 내포한다.
이 위험을 회피하기 위해 고안된 모델은?
→ 정리본 정답: V-모델 (V-Model)
⚠️ 함정: 2016 Q16은 정답 칸에는 V-모델이라고 적혀 있지만, 해설에는 동시공학·HW/SW 코디자인·나선형이 함께 언급되어 있어 자료 안에서 설명이 엇갈려요. 정리본의 정답(V-모델)을 기준으로 외우되, 이 문제는 "정확한 정의가 불확실한 문항"으로 따로 표시해 두세요.
간트 차트 ⭐
기출 (2025 Q14) 임베디드 개발 과정에서 하드웨어 설계, 펌웨어 구현, 시험 단계의 일정을 한눈에 파악하기 위해 작업별 기간과 진행 상황을 시각적으로 표현한 도구는?
→ 간트 차트 (Gantt Chart)
작업명 │ 1월 2월 3월 4월 5월
설계 │ ████
펌웨어 │ ████████
시험 │ ████
최종 검수 │ ██
→ 가로축 = 시간, 세로축 = 작업, 막대 길이 = 기간
📌 개념 보강 (기출 없음)
출제기준 4-1에는 "설계 기법"과 "기술 문서·매뉴얼 작성"이 있지만 11회차 기출에는 없었어요.
정의 한 줄만 알아두세요.
결합도(Coupling) : 모듈 간 의존 정도 → 낮을수록 좋음
응집도(Cohesion) : 모듈 내부 요소의 관련 정도 → 높을수록 좋음
기출 문제 모음
Q. 객체의 상태와 이벤트에 의한 상태 변화를 도식화한 UML 다이어그램은? (2016·2017·2021)
A. 상태 다이어그램
Q. 사용자 관점에서 시스템이 제공하는 기능을 표현하는 다이어그램은? (2023 Q9)
A. 유스케이스 다이어그램
Q. 클래스 다이어그램에서 상속과 전체-부분 관계의 이름은? (2018 Q13)
A. 일반화, 집합(집단화)
Q. 럼바우의 3가지 모델링은? (2018·2024)
A. 객체, 동적, 기능 모델링
Q. 견본품을 먼저 만들어 요구사항을 확인하는 개발 모형은? (2015·2023)
A. 프로토타입 모델
Q. 작업별 기간과 진행 상황을 막대로 보여주는 일정 관리 도구는? (2025 Q14)
A. 간트 차트
💡 실무에서는?
- UML이 쓰이는 자리 — 인프라·보안 시스템 구축 프로젝트에서도 인증 흐름은 시퀀스 다이어그램, 장애 시 상태 전이는 상태 다이어그램, 기능 범위는 유스케이스로 그려서 고객과 합의하는 경우가 많아요.
- 개발 모형 — 요구사항이 불명확할 때 PoC(시제품) 먼저 만드는 방식이 프로토타입 모형의 실무 버전이에요.
- 간트 차트 — 구축 프로젝트 WBS를 일정으로 풀 때 가장 흔히 쓰는 도구라서, 시험에서도 이름만 정확히 쓰면 돼요.
- 구조와 행위 구분 — "정적 구조(구성도)" vs "동적 흐름(시퀀스/상태)"로 나눠 그리는 습관이 아키텍처 문서의 기본이에요.
핵심 정리
✅ 상태 다이어그램 = 객체의 상태 + 전이 (검은 점 → 이중 원, 이벤트 화살표)
✅ 유스케이스 = 사용자 관점의 시스템 기능 / 액티비티 = 작업 흐름 (2022 Q15는 문구 보고 판단)
✅ 일반화 = 상속(빈 삼각형) / 집합 = 빈 마름모 / 합성 = 채운 마름모
✅ 럼바우 = 객체(객체 다이어그램) · 동적(상태) · 기능(DFD)
✅ 프로토타입 = 견본품으로 요구사항 확인 / 나선형 = 위험 분석 추가
✅ 2016 Q16 (HW/SW 동시 개발 피드백) = V-모델 (정리본 기준, 해설은 엇갈림)
✅ 간트 차트 = 가로 막대 일정표
다음 편에서는 프로그램 작성 — C 프로그래밍(출제기준 4-2)으로 이어갑니다!
궁금한 점은 댓글로 남겨주세요!