가상 제품 개발을 위한 MBSE 및 SysML의 이해와 핵심 전략 (6)
복잡한 시스템 설계를 최적화하기 위해 시스템 모델링 언어인 SysML의 역할이 커지고 있다. 이번 호에서는 블록 정의 및 내부 블록 다이어그램을 통한 설계 애셋의 재사용성과 파라메트릭 모델을 활용한 검증 방법을 살펴본다. 또한 객체지향 시스템 엔지니어링 방법론인 OOSEM의 주요 개발 활동과 모델 요소 간의 연결 구조를 분석한다. 이를 통해 복잡한 요구사항을 체계적으로 관리하고 설계 일관성을 확보하는 통합적인 시스템 엔지니어링 접근법을 제시한다.
■ 오재응
한양대학교 명예교수, 시뮬레이션 랩 CTO
블록 정의 및 사용

그림 1. BDD와 IBD에 의한 자동차의 ABS 시스템 예시(제동 시스템)
<그림 1>은 블록 정의 다이어그램(Block Definition Diagram : BDD)과 내부 블록 다이어그램(Internal Block Diagram : IBD)의 관계를 SysML 모델링에서의 블록 정의와 사용(Definition and Usage) 개념을 설명하는 것이다. 특히 시스템 모델에서 정의(definition)와 사용(usage)의 구분이 어떻게 나타나는지를 자동차의 ABS 시스템(제동 시스템) 예시를 통해 직관적으로 설명하고 있다.
BDD는 시스템 구성 요소를 정의(definition 또는 type)하는 다이어그램이다. 여기서 블록은 하나의 설계 단위 또는 유형으로 간주되며, 그 자체로는 구현이 아닌 속성, 인터페이스, 동작 등을 기술한다. 예를 들어 Anti-Lock Controller는 하나의 중심 블록으로 정의되어 있고, Traction Detector(d1), Brake Modulator(m1), Sensor(s1)와 같은 하위 블록과 구조적 관계를 가진다. 이들 블록은 각각 독립적으로 정의된 타입이며, 다른 시스템에서도 재사용이 가능하다.
Definition에서 Block은 하나의 유형(type)이며 속성, 동작, 포트 등을 정의하여 여러 콘텍스트에서 재사용된다. 연결 방식은 관계 선(연결 구조) 위주로 나타낸다. IBD는 정의된 블록을 특정 콘텍스트에서 사용하는 방식을 나타낸 다이어그램으로 정의된 블록의 실제 사용/구현 구조 표현이다. 여기서는 AntiLock Controller 블록의 내부를 구성하는 part(사용 인스턴스)들이 나타난다. Part(인스턴스 또는 역할)로 모델 내부 특정 위치에 배치된다.
연결방식은 포트와 커넥터로 물리적/논리적 인터페이스로 구성한다. 예를 들어 s1:Sensor, d1:Traction Detector, 102 · m1:Brake Modulator는 모두 정의된 블록을 특정 역할(역할/파트)로 사용하는 형태이다. 각 파트는 인터페이스 포트(c1, c2)를 통해 상호 연결되며, 모델 내 실제 연결 구조를 명시한다. Usage에서 Part는 정의된 블록의 사용 인스턴스이며 특정 콘텍스트에서 기능 역할로 배치되며 블록에 의해 타입(Type)이 지정되며 역할(role) 또는 구성요소(instance)로도 불린다.
또한 <그림 1>은 모델 기반 시스템 설계에서 중요한 개념인 정의와 사용의 분리(separation of definition and usage)를 설명하고 있다. 정의된 블록은 단일 설계 요소로서 명세되고, 이를 다양한 콘텍스트에서 조합하여 모듈화, 재사용성, 유연한 시스템 확장이 가능해진다. SysML에서 BDD와 IBD는 각각 설계와 구성, 추상화와 구현을 잇는 핵심적인 다이어그램으로 활용된다.
매개변수 - 구속조건 정의 및 사용

그림 2. 매개변수 간의 수학적 관계와 제약 조건의 정의 및 실제 시스템 모델에 적용 방법
<그림 2>는 SysML 파라메트릭 다이어그램(Parametric Diagram)을 활용하여 매개변수(변수) 간의 수학적 관계와 제약 조건(구속조건)을 정의하고, 이를 실제 시스템 모델에 적용(usage)하는 방법을 보여준다. 실제로 매개변수와 구속조건 정의 및 사용으로 시스템의 무게 조건을 예로 들어 설명하고 있다.
구속조건 정의(Constraint Definition)의 BDD 부분은 모델링된 제약 조건을 정의한 것이다. 이 영역에서는 다음 두 개의 제약 블록(constraint block)이 정의되어 있다. Total Weight는 수식 wt = Σw로 정의되어 각 구성 요소의 무게를 모두 더하여 총 무게를 계산하는 수식이다. 입력 매개변수는 wi(각 구성 요소의 무게들)과 결과로 wt(총 무게)를 나타낸다. Max Weight는 수식 result = (wt<2000 Ton)이며 총 무게가 2000톤 미만인지 여부를 판단한다. 결과는 불린(boolean) 타입으로 반환(true 또는 false)된다. 이 두 제약 블록은 상위 분석 블록인 Ship Weight Analysis에 속하며, 전체 시스템에서 무게 제한 분석을 수행하기 위한 논리적 조건으로 사용된다.
파라메트릭 다이어그램(Parametric Diagram)은 앞에서 정의한 제약 조건들을 Ship Weight Analysis 블록에 실제 적용한 예시이다. 이 다이어그램에서는 다음과 같은 구성으로 모델이 연결되어 있다. wt는 Total Weight 제약 블록이며 입력 값으로 w1, w2, w3가 연결되며 각각 ship.weight, cargo.weight, ammo.weight와 연결되어 전체 무게를 계산한다. Mw는 Max Weight 제약 블록이며 앞에서 계산된 총 무게 wt를 입력으로 받아 그것이 2000톤 미만인지 여부를 결과로 피드백한다. 이 다이어그램에서 사용된 두 제약 블록은 «usage» 관계로 상단의 BDD에서 정의된 constraint block을 참조하고 있으며, 결과적으로 시스템 설계 모델에 제약을 수학적으로 통합하는 구조이다.
■ 자세한 기사 내용은 PDF로 제공됩니다.








