Channels ▼


Lessons Learned

Source Code Accompanies This Article. Download It Now.

Jake is a Principal Software Engineer at Alion Science and Technology, MA&D Operation and the lead programmer on the simulation tool Micro Saint Sharp. He can be reached at

Alion Science and Technology is a technology solutions provider delivering technical expertise and operational support to the Department of Defense, civilian government agencies, and commercial customers. Alion's MA&D Operation ( provides expertise in human-systems integration, human-factors engineering, computer simulation and modeling, and custom software development. Our main commercial simulation tool is Micro Saint Sharp, a discrete event network simulation software package for building models that simulate real-life processes. With Micro Saint Sharp models, you can acquire useful information about processes that might be too expensive, dangerous, or time consuming to test in the real world. Any process that can be represented by a flow chart can be modeled using Micro Saint Sharp (see Figure 1). Micro Saint Sharp is designed to be flexible for use in a variety of applications, including manufacturing, health care, air-traffic control, human performance, and military scenarios.

[Click image to view at full size]

Figure 1: Micro Saint Sharp. Network diagram created using the GoDiagram graph-drawing tool from Northwoods Software (

It's common for software products that have been around for more than 20 years to undergo numerous rewrites. Micro Saint Sharp is no exception. It was first developed in DOS and VAX, followed by a Macintosh version. In the early 1990s the product switched to Windows. When I first started working on Micro Saint Sharp in 2001, it was still being compiled on a 16-bit version of Borland C++. Although the product had served its main purpose, it had a few problems (including speed issues) and was starting to look dated in terms of the user interfaces. Because of these concerns, I came up with the idea of rewriting the application using new technologies. In particular, I believed that using third-party components would save hours of development time. In this article, I share the lessons learned in redeveloping and updating this commercial application.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.