Making Better Use of Patterns

Software Patterns are very useful. They provide us with common solutions to related, but distinct, problems. Modern software IDEs like Visual Studio have become extremely adept at understanding and manipulating source code. With Intellisense, static checking, and powerful refactoring tools, code is becoming more and more like clay in developers' hands. I wonder what additional [...]

By |2012-03-12T21:20:43-04:00July 21st, 2009|Software Engineering|0 Comments

Analogies as Abstractions

Analogies are an effective way of communicating knowledge of one domain by mapping the domain's concepts to another similar domain that is known by that person. In this way, a person can gain understanding of domain B through their existing knowledge of domain A. There is, however, a possible third player in this scenario - [...]

By |2017-02-21T11:27:37-04:00July 21st, 2009|Software Engineering|0 Comments

Sinking the Titanic

Imagine, for a moment, that you are Poseidon, god of the oceans. The RMS Titanic is sailing in your waters, and you don’t like that. You decide that you want to sink the Titanic and make an example of her for other sailors of the world, so you order your minions to construct a giant [...]

By |2017-02-21T11:27:37-04:00July 6th, 2009|Software Engineering|0 Comments

Abstraction in Software Architecture

One of the important parts of the essence of software architecture is that it is an abstraction of the actual code of the software system. What’s interesting about that is that it means software architecture is an abstraction of an abstraction, since the code we write using modern programming languages is just an abstraction on [...]

By |2017-02-21T11:27:37-04:00May 30th, 2009|Software Engineering|0 Comments