들어가며
MBSE(Model-Based Systems Engineering)를 학습하다 보면 BDD(Block Definition Diagram)와 함께 자주 등장하는 다이어그램이 있다. 바로 IBD(Internal Block Diagram)이다.
이전 글에서 소개한 BDD가 시스템을 구성하는 요소와 계층 구조를 표현하는 다이어그램이라면, IBD는 각 구성요소가 서로 어떻게 연결되고 어떤 정보를 주고받는지를 표현하는 다이어그램이다.
실제 프로젝트에서는 시스템을 구성하는 장치들이 독립적으로 동작하는 경우는 거의 없다. 센서가 데이터를 측정하면 제어기가 이를 처리하고, 제어기는 다시 액추에이터를 제어하는 것처럼 모든 구성요소는 서로 연결되어 있다.
제가 MBSE 사례를 공부하면서 가장 인상 깊었던 점은, 많은 설계 문제가 개별 장치 자체보다 인터페이스에서 발생한다는 사실이었다. 데이터 형식이 맞지 않거나 신호 전달 방식이 다르면 전체 시스템이 정상적으로 동작하지 않을 수 있다. 이러한 부분을 체계적으로 관리하기 위해 사용하는 모델이 바로 IBD이다.
IBD란 무엇인가?
IBD(Internal Block Diagram)는 하나의 블록 내부에서 구성요소들이 어떻게 연결되고 상호작용하는지를 표현하는 SysML 다이어그램이다.
BDD가 시스템의 "구성"을 보여준다면, IBD는 시스템 내부의 "연결"을 보여준다.
IBD에서는 다음과 같은 내용을 표현할 수 있다.
- 블록 간 연결 관계
- 데이터 흐름
- 제어 신호
- 전력 공급
- 통신 인터페이스
- 입출력 포트(Port)
즉, 시스템 내부의 실제 동작 구조를 시각적으로 이해할 수 있도록 도와준다.
BDD와 IBD의 차이
처음 MBSE를 공부하면 두 다이어그램을 혼동하기 쉽다.
간단하게 비교하면 다음과 같다.
구분BDDIBD
| 목적 | 시스템 구조 정의 | 내부 연결 및 인터페이스 표현 |
| 초점 | 무엇으로 구성되는가 | 어떻게 연결되는가 |
| 표현 대상 | 블록과 계층 구조 | 포트, 커넥터, 데이터 흐름 |
| 활용 시점 | 시스템 구조 설계 | 인터페이스 설계 및 검증 |
실무에서는 BDD를 먼저 작성한 뒤, 각 블록의 내부 구조를 IBD로 상세하게 표현하는 경우가 많다.
IBD의 주요 구성 요소
Block
IBD에서도 블록은 기본 구성 요소이다.
예를 들어 자율주행 차량 시스템이라면 다음과 같은 블록이 존재할 수 있다.
- 카메라
- 라이다
- 제어기
- 브레이크 시스템
- 조향 시스템
각 블록은 서로 데이터를 주고받으며 협력한다.
Port
포트(Port)는 블록이 외부와 정보를 주고받는 접점을 의미한다.
예를 들어 카메라 블록에는 영상 데이터를 출력하는 포트가 있을 수 있고, 제어기에는 이를 입력받는 포트가 존재한다.
포트를 사용하면 어떤 정보가 어디를 통해 이동하는지 명확하게 표현할 수 있다.
Connector
커넥터(Connector)는 포트와 포트를 연결하는 선이다.
단순한 선처럼 보이지만 실제로는 데이터, 전력, 제어 신호 등 다양한 연결을 나타낼 수 있다.
커넥터를 통해 시스템 내부의 상호작용을 한눈에 파악할 수 있다.
Item Flow
필요한 경우 커넥터를 따라 어떤 정보가 전달되는지도 표시할 수 있다.
예를 들어
- 영상 데이터
- GPS 위치 정보
- 속도 정보
- 제어 명령
- 배터리 상태
등을 표현하면 인터페이스를 이해하기 쉬워진다.
드론 시스템으로 이해하는 IBD
드론을 예로 들어보자.
드론 시스템 내부에는 다음과 같은 블록이 존재한다.
- GPS 모듈
- IMU 센서
- 비행 제어 컴퓨터
- 통신 모듈
- 모터 제어기
- 배터리 관리 시스템
IBD에서는 각 블록이 어떤 데이터를 주고받는지 표현한다.
예를 들어 다음과 같은 흐름이 가능하다.
- GPS → 위치 정보 → 비행 제어 컴퓨터
- IMU → 자세 정보 → 비행 제어 컴퓨터
- 비행 제어 컴퓨터 → 속도 명령 → 모터 제어기
- 배터리 관리 시스템 → 잔량 정보 → 비행 제어 컴퓨터
이처럼 시스템 내부의 연결 구조를 시각적으로 확인할 수 있다.
인터페이스 관리가 중요한 이유
대형 프로젝트에서는 여러 조직이 각각 다른 구성요소를 개발하는 경우가 많다.
예를 들어
- A팀은 센서를 개발하고,
- B팀은 제어기를 개발하며,
- C팀은 통신 모듈을 개발할 수 있다.
각 팀이 개별 장치를 완성하더라도 인터페이스가 맞지 않으면 전체 시스템은 정상적으로 동작하지 않는다.
예를 들어 데이터 단위가 서로 다르거나, 메시지 형식이 일치하지 않으면 통신 오류가 발생할 수 있다.
IBD는 이러한 인터페이스를 사전에 정의하고 검토하는 데 중요한 역할을 한다.
IBD 작성 시 고려할 사항
효율적인 IBD를 작성하기 위해서는 몇 가지 원칙을 지키는 것이 좋다.
필요한 연결만 표현하기
모든 연결을 한 장의 다이어그램에 표시하면 오히려 이해하기 어려워질 수 있다.
프로젝트 목적에 맞는 수준으로 표현하는 것이 중요하다.
포트 이름을 명확하게 작성하기
"Data"처럼 모호한 이름보다
- Vehicle Speed
- Brake Command
- Camera Image
처럼 의미를 알 수 있는 이름을 사용하는 것이 좋다.
인터페이스 규격과 함께 관리하기
IBD에는 연결 관계를 표현하고, 세부 데이터 형식이나 통신 규격은 별도의 인터페이스 명세와 연계하여 관리하는 경우가 많다.
변경 사항을 지속적으로 반영하기
시스템 구조가 변경되면 인터페이스도 함께 수정될 가능성이 높다.
따라서 IBD 역시 최신 설계 상태를 유지해야 한다.
IBD와 요구사항의 연결
MBSE에서는 IBD도 요구사항과 연결하여 관리한다.
예를 들어
요구사항
"센서는 초당 30장의 영상을 전송해야 한다."
↓
IBD
카메라 포트 → 영상 데이터 → 제어기 포트
↓
시험
30fps 영상 전송 시험
이처럼 하나의 요구사항이 인터페이스와 검증 활동까지 연결되므로 변경 관리와 추적성이 향상된다.
실무에서 IBD가 활용되는 분야
IBD는 다양한 산업 분야에서 인터페이스를 설계하고 검증하는 데 활용된다.
대표적인 예는 다음과 같다.
- 자동차 ECU 통신
- 항공기 항공전자 시스템
- 위성 탑재체 인터페이스
- 철도 신호 시스템
- 스마트팩토리 설비
- 산업용 로봇
- 무인 이동체
- 방위산업 시스템
시스템의 규모가 커질수록 인터페이스의 수가 증가하기 때문에 IBD의 중요성도 함께 커진다.
마무리
IBD(Internal Block Diagram)는 MBSE에서 시스템 내부의 연결 구조와 인터페이스를 표현하는 핵심 다이어그램이다.
BDD가 시스템의 구성 요소를 정의한다면, IBD는 각 요소가 어떤 데이터를 주고받으며 어떻게 협력하는지를 보여준다.
복잡한 시스템일수록 인터페이스 관리의 중요성이 커지며, IBD는 이러한 연결 관계를 체계적으로 관리하는 데 큰 도움이 된다.
다음 글에서는 Activity Diagram을 중심으로 시스템의 기능과 업무 흐름을 모델링하는 방법을 살펴본다.
FAQ
Q1. IBD는 전기 회로도와 같은 개념인가요?
아니다. IBD는 물리적인 배선도보다 시스템 구성요소 간의 논리적 연결과 인터페이스를 표현하는 데 초점을 맞춘 SysML 다이어그램이다.
Q2. 포트와 커넥터는 반드시 함께 사용해야 하나요?
대부분의 경우 포트를 통해 블록 간 연결을 표현하고, 커넥터로 이를 연결한다. 프로젝트 목적에 따라 표현 수준은 달라질 수 있다.
Q3. IBD는 개발이 끝난 후에도 활용되나요?
그렇다. 시스템 유지보수, 변경 영향 분석, 신규 기능 추가, 교육 자료 등 다양한 목적으로 지속적으로 활용될 수 있다.