Java aware sources comparison

Few months ago I was searching a tool that would compare two versions of Java source with respect to its OO structure. I expected that report would give me an info not only with number of changed lines in a file but rather number of changed methods and number of lines in them. I found nothing that can fulfill this task.

Simple calendar

Calendar functionality is a must in applications where working or non-working days have a special meaning. Fixed holidays (solar cycle) and weekends can be determined without any effort. In European tradition there are also floating holidays dependant on Easter – derived from lunar cycle. Determining these is non-trivial but already solved problem described as Computus.

Currently most of programming languages are equipped with utilities (math and date) that make implementation simple. It allows to build an algorithm of everlasting calendar in any system. Why I'm diving into so trivial problem? Because I consider embedding of such algorithm as evil.

StarUML model validation using Schematron

Main benefits of Continuous Integration practice are improved quality and team communication. The former is achieved by automated compilation with testing and the latter by publishing the results. Nowadays successful building any bigger system is not possible without both.

In one of my recent posts I presented how to transform StarUML model to XML Schema outside the tool. Implementation dependant model generation corresponds to compilation. Testing can be implemented as validation. In this case literal and structural analysis of UML file is fairly simple owing to its XML format.

Manipulating XML files using Apache Ant

Recently I needed to work out large number of XML documents. I was positively surprised how much one can do using old good Apache Ant. In this post I present libraries that add a powerful XML support in it.

Domain Specific Languages 2.0

When new software application is built most of the time is spent on communication. Huge amount of knowledge must be transferred between users' representatives and IT specialists. There are different approaches that try to cope with this process. They mainly differ on the number of translation steps and therefore documentation complexity. In terms of knowledge management documented process or system has an advantage – all acquirements are available for further reference.

Unfortunately documents just after creation usually become outdated. The knowledge transfer happen not only when requirements are expressed or application code is designed. Significant number of facts is revealed also during acceptance tests and even production maintenance. These are rarely included into reference files created during earlier stages. Documents ends life just after first lines of code is written.