February 7, 1998 - Jack Harich - Document Map
The BA is so radically different from normal software development tools and methods, that one must make an extra effort to fully understand its underpinnings. Without these deep insights the full power (and future potential) of the BA will be wasted. (This is an early writeup, giving an interesting look at a younger BA)
- The BA is primarily a visual approach, and not a 3GL. Its main visual tools are:
- System Instance Tree (the most important)
- Inspector (complete with MessageChain and method invoker)
- Param Editor (to be improved)
- Configurator (future feature)
- Modeler (possible future feature)
- The BA is configuration centric, not code centric. The mechanisms are:
- Composition of Module and Beans in the Instance Tree
- Module invocations per item (optional)
- Bean parameters (optional)
- The BA uses carefully designed reusable beans that were built for reuse.
- The BA supports continuous evolution, eliminating the design/run muddle.
- BA systems require a hierarchical class model, not a "web".
There's a technical foundation underneath the BA's design. It attempts to eliminate the "free form" or "blank slate" approach taken to most system designs, and instead provides a consistent, productive, rigorous approach called Structured Assembly. The noble truths are:
- Complex system are best internally organized and visually presented as a hierarchical tree of containers and workers.
- Worker collaboration is best accomplished by events, not methods.
- Workers can only reference other items in their container. Minimize this.
- Systems are best assembled by configuration, not code.
- The smoothest expression of Strutured Assembly is tools allowing continuous evolution, just like Mother Nature and Father Time.
- Better decision making due to better conceptual grasp of complexity.
- Better decision implementation due to easier system evolution.
- Higher reuse due to composing systems from parameter and event driven reusable components using better infrastructure.
- More robust systems due to higher reuse and better infrastructure.
- Faster and cheaper development due to all of the above.
- System Engine - The 12 classes in the org.jcon.ba.system package, plus about 30 reusable classes, are all that's needed to run a BA system.
- Message - About 10 reusable classes in org.jcon.util provide a reusable event, event listener and event router service. BA beans use Message events, rather than custom events, for collaboration.
- Param - 7 reusable classes in org.jcon.param and org.jcon.param.edit provide a parameter driven subsystem via the ability to retreive, use, edit, apply and store a reusable parameter class called a Param. The subsystem is internet deployable.
- Evolver - aka Editor or IDE, this large (and improving) subsystem allows the BA user to "evolve" a system, with full WYSIWYG real time behavior.