로봇 소프트웨어 구조설계로봇소프트웨어아키텍쳐 설계소프트웨어 아키텍처 설계
출제기준 좌표2·4·3·1
2과목 · 로봇 소프트웨어 구조설계

로봇 소프트웨어 설계 도구

로봇소프트웨어아키텍쳐 설계소프트웨어 아키텍처 설계
# 로봇소프트웨어구조설계
01

📌 개요

  • 설계를 머릿속·화이트보드에만 두면 공유·검증·유지가 안 됨
  • 설계 도구 = 모델을 그리고, 검사하고, 코드와 연결해 주는 소프트웨어
  • 시험 핵심 출제 포인트
    • CASE 도구의 개념과 상위/하위 분류
    • 순공학·역공학·재공학의 구분
    • 모델 기반 개발(MBD)과 자동 코드 생성
  • 빌드·버전 관리·CI 등 구현 단계의 개발환경 도구는 로봇 소프트웨어 개발환경에서 다룸
02

📖 핵심 개념

CASE 도구 (시험 단골)

  • CASE(Computer-Aided Software Engineering): 소프트웨어 개발 활동(분석·설계·구현·시험)을 컴퓨터로 지원·자동화하는 도구의 총칭

  • 지원하는 단계에 따라 분류:

  • 상위(Upper) CASE: 개발 앞 단계(요구 분석·설계) 지원 — 다이어그램 작성, 모델 관리, 명세 일관성 검사

  • 하위(Lower) CASE: 개발 뒷 단계(구현·시험) 지원 — 코드 생성, 컴파일·디버깅, 시험 자동화

  • 통합(Integrated) CASE: 전 단계를 저장소(repository) 중심으로 통합 지원

모델링 도구의 핵심 기능

UML 모델링 도구(CASE의 대표)는 그림판이 아니다 — 모델을 데이터로 다룬다.

  • 다이어그램 편집: UML 표기법 지원, 요소 재사용 (다이어그램 종류 → 로봇 소프트웨어 아키텍처 모델링)
  • 모델 일관성 검사: 클래스 다이어그램에 없는 클래스가 순서 다이어그램에 등장하는 등의 모델 간 불일치를 자동 검출
  • 순공학(Forward Engineering): 모델 → 코드 골격 자동 생성
  • 역공학(Reverse Engineering): 기존 코드 → 모델(다이어그램) 을 추출 — 문서 없는 레거시 분석
  • 재공학(Re-engineering): 역공학으로 이해한 시스템을 개선해 다시 만드는 것 (역공학 + 재구조화)
  • 문서 자동 생성: 모델에서 설계 문서를 출력 — 모델과 문서의 불일치 방지

모델 기반 개발 (MBD, Model-Based Design/Development)

제어 소프트웨어 분야의 강력한 흐름 (시험 포인트).

  1. 제어 알고리즘을 블록선도 모델로 설계 (Simulink류 도구)
  2. 모델을 시뮬레이션으로 검증 — 코딩 전에 제어 성능 확인 (→ 액추에이터 동역학 모델링)
  3. 검증된 모델에서 코드를 자동 생성해 타깃(제어기)에 탑재
  4. MIL→SIL→HIL 순으로 단계 검증 (Model/Software/Hardware-in-the-Loop) (→ 제어기 소프트웨어 성능시험)
  • 장점: 설계–구현 간극 제거(모델이 곧 사양), 조기 검증, 수작업 코딩 오류 감소
  • 유사 개념 MDA(Model-Driven Architecture): 플랫폼 독립 모델(PIM)에서 플랫폼 종속 모델(PSM)·코드로 변환해 가는 OMG 표준 접근

로봇 특화 설계·기술 도구

  • 로봇 기술 형식(robot description): 로봇의 링크·관절·센서 구성을 표준 형식(URDF 등 XML 계열)으로 기술 — 시뮬레이터·시각화·기구학 라이브러리가 같은 모델을 공유
  • 시뮬레이터: 설계안을 가상 로봇으로 조기 검증 (→ 로봇 소프트웨어 개발환경)
  • 계산 그래프 시각화: 노드·토픽 연결의 실행 구조를 그림으로 확인 — 설계(프로세스 뷰)와 실제의 대조 (→ 로봇 미들웨어 구조 설계)
  • 인터페이스 정의 도구: 메시지·서비스 형식(IDL)을 정의하면 각 언어의 코드가 자동 생성 — ICD의 기계화

도구 선택·활용의 원칙

  • 도구는 방법을 대신하지 않는다 — 설계 능력 없이 도구만 있으면 "예쁜 잘못된 설계"가 나온다
  • 모델과 코드의 동기화 유지가 관건: 자동 생성·역공학 루프를 쓰거나, 아키텍처 수준만 모델로 유지하는 등 팀 규칙을 정한다
  • 팀 협업 기능(모델 버전 관리·병합), 표준 형식 지원(UML/XMI), 기존 도구 체인과의 연동을 함께 평가
03

📊 다이어그램 · 수식

CASE 분류와 공학 방향

DIAGRAM
flowchart LR
    subgraph U["상위 CASE (분석·설계)"]
        M["모델·다이어그램"]
    end
    subgraph L["하위 CASE (구현·시험)"]
        C["코드·시험"]
    end
    M -- "순공학: 모델→코드 생성" --> C
    C -- "역공학: 코드→모델 추출" --> M
    C -- "재공학: 역공학 + 개선 재구축" --> C

