Archive for the ‘Software Design’ Category

Tell me twice

A few days ago, I explained to a colleague why certain communications protocols have a “tell me twice” policy – i.e. to allow for any command to have any effect, the same command – or a command to the same effect – has to be received twice (from the same master). In human parlance, this [...]

Read the rest of this entry »

Socks 5: Starting GSS-API – The Factory Pattern

In this installment, we’ll be doing a final bit of clean-up and starting to implement a GSS-API/SSPI client program, while focusing on the Abstract Factory Pattern

Read the rest of this entry »

Binary Search

While going through some old code, for another article I’m writing that will come up on the blog, I came across an implementation of binary search in C. While the implementation itself was certainly OK, it wasn’t exactly a general-purpose implementation, so I thought I’d write one and put it on the C++ for the [...]

Read the rest of this entry »

Use-Cases Part 1: Introduction & Ingredients

In the “C++ for the self-taught” series, we’re about to embark on a new project. In order to describe that project and in order to figure out what we want the result of that project will be, we will be using a tool called the use-case. So, I think an intermezzo on use-cases is in [...]

Read the rest of this entry »

[Re-post from Greg Wilson: ] Bits of Evidence

Bits of Evidence View more presentations from Greg Wilson.

Read the rest of this entry »

Error handling in C

One of the things I do as a analyst-programmer is write software – that would be the “programmer” part. I usually do that in C++ but, sometimes, when the facilities of C++ aren’t available (e.g. no exception handling and no RTTI) C becomes a more obvious choice. When that happens, RTTI is not the thing [...]

Read the rest of this entry »

Implicit, Contextual Requirements

We tend to forget what we know implicitly: if we’ve been working in the same domain for long enough, we tend to forget that not everybody knows the same things and has the same experience we do. For example, some-one who has been working in distribution for a long time may think it’s obvious that, [...]

Read the rest of this entry »

The Quest For Bug-Free Software

In recent literature from the scientific side of software engineering, there’ve been a lot of publications on producing and maintaining high-quality software. A lot of focus is being put on tools, systems, procedures and processes that aim to reduce the price-tag of quality and avoid the price-tag of failure.

Read the rest of this entry »

Badly defined semantics

There is probably nothing worse than badly defined semantics: functions that might (or might not) take ownership of the object you pass to them can be a serious maintenance headache.

Read the rest of this entry »

Developer’s Guidelines & High-Quality Software

Yesterday, I was asked what I saw as the most important factors to ensure the development of quality software. What I cited was good design, good implementation following good standards, and good testing. On the testing end, I have a rule-of-thumb that says that at least 85% of the code should be covered with unit [...]

Read the rest of this entry »
 
This blog is monetized using Are-PayPal WP Plugin