Model Based System Engineering (MBSE)
MBSE란 복잡한 시스템의 요구사항, 설계, 분석, 검증 및 확인을 지원하는 정형화된 방법론으로 코드나 문서 기반의 기존 개발 방식과는 달리 개발하고자 하는 대상 즉, 시스템 자체를 하나의 모델로 간주하며, 컴퓨팅 환경의 발전으로 MBSE를 많은 산업군에서 활발하게 채택하고 있습니다. 이는 기존 코드나 문서 기반 개발 방식에서는 전통적 개발 프로세스를 따르는 경우, 최종 아웃풋이 나오기까지 많은 시간과 노력이 필요한 반면, 전통적 개발 프로세스를 따르지 않는 경우, 급변하는 환경/법규/규정 등을 만족하기 어려울 수 있다는 점도 한몫 한다고 생각합니다. 실제 NASA에서는 2020년 1월 MBSE가 시스템 복잡성을 추적하기 위한 수단으로 산업과 정부 모두에서 점점 더 수용되고 있다고 보고하기도 했다고 합니다.
복잡한 시스템 내에서의 사이버보안
미국 SEI의 CERT 부서에서는 시스템 개발 프로세스 초기에 MBSE를 사용하여 보안 위험을 완화하는 방법을 연구하고 있습니다. 이는 CERT 부서에서 개발하는 모든 시스템 속성을 모델링하여 시스템 엔지니어가 초기 단계에서 위협 모델일 분석을 수행하고, 시스템 설계 단계부터 보안 위협으로부터 시스템을 보호할 수 있는 전략과 통합할 수 있는 근거를 마련해 주기도 했습니다.
MBSE의 강점
기존 문서 기반 시스템 개발 프로세스와 달리 MBSE는 시스템을 모델링하고, 모델링 된 자산이 모두 디지털화되기 때문에, 모든 이해관계자들이 동일한 개념을 공유하고 이해할 수 있으며, 표준화된 방식으로 시스템을 문서화 할 수 있게 해 줍니다. 이를 위해서는 조직적 정책의 지원도 필수적인 사항으로 모든 이해관계자가 MBSE 추진을 위해 정의된 표준을 준수할 수 있도록 강제해 주어야 합니다. 이를 통해 시스템 데이터의 가용성 분석 및 개선, 변경 사항의 신속/정확한 반영, 그리고 새로운 정보 및 설계 의사 결정이 통합 진행될 수 있도록 해 줍니다.
MBSE의 세가지 개념
모델
MBSE에서 모델은 현실 세계를 단순화하여 복잡성을 제거하고, 그래픽 또는 수학적 표현과 같은 정해진 표기법을 활용하여 현실 세계의 대상을 표현한 것입니다. 이러한 시스템을 모델링 할 때 시스템 아키텍트는 시스템의 구조와 동작이 명확하게 드러나고 복잡성이 관리 가능하도록 표현해 주어야 합니다.
시스템적 사고
시스템적 사고란 모델링하고자 하는 대상 시스템을 독립적인 개체로만 인식하지 않고, 더 큰 시스템의 일부로 보아야 하는 관점을 내포하고 있습니다. 하나의 시스템은 의도와 목적, 그리고 환경에 따라 그 경계가 결정되며, 각 구성요소들간의 상호작용으로 구성되기 때문에 단순한 개체로만 인식하기 보다는 시스템적 사고를 통한 전체와 부분을 정의하고, 이들간의 상호작용이 어떻게, 어느 시점에 일어나는지를 면밀하게 분석해야 합니다. 이를 위해 시스템 엔지니어는 시스템적 사고를 위해 시스템의 경계나 컨택스트, 생명주기를 분석하고, 시스템의 동작을 관찰하며, 시스템 구성 및 동작 패턴을 식별할 수 있어야 합니다.
시스템 엔지니어링
시스템 엔지니어링은 시스템의 원칙과 개념, 과학적 기술적, 관리 방법을 사용하여 엔지니어링 시스템의 성공적인 구현, 사용, 폐기를 다루게 됩니다. 또한 시스템 요구사항을 충족시키기 위해 다양한 기술들을 통합하고, 시스템 아키텍처, 구현, 통합, 분석, 그리고 관리를 포함하는 포괄적 접근 방식을 의미합니다.
MBSE의 적용
MBSE 적용을 위해 반드시 필요한 사항들이 존재합니다. 먼저 개발 대상이 되는 시스템을 모델링하기 위한 모델링 언어가 필요합니다. 모델링 언어는 추상적 아이디어를 명확하게 전달하기 위한 공통 언어로서 대표적인 예로 SysML, UML, ADL 등과 같은 시스템 모델링 언어가 있습니다. 이러한 모델링 언어는 시스템을 모델링하는 시스템 엔지니어를 비롯한 모든 이해관계자들이 모두 숙지하고 있어야 하며, 대상 시스템에 대한 분석 및 협의를 위해 모델링 언어를 기반으로 논의가 수행될 수 있어야 합니다. 이를 위해 MBSE에서는 다음과 같이 모델링 언어와 실제 언어와의 매핑을 제공하기도 합니다.
- 명사(Noun) : 주로 시스템 구성 요소 즉, 액터, 블록, 컴포넌트 요구사항과 같은 구성 요소를 표현합니다.
- 동사(Verb) : 구성 요소 간 상호작용, 운영 활동, 시스템 기능, 시스템 사례와 같은 기능성을 주로 표현합니다.
- 형용사(Adjective) : 시스템이 가져야 할 속성을 표현합니다. 시스템 비기능 요소를 표현한다고 볼 수 있으며, 주로 품질, 성능과 같은 시스템 속성을 주로 표현합니다.
- 부사(Adverb) : 구성 요소 간 관계, 인터페이스와 같은 구조적 연관 관계를 주로 표현합니다. 이를 통해 시스템 엔지니어는 시스템 구조를 파악하고, 구조적 분석을 가능하게 해 줍니다.
다음으로 잘 구조화된 모델 구조가 필요합니다. 모델은 현실 세계의 복잡한 시스템을 단순화/추상화한 것이므로, 복잡성을 잘 표현하면서도 구조적으로 단순화되어 이해관계자들의 이해가 용이해야 합니다. 이를 통해 시스템 엔지니어들이 시스템을 분석하고, 이해관계자들과 의사소통 및 의사 결정을 돕게 되며, 향후 시스템의 유지보수도 용이해 집니다. 아울러 이것이 최초 요구된 시스템 요구사항을 잘 충족하는지도 보여 줄 수 있어야 하기 때문에, 대부분의 모델은 시각화된 기법으로 개발되게 됩니다.
모든 시스템은 의도와 목적에 따라 개발되기 때문에, 시스템 요구사항과 기능 수행을 위한 가용성 분석, 기능성 분석, 아키텍처 및 기능 설계, 그리고 검증 및 확인과 같은 4가지 시스템 엔지니어링 도메인(요구사항/분석/설계/검증)을 포함해야 합니다. 이를 통해 모델이 성공적으로 설계되었음을 증명하는 논거로 활용될 수 있어야 합니다.
시스템 모델링 접근법의 분류 (4 Quadrants)
다음 그림은 시스템을 구성하는 구성 요소들간의 분류를 나타냅니다. 아래 그림에서도 볼 수 있듯이 시스템 모델링은 크게 문제를 정의하기 위한 부분(2,3분면)과 해결책을 제시하는 부분(1,4분면)으로 구성됩니다. 먼저 문제 해결 측면에서 보면, 사용자나 운영자, 그리고 비즈니스 관점에서 비즈니스 프로세스, 목표, 조직 구조, 사용 사례, 정보의 흐름등을 표현해야 합니다.이를 통해 어떤 문제를 해결하기 위해 해당 시스템이 모델링 되고 있는지를 표현할 수 있어야 합니다. (시스템의 목적과 의도 기술) 다음으로 해결책 측면에서 보면, 앞에서 정의된 문제들을 해결하기 위한 시스템 구조 즉, 시스템 아키텍처, 동작, 구성 요소간 데이터 흐름, 기능 할당 등을 설명해야 합니다. 이를 통해 시스템이 목적과 의도에 맞게 동작하고 있는지를 확인할 수 있어야 합니다. (시스템 효과)
또한 시스템 복잡성 관리를 위해 논리적 측면과 물리적 측면으로도 구분해 보아야 합니다. 여기서 논리적 측면이란 시간이 지나거나 환경이 변하더라도, 거의 변하지 않는 요소들로 식별되어야 합니다. 일종의 추상화나 일반화 같은 개념으로 공통적 요소들을 정의할 수 있어야 합니다. 반면, 물리적 측면에서는 시간이 지남에 따라 또는 기술 발전에 따라 변경이 가능한 부분을 나타냅니다.
이러한 모델링 기법의 구조적 분류는 복잡한 시스템을 효과적으로 개발하고, 관리할 수 있는 개념적 체계를 지원하게 됩니다. 하지만 현실적으로 쉽지 않은 부분들 즉, 관련 지식을 갖고 있는 엔지니어의 부족, 지원 조직 부재, 의사 결정 체계의 이질성 등은 시스템 모델링에 있어 어려움을 초래하는 요인으로 작용하기도 합니다.
시스템 모델링 프로세스
마지막으로 MBSE의 효과적인 통합이 필요합니다. MBSE는 개발 프로세스에 자연스럽게 효과적으로 통합될 수도 있지만, 앞서 언급한 지원 조직 부재 및 의사 결정 체계의 이질성으로 인해 이를 모델링하는 조직은 각별한 노력을 기울일 필요가 있습니다. 그렇기 때문에 시스템 모델링 프로세스에는 설계된 시스템, 시스템의 컨택스트, 모델링 조직이 모두 고려되어야 합니다.
이 글은 CMU Nataliya Shevchenko가 2000년 12월 작성한 https://insights.sei.cmu.edu/blog/introduction-model-based-systems-engineering-mbse/을 기반으로 작성하였습니다.
'System Engineering' 카테고리의 다른 글
Service API vs. Software API 비교 (0) | 2024.07.27 |
---|---|
Software API (Application Programming Interface)란 무엇인가? (0) | 2024.07.27 |
해외 AI 안전연구소 추진 현황과 시사점 (0) | 2024.07.27 |
소프트웨어 정의 차량 (SDV, Software Defined Vehicles) 추진 전략 비교 (0) | 2024.06.20 |
시스템 엔지니어링 개요 (0) | 2024.06.15 |