|
Technical Articles
Introduction to multi-threading
and its inherent difficulties
This article is a brief introduction to multi-threading: Why it is sometimes needed, and why it is hard to get multi-threading
programs to perform reliably.
Managing the inherent
difficulties in multi-threading through object-oriented design
This article provides a set of classes that we have used very successfully to tame the problems of multi-threading. Using these classes cuts out a lot of the traps that lurk in writing multi-threaded programs.
An efficient design approach for
the design of event-based software
Some books claim a 30x improvement in productivity and quality of software developed with this method. We can't confirm the number, but our experience is that cleanroom software engineering is a powerful method to get code right much faster than with other methods. In this article we present a brief background to the methodology, and we present a set of C++ class templates that makes it easy to transcode a design specification directly into code.
A robust solution to a coherent
state of a complex software program
Keeping all parts of a program informed about changes in other parts can be a nightmare. The
observer pattern can go a long way in solving this problem. This article demonstrates two families of C++ classes that can be used to implement the
observer pattern for small units of information.
Our design methodology to
reliably and efficiently build cross-platform
applications
Do you need to have your program run on Unix or Mac, in addition to Windows? Many of the design environments make it difficult to build cross-platform applications. Here is a methodology that we have used to do this job, with a specific emphasis on minimizing and isolating platform- and tool dependencies. With this methodology porting to new platforms is a much more linear process than is typical.
|