Skip to content

This repository contains the Java code for the analysis presented in the seminar thesis in the repository "Survey_of_Anti-Pattern_in_Metamodels"

Notifications You must be signed in to change notification settings

NeumannDirk/AntiPatternPrevalenceInMetamodels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

Antipattern-Analyzer for Meta-Models

Currently supported Metrics:

  • Number of Classes
  • Counting Complexity (number of all attributes, references, supertyp relations and operations)
  • Conversion to a Hypergraph
    • counting nodes
    • counting hyperedes
    • calculating entropy

Currently supported Anti-Pattern:

  • Class Has More Than One ID see here
  • Malformed Multiplicity Element
    • complete, triggers on [*,y] or [x,y] with x > y
    • restricted, triggers only on [x,y] with x > y
  • Unnamed Element see here
    • complete, an ENamedElement has null or empty string as name
    • only not Packages, an ENamedElement which is not an EPackage has null or empty string as name
  • Enumeration Has Attributes see here
    • an EEnumeration has an EAttribute as one of its contents
  • Reference Has No Type see here
    • slightly variation only for EReference and EAttribute
    • excluding e.g. EOperations which are ETypedElements but might represent a procedure/"void"
    • element has no type
  • Diamond Inheritance
    • DiamondBottom -> DiamondLeft -> DiamondTop
    • DiamondBottom -> DiamondRight -> DiamondTop
    • -> DiamondBottom triggers the antipattern
  • Class Not In Package Contained
    • an EClass is not contained in any EPackage
  • Multiple Possible Containers
    • an instance of an EClass can be contained in multiple different containers (not at the same time though)

About

This repository contains the Java code for the analysis presented in the seminar thesis in the repository "Survey_of_Anti-Pattern_in_Metamodels"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages