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