User Tools

Site Tools


This is an old revision of the document!

Naming Conventions

Test Projects

Each project, which are Eclipse plug-in in nature, should come with a test project, which is a Java project in nature. For example, the SAD project comes with the SAD Tests project. Test projects include everything required to compile and run the tests, that means resources too, so they can be big. They use relative paths when accessing resources to run on any platform. They are known to compile and run on Windows and MacOS computers without requiring any changes.

Any test project includes a class aaa.bbb.test.TestPPP that is the main test suite, where aaa.bbb is the main package of the application project and PPP the name of the application project. For example, in the SAD Tests project, there is the package sad.detection.test that declares the class TestSAD, which is the main test suite for the SAD project.


In application and test project, packages follow naming conventions.

A test project always includes a aaa.bbb.TestPPP class, where aaa.bbb is the main package in the application project, e.g., “sad.detection.test” in SAD Tests, and PPP is the name of the application project, e.g., SAD.

A project that offer an interface to be implemented by a variety of algorithms always has a package aaa.bbb and a package aaa.bbb.repository. In aaa.bbb are the interface(s) and the repository to dynamically access the algorithms at run-time. Repositories implements the interface util.repository.IRepository and are final. For examples:

Projects Roles Classes
PADL Interfaces padl.visitor.IGenerator
Repository padl.visitor.VisitorsRepository
Accessors padl.visitor.VisitorsRepository.getGenerators()
PADL Analyses Interface padl.analysis.IAnalysis
Repository padl.analysis.AnalysesRepository
Accessor padl.analysis.AnalysesRepository.getAnalyses()
PADL Design Motifs Interface padl.motif.IDesignMotifModel
Repository padl.motif.DesignMotifsRepository
Accessor padl.motif.DesignMotifsRepository.getDesignMotifs()
POM Interfaces pom.metrics.IMetric
Repository pom.metrics.MetricsRepository
Accessors pom.metrics.MetricsRepository.getMetrics()
SAD (Code) Interface sad.codesmell.detection.ICodeSmellDetection
Repository sad.codesmell.detection.CodeSmellDetectionsRepository
Accessor sad.codesmell.detection.CodeSmellDetectionsRepository.getCodeSmellDetections()
SAD (Design) Interface sad.designsmell.detection.IDesignSmellDetection
Repository sad.designsmell.detection.DesignSmellDetectionsRepository
Accessor sad.designsmell.detection.DesignSmellDetectionsRepository.getDesignSmellDetections()
For convenience when declaring code and design smells
2) , 3)
For convenience only
naming_conventions.1392795744.txt.gz · Last modified: 2017/09/06 01:54 (external edit)