르푸스3
LePUS3LePUS3는 객체 지향(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개의 시각적 토큰으로 구성되어 있다.
툴 지원
Two-Tier Programming Toolkit을[6][7] 사용하여
디자인 패턴
LePUS3는 특히 추상적 공장, 공장 방식, 어댑터, 장식자, 복합, 프록시, 반복자, 상태, 전략, 템플릿 방식, 방문자 등 '4대 강' 디자인 패턴을 모델링하도록 설계되었다. ('4대 강' 동반자 참조) [2] "Language for Patternal Uniform Specification"의 약어 LePUS는 이 언어의 전구체가 주로 디자인 패턴과 관련이 있었기 때문에 사용된다. LePUS3에 명시된 설계 패턴의 구현은 TTP 툴킷에 의해 자동으로 검증될 수 있다.[8]
예
LePUS3는 특히 대형 프로그램, 설계 패턴 및 객체 지향 애플리케이션 프레임워크를 모델링하는 데 적합하다. 그것은 비 객체 지향 프로그램, 건축 양식, 그리고 불분명하고 반결정적인 속성을 모델링하는 데 적합하지 않다.
참조
- ^ Eden, Amnon; contributions by Jonathan Nicholson (2011). Codecharts: Roadmaps and Blueprints for Object-Oriented Programs (PDF). Hoboken, New Jersey: Wiley/Blackwell.
- ^ 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).
- ^ Amnon H. Eden; Epameinondas Gasparis; Jonathan Nicholson (2007). "LePUS3 and Class-Z Reference Manual". University of Essex.
- ^ 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.
- ^ 코드 차트, 공식 정의
- ^ 2계층 프로그래밍 툴킷
- ^ 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.
- ^ 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.
외부 링크
| 위키미디어 커먼즈에는 LePUS3와 관련된 미디어가 있다. |