CK Metrics -full
Last published: May 10, 2017 by 'azazael'
CKMetrics-full contains a set of classes to generate (future works) and visualize the reports about an application, with metrics like Cyclomatic complexity number of lines of code etc.
More information may be obtained from:
Issues, bugs, and suggestion may be submitted to the GitHub repository in the Issue tab.
A report is produced using the following template:
| calculator |
calculator := CKCalculator new.
calculator addPackagesMatching: 'CKMetric*'.
calculator printResultOnDisk: 'myckmetricreport'
Produced reports are similar to:
NOP 3 Number Of Packages Returns the number of packages defined in the analyzed system.
NOCom 49 Number of Commentaries Return the number of commentaries in the system. Comments for packages, classes, and methods are considered.
NOM 158 Number of Methods Returns the number of methods defined in the system (instance methods only)
NOMxP 52.6667 Number of Methods per Package Returns the number of methods per package
NOMxC 5.09677 Number of Methods per Class Returns the number of methods per class
LOC 929 Number of Lines of Code Returns the number of lines of code, defined, in our case, as the length of the file out for each classes
LOCxC 29.9677 Number of Lines of Code per Class Returns the average number of lines of code per class
LOCxM 4.22981 Number of Lines of Code per Method Returns the average number of lines of code per method
LOCxP 309.667 Number of Lines of Code per Package Returns the average number of lines of code per package
NOC 31 Number of Classes Returns the number of classes defined in the system
NOCxP 10.3333 Number of Classes per Package Returns the number of classes defined per package in the system
CC 1.24845 Cyclomatic Complexity Returns the cyclomatic complexity computed as the average for all the methods in the analyzed system. The cyclomatic complexity estimates how complex the code is by assessing the number of control branch in the code. Instructions such as ifTrue:ifFalse:, whileTrue:, to:do: increase the complexity. A low complexity is good.
NIV 66 Number of Instance Variables Returns the number of instance variables defined in the system
NOPossibleBugs 3 Number of Possible Bugs Returns the number of possible bugs(check comment of class CKNOPossibleBugsLED)
NOMiscellaneous 0 Number of Miscellaneous Returns the number of miscellaneous(check comment of class CKNOMiscellaneousLED)
NOCriticis 6 Number of code critics Returns the number code critics(check comment of class CKNOCodeCriticsLED)
NOIntRev 2 Number of Intention revealing Returns the number of intention revealing(check comment of class CKNOIntentionLED)
NOUnnecessaryCode 1 Number of Unnecesary code Returns the number of Unncessary code(check comment of class CKNOUnnecessaryCodeLED)
NOBugs 0 Number of Bugs Returns the number bugs(check comment of class CKNOBugsLED)
Each line is generated by a CKMetric like follows
Short Name, tab character, a number, tab character, long name, tab character, description
Use CKCalculator to generate this files.
Then you can use the CKMetric App to visualize it with roassal. with Tools-> CKMetrics evolution
Visit objectprofile.com and https://github.com/ObjectProfile/CKMetrics to get more info or send us an email to firstname.lastname@example.org