2023년 4월 30일 일요일

공간정보 개념적 스미마 언어(CSL) 설명 및 개발 방법

이 글은 공간정보 개념적 스키마 언어(CSL. Conceptual Schema Language) 설명 및 개발 방법을 간략히 이야기한다(2019)

소개

이 표준은 UML OCL(Object Constraint Language)를 사용한다. 이는 상호운용성 목표를 달성하기 위한 지침이다. 참고로, 개념적 스키마 언어라고 하니 매우 추상적인 느낌이 들지만, 사실 UML을 공간정보에 이용하기 위한 요구사항과 규칙을 정의한 것이다

UML 프로파일

이 표준은 지리정보에 대한 UML 프로파일을 포함한다

  • 프로파일(profile): UML은 특정 도메인으로 표현하기 위해서는 너무 일반적이다. 그러므로, 특정 도메인으로 맵핑하기 위한 요구사항 및 규칙을 정하고 이를 기반으로 응용 스키마를 개발한다. 이를 프로파일이라 한다. 이 문서는 공간정보 도메인으로 UML 사용 방법을 기술하는 프로파일을 설명한 것이다.

이 표준은 문서 이해를 위해 UML User Guide, UML Distilled 레퍼런스를 추천하고 있다

다음은 이 표준의 요구사항이다. 원래 표준문서에는 각 요구사항마다 유일 번호가 매겨져 있다

  • 분류자(classifiers): 스테레오타입은 다양한 클래스 유형의 분류를 정의하는 수단을 제공한다
  • 열거유형(enumeration): 열거 유형은 enum {value1, value2, value3} 와 같이 정의될 수 있다.
  • 코드목록(CodeList): 코드목록은 스테리오타입이 있는 클래스로 모델링된다.
  • 관계: 모든 연관은 각 끝에 집합관계와 역할명를 정의해야 한다.
  • 상속: 다중상속은 피한다.
  • 실현(realizations): 실현은 모델 요소를 서로 다른 추상화 수준과 연결한다. 이는 추상에서 상세화로 전이할 때 관점을 설명하는 적절한 방법 중 하나이다. 다음 그림은 이를 보여준다.

Example of realization used between difference levels of abstraction

  • 스테레오타입: 스테레오타입을 사용함으로써 UML을 확장하고 다음과 같이 의미를 부여할 수 있다.
    • <<CodeList>>: 목록을 표현하는 열거형 리스트 정의
    • <<dataType>>: 정보 공유를 목적으로 하는 데이터 유형
    • <<interface>>: 추상 클래스
    • <<enumberation>>: 명명된 문자열 목록
  • 네이밍: 이름은 가는한 짧게 유지하며 의미없는 전치사와 동사는 생략함. ) getValue() 대신 value()
  • 연산: 연산은 [<visibility>]<name>'('[<parameter-list>]')'[':'[<return-type>]['{'<oper-property>]*'}']] 으로 표현한다. 참고로, 이 방식은 UML표준과 동일한 방식이다.

핵심 데이터 유형

데이터 유형은 다음 6가지로 구분된다.

  • Primitive type: CharacterString(문자열), Integer(정수), Real(실수), Date(날짜)
  • Collections
  • Enumerated types
  • Name type (이름 구조 표현 유형)
  • Any type (임의 유형)
  • Record types

Date and Time types

Number and subtypes

마무리

이 글은 19103 표준을 요약하였다. 공간정보표준은 UML을 기반으로 한다. 이를 이용해 프로파일 하는 방법을 상세히 설명하고 있다. 이 표준은 이미 소프트웨어 공학에서는 잘 알려져 있는 UML 레퍼런스를 참고해 개발되었다. 그러므로, 이 표준을 이해하기위해서는 관련 레퍼런스를 먼저 확인해 볼 필요가 있다. 공간정보 국제 표준은 철저히 이 레퍼런스를 기반으로 개발되었다.


레퍼런스

1. UML Distilled

2. Design Pattern

 

댓글 없음:

댓글 쓰기

생성 AI 건설 기술 트랜드

이 글은 생성 AI 건설 기술 트랜드를 간략히 정리한다. 레퍼런스 AI is hard (to do well) - AEC Magazine AI Copilot for architects launches in beta - AEC Magazine How to...