Entries tagged as overview pyramidRelated tags design quality checkstyle cyclomatic complexity npath complexity php php_depend quality assurance release announcement software architecture software design software metrics bug fix cbo changes class interface size company consulting coupling between objects crazy dbus derick fabien potencier fun logger optimization performance php5 phpmd phpugdo phpundercontrol pirum pmd quality static code analysis support tokenizer training annotations cli conference continuous integration cruisecontrol css customization dashboard ext/filter ezcomponents hamburg phpdoc phpt phpunit php_codesniffer rule set testing unconference unit test usability xml xpath arbit article cologne ipc karlsruhe kore php-magazin phpug talksWednesday, June 25. 2008Using the Overview PyramidThe Overview Pyramid is used to visualize a complete software system in a really compact manner. Therefor it collects a set of metrics from the categories Inheritance, Coupling and Size & Complexity, and puts them into relation. The following figure shows the base structure of the Overview Pyramid[ML06]. Metrics used by the Overview PyramidThe following three lists contain all the metrics, which the Overview Pyramid uses. Size and ComplexityThe category Size & Complexity contributes the greatest and mostly used set of software metrics.
CouplingThis group of metrics informs about the coupling between different program parts in the analyzed application.
InheritanceBoth metrics in this group deal with the use of Inheritance and give a general overview of the use of Inheritance within the analyzed system.
Structure of the Overview PyramidNow that we know all metrics used for the Overview Pyramid, it is time to replace the placeholders with the measured informations. The figure below shows the filled Overview Pyramid. In a second step, the previously independent metrics are set into relation. Therefor we calculate the average values of individual value pairs, these computed values provide us with new informations about the distributions within the application. The following example figure of the Overview Pyramid contains a computed value for the measured LOC and NOM metric which shows us, that in the average each operation has 25 lines of code. This value can be described as very high, especially when you consider that most systems contain a variety of simple operation, like Getter and Setter, in addition to the main application logic. To take reasonable conclusions from the computed values one important part is still missing, an adequate set of reference values. Without reference values, that say what values are low, average or high, it is not possible to classify these results. The current version of PHP_Depend supports a single set of reference values, this set was taken from [ML96]. Reference values
With these reference values PHP_Depend can classify the computed results. PHP_Depend uses this information for the generation of colored backgrounds, so that the color already supports the categorization. The benefit of the Overview PyramidOf course, the final question is, which advantages offers the Overview Pyramid? The Overview Pyramid provides a simple and size indipendent way to get a first impression of a software system, and this without an expensive source code analysis. Thus the Overview Pyramid is an effective tool for a first cost estimate for an unknown system. With the help of this tool and know-how, an experienced developer will quickly get a first impression and will know what can be expected from the analyzed application. And this knowledge could be a good help during the planning phase of a new project. Bibliography
Posted by Manuel Pichler
in php, php_depend, phpugdo, projects
at
18:36
| Comments (8)
| Trackbacks (0)
Defined tags for this entry: overview pyramid, php_depend, quality assurance, software design, software metrics
Saturday, June 21. 2008What you should know about PHP_DependHere a short follow up for the PHP_Depend release announcement, with hints on using PHP_Depend.
First I must explain that PHP_Depend is working package oriented. This means it heavily relies on
With default settings PHP_Depend suppresses the +global Package, because it expects that this package contains classes from external libraries, like Zend Framework or eZComponents. If you use PHP_Depend for a project with less or no The second important hint is related to exported charts and images. If your operation system, image viewer or browser supports SVG, you should use this format. The reason for this decision is really simple, SVG provides tooltips and so you get most informations from the generated graphics. For the Overview-Pyramid this means, that you get a tooltip for the used acronyms. ![]() PHP_Depend Overview-Pyramid with acronym tooltip And within the JDepend-chart you get the package name as tooltip. ![]() PHP_Depend JDepend-Chart with package tooltip
I hope this short introduction helps you while you are trying out PHP_Depend. If you are already using the metrics feature of PHPUnit, you should try out the new
Posted by Manuel Pichler
in php, php_depend, phpugdo, projects
at
23:35
| Comment (1)
| Trackbacks (0)
(Page 1 of 1, totaling 2 entries)
|
ProjectsFurther stuffCategories |