모델 기반 개발(MBD)의 흐름

DIAGRAM
flowchart LR
    D["블록선도 모델 설계"] --> S["시뮬레이션 검증
(MIL)"] --> G["코드 자동 생성"] --> T["타깃 탑재·검증
(SIL → HIL)"] S -- 미달 시 모델 수정 --> D
04

🎯 핵심 요약 · 암기 포인트

익힘 0 / 11카드를 눌러 뒤집고, 앞면에서 아는지 표시하세요.
Q · 1
CASE 도구란?
A
소프트웨어 개발 활동(분석·설계·구현·시험)을 컴퓨터로 지원·자동화하는 도구의 총칭
Q · 2
상위 CASE와 하위 CASE의 구분은?
A
상위=앞 단계(요구 분석·설계) 지원, 하위=뒷 단계(구현·시험) 지원
Q · 3
통합 CASE란?
A
저장소(repository) 중심으로 개발 전 단계를 통합 지원하는 CASE
Q · 4
순공학(Forward Engineering)이란?
A
설계 모델로부터 코드(골격)를 자동 생성하는 것
Q · 5
역공학(Reverse Engineering)이란?
A
기존 코드로부터 설계 모델·다이어그램을 추출하는 것 — 레거시 분석
Q · 6
재공학(Re-engineering)이란?
A
역공학으로 이해한 시스템을 개선하여 다시 구축하는 것
Q · 7
모델링 도구의 일관성 검사란?
A
여러 다이어그램(모델) 간의 불일치를 자동으로 검출하는 기능
Q · 8
모델 기반 개발(MBD)의 흐름은?
A
블록선도 모델 설계 → 시뮬레이션 검증 → 코드 자동 생성 → 타깃 검증(MIL→SIL→HIL)
Q · 9
MBD의 대표 장점은?
A
코딩 전 조기 검증, 모델=사양의 일치, 수작업 코딩 오류 감소
Q · 10
로봇 기술 형식(URDF류)의 역할은?
A
링크·관절·센서 구성을 표준 형식으로 기술해 시뮬레이터·시각화·기구학이 같은 모델 공유
Q · 11
설계 도구 활용의 관건은?
A
모델과 코드의 동기화 유지 — 도구는 설계 방법을 대신하지 않는다
05

✏️ 예상문제

1. CASE 도구 중 요구 분석·설계 등 개발 앞 단계를 지원하는 것은?

① 하위(Lower) CASE ② 상위(Upper) CASE ③ 컴파일러 ④ 디버거

정답 및 해설

정답: ② 상위 CASE는 분석·설계 단계(다이어그램·모델 관리)를, 하위 CASE는 구현·시험 단계(코드 생성·디버깅·시험 자동화)를 지원한다. 전 단계 통합은 통합 CASE다.

2. 문서가 없는 기존 코드로부터 클래스 다이어그램을 추출해 구조를 파악하는 활동은?

① 순공학 ② 역공학 ③ 재공학 ④ 정형 검증

정답 및 해설

정답: ② 코드 → 모델 방향이 역공학이다. 모델 → 코드는 순공학, "역공학 + 개선 재구축"은 재공학이다. 세 용어의 방향을 바꿔 내는 것이 단골 패턴이다.

3. 모델 기반 개발(MBD)에 대한 설명으로 옳지 않은 것은?

① 제어 알고리즘을 블록선도 모델로 설계한다 ② 코딩 전에 시뮬레이션으로 설계를 검증할 수 있다 ③ 검증된 모델로부터 코드를 자동 생성할 수 있다 ④ 모델과 코드는 항상 별개이므로 불일치해도 무방하다

정답 및 해설

정답: ④ MBD의 핵심 가치가 "모델이 곧 사양"이 되어 설계–구현의 간극을 없애는 것이다. 모델과 코드의 불일치는 MBD가 해결하려는 문제 그 자체다.

4. 제어기 검증 단계 MIL, SIL, HIL의 순서와 의미로 옳은 것은?

① HIL → SIL → MIL, 하드웨어부터 검증 ② MIL → SIL → HIL, 모델 → 소프트웨어 → 하드웨어 순 검증 ③ SIL → MIL → HIL, 소프트웨어부터 검증 ④ 세 단계는 순서 없이 동시에 수행해야 한다

정답 및 해설

정답: ② Model-in-the-Loop(모델끼리 시뮬레이션) → Software-in-the-Loop(생성 코드 검증) → Hardware-in-the-Loop(실제 제어기 연결) 순으로, 저렴하고 안전한 단계부터 점진적으로 실물에 접근한다.

5. 설계 도구 활용에 대한 설명으로 가장 적절한 것은?

① 도구를 도입하면 설계 능력과 무관하게 좋은 설계가 보장된다 ② 모델과 코드의 동기화를 유지하는 팀 규칙이 함께 필요하다 ③ 모델 일관성 검사는 사람이 눈으로만 할 수 있다 ④ 문서는 모델과 별도로 수작업 작성하는 것이 원칙이다

정답 및 해설

정답: ② 도구는 방법을 대신하지 못하며(①), 모델–코드 동기화가 무너지면 모델은 낡은 그림이 된다. 일관성 검사와 문서 생성은 도구가 자동화해 주는 대표 기능이다(③④).

06

🔗 관련 노트

로봇소프트웨어개발기사 필기 · 학습 교재출제기준 2025.1.1 – 2027.12.31