Planet der Usergroup Dortmund
Aggregierte Feeds der Groupies der Usergroup Dortmund.
By Kore Nordmann at 1301394026
Already some time ago I published a tool on Github which allows you to
generate (or learn) XML schemas from XML data. You provide the tool with a
set of XML files and you get a nice, human readable, XML schema (XSD, DTD, …)
from that. Read more for the details.
Mehr lesen...
By mapi at 1300704135
Version 1.1.0 of PHPMD was released on March the 20th 2011. The key features
for this release were two new rules. The first one utilizes the Coupling
Between Objects (CBO) metric to detect strongly coupled classes. The second
one detects the usage of PHP's questionable goto statement. Beside
that we have closed a minor bug in the LongVariable rule, where also private
properties with descriptive names were reported. And finally we have replaced
deprecated PHPUnit features in the PHPMD's test suite, so that PHPMD's tests
should now work with PHPUnit 3.4.x and 3.5.x without deprecated warnings.
Features
-
Implemented #10474873:
Add rule for PHP's goto statement. Implemented with commit #2745a20.
-
Implemented #10474987:
Implement rule for CBO metric. Implemented with commit #14277b4.
-
Implemented #11012465:
Replace deprecated PHPUnit features in test suite. Implemented with commit #4adb88d.
Bugfixes
-
Fixed #10096717:
LongVariable rule should not apply on private properties. Fixed with commit #f063bc9.
Download
You can download release 1.1.0 through PHPMD's PEAR Channel Server
or you can download the release as a Phar archive
Mehr lesen...
By mapi at 1300182720
In this blog post I will give you a brief introduction into the Coupling Between Objects
metric, that is one of the metrics calculated by the static code analysis tool
PHP_Depend.
The Coupling Between Objects or CBO metric was originally
defined by Chidamber & Kemerer in their IEEE paper "A Metrics Suite
for Object Oriented Design" [1]. This
software metric represents the number of other types a class or interface is
coupled to. The CBO metric is calculated for classes and interfaces.
It counts the unique number of reference types that occur through method
calls, method parameters, return types, thrown exceptions and accessed
fields. But there is an exception for types that are either a subtype or
supertype of the given class, because these types are not included in the
calculated CBO value.
Excessive coupled classes prevent reuse of existing components and they are
damaging for a modular, encapsulated software design. To improve the
modularity of a software the inter coupling between different classes should
be kept to a minimum. Beside reusability a high coupling has a second
drawback, a class that is coupled to other classes is sensitive to changes in
that classes and as a result it becomes more difficult to maintain and gets
more error-prone. Additionally it is harder to test a heavly coupled class in
isolation and it is harder to understand such a class. Therefore you should
keep the number of dependencies at a minimum.
Thresholds
Based on their research Sahraoui, Godin and Miceli [2]
suggest a maximum CBO value of 14, because higher values
have negative impacts on several quality aspects of a class, which includes
the maintainability, stability and understandability.
See also
-
Efferent Coupling:
-
Efferent Coupling or CE is a different name for
the same metric, that is frequently used in the literatur.
-
Afferent Coupling:
-
The Afferent Coupling or CA is a metric that calculates the
reverse coupling of a class.
Bibliography
-
[1]
-
http://www.iiitd.ac.in/PhD2010/papers/SW_Paper2.pdf
IEEE Transactions on Software Engineering; A Metrics Suite for Object
Oriented Design; Chidamber & Kemerer, 1994
-
[2]
-
http://www.iro.umontreal.ca/~sahraouh/papers/ICSM00.pdf
Software Maintenance, 2000. Proceedings. International Conference; Can
metrics help to bridge the gap between the improvement of OO design
quality and its automation?; Sahraoui, Godin, Miceli; 2000
Mehr lesen...
By Jakob Westhoff at 1295194137
I am very happy to announce that I finally had some time to release version 2.0 of my PDF-Presenter-Console. It is filled with new features like navigational link support and cache compression, as well as many bug fixes. Go get it while it's hot!
Mehr lesen...
By Jakob Westhoff at 1294841362
Over the holidays I finally had some time to work on my stack of books to read. One of the books on top of my list was Test-Driven JavaScript
Development by Christian Johanson.
Mehr lesen...
By Kore Nordmann at 1294326106
This is a provoking title, but, in my honest opinion, a very valid rule of
thumb. During the last years of teaching other developers, developing PHP
libraries and applications and doing quality assurance on other peoples
software I came to this rather abrasive conclusion - let me tell you why…
Mehr lesen...
By Jakob Westhoff at 1292982994
I have been using Vim as my primary PHP development environment for several years by now. Inspired by two blog articles (Coming Home To Vim, Vim Toolbox, 2010 Edition) I recently read I decided to cleanup my Vim configurations and create certain new macros for recurring tasks. One of these macros is the ArgumentRewrap plugin, which instantly saves me a lot of time.
Mehr lesen...
By Jakob Westhoff at 1292194623
Over the past year I have been working on a book called "Plug-in Entwicklung mit jQuery" (engl. Plugin development with jQuery). Those of you who follow me on twitter might already know it: From today on the book is finally available. Why this book might be an interesting read for you is detailed in this article.
Mehr lesen...
By Jakob Westhoff at 1287392561
The IPC 2010 is over again. Actually it ended last Thursday, but unfortunately I had no time to write this article before. It was a great conference as always. Meeting with the PHP family again has been as exciting as always. I did not only have a lot of fun, but gathered some new ideas for future projects as well. Having occupied myself with a lot of JavaScript and jQuery stuff in the last one and a half years I decided it would be appropriate to share some of my gathered knowledge. Therefore, I gave two jQuery related talks at the WebTechCon this year, which took place in parallel to the IPC.
Mehr lesen...
By Jakob Westhoff at 1286513374
While preparing some slides for my jQuery workshop at this years WebTech Conference I was in need of different closure example. As I thought about complex ones currying came to my mind. Even though I actually never used this concept in JavaScript I quickly hacked a short function as a generic approach to introduce this feature to the language.
Mehr lesen...