The document introduces IntensiVE, a tool suite for documenting and checking structural source code regularities. It allows defining intensional views, which are groups of code entities that share properties, and relations between views. IntensiVE verifies constraints on views and relations and provides feedback on problems. It was tested on two case studies where it documented regularities before and verified them after code changes. Intensional views and relations provide a simplified way to represent structural patterns in code.
1. IntensiVE
A Toolsuite For Documenting
and Checking Structural
Source-Code Regularities
Kim Mens 1
Andy Kellens 2
1 Département d’Ingénierie Informatique
Université catholique de Louvain, Belgium
2 Programming Technology Lab
Vrije Universiteit Brussel, Belgium
2. Research Problem
• How to document structural source-code regularities?
• e.g., naming and coding conventions, as well as
other structural dependencies
• shared by many entities spread throughout the code
• How to verify conformance of this documentation to
the source code upon evolution?
• and provide fine-grained feedback to the developer
in case of problems
• to fix the code or refine the documented regularities
Intensional Views & Relations IntensiVE Codifying Structural Regularities Co-Evolution of Code and Structure
❄ ❄ ❄
3. Solution
• Intensional Views
• groups of entities spread throughout the code
• that share some structural property
• Intensional Relations
• binary relationships between such views
• The IntensiVE toolsuite
• supports definition of intensional views and relations
• enables the verification of constraints on them
• provides fine-grained feedback upon problems
Intensional Views & Relations IntensiVE Codifying Structural Regularities ❄ Co-Evolution of Code and Structure
❄ ❄
4. 2 Case Studies
• DelfSTof
• Smalltalk prototype for code mining with FCA
• Documented interesting regularities before
restructuring
• Reverified validity of regularities after restructuring
• SmallWiki
• Smalltalk implementation of a WIKI system
• Documented regularities on an initial version
• Verified validity of regularities on evolved version
Intensional Views & Relations IntensiVE Codifying Structural Regularities Co-Evolution of Code and Structure
❄ ❄ ❄
5. Intensional Views
(and Relations)
• Simplified example
• Extensional vs. intensional views
• Alternative intensions
• Relations between views
Intensional Views & Relations IntensiVE Codifying Structural Regularities ❄ Co-Evolution of Code and Structure
❄ ❄