모델링 언어
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
모델링 언어는 시스템의 구조, 동작, 프로세스 등을 표현하기 위해 사용되는 언어로, 그래픽 방식과 텍스트 방식으로 분류된다. 그래픽 모델링 언어는 다이어그램 기법을 활용하며, 텍스트 모델링 언어는 표준화된 키워드나 자연어 구문을 사용한다. 모델링 언어는 컴퓨터 과학, 정보 관리, 소프트웨어 공학 등 다양한 분야에서 활용되며, 시스템의 요구사항을 명확하게 정의하고 이해 관계자 간의 소통을 돕는 데 기여한다. 모델링 언어의 품질은 도메인 적합성, 참여자 적합성, 모델러 적합성, 이해 적절성, 도구 적합성, 조직 적합성을 기준으로 평가할 수 있다.
더 읽어볼만한 페이지
- 명세 언어 - 통합 모델링 언어
통합 모델링 언어(UML)는 소프트웨어 시스템의 구조와 행위를 시각적으로 표현하기 위해 개발된 표준 모델링 언어이며, 객체 지향 방법론을 통합하여 개발되어 다양한 분야에서 활용된다. - 명세 언어 - 메타 오브젝트 퍼실리티
메타 오브젝트 퍼실리티(MOF)는 객체 지향 기술 메타데이터 관리 표준으로서 UML 메타모델 정의 및 모델 주도 개발의 핵심 기술로 사용되며, 4계층 구조, EMOF, CMOF 등 다양한 종류, XMI, JMI 등 관련 표준을 가지나 복잡성과 성능 문제 등의 단점도 존재한다. - 모델링 언어 - 차트
차트는 통계 데이터를 점, 선, 도형 등으로 묘사하여 데이터의 규칙성, 경향 등을 시각적으로 제시하고 분석 방향을 제시하는 도표이며, 히스토그램, 막대그래프, 원그래프, 선 그래프 등이 흔히 사용된다. - 모델링 언어 - 순서도
순서도는 컴퓨터 알고리즘이나 프로세스를 시각적으로 표현하는 도구로, 흐름 공정 차트에서 기원하여 컴퓨터 프로그래밍 분야에서 알고리즘을 설명하는 데 사용되며, 다양한 종류와 소프트웨어 도구가 존재한다.
모델링 언어 | |
---|---|
개요 | |
유형 | 전문화된 프로그래밍 언어 |
패러다임 | 선언형 프로그래밍 및 명령형 프로그래밍 |
디자인 목표 | 특정 영역 내의 문제 모델링 |
특징 | 추상화 수준 향상 특정 도메인에 최적화된 구문 시뮬레이션, 설계, 분석과 같은 작업을 위한 도구 제공 |
역할 | |
목적 | 시스템의 다양한 측면을 표현 추상화된 형태로 시스템을 이해하고 분석 시스템 개발 과정에서 의사소통 도구로 활용 |
사용 분야 | 소프트웨어 개발 데이터베이스 모델링 비즈니스 프로세스 모델링 시스템 엔지니어링 |
주요 모델링 언어 | |
소프트웨어 개발 | UML (Unified Modeling Language): 객체 지향 소프트웨어 모델링을 위한 표준 |
데이터베이스 모델링 | ER 다이어그램 (Entity-Relationship Diagram): 데이터베이스 구조 모델링 ORM (Object-Relational Mapping) 도구: 데이터베이스와 객체 간의 매핑 정의 |
비즈니스 프로세스 모델링 | BPMN (Business Process Model and Notation): 비즈니스 프로세스 모델링을 위한 표준 |
시스템 엔지니어링 | SysML (Systems Modeling Language): 시스템 엔지니어링을 위한 모델링 언어 |
장점 | |
추상화 | 복잡한 시스템을 단순화하여 이해하기 쉽게 만듦 |
의사소통 | 개발자와 이해 관계자 간의 명확한 의사소통을 지원 |
생산성 향상 | 자동화된 코드 생성 및 테스트를 통해 개발 속도 향상 |
품질 향상 | 모델 검증을 통해 오류를 사전에 발견하고 수정 |
단점 | |
학습 곡선 | 새로운 언어와 도구 학습에 시간과 노력 필요 |
과도한 모델링 | 모델링에 너무 많은 시간을 투자하면 개발 지연 발생 가능성 |
도구 의존성 | 특정 도구에 대한 의존성이 높아질 수 있음 |
참고 자료 | |
관련 서적 | "UML Distilled" (Martin Fowler) "Executable UML" (Stephen Mellor) |
관련 웹사이트 | Object Management Group (OMG): UML 및 SysML 표준 관리 기관 BPMN.org: BPMN 표준 관련 정보 제공 |
2. 모델링 언어의 유형
모델링 언어는 크게 그래픽 방식과 텍스트 방식으로 나눌 수 있으며, 각 방식은 특정 목적과 환경에 맞게 활용된다.[8][1][6]
- 그래픽 모델링 언어: 개념을 나타내는 명명된 기호와 기호 간의 관계를 나타내는 선, 그리고 제약 조건을 나타내는 다양한 그래픽 표기법을 사용하는 다이어그램 기법을 사용한다.
- 텍스트 모델링 언어: 컴퓨터가 해석할 수 있는 표현식을 만들기 위해 매개변수와 함께 표준화된 키워드 또는 자연어 용어와 구문을 사용한다.
EXPRESS는 그래픽 모델링 언어와 텍스트 모델링 언어의 한 예시이다.[8][1][6]
모든 모델링 언어가 실행 가능한 것은 아니며, 실행 가능한 언어를 사용한다고 해서 반드시 프로그래머가 더 이상 필요하지 않다는 의미는 아니다. 오히려 실행 가능한 모델링 언어는 숙련된 프로그래머의 생산성을 증폭시켜 병렬 컴퓨팅 및 분산 시스템과 같은 더 어려운 문제를 해결할 수 있도록 고안되었다.
2. 1. 그래픽 모델링 언어
그래픽 모델링 언어는 개념을 나타내는 명명된 기호와 기호를 연결하고 관계를 나타내는 선, 그리고 제약 조건을 나타내는 다양한 기타 그래픽 표기법을 사용하는 다이어그램 기법을 사용한다.[8][1]다음은 컴퓨터 과학, 프로젝트 관리 및 시스템 공학 분야의 그래픽 모델링 언어 예시이다.
모델링 언어 | 설명 |
---|---|
행위 트리 | 주로 시스템 공학 및 소프트웨어 공학에서 사용되는 공식적인 그래픽 모델링 언어이다. 일반적으로 대규모 소프트웨어 통합 시스템의 프로젝트 이해 관계자 요구 사항을 표현하는 데 사용되는 수백 또는 수천 개의 자연어 요구 사항을 명확하게 표현하는 데 사용된다. |
비즈니스 프로세스 모델링 표기법(BPMN) | 프로세스 모델링 언어의 예시이다. |
C-K 이론 | 설계 프로세스에 대한 모델링 언어이다. |
DRAKON | 소프트웨어 집약 시스템, 알고리즘 또는 단계별 프로세스의 개략적인 표현 및 일련의 프로그래밍 언어를 지정하기 위한 범용 모델링 언어이다. |
EXPRESS 및 EXPRESS-G (ISO 10303-11) | 국제 표준 범용 데이터 모델링 언어이다. |
확장 엔터프라이즈 모델링 언어(EEML) | 여러 계층에서 비즈니스 프로세스 모델링에 일반적으로 사용된다. |
순서도 | 알고리즘 또는 단계별 프로세스의 개략적인 표현이다. |
기본 모델링 개념(FMC) | 소프트웨어 집약 시스템을 위한 모델링 언어이다. |
IDEF | 기능 모델링을 위한 IDEF0, 정보 모델링을 위한 IDEF1X, 비즈니스 프로세스 모델링을 위한 IDEF3, 객체 지향 설계를 위한 IDEF4, 온톨로지 모델링을 위한 IDEF5를 포함하는 일련의 모델링 언어이다. |
잭슨 구조적 프로그래밍(JSP) | 데이터 스트림 구조와 프로그램 구조 간의 대응 관계를 기반으로 한 구조적 프로그래밍 방법이다. |
LePUS3 | 주로 대규모 객체 지향 (\Java, C++, C#) 프로그램 및 설계 패턴을 모델링하는 데 적합한 객체 지향 시각적 설계 설명 언어이자 공식 명세 언어이다. |
수명 주기 모델링 언어 | 전체 시스템 수명 주기 (개념, 활용, 지원 및 폐기 단계)를 지원하는 시스템 공학을 위한 개방형 표준 언어이다. |
객체-역할 모델링(ORM) | 소프트웨어 공학 분야에서 개념적 모델링 방법이며 정보 및 규칙 분석 도구로 사용된다. |
페트리넷 | 정확히 하나의 다이어그램 기술 및 토폴로지, 즉 이분 그래프의 변형을 사용한다. 기본 사용자 인터페이스의 단순성은 특히 모델 검사, 그래픽 지향 시뮬레이션 및 소프트웨어 검증 분야에서 수년에 걸쳐 광범위한 도구 지원을 가능하게 하였다. |
사우스비치 표기법 | 모델러의 관점에서 유용하거나 유해하다고 간주되는 에이전트 측면에서 상황을 설명하는 데 사용되는 시각적 모델링 언어이다. 에이전트가 서로 어떻게 상호 작용하는지, 그리고 이 상호 작용이 상황을 개선하는지 악화시키는지 보여준다. |
명세 및 설명 언어(SDL) | 반응형 및 분산 시스템의 동작을 명확하게 명세하고 설명하는 데 사용되는 명세 언어이다. |
SysML | UML 프로파일(사용자 정의)로 정의된 시스템 공학을 위한 도메인별 모델링 언어이다. |
통합 모델링 언어(UML) | 소프트웨어 집약 시스템을 지정하기 위한 업계 표준인 범용 모델링 언어이다. 현재 버전인 UML 2.0은 13가지 다른 다이어그램 기법을 지원하며 광범위한 도구 지원을 제공한다. |
FLINT | 규범 시스템의 고수준 설명을 허용하는 언어이다.[2] |
서비스 지향 모델링 프레임워크(SOMF) | 엔터프라이즈 아키텍처, 가상화, 서비스 지향 아키텍처 (SOA), 클라우드 컴퓨팅 등의 영역에서 엔터프라이즈 및 애플리케이션 수준 아키텍처 모델을 설계하기 위한 전체적인 언어이다.[3] |
아키텍처 설명 언어(ADL) | 시스템 아키텍처를 설명하고 표현하는 데 사용되는 언어이다. |
아키텍처 분석 및 설계 언어(AADL) | 확장 가능한 표기법, 도구 프레임워크 및 정확하게 정의된 의미론을 통해 성능에 중요한 속성에 대해 시스템의 아키텍처를 조기에 반복적으로 분석할 수 있도록 지원하는 모델링 언어이다. |
다른 과학 분야의 그래픽 모델링 언어 예시는 다음과 같다.
모델링 언어 | 설명 |
---|---|
EAST-ADL | 자동차 시스템 설계를 위한 전용 도메인별 모델링 언어이다. |
에너지 시스템 언어(ESL) | 생태 에너지학 및 글로벌 경제를 모델링하는 것을 목표로 하는 언어이다. |
IEC 61499 | 분산 산업 공정 측정 및 제어 시스템에 전념하는 도메인별 모델링 언어를 정의한다. |
2. 2. 텍스트 모델링 언어
텍스트 모델링 언어는 표준화된 키워드, 자연어 용어 및 구문을 사용하여 컴퓨터가 해석 가능한 표현식을 만든다.[8][1][6] 텍스트 기반으로 모델을 작성하고 관리할 수 있으며, 자동화 및 코드 생성에 유리하다.EXPRESS는 그래픽 모델링 언어와 텍스트 모델링 언어의 한 예시이다.[8][1][6]
젤리쉬 형식 영어와 같은 정형화된 자연어로도 정보 모델을 표현할 수 있다.[4] 젤리쉬 형식 영어는 젤리쉬 영어 사전-택소노미에서 정의된 정보 표현 언어 또는 의미 모델링 언어이다. 젤리쉬 형식 영어는 지식, 요구사항, 사전, 택소노미 및 온톨로지를 표현하고, 개별 사항에 대한 정보도 표현하는 데 적합하다. 젤리쉬 형식 영어의 정보 모델은 자연어 용어와 정형화된 구문을 사용하는 젤리쉬 형식 영어 표현의 모음으로 구성된다. 예를 들면 다음과 같다.
- 에펠탑 is located in|~에 위치영어 파리
- 파리 is classified as a|~로 분류영어 도시
이러한 표현은 젤리쉬 영어 사전-택소노미에서 선택해야 하는 관계 유형을 나타내는 개념 이름과 구문을 사용한다. 젤리쉬 영어 사전-택소노미는 600개 이상의 표준 관계 유형과 40,000개 이상의 개념 정의를 포함하고 있어 의미가 풍부한 정보 모델을 생성할 수 있게 해준다.
대수적 모델링 언어(AML)는 대규모 최적화 문제와 같은 복잡한 문제를 설명하고 해결하기 위한 고급 프로그래밍 언어이다. AML의 구문은 최적화 문제의 수학적 표기법과 유사하여 간결하고 읽기 쉬운 정의가 가능하다는 장점이 있다.
링크 데이터와 온톨로지 엔지니어링은 '호스트 언어'를 필요로 하며, JSON-LD와 RDF는 이 맥락에서 두 가지 주요 언어이다.[6]
2. 3. 기타 모델링 언어 유형
최근 컴퓨터 과학 분야에서는 특정 분야나 목적에 특화된 모델링 언어들이 등장하고 있다. 이러한 언어들은 기존의 범용 모델링 언어보다 더 높은 수준의 추상화를 제공하여, 특정 문제를 해결하거나 시스템을 설계하는 데 필요한 노력과 세부 사항을 줄여준다.- 대수적 모델링 언어(AML): 대규모 최적화 문제와 같은 복잡한 수학적 계산을 설명하고 해결하기 위한 고급 프로그래밍 언어이다. AIMMS, AMPL, GAMS, Gekko, Mosel, OPL, MiniZinc, OptimJ 등이 있다. 구문이 최적화 문제의 수학적 표기법과 유사하여 간결하고 읽기 쉬운 문제 정의가 가능하다.
- 행위 언어: 동시적으로 실행되는 구성 요소들로 이루어진 복잡한 시스템의 관찰 가능한 행위를 설명하기 위해 설계되었다. 동시성, 비결정성, 동기화 및 통신과 같은 주요 개념을 설명하는 데 중점을 둔다. 의미론적 기초는 프로세스 계산 또는 프로세스 대수이다.
- 분야별 모델링(DspM): 소프트웨어 개발 수명 주기의 특정 단계(발견, 분석, 설계, 아키텍처, 계약 등)와 관련된 결과물에 초점을 맞춘다. 각 단계에 맞는 고유한 어휘, 구문 및 표기법을 제공한다.
- 도메인 특화 모델링(DSM): 시스템의 다양한 측면을 표현하기 위해 그래픽 도메인 특화 언어(DSL)를 체계적으로 사용하는 소프트웨어 엔지니어링 방법론이다.
- 프레임워크 특화 모델링 언어(FSML): 객체 지향 애플리케이션 프레임워크를 위해 설계된 도메인 특화 모델링 언어의 일종이다. 프레임워크에서 제공하는 추상화를 FSML 개념으로 정의하고, 기능을 분해하여 구현 단계나 선택 사항을 나타낸다.
- 링크 데이터 및 온톨로지 엔지니어링 언어: 개체와 관계, 제약 조건, 메타데이터 속성을 표현하기 위한 언어이다. JSON-LD와 RDF가 대표적이며, 고차 논리를 지원하여 모델 추론에 필수적이다.
- 객체 모델링 언어: 객체 지향 소프트웨어 설계 또는 시스템 설계의 일부를 모델링하기 위해 표준화된 기호 집합과 배열 방법을 기반으로 하는 모델링 언어이다.
- 가상 현실 모델링 언어(VRML): 3차원 대화형 벡터 그래픽을 표현하기 위한 표준 파일 형식으로, 특히 월드 와이드 웹을 염두에 두고 설계되었다. 1995년 이전에는 가상 현실 마크업 언어로 알려졌다.
이 외에도 다음과 같은 모델링 언어들이 있다.
3. 모델링 언어의 활용 분야
모델링 언어는 컴퓨터 과학, 정보 관리, 사업 프로세스 모델링, 소프트웨어 공학, 시스템 공학 등 다양한 분야에서 활용된다.[1] 시스템 요구사항, 구조, 동작을 명확하게 규정하여 이해 관계자들이 시스템을 더 잘 이해하도록 돕는다.[5]
그래픽 모델링 언어는 개념을 나타내는 기호와 관계를 나타내는 선, 제약 조건 등을 그래픽으로 표현하고, 텍스트 모델링 언어는 표준화된 키워드나 자연어 용어, 구문을 사용한다. EXPRESS는 그래픽 및 텍스트 모델링 언어의 한 예이다.[8]
실행 가능한 모델링 언어는 프로그래머의 생산성을 높여 병렬 컴퓨팅, 분산 시스템 등 더 어려운 문제를 해결할 수 있도록 돕는다. 모든 모델링 언어가 실행 가능한 것은 아니다.[1]
3. 1. 주요 활용 분야
모델링 언어는 다양한 분야에서 활용된다. 주요 분야는 다음과 같다.분야 | 설명 |
---|---|
컴퓨터 과학 | 소프트웨어 개발, 시스템 설계, 데이터베이스 설계 등 |
정보 관리 | 정보 시스템 설계, 데이터 모델링, 지식 관리 등 |
비즈니스 프로세스 모델링 | 비즈니스 프로세스 분석, 개선, 자동화 등 |
소프트웨어 공학 | 요구사항 분석, 시스템 설계, 코드 생성 등 |
시스템 공학 | 복잡한 시스템 설계, 분석, 검증 등 |
이러한 분야에서 모델링 언어는 시스템 요구사항, 구조 및 동작을 명확하게 표현하고, 이해 관계자 간의 의사소통을 돕는다. 또한, 실행 가능한 모델링 언어는 시스템 검증 및 유효성 검사, 시뮬레이션, 코드 생성을 자동화하는 데 사용될 수 있다.[5]
3. 2. 모델링 언어 활용의 이점
모델링 언어는 시스템 요구사항, 구조, 동작 등을 명확하게 표현하여 다양한 이점을 제공한다.[1][5]- 시스템 요구사항 명확화: 시스템의 기능, 동작, 제약 조건 등을 명확하게 정의한다.
- 구조 및 동작 파악: 시스템의 구성 요소, 관계, 동작 방식을 시각적으로 표현하여 이해도를 높인다.
- 이해관계자 간 소통 증진: 고객, 운영자, 분석가, 설계자 등 다양한 이해관계자들이 시스템에 대한 공통된 이해를 갖도록 돕는다.[1]
- 개발 효율성 향상: 모델 기반 개발을 통해 코드 생성, 테스트, 유지보수 등을 자동화하여 개발 효율성을 높인다.
- 시스템 품질 향상: 모델 검증, 시뮬레이션 등을 통해 시스템 오류를 사전에 발견하고 개선하여 시스템 품질을 향상시킨다.[5]
더욱 성숙한 모델링 언어는 정확하고, 일관성이 있으며, 실행 가능하다. 올바른 도구 지원과 함께 적용된 실행 가능한 모델링 언어는 시스템 검증 및 유효성 검사, 시뮬레이션, 코드 생성을 자동화할 수 있다.[5]
4. 모델링 언어의 품질 평가
모델링 언어 검토는 서로 다른 모델링 환경에 어떤 언어가 적합한지 결정하는 데 필수적이다. 여기서 환경은 이해 관계자, 도메인, 관련 지식을 포함한다. '''언어 품질''' 평가는 더 나은 모델을 달성하기 위한 수단이다.
언어 품질은 Krogstie, Sindre, Lindland(2003)가 개발한 SEQUAL 프레임워크에 따라 명시된다. 이 프레임워크는 언어 품질을 일반적인 모델 품질 프레임워크에 연결하며, 언어의 개념적 측면과 시각적 표기법을 모두 나타내는 5가지 영역을 사용한다.
4. 1. 품질 평가 프레임워크 (SEQUAL 프레임워크 기반)
SEQUAL 프레임워크에 기반한 모델링 언어 품질 평가 프레임워크는 다음과 같은 영역을 사용하여 언어 품질을 설명한다.- 도메인 적합성: 모델링 언어가 해당 도메인의 내용을 얼마나 잘 표현하는가? 이상적으로는 도메인 내의 사항만 표현할 수 있어야 하며, 도메인 내의 모든 것을 포함할 수 있을 만큼 강력해야 한다.[1] 이를 위해 언어는 어떤 표기법과 구문이 표현에 유리한지 잘 구별해야 한다.[1]
- 참여자 적합성: 해당 언어가 이해 관계자가 보유한 지식을 얼마나 잘 표현하는가? 언어는 해당 분야와 관련된 이해 관계자의 모든 명시적 지식을 광범위하게 표현해야 한다.[1]
- 모델러 적합성: 언어는 이해 관계자들의 모든 가능한 명시적 지식을 표현할 수 있어야 한다.[1] 언어의 부족으로 인해 지식이 표현되지 못하는 일이 없어야 한다.[1]
- 이해 적절성: 사회적 행위자가 언어의 일관된 사용으로 인해 모델을 이해하도록 보장하는가? 이를 위해 프레임워크는 언어가 유연하고, 구성하기 쉽고, 언어의 서로 다른 부분을 내부적으로, 그리고 다른 언어와 쉽게 구별할 수 있어야 한다는 등의 기준을 포함한다.[1] 또한, 언어의 각 기호는 고유한 표현을 가져야 한다.[1]
- 도구 적합성: 자동화된 분석 및 처리를 지원하는가? 이를 위해 형식적인 구문과 의미를 포함해야 한다.[1] 형식화를 통해 초기 단계에서 오류를 발견할 수 있다.[1]
- 조직 적합성: 사용된 언어가 조직의 맥락에 적합해야 한다.[1] 예를 들어, 언어가 조직 내에서 표준화되어 있거나, 조직에서 표준으로 선택된 도구에 의해 지원되는 경우를 말한다.[1]
참조
[1]
학회인용
31st Annual International Computer Software and Applications Conference - Vol. 1- (COMPSAC 2007)
2007-07
[2]
인용
The FLINT Ontology: An Actor-Based Model of Legal Relations
https://ebooks.iospr[...]
IOS Press
2024-11-13
[3]
서적
Service-Oriented Modeling: Service Analysis, Design, and Architecture
https://archive.org/[...]
Wiley & Sons
[4]
문서
Gellish, A Generic Extensible Ontological Language
https://repository.t[...]
Delft University of Technology
2005
[5]
서적
Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
Association for Computing Machinery
2014-11-11
[6]
논문
A metamodel for the notation of graphical modeling languages
Computer Software and Applications Conference, 2007. COMPSAC 2007 - Vol. 1. 31st Annual International
2007-07
[7]
문서
英語expressionは、日本語では「式」とも「表現」とも、文脈によって訳される。
[8]
컨퍼런스 인용
31st Annual International Computer Software and Applications Conference - Vol. 1- (COMPSAC 2007)
2007-07
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com