르푸스3

LePUS3
예: LePUS3에서 복합 패턴을 모델링하는 코드 차트

LePUS3는 객체 지향(Java, C++, C#) 프로그램과 디자인 패턴을 모델링하고 시각화하는 언어다.[2] 그것은 공식 사양 언어로 정의되며,[3][4] 1차 순서 술어 논리의 공리화된 부분집합으로 공식화된다. LePUS3의 도표는 코드차트라고도 불린다.[5] 언어의 첫 번째 버전의 이름인 LEPUS는 Language for Patternal Uniform Specification의 약어다.

목적

LePUS3는 다음과 같은 목적으로 맞춤 제작된다.

  • 확장성: 기호 수가 적은 작은 코드 차트를 사용하여 대규모 프로그램을 모델링하려면
  • 자동화된 검증 가능성: 설계가 구현과 동기화되도록 프로그래머가 설계에 대한 완전한 자동 적합성을 검사할 수 있도록 함
  • 프로그램 시각화: 도구가 설계를 모델링하는 일반 소스 코드에서 읽을 수 있는 코드차트를 역설계할 수 있도록 허용
  • 패턴 구현: 도구가 프로그램에서 설계 패턴을 구현하는지 여부를 자동으로 결정하도록 허용하려면 다음과 같이 하십시오.
  • 설계 추상화: 미실행 프로그램을 지정하려면 먼저 실행하지 않고 실행된 프로그램을 지정하십시오.
  • 일반성: 설계 패턴을 특정 구현이 아닌 설계 모티브로 모델링
  • 리구어: 소프트웨어 설계자가 코드차트가 정확히 무엇을 나타내고 있는지 확인하고 그에 대해 엄격하게 추론할 수 있도록 허용

컨텍스트

LePUS3는 다음과 같은 언어군에 속한다.

  • 객체 지향 소프트웨어 모델링 언어(예: UML): LePUS3는 프로그램 객체 지향 프로그래밍 언어의 설계에서 빌딩 블록을 나타내기 위해 사용되는 시각적 표기법이다.
  • 공식 사양 언어: 다른 논리 비주얼 언어와 마찬가지로 코드차트는 수학적 논리로 문장을 표현한다. LePUS3는 1차 술어 미적분학의 재귀적(수험적-결정 가능) 부분집합으로 공리화되며 정의된다. 그것의 의미론은 유한구조(수학적 논리학)를 사용하여 정의된다.
  • 아키텍처 설명 언어: LePUS3는 클래스 기반 객체 지향 프로그래밍 언어(Java, C++ 등)에서 프로그램에 대한 설계 결정을 나타내는 데 사용되는 비기능 사양 언어다.
  • 도구 지원 사양 언어: 코드차트의 검증(Java 1.4 프로그램과의 일관성 확인)은 Two-Tier Programming Toolkit에서 입증한 바와 같이 버튼 클릭 한 번으로 설정('검증')할 수 있다.
  • 소프트웨어 시각화 표기법은 프로그램의 소스 코드를 역설계하여 생성되는 프로그램 그래픽 표현을 제공하는 표기법이다.

어휘

LePUS3는 단순화 및 표현 경제성을 수용하도록 설계되었다. 그것의 어휘는 단지 15개의 시각적 토큰으로 구성되어 있다.

LePUS3 어휘

툴 지원

Two-Tier Programming Toolkit을[6][7] 사용하여

  • LePUS3 사양 작성(코드 차트)
  • LePUS3 코드차트가 Java 1.4 프로그램과 자동으로[8] 일치하는지 확인
  • Java 소스 코드의 역엔지니어 코드차트.

디자인 패턴

LePUS3는 특히 추상적 공장, 공장 방식, 어댑터, 장식자, 복합, 프록시, 반복자, 상태, 전략, 템플릿 방식, 방문자'4대 강' 디자인 패턴을 모델링하도록 설계되었다. ('4대 강' 동반자 참조) [2] "Language for Patternal Uniform Specification"의 약어 LePUS는 이 언어의 전구체가 주로 디자인 패턴과 관련이 있었기 때문에 사용된다. LePUS3에 명시된 설계 패턴의 구현은 TTP 툴킷에 의해 자동으로 검증될 수 있다.[8]

LePUS3는 특히 대형 프로그램, 설계 패턴 및 객체 지향 애플리케이션 프레임워크를 모델링하는 데 적합하다. 그것은 비 객체 지향 프로그램, 건축 양식, 그리고 불분명하고 반결정적인 속성을 모델링하는 데 적합하지 않다.

참조

  1. ^ Eden, Amnon; contributions by Jonathan Nicholson (2011). Codecharts: Roadmaps and Blueprints for Object-Oriented Programs (PDF). Hoboken, New Jersey: Wiley/Blackwell.
  2. ^ a b Amnon H. Eden, with contributions from Jonathan Nicholson. "Modelling Design Patterns, Chapter 11 in Codecharts: Roadmaps and Blueprints for Object-Oriented Programs" (PDF).
  3. ^ Amnon H. Eden; Epameinondas Gasparis; Jonathan Nicholson (2007). "LePUS3 and Class-Z Reference Manual". University of Essex.
  4. ^ Gasparis, Epameinondas; Jonathan Nicholson; Amnon H Eden (2008-09-19). LePUS3: An Object-Oriented Design Description Language (PDF). DIAGRAMS 2008. Herrsching, Germany. Archived from the original (PDF) on 2008-11-19. Retrieved 2008-06-23.
  5. ^ 코드 차트, 공식 정의
  6. ^ 2계층 프로그래밍 툴킷
  7. ^ Gasparis, Epameinondas; Amnon H. Eden; Jonathan Nicholson; Rick Kazman (2008-05-10). The Design Navigator: Charting Java Programs (PDF). 30th IEEE International Conference on Software Engineering--ICSE. Leipzig, Germany. Archived from the original (PDF) on 2008-11-19. Retrieved 2008-06-23.
  8. ^ a b Nicholson, Jonathan; Epameinondas Gasparis; Amnon H Eden; Rick Kazman (2009). Automated Verification of Design Patterns with LePUS3 (PDF). The 1st NASA Formal Methods Symposium–NFM 2009. Moffett Field, CA.

외부 링크