In a previous blog entry, I related how I modified my code to split classes in two parts, separating commands and queries. In the conclusion I was suggesting that Eiffel could be extended to provide support for this. I will now formalize the language extension, and demonstrate how to use it to write even more solid code.
The Eiffel language in its current definition has no concept
of namespaces. However in large programs using many
libraries name clashes (i.e. two classes having the same
name) become more and more probable.
Different Eiffel compilers have resolved the name clashes
with different strategies. This is not satisfactory because
it is not portable.
BALIGN is a multi-functional batch sequence alignment tool. It has been used in several bioinformatics applications by İTÜ Computer Engineering Bioinformatics Group, but its abilities are not limited to biological sequences. Any type of sequence with an ASCII representation and a scoring matrix can be handled by BALIGN. The source code contains generic aligner classes which can be used separately.
Work a long time on your code, and you will have countless opportunities to experiment with software design. Today, I'd like to describe how I moved some classes to a new model for separating queries and commands.
The need for this came to me because of complex assertions.