My friend Ralf Westphal invited me at the PrioConference to talk about Code Quality. PrioConference will take place 2007 13/14 November in Baden Baden, Germany. Here are the abstracts of my 2 sessions:
Dependencies management and Build comparison (Day 2 / Tracks 2 / 15h – 16h15)
The motto ‘the source code is the design’ is getting widely adopted with the success of agile methodologies. However source code bases are still hard to understand. With traditional tools, it is still a burden to answer simple, yet essential, structural questions such as:
- Who depends on this particular part of the code?
- Which methods of a component are using which methods of another component?
- Is there dependency cycles and what should we do to get rid of them?
- or Which dependencies have been created/changed/removed between these 2 versions?
In this session, we’ll see how to answer this kind of questions by using a new emerging kind of tool for software developers and architects. We’ll concretely use the tool NDepend especially adapted for .NET code bases. We’ll also present best practices to refactor your code base to ensure sustainable software structure quality in your projects.
CQL vs. FxCop (Day 1 / Tracks 3 / 17h – 18h15)
The FxCop tool is a blessing for every .NET
developer that cares about quality. The FxCop authors even recently got
awarded the Microsoft Engineering Chairman’s Award, the highest award
for engineering group employees worlwide. FxCop consists of an
extensible set of around 200 rules that automatically check, if code
correctly uses the .NET framework and abides by some good practices.
The next step is to allow .NET developers to write
their own rules for their own frameworks and applications. Such custom
rules might be
- My UI layer should not directly access my DAL layer,
- My methods should not be too complex, except the ones automatically
- My fields’ names should abide by these particular regular
- Clients of my framework should use my factories to
instantiate my classes, or
- The code of these particular classes is
sensible and I want to be advised whenever it is updated.
In this track, we’ll see how to write such custom
rules with the FxCop framework. We’ll also present some new kind of
specific language dedicated to query and constraint code. We’ll focus
our attention on the Code Query Language (CQL) supported by the tool
NDepend. CQL is to code bases what SQL is to relational databases.
We’ll see how it is especially designed to simplify writing custom