User Tools

Site Tools


naming_conventions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
naming_conventions [2014/02/19 07:39]
yann
naming_conventions [2017/09/06 01:54] (current)
Line 1: Line 1:
 ====== Naming Conventions ====== ====== Naming Conventions ======
 +
 +Following common, consistent naming conventions is essential to ease program comprehension and usage.
  
 ===== Test Projects ===== ===== 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. ​+Each project, which is Eclipse plug-in in nature((To allow integration of the UI into Eclipse JDT)), 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.+test project ​always ​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.
  
 ===== Packages ===== ===== Packages =====
Line 11: Line 13:
 In application and test project, packages follow naming conventions. 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 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''​ and ''​padl.visitor.IWalker''​ | +
-| ::: | Repository | ''​padl.visitor.VisitorsRepository''​ | +
-| ::: | Accessors ​ | ''​padl.visitor.VisitorsRepository.getGenerators()''​\\ ''​padl.visitor.VisitorsRepository.getWalkers()''​ | +
-| ''​[[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''​\\ ''​pom.metrics.IUnaryMetric''​\\ ''​pom.metrics.IBinaryMetric''​\\ ''​pom.metrics.IContextDependentMetric''​\\ ''​pom.metrics.IContextIndependentMetric''​ | +
-| ::: | Repository | ''​pom.metrics.MetricsRepository''​ | +
-| ::: | Accessors ​  | ''​pom.metrics.MetricsRepository.getMetrics()''​\\ ''​pom.metrics.MetricsRepository.getMetric(String)''​((For convenience only))\\ ''​pom.metrics.MetricsRepository.getUnaryMetrics()''​\\ ''​pom.metrics.MetricsRepository.getBinaryMetrics()''​\\ ''​pom.metrics.MetricsRepository.getContextDependentMetrics()''​\\ ''​pom.metrics.MetricsRepository.getContextIndependentMetrics()''​ | +
-| ''​[[SAD]]''​ (Code) | Interface | ''​sad.codesmell.detection.ICodeSmellDetection''​ | +
-| ::: | Repository | ''​sad.codesmell.detection.CodeSmellDetectionsRepository''​ | +
-| ::: | Accessor ​  | ''​sad.codesmell.detection.CodeSmellDetectionsRepository.getCodeSmellDetections()''​\\ ''​sad.codesmell.detection.CodeSmellDetectionsRepository.getCodeSmellDetection(String)''<​sup>​1)</​sup>​ | +
-| ''​[[SAD]]''​ (Design) | Interface | ''​sad.designsmell.detection.IDesignSmellDetection''​ | +
-| ::: | Repository | ''​sad.designsmell.detection.DesignSmellDetectionsRepository''​ | +
-| ::: | Accessor ​  | ''​sad.designsmell.detection.DesignSmellDetectionsRepository.getDesignSmellDetections()''​\\ ''​sad.designsmell.detection.DesignSmellDetectionsRepository.getDesignSmellDetection(String)''<​sup>​1)</​sup>​ |+
  
 +A project that offers 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 implement the interface ''​util.repository.IRepository''​ and are ''​final''​. In the ''​aaa.bbb.repository''​ are the algorithms implementing the interface(s). See the page dedicated to [[repositories]].
naming_conventions.1392795580.txt.gz · Last modified: 2017/09/06 01:54 (external edit)