소프트웨어 엔지니어를 위한 사물화 개념
초록
이 논문은 소프트웨어 요구사항 분석 단계에서 ‘사물(thing)’과 ‘사물화(thinging)’ 개념을 강조한다. 사물은 현실의 일부를 경계짓고 명명한 것이며, 사물화는 그 과정을 의미한다. 저자는 추상 기계인 ‘Thinging Machine(TM)’을 제시해 사물을 생성·처리·수신·방출·전송하는 다섯 가지 기본 동작을 모델링한다. TM 다이어그램을 통해 현실을 시각화하고, 기존 객체지향·프로세스 모델링과의 차별성을 논의한다. 최종적으로 사물화가 요구분석 교육과 연구에 중요한 주제로 부각될 것을 제안한다.
상세 분석
논문은 ‘thing’과 ‘thinging’이라는 용어를 소프트웨어 공학의 개념 모델링에 재도입하려는 시도로 시작한다. 여기서 ‘thing’은 물리적·추상적 실체를 경계짓고 이름을 부여한 것으로 정의되며, ‘thinging’은 그 경계 설정과 명명 과정을 의미한다. 이러한 정의는 전통적인 객체지향 모델링이 ‘객체(object)’를 중심으로 상태와 행위를 캡슐화하는 데 반해, 사물화는 경계 설정 자체를 모델링의 핵심 활동으로 삼는다.
핵심 메커니즘은 ‘Thinging Machine(TM)’이다. TM은 다섯 가지 기본 연산을 가진 추상 기계로, (1) 생성(create), (2) 처리(process), (3) 수신(receive), (4) 방출(release), (5) 전송(transfer)이다. 각각의 연산은 사물이 시스템 내부 혹은 외부와 어떻게 상호작용하는지를 명시한다. 예를 들어, ‘생성’은 새로운 사물을 메모리나 물리적 공간에 등장시키는 행위이며, ‘전송’은 사물이 한 TM에서 다른 TM으로 이동하는 흐름을 나타낸다. 이러한 연산은 순환적이면서도 비선형적인 흐름을 허용해, 복잡한 비즈니스 프로세스나 물리적 시스템을 자연스럽게 표현한다.
다이어그램적 표현은 TM의 연산을 노드와 화살표로 시각화한다. 사물은 노드에 라벨로 표시되고, 연산은 화살표의 종류와 방향으로 구분된다. 이 시각화는 기존 UML 다이어그램이 클래스와 메서드, 시퀀스에 초점을 맞추는 것과 달리, 사물 자체와 그 흐름을 직관적으로 드러낸다. 따라서 요구사항 분석 단계에서 이해관계자와 개발자가 ‘무엇이 존재하고, 어떻게 이동·변형되는가’를 논의할 때 유용한 공통 언어를 제공한다.
논문은 또한 ‘thing’과 ‘object’, ‘process’의 관계를 명확히 구분한다. ‘object’는 전통적인 객체지향에서 상태와 행위를 결합한 실체이며, ‘process’는 일련의 연산 흐름을 의미한다. 반면 ‘thing’은 이 두 개념을 포괄하는 더 원시적인 단위로, 상태·행위·흐름 모두를 포함할 수 있다. 이러한 구분은 모델링의 추상화 수준을 선택할 때 의도적인 설계 결정을 돕는다.
비판적으로 보면, TM이 제공하는 연산이 다섯 가지에 국한되는 것이 실제 복잡한 시스템을 충분히 표현할 수 있는가에 대한 의문이 남는다. 또한 기존 도구와의 호환성, 교육 커리큘럼에의 통합 방안 등 실용적 과제가 제시되지 않았다. 그럼에도 불구하고, 사물화라는 개념을 통해 ‘경계 설정’ 자체를 모델링의 핵심으로 전환하려는 시도는 요구사항 분석 단계에서 개념적 혼란을 줄이고, 이해관계자 간 의사소통을 강화할 가능성을 보여준다.
댓글 및 학술 토론
Loading comments...
의견 남기기