Douglas' Space
Interface Model 본문
1. 들어가면서
모든 open system은 외부와의 인터렉션을 수행하는 것이 본질적인 성질입니다. 따라서 그 기능을 수행하기 위해서는 외부의 인터페이스를 잘 유지해야 합니다. 모든 software system은 자극으로 데이터를 외부로 입력을 받고, 이를 변환하여 반응으로 데이터를 출력합니다.
이렇게 입출력되는 데이터가 정의가 되어야 시스템의 완전한 기능 모델이 정의된다고 볼 수 있습니다. 바꿔 말하며 software system의 이러한 데이터는 매우 중요한 요소이며, 데이터의 분석 및 정의는 시스템 분석의 가장 중요한 부분이라고 생각할 수 있습니다.
2. Interface Types
지난번 context model에서 살펴본 것 같이 software system은 크게 2가지의 유형의 actor와 상호작용합니다. 그러나 일반적인 시스템은 3가지의 유형의 actor가 존재할 수 있습니다. 바로 human actor, machine actor, 그리고 물리적인 환경 객체입니다. 이와 마찬가지로 인터페이스도 3가지 유형으로 나누어 볼 수 있습니다. human actor와 인터페이스인 human-machine interface(HMI), machine actor와의 인터페이스인 Machine-Machine Interface(MMI), 그리고 analog signal로 인터페이스 되는 Phsycia-Machine Interface(PMI)로 구분할 수 있습니다. (software system에 초점을 두어 PMI에 대한 내용은 생략하도록 하겠습니다.)
보통은 HMI는 grachic user interface를 통해 구현이 되고, MMI는 두 시스템간의 정해진 규칙인 prototocol로 구현이 됩니다.
3. Human-Machine Interface
Human actor와 동작하는 시스템을 Human-centered system이라고 합니다. 이러한 시스템일수록 HMI를 분석하고 설계하는 것이 전체 시스템 요구사항의 대부분을 차지하며, 이를 설계하는 것이 매우 주관적이어서 요구사항을 결정하는 것이 매우 어려운 작업일 가능성이 높습니다. 일반 고객을 대상으로 하는 시스템의 경우는 제품의 성공 여부로 이어지고, 특정 사용자를 위한 시스템의 경우는 사용자의 합의를 이루어야 하기 때문입니다.
위 그림의 context model에서 "전탐관"이라는 사용자와의 HMI의 ID가 "CMS-RTO-HMI" 로 정의되어 있습니다. 따라서 CMS-RTO-HMI 인터페이스 패키지에 전탐관과의 입출력되는 데이터를 interface class로 정의하고 입출력을 나타내는 stereo type으로 <<in>>, <<out>, <<inout>>을 정의합니다. (이러한 방향에 대한 stereo type은 HMI, MMI 모든 인터페이스에 적용하여 기술합니다.)
보통 HMI의 경우 상호작용이 존재하는 경우 양방향의 인터페이스로 표현하고 가능한 상호작용이라는 의미로 UI(user interaction)라는 접미사를 기입합니다. 위에서 "시스템 관리-UI"가 그 예입니다. 특히 이러한 UI의 경우는 동작이 수반되는 형태로 정의하는 것이 필요합니다. 따라서 해당 UI를 통해 상호작용하는 데이터들과 동작을 일반적인 프로그래밍의 class와 같은 형태로 데이터부와 연산부로 구분하여 모델링합니다.
4. Machine-Machine Interface
MMI는 외부 시스템과의 약속된 규칙에 따라 결정되므로 문의 발생 시 책임소재의 문제도 필요한 경우가 있기 때문에 일종의 계약과도 같은 절차에 따라 결정되기도 합니다.
MMI의 경우는 해당 인터페이스의 프로토콜의 이름을 기입하고, 입출력 빈도 등을 기입합니다. 위의 예에서 CMS-RAD-MMI는 "Ehternet", CS-LINK-MMI는 "RS-422"이라는 프르토콜이 정의되어 있습니다. 또한 "source-track" 데이터는 1Hz의 빈도로, "link-track" 데이터는 30Hz의 빈도로 입력되는 것을 정의하고 있습니다.
'Development Diary > System Requirements Analysis Model' 카테고리의 다른 글
System/Software Quality Model (2) | 2023.04.15 |
---|---|
Non-functional requirements (0) | 2023.01.29 |
Use-Case Pattern (0) | 2022.07.02 |
Functional Model (0) | 2022.06.04 |
State Model (0) | 2022.05.08 |