Home » Author Archives: Edmund Kirwan

Author Archives: Edmund Kirwan

Edmund Kirwan
Edmund is a programmer with a telecoms company in Stockholm where he is currently working on a large-scale network simulator. In his spare time he thinks far too much about program-structure.

Software engineering as … engineering.

software-development-2-logo

How do you compare the structure of two different programs? You could fire up your IDE and dive in. A week’s snorkeling will no doubt produce a valid conclusion. If, however, you have only ten seconds to decide then you need some other tool. Engineers facing similar problems in other fields regularly look to the cumulative distribution function (CDF) for ...

Read More »

Breaking Bad … interfaces.

software-development-2-logo

A question of efficiency. So, you start working on some code and a monstrous interface snarls back at you, picking from its teeth pieces of the previous programmer who dared approach. It has twenty-five methods, and you just need to add one more teeny-weeny method to it. Should you clench and add it, or should you listen to that voice ...

Read More »

Visualizing engineering fields

software-development-2-logo

Civil engineering.                         Mechanical engineering.       Electronic engineering.       Software engineering.       Summary. Seriously, software engineering? Photo credit attribution. Image Clemuel Ricketts House drawing 1 courtesy of wikimedia. Image Bequet-Ribault House Transverse Section with Details courtesy of wikimedia. Image Grand Central Terminal courtesy ...

Read More »

Bad program structure: the complectation

software-development-2-logo

Degrees of badness Many programmers consider source code dependencies either circular or non-circular, with circular dependencies representing The Greatest Imaginable Evil (which of course they do) and non-circular dependencies representing the acceptable if drab face of source code structure. This second representation is not quite true. The digital gods do not create all non-circular dependencies equal. Figure 1 shows six ...

Read More »

The most important factor in software decay

software-development-2-logo

Do you have big balls of mud? Here’s an experiment to amaze your friends. You probably listen to music on your phone via some sort of headset. The headset we shall consider here consists of two earbuds (in-ear pieces, rather than head-phones which cover the ears) connected via wires to a jack which plugs into the phone itself. Disconnect your ...

Read More »

Who’s afraid of the big bad class?

software-development-2-logo

Ferocious, guzzling black holes of the software universe, super-massive classes result from run-away positive feedback: the class grows so huge that programmers fear any attempt at refactoring and instead simply dump more functionality into it, thereby making it even more likely that the next programmer will also pale before the terrifying refactoring and jettison yet more functionality into the maw. ...

Read More »

Structural contingency (part one)

software-development-2-logo

Order, in mathematics, matters. Take two functions, f and g, and compose them, thus applying them to an argument as either f(g(x)) or g(f(x)). In general, it cannot be assumed that f(g(x)) = g(f(x)). If f(x) = 2x and g(x) = x 2, for example, then f(g(3)) = 18 but g(f(3)) = 36. The order in which the functions apply ...

Read More »

What’s the opposite of duplication?

software-development-2-logo

“If you see the same code structure in more than one place,” writes Martin Fowler in his wonderful, Refactoring book, “You can be sure that your program will be better if you can find a way to unify them.” He then describes how skillful programmers use the twin scalpels of extraction and substitution to excise duplicated expression and metastasized algorithm. ...

Read More »

Dependency inversion: the structure logarithm

software-development-2-logo

Re-examining benefits. Through the corroded dripping pipes of transitive dependencies, ripple effects gush. Programmers sometimes spend arduous days clambering down into the darkened building-tall labyrinths of plumbing for no other reason than to rip out some of those transitive dependencies so that predictability of cost of change might improve (amplification offering prime motivation). Those programmers that return often, after lengthy ...

Read More »

How many classes and packages should you have?

software-development-2-logo

Real world experience. Once upon a time there lived a family of programming bears. Each morning mammy bear, daddy bear and baby bear would rise and eat breakfast together in their secluded cottage deep in the forest before whipping out their three laptops to spend hours cheerily writing Java code. One day, while the bears were out shopping, professor of ...

Read More »
Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close