본문 바로가기

System & Software Engineering

시스템 엔지니어링 개요

Introduction to Systems Engineering

SEBoK는 도메인 독립적인 시스템 엔지니어링을 실현하기 위한 현재 알려진 기본 지식을 제공하는 것을 목표로 한다. 이러한 지식 영역에는 시스템 엔지니어링 실현에 대한 개요, 경제적 가치, 역사적 발전, 주요 관계 등이 있으며, SEBoK는 이러한 지식영역에 대한 설명을 포함한다.
 

Topics

SEBoK는 관련 주제별로 그룹화된 지식 영역으로 나누어진다. 그리고 각 지식 영역은 하위의 세부 주제로 나누어진다.
  • 시스템 엔지니어링 개요
  • 시스템 엔지니어링의 경제적 가치
  • 시스템 엔지니어링의 역사적 의미 및 미래에 대한 도전
  • 시스템 엔지니어링과 연계 학문
 

System Engineering

시스템 엔지니어링은 시스템을 구현하기 위한 초학문적 접근법으로, 성공적인 시스템은 고객, 사용자 및 기타 이해관계자의 요구를 만족시켜야 한다.
시스템 엔지니어링의 주요 요소는 다음과 같다.
  • 시스템 특징적 원리와 개념: 시스템은 정해진 목표를 달성하기 위해 상호작용하는 시스템 요소들의 조합이며, 시스템은 다른 시스템, 사용자, 환경 등과 상호작용하게 된다.
  • 시스템 엔지니어: 고객의 요구를 시스템 개발팀이 구현할 수 있는 문서로 변환하는 역할을 담당한다.
  • 시스템 엔지니어는 시스템 개념단계부터 시작하여 제조, 배포, 사용, 폐기에 이르까지 전 생명주기에 걸쳐 업무를 수행한다. 또한 시스템의 기능적, 인터페이스, 성능, 물리적 기타 품질 특성, 비용 등을 균형있게 분석, 명세, 설계, 검증해야 한다.
  • 시스템 엔지니어는 시스템 요소들이 전체 목표를 달성하고, 고객과 이해관계자의 요구를 만족시킬 수 있도록 맞춰져 있는지 확인해야 한다.
 
다음 그림에서 시스템 엔지니어는 고객 니즈를 기반으로 시스템을 개발하기 위해 필요한 사항들을 문서화하여 개발팀에 전달하는 역할을 한다. 또한 개발된 시스템이 잘 운영될 수 있도록 지원하고, 외부 환경으로부터 고려해야 할 여러 사항들도 함께 고려하여 시스템이 정상적인 동작, 즉 고객이 원하는 기능과 성능을 유지 할 수 있도록 지원해야 한다.

Systems Engineering Overview

먼저 시스템 엔지니어링의 복잡성을 살펴 보고, 시스템 엔지니어가 어떻게 용어의 모호성을 관리하고 더 넓은 분야와 통합되는지에 대해 살펴 본다. 따라서 시스템을 구성하는 구성요소들간의 의미를 파악하는데 중점을 두며, 이들을 어떻게 생산/제조할 것인지에 대해서는 다루지 않는다.
시스템 엔지니어는 프로젝트 생명주기 내에서 다양한 이해관계자와 협력하여 성공적인 시스템을 개발하고 발전시키는 역할을 한다. 특히 이해관계자가 제안하는 복잡한 변경 사항을 협상하고 이를 중재하는 역할을 수행한다. 또한 이러한 시스템을 다양한 환경에서 운영하고 관리하는 역할을 수행한다.
 

시스템과 시스템 엔지니어링

"시스템" 이란 용어는 기술적, 자연적, 사회적 요소의 집합을 의미하며, 이는 떄떄로 모호성을 초래하기도 한다. 예를 들어 "관리"라는 용어가 시스템 엔지니어링 프로세스의 "관리" 인지 아니면 시스템 자체의 "관리"인지를 구분하기 어려울 수 있다.
  • 엔지니어링 시스템: 예상 운영 환경과 상호작용하도록 설계되거나 적용된 기술적 또는 사회적 시스템을 의미함
  • 엔지니어링 시스템 컨텍스트: 엔지니어링 시스템을 중심으로 정의된 환경 내에서 다른 엔지니어링, 사회적 또는 자연적 시스템과의 관계를 포함한다.
따라서 시스템 엔지니어링의 범위는 엔지니어링 시스템에 한정되며, "시스템 아키텍처"란 엔지니어링 시스템 아키텍처를 의미한다.
 

엔지니어링 시스템 도메인 내에서의 시스템 엔지니어링 범위

시스템 엔지니어링 범위에서 엔지니어링 시스템의 엔지니어링 및 관리와 관련된 모든 활동이 포함되지는 않는다. 예를 들어, 구축, 제조, 자금 조달, 일반 관리 등은 포함하지 않는다. 그러나 이러한 활동들이 잘 관리되지 않으면 성공을 보장할 수 없을 수 있다. 다음 그림은 시스템 엔지니어링, 시스템 구현과 시스템 관리 간의 관계를 나타낸다. 각 영역별 독립적인 활동들이 존재하기도 하며, 상호작용에 따른 의존적 활동, 그리고 공통의 활동으로 식별될 수 있음을 알 수 있다.

Systems Engineering and Engineered Systems Project Life Cycle Context

시스템 엔지니어링은 생명주기 상에서 하나의 활동으로 간주되어 수행된다. 다음 그림은 시스템 엔지니어링 생명 주기에서 주요 에이전트, 활동, 그리고 산출물들을 요약해서 설명하고 있다.

먼저 각 주요 프로젝트 생명주기 단계에서, 주요 구성요소가 활동을 수행하여 엔지니어링 시스템(ES)의 상태를 변경한다.
  • 주요 프로젝트 생애 주기 단계: 왼쪽 열에 나타나며, 시스템 정의, 시스템 초기 운영 능력(Initial Operation Capacity, IOC) 개발, 시스템 진화 및 폐기 단계로 구성된다.
  • 주요 주체: 맨 위 행의 세 내부 열에 나타나며, 시스템 엔지니어, 시스템 개발자, 프로젝트 외부 주체(사용자, 소유자, 외부 시스템)로 구성된다.
  • 엔지니어링 시스템(ES): 오른쪽 열에 나타나며, 제품, 서비스 또는 거대한 시스템일 수 있다.
각 행에서:
  • 각 내부 열의 상자들은 해당 열의 맨 위에 나열된 주체가 수행하는 활동을 나타낸다.
  • 각 활동의 결과물은 가장 오른쪽 상자에 나타난다.
  • 화살표는 활동간 의존성을 의미 : 예를 들어 상자 A에서 상자 B로의 화살표는 상자 B의 성공적인 결과가 상자 A의 성공적인 결과에 의존함을 의미한다. 또한 양방향 화살표는 상호 의존성을 나타낸다.
 
예: 시스템 개발 및 진화 중 발생하는 변경 사항 처리
  • 사용자가 제안한 변경 사항이 첫 번째 상자에 표시된다.
  • 변경 사항은 두 번째 상자에 표시된 시스템 개발자와 협상해야 한다.
  • 협상은 첫 번째와 두 번째 상자 사이에 표시된 시스템 엔지니어가 중재한다.
  • 제안된 변경 사항은 왼쪽에서 오른쪽으로, 반대 제안은 오른쪽에서 왼쪽으로 진행되므로, 세 상자는 양방향 화살표로 연결되어 있다. 이는 협상의 상호 의존성을 반영한다.
 
세부 예시
  • 시스템의 사용자와 소유자(이해관계자)는 경쟁 위협이나 기회를 대응하거나, 상용 기성품(COTS) 제품, 클라우드 서비스 또는 공급망 활성화와 같은 독립적으로 진화하는 외부 시스템의 변화에 적응하기 위해 변경 사항을 제안한다.
  • 이러한 이해관계자와 시스템 개발자 간의 협상은 시스템 엔지니어(SE)가 중재한다.
  • 시스템 엔지니어(SE)의 역할은 대안 변경 제안의 상대적 비용과 이점을 분석하고, 상호 만족스러운 솔루션을 도출하는 것이다.