SOFTWARE ENGINEERING blog & .more
manuel aldana
Manuel Aldana

Recent Entries

>December 13th, 2009 · No Comments

Extending source-code syntax highlighting

After all the decades of software development, and recently hyped trends (e.g. “programming in graphical diagrams”) plain text source code is still the most powerful way to build software systems. Regarding this a high degree of importance is readability and comprehension of source code. In fact you’re spending more time in reading as with writing code. Apart from improving the structure of the code itself (the refactoring concept plays a big role here) syntax highlighting is also very important to get a quick overview. Following gives an example how and  why to tweak your editor defaults.
[Read more →]

→ No CommentsTags: Uncategorized

>November 21st, 2009 · No Comments

Most favorite firefox addons/plugins

One of firefox killer-features is the variety of add-ons. Following is an overview of the add-ons I use currently.
[Read more →]

→ No CommentsTags: Technologies/Tools

>April 19th, 2009 · No Comments

Parameterized test-methods with TestNG

TestNG offers many great features and is definitely more capable as JUnit to build a strong automated Test-Suite. When writing test-cases one important factor is the handling of test-data. With JUnit it is cumbersome to feed different test-data to the same test-code. TestNG solves this much better.
[Read more →]

→ No CommentsTags: Continous Integration · Software Engineering

>March 19th, 2009 · 5 Comments

Reasons NOT to use ClearCase

After 3 years of working with ClearCase SCM tool I came to the point that you should not use it for developing software. Surely it has its moments: The branching and merging capabilities are good and the graphical version tree is nice. Also the concept of the config-spec, which is a kind of query-language for an scm-configuration (the set of checked out artifacts) is powerful. But there also many shootout reasons, why it is bad.
[Read more →]

→ 5 CommentsTags: Technologies/Tools

>February 18th, 2009 · No Comments

Continous code improvement with IntelliJ scm-integration

As software engineers we get overwhelmed by the masses of bad-quality source code we work with each day. At this stage improvement of all these source code artifacts is a never ending story. To tackle this problem IntelliJ IDE goes the step-by-step improvement approach, where it runs actions and includes its powerfull code inspections on your changes you are about to propagate to source control repository.
[Read more →]

→ No CommentsTags: Software Engineering · Technologies/Tools

>July 28th, 2008 · No Comments

Getting rid of checked exceptions in Java

Exception constructs in modern languages have replaced the way to map an error condition by a return value (like for instance in C). If used properly analyzation of error conditions and their handling can be performed very well. Never the less in Java, the so called checked exceptions are annoying since long (as a side note: C# seemed to have learned from this early language-design mistake because it supports unchecked exceptions only). This article discusses further why checked exceptions should be avoided.
[Read more →]

→ No CommentsTags: Software Engineering

>June 16th, 2008 · No Comments

Avoiding xUnit test-errors (false positives, false negatives)

You are using unit-tests to ensure that production code works as defined or specified from the class-level view. This way you either get feedback that your implementation works as wanted (green-bar=success) or not (red-bar=fail). Unfortunately tests are also man-crafted work and can contain bugs. Following article shows what kind of test-errors exist and what preventive actions can be done.
[Read more →]

→ No CommentsTags: Continous Integration · Software Engineering

>May 21st, 2008 · 3 Comments

Considerations Eclipse (3.3.2) vs. IntelliJ IDEA (7.x)

To master frameworks (Spring, Hibernate, EJB, Struts etc.) and language-systems (Java, PHP, Groovy, C++) you need your “big” handy IDE tool which is used for many reasons: Inclusions of third party libs (dependency-management), trigger automatic compiles (if neccessary), automatic/safe refactorings, browsing code, debug, execute tests etc. (the list goes on forever). For that central IDE-tool you should try to use the best one on the market. A few months ago I was interested how my implementation and design work would “feel” with a different IDE, so as a long-time Eclipse user I gave IntelliJ a chance. Following article gives an overview of my impressions on trying out a different IDE. My reference IDEs had been Eclipse 3.3.2 and IntelliJ 7.0.3.
[Read more →]

→ 3 CommentsTags: Software Engineering · Technologies/Tools

>May 13th, 2008 · No Comments

Improving weak automatic test-suites incrementally

A key element for good quality software is a good automatic run test-suite, which contains both unit and integration tests. As Frederic P. Brooks already mentions in his book ‘The Mythical Man-Month’, developers (as other humans, too) are far away from being perfect. As software from the outside view often needs to be written 100% correctly (only one missing or wrong statement in the whole execution path can make a feature to be buggy), we need to have a reliable way to get quick feedback whether something works or has been broken. A powerful way to accomplish this is by checking the behaviour with automatic running test-cases. Though this practice is already state of the art, you often find systems with a weak test-suite. This article shows why the feedback-loop is so important to how improve your test suite by getting a testing culture and to introduce test-cases step by step.
[Read more →]

→ No CommentsTags: Continous Integration · Software Engineering

>April 17th, 2008 · No Comments

Bashing the refactoring criticism

Refactoring (changing design of existing code while preserving behaviour) is a cruicial daily software engineering practice to make your system able to adapt for typical maintenance tasks like fixing bugs or feature enhancements. Still I perceive that refactoring still is not commonly done. This article presents the most common arguments against practicing refactorings and show why most of them are wrong.
[Read more →]

→ No CommentsTags: Software Engineering