맨위로가기

명세 언어

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

명세 언어는 '무엇'을 해야 하는지에 대한 기술에 중점을 두며, 일반적으로 직접 실행되지 않는다. 프로그램의 입출력 동작의 정확성을 우선시하며, '속성 지향' 방식과 '모델 기반' 방식으로 나눌 수 있다. 명세는 구현 전에 '세분화' 과정을 거쳐 실행 가능한 알고리즘으로 변환될 수 있으며, 프로그램 정확성의 수학적 증명에 사용될 수 있다. 형식적인 기술과 검증 방식이 아닌 경우, 시뮬레이션이나 시스템 모델링을 통해 동작을 확인하는 방법도 있다. 주요 명세 언어로는 Z 언어, VDM, CASL 등이 있으며, UML은 시스템 모델링에 널리 사용된다.

더 읽어볼만한 페이지

  • 컴퓨터 언어 - 데이터베이스 언어
    데이터베이스 언어는 데이터베이스를 조작하고 관리하기 위한 언어로서 데이터 조작 언어(DML), 데이터 정의 언어(DDL), 데이터 제어 언어(DCL)로 나뉘며, SQL은 이 모든 요소를 통합하고 질의어와는 구별된다.
  • 컴퓨터 언어 - 질의 언어
    질의어는 사용자가 시스템에 정보를 요청하는 데 사용하는 단어나 구문으로, 정보 검색 질의어와 데이터베이스 질의어로 나뉘며, 데이터베이스 질의어는 데이터 정의, 조작, 제어 언어로 세분화된다.
  • 명세 언어 - 통합 모델링 언어
    통합 모델링 언어(UML)는 소프트웨어 시스템의 구조와 행위를 시각적으로 표현하기 위해 개발된 표준 모델링 언어이며, 객체 지향 방법론을 통합하여 개발되어 다양한 분야에서 활용된다.
  • 명세 언어 - 모델링 언어
    모델링 언어는 시스템의 구조와 동작을 표현하기 위해 여러 분야에서 사용되는 언어로, 비즈니스 프로세스 모델링 표기법(BPMN), 통합 모델링 언어(UML), 확장 엔터프라이즈 모델링 언어(EEML) 등이 있으며, 도메인 적합성, 참가자 적합성, 모델러 적합성 등의 품질 요소로 평가된다.
  • 모델링 (과학) - 원자 모형
    원자 모형은 원자 구조를 설명하기 위해 제시된 다양한 모델들의 변천사로, 돌턴 모형, 톰슨 모형, 러더퍼드 모형, 보어 모형을 거쳐 현대 원자 모형에 이르기까지 발전해 왔다.
  • 모델링 (과학) - 맞춤의학
    맞춤의학은 환자의 유전적, 분자 생물학적, 세포적 특징을 고려하여 개인에게 최적화된 치료법을 제공하는 의료 모델로, 더 나은 진단과 효율적인 약물 개발, 표적화된 치료법을 제공하지만 데이터 관련 문제와 규제 및 윤리적 문제 등의 과제를 안고 있다.
명세 언어

2. 특징

명세 언어는 일반적으로 직접 실행되지 않으며, '어떻게'가 아닌 '무엇'을 설명하는 데 중점을 둔다. 요구 사항 명세서에 불필요한 구현 세부 사항이 포함되는 것은 오류로 간주된다.

많은 명세 접근 방식의 일반적인 가정은 프로그램이 데이터 값의 집합과 해당 집합에 대한 함수의 모음을 포함하는 대수 또는 모델-이론적 구조로 모델링된다는 것이다.[1] 이러한 추상화 수준은 프로그램의 입/출력 동작의 정확성이 다른 모든 속성보다 우선한다는 관점과 일치한다.[1]

명세는 '속성 지향' 접근 방식과 '모델 기반' 접근 방식으로 나눌 수 있다.[2] '속성 지향' 접근 방식(예: CASL)에서는 프로그램 명세가 주로 논리 공리로 구성되며, 일반적으로 등식이 중요한 역할을 하는 논리 시스템에서 함수가 충족해야 하는 속성을 설명한다.[2] 이는 필요한 동작의 단순한 실현으로 구성된 VDM 및 Z와 같은 프레임워크의 모델 기반 명세와는 대조적이다.[2]

명세는 실제로 구현되기 전에 '세분화'(구현 세부 사항 채우기) 과정을 거쳐야 한다.[3] 이 세분화 과정의 결과는 실행 가능한 알고리즘이며, 이는 프로그래밍 언어로 공식화되거나 해당 명세 언어의 실행 가능한 하위 집합으로 공식화된다.[3] 예를 들어, Hartmann pipeline은 적절하게 적용될 때 직접 실행 가능한 데이터 흐름 명세로 간주될 수 있다.[3] 또 다른 예는 특정 애플리케이션 내용이 없고 실행 가능하려면 '특화'되어야 하는 액터 모델이다.[3]

명세 언어의 중요한 사용 사례는 프로그램 정확성의 수학적 증명 (정리 증명기 참조)을 생성할 수 있도록 하는 것이다.[4]

3. 접근 방식

명세 언어의 접근 방식에는 모델 기반 명세와 속성 지향 명세가 있다. 모델 기반 명세는 필요한 동작을 단순하게 구현하는 방식으로, VDM이나 Z가 대표적이다. 속성 지향 명세는 프로그램 명세가 주로 논리 공리로 구성되며, 논리 시스템에서 함수가 만족해야 하는 속성을 설명하는 방식이며, CASL이 대표적이다.

3. 1. 속성 지향 명세

속성 지향 명세 접근 방식에서 프로그램 명세는 주로 논리 공리로 구성되며, 논리 시스템에서 함수가 충족해야 하는 속성을 설명한다. 이때 등식이 중요한 역할을 하는 경우가 많다. CASL은 이러한 방식을 채택한 예시이다. 이는 필요한 동작의 단순한 실현으로 구성된 모델 기반 명세인 VDM이나 Z와는 대조적이다.

3. 2. 모델 기반 명세

모델 기반 명세는 필요한 동작의 단순한 실현으로 구성된다. VDM, Z 등이 이에 해당한다.[4] 이는 프로그램 명세가 주로 논리 공리로 구성되는 속성 지향 접근 방식과는 대조적이다.[4]

4. 세분화

명세는 실제로 구현되기 전에 '세분화'(구현 세부 사항 채우기) 과정을 거친다. 이러한 세분화 과정의 결과는 실행 가능한 알고리즘이며, 프로그래밍 언어나 해당 명세 언어의 실행 가능한 하위 집합으로 공식화된다. 예를 들어, Hartmann pipeline은 적절하게 적용될 때 직접 실행 가능한 데이터 흐름 명세로 간주될 수 있다. 액터 모델 또한 특정 애플리케이션 내용이 없어 실행 가능하려면 '특화'되어야 하는 명세의 예시이다.

5. 보증이 없는 명세

형식적인 기술 및 검증 방식이 아닌 경우에도 명세와 유사하게 취급되는 경우가 있다.

예를 들어, 완전한 타당성을 보증할 수 없지만, 시뮬레이션을 수행함으로써 제한된 경우에서의 동작을 모의하여 확인하는 방법도 있다. SpecC는 이러한 입장을 취한다.

혹은 시스템 전체의 모델링에 중점을 두고, 명세에 대한 인간의 이해 용이성을 향상시킴으로써 설계자 스스로 또는 설계자 간 커뮤니케이션에 의해 타당성을 검토하게 하는 방법도 있다. UML이 이에 해당한다는 주장도 있다. 어느 경우든 형식적이지 않은 이상 논리적으로 무언가가 보증되는 것은 없으며, 예를 들어 쌍방의 당사자가 "서로 오해는 없다"라고 믿고 있었다고 해도 "그렇게 믿고 있을 뿐"이다.

6. 언어

명세 언어는 일반적으로 직접 실행되지 않으며, '어떻게'가 아닌 '무엇'을 설명하기 위한 것이다. 요구 사항 명세서에 불필요한 구현 세부 사항이 포함되는 것은 오류로 간주된다.

많은 명세 접근 방식의 일반적인 가정은 프로그램이 데이터 값의 집합과 해당 집합에 대한 함수의 모음을 포함하는 대수 또는 모델-이론적 구조로 모델링된다는 것이다. 이러한 추상화는 프로그램의 입/출력 동작의 정확성이 다른 모든 속성보다 우선한다는 관점과 일치한다.

명세의 '속성 지향' 접근 방식(예: CASL에서 채택)에서는 프로그램 명세가 주로 논리 공리로 구성되며, 일반적으로 등식이 중요한 역할을 하는 논리 시스템에서 함수가 충족해야 하는 속성을 설명한다. 이는 필요한 동작의 단순한 실현으로 구성된 VDM 및 Z와 같은 프레임워크의 소위 모델 기반 명세와는 대조적이다.

명세는 실제로 구현되기 전에 '세분화'(구현 세부 사항 채우기) 과정을 거쳐야 한다. 이러한 세분화 프로세스의 결과는 실행 가능한 알고리즘이며, 이는 프로그래밍 언어로 공식화되거나, 해당 명세 언어의 실행 가능한 하위 집합으로 공식화된다. 예를 들어, Hartmann pipeline은 적절하게 적용될 때 직접 실행 가능한 데이터 흐름 명세로 간주될 수 있다. 또 다른 예는 특정 애플리케이션 내용이 없고 실행 가능하려면 '특화'되어야 하는 액터 모델이다.

명세 언어의 중요한 사용 사례는 프로그램 정확성의 수학적 증명 (정리 증명기 참조)을 생성할 수 있도록 하는 것이다.

6. 1. 주요 명세 언어


  • Z 언어
  • VDM
  • CASL
  • UML
  • LOTOS
  • SDL
  • SpecC
  • OBJ
  • CafeOBJ
  • ACSL
  • Attempto Controlled English[2]
  • TLA+
  • Lepus3
  • Perfect
  • Alloy
  • E-LOTOS
  • MML
  • SequenceL
  • SMV
  • B-메소드

6. 2. 기타 명세 언어


  • B-메소드
  • TLA+
  • Alloy
  • Perfect
  • SequenceL
  • SMV

참조

[1] 논문 One, None, A Hundred Thousand Specification Languages
[2] 서적 International Workshop on Logic Programming Synthesis and Transformation Springer
[3] 웹사이트 Easiest-ever formal methods language for developers crafting distributed systems, microservices, and cloud applications https://fizzbee.io/ 2024-05-28
[4] 서적 AI Tools and Techniques Ablex 1989



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com