If it's good enough for NASA, it's good enough for ...
We've been on the software engineering bandwagon for a little while. Although we are still traveling down the road of AI-complete problems, we realize the complexity of the potential software solutions that we are mesmerized by will require absolute focus on correctness, reliability, robustness, and maintainability.That's why we've alluded to formal specifications and formal languages. The one we are dealing with at the moment, and the one we find most useful is LOTOS (Language of Temporal Ordering Specification). LOTOS has an ISO standard. LOTOS is a Formal Description Technique (FDT) standardized by ISO for the design of distributed systems. If you haven't acquainted yourself with the use of Formal Languages, Specifications and Methods and you are charged with the task of developing or retrofitting software systems to include parallelism/concurrency, we strongly suggest that you add them to your tool box. Introductory material on LOTOS can be found at:
And software can be found at:
This stuff is best applied in the specification's phase of your project whether it is a new project or an retrofit.
Graphic goes here
Notice that in the case of retrofit, we apply a formal treatment to how the current system works as well as a formal specification of how the proposed system must work, given the services that are already provided. Once users depend on a service it's hard to take it away. So in those retrofits, the existing services and their implementations have to analyzed as well. The specification generated for the proposed requirements should be copiously compared to the specification for the existing system. Now we will get to the NASA stuff a bit later. Right now Cameron just walked in with "Assassin's Creed: Brotherhood" (Collector's Edition of course!) which means we have a few appointments in Rome. Later!