Download inCode.Rules Language - LOOSE Research Group

Transcript
Contents
1 Introduction
1.1 Context . . . . . . . .
1.2 The Problem . . . . .
1.3 Contribution . . . . .
1.4 Diploma Organization
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Theoretical Foundations
2.1 Object Oriented Design . . . . . . .
2.2 Code Abnormalities . . . . . . . . .
2.3 Design Abnormalities . . . . . . . .
2.4 Architecture Abnormalities . . . . .
2.5 Detection of Design Abnormalities
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
5
6
6
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
11
12
13
14
3 State Of The Art
3.1 Quality Assurance Tools . . . . . . . . .
3.1.1 ADLs . . . . . . . . . . . . . . . . .
3.1.2 Lattix LDM . . . . . . . . . . . . .
3.1.3 Moose . . . . . . . . . . . . . . . .
3.1.4 iPlasma . . . . . . . . . . . . . . .
3.2 Eclipse as a code analysis platform . . .
3.2.1 Plugin Development Environment
3.2.2 Eclipse Modeling Framework . .
3.2.3 Java Development Tools . . . . .
3.2.4 Xtext . . . . . . . . . . . . . . . .
3.2.5 inCode . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
16
17
18
18
19
20
20
21
22
22
. . . .
Rules
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
24
24
25
27
28
31
31
32
34
35
38
38
38
39
.
.
.
.
.
.
.
.
.
.
4 A Language for Expressing the Design
4.1 Motivation . . . . . . . . . . . . . . . . . . . . .
4.2 Language Anatomy / Categories of Supported
4.2.1 Use rule . . . . . . . . . . . . . . . . . .
4.2.2 Have Rule . . . . . . . . . . . . . . . . .
4.2.3 Exception Mechanism . . . . . . . . . .
4.3 Rules by Granularity . . . . . . . . . . . . . .
4.3.1 Architectural level rules . . . . . . . . .
4.3.2 Design level rules . . . . . . . . . . . .
4.3.3 Code level rules . . . . . . . . . . . . . .
4.4 Grammar . . . . . . . . . . . . . . . . . . . . .
4.5 Rules Editor . . . . . . . . . . . . . . . . . . .
4.5.1 Auto-complete - generated . . . . . . .
4.5.2 Smart auto-complete . . . . . . . . . .
4.5.3 Code coloring . . . . . . . . . . . . . . .
2