April 13, 1999 - Jack Harich - Go Back
UHR and the BA are best mastered by first building a simple BA from scratch. While this takes time, it gives one deep understanding of the core issues, the BA is no longer a black box, and you become a master of highly leveragable technology. (Document Status - In progress.)
We will approach this with a series of Mini Process iterations. To speed things up we provide the models. But first, here's a story of why building a practice system can help master the BA.
In 1993 ActaMed was a high tech startup, growing to 60 people in 2 years. Their product was a nationwide medical informatiion network. To crack some tough design issues, they went to IBM and asked:
"We expect to have one to two hundred databases around the country, each with over ten million patients. Each patient has hundreds of various type data records associated with it, scattered around the country. When a doctor needs to lookup patient data, how long will it take to physically get the data to that workstation, for viewing and editing?"
The answer was ten minutes to two hours, depending on the architecture and data. This was unacceptable response time, so ActaMed invented a few things, and got it down to mere seconds. This became their patented Object Broker technology, forming the core of their product. The problem was only a few engineers understood it. This was solved by starting all new C++ developers out this way:
When they came aboard, the first thing they did was design and implement their own Object Broker from scratch, with no access to the real one. This took several months, a large training investment. But after that, they understood the most complex technology in the company completely, as good as the original development team. Some understood it even better, and made improvements which were added to the real thing. Since they understood the hardest thing, everything else was easy, and productivity soared. The "practice Object Broker" training proved hugely successful, and was regarded as a strategic company advantage.
1st Iteration
Nutshell Vision - Get several parts running in a container using a reusable Plugpoint Framework.
Use Case List
- System startup.
- Add, change, remove parts
- A part needs to use another part.
Here's the Object Model in a typical Mini Process style.
Here's the code for each Implementation Plan step. To keep things simple and compact, you can violate our usual rule of separate files for each class. Please note that just reading the code won't explain many things. For that you need expertise in your study group, plus UHR website and relevant literature study.
2nd Iteration
Additional Requirement - Initialize the system using Declarative Knowledge.
Additonal Requirement - Introduce Anonymous Collaboration by using Messages between parts.
Additional Requirement - Implement a reusable Layered Architecture with containers.
Additional Requirement - Have layers start up only when needed.
Additional Requirement - Create another system with different behavior reusing the first system.
Additional Requirement - Collaborate with another BA System via Messages.