Last Updated September 8, 1999 - Jack Harich - Go Back
Main Actors
In our continuing efforts to learn from experience, here's yet another look at things from yet another perspective. This manner of going over and over and over a design is what fast evolution is all about.
Here we try to think of each differernt actor. How do they see their universe? What does their "lifestyle" consist of? What do they do every day and minute? What are their conceptual inputs and outputs?
Use Case List
These apply only to the kernel and supporting subsystems like Param and Message. We are excluding Visual Tool details, but not the Visual Tool hook to the kernel. For simplicity we assume the present Param file based subsystem is used. When in doubt we include a Use Case rather than miss it.
No way these are complete. Much of the spec is in the present BA. These Use Cases really need grouping. The groups can be very insightful.
- Create new system
- File management - Add, Delete, Move, Rename, Copy, etc.
- Edit container DK
- Edit part DK
- Start system
- Start container
- Close container
- Close system
- Send message to part in started container
- Send message to part in unstarted container
- Send message to MessageService in container hierarchy
- Send any command to a part, such as Start, Close, Pause, Init
- Start a part's lifecycle, with DK option
- End a part's lifecydle, with possible "closed" event
- Get and apply DK in running part or container, with "dynamic DK" feature. (For containers, do not close and restart if change is to only one part.)
- Add part or branch to running system, with rollback
- Remove part or branch from running system, with rollback
- Replace part or branch in running system, with rollback
- Determine Message Chain
- Validate part dependencies, system running or not
- Let a part manipulate the system directly
- Let Visual Tools or other systems "hook" into a system
- Notify hooked systems of various kernel events
- Handle an exception in kernel or subsystem
- Handle an exception in part
- Handle errors in DK
- Infinite Extensibilty (do separate list)
- Deployment of a system
- Message name conflict, such as due to part reuse - How to avoid?
- Reuse a part
- Part external modifications than prevent backwards compatability
- Understand a system
- Understand a part
- Need for designer to know of a "set of messages", similar to interface
- Need for MessageRegistry or such for MessageDef reuse
- Need for Datatrons, how to "read" their definitions
- Design and specify a system, branch or part (before building it)
- Test a part
- Test a system
- Test the kernel
We expect to completely redo this, organizing into groups and key Use Cases, with an "importance ranking". These can be used to validate our architecture. Further detailed Use Case can drive detailed design and the rest of the project.