Downloads

Created 2/24/99 - Last Updated 8/28/00- Jack Harich - Go Back

Please note that the CB and UHR projects are stopped. They have been replaced by Visual Circuit Board (VCB).


Emergence

For the nearly two difficult years it has taken to get this far, Jack has deliberately not presented this work as a public download. But it's starting to get pretty solid, and is a definite productivity boost if you understand how to use it. He was concerned about being overwhelmed by suggestions, questions and proposals, so didn't make it public. But now there is the beginning of a community to help out, centered in the JSL list (a private list). In the last few days an explosion of interest and support has occurred, kicked off by the BA Thunderbolt message and the upcoming BA Workshop 2. Five people have requested copies of JCON in the last few days.

So it looks like time for this body of work to go public, and here it is, on February 14, 1999.

Many thanks to John Fitzpatrick at CDC, explorer and philosopher, who was the first to see the potential of these abstractions and give them their first home....

Many thanks to Greg Kreis, creativity ultimo and organizer, who founded the JSL study group and first managed the list, where these concepts were articulated and honed....

Many thanks to Paul Reavis, parameter driven pioneer and master of all trades, who validated and bounced a lot of ideas around and around....

Many thanks to Britt Kinsler, a rare man who can see value, for recent encouragement and a new home for these abstractions....

Many thanks to all the others out there. You know who you are, and now's your chance to smile and feel that warm glow....

Happy Valentine's Day and don't have too much fun! :-)



Comments

You may use all this in any way you find useful. The group will probably soon put it under some sort of Open Source umbrella.

Please remember this technology is still immature, so expect to find bugs, little documentation, few examples, few parts, weak tools. But good news, there is much usefulness here. Help us grow these concepts. Please report bugs, suggestions and offers to help to the JSL list.

To understand these downloads, be sure to study Jack's entire site, especially the Bean Assembler and Ultra High Reuse Technology. There are many goals, principles, mechanisms and abstractions that are hard to document and nearly impossible to understand with just code. These downloads are not for the curious.



Building Systems with the BA

Any system a user needs can be quickly assembled from parts once you have these elements ready:

1. The BA System Engine microkernel
2. Plugpoint frameworks built on top of that engine
3. Parts filling plugpoints in the frameworks
4. Tools for system evolution
5. Assemblers adept at assembling systems from parts

and eventually:

6. Suites of Frameworks, Parts and Tools so mature users can do it themselves routinely

The first 5 elements will give us a 5GL. The 6th element will signify a 6GL. It's all a matter of Frameworks, Parts and Tools, dancing over a lightweight microkernel.

The BA can be used to build any type of system. It is not limited to database apps, Client Server, UIs or anything. The BA System Engine is unaware of persistence, the awt, the net, or really anything outside its responsiblities. All it does is organize parts in a tree, instantiate them when they need it, provide parameter driven parts with their parameters, allow parts to collaborate via Messages, close parts, and such. It behaves as a gigantic mediator. Think of the System Engine as the plumbing you wished was in your favorite language.

You can easily hit 95% reuse, ie systems developed using BA technology will have 95% less new code than normal due to reuse. At this point reuse percent becomes meaningless, because you still have to design System Trees and edit parameters. A more meaningful metric is person hours per functionality, such as an average Business Logic feature or screen. We do not have any metrics here yet. More importantly, throughput is a matter of minutes instead of hours for tasks, days instead of months for products, defects drop like a stone, maintenance becomes an easy matter of parameter tweaking, and extensibility is an easy matter of adding more containers and parts to the System Tree, or modifying parts. We don't develop systems anymore - we assemble.

To assemble a system using the BA, you must first develop one or more frameworks that sit on top of the BA System Engine. These frameworks have plugpoints that are filled by parameter driven parts. Once you have such a plugpoint framework, you build specific systems by creating System Trees using a root class, directories, parex files and some custom classes. See Appropriate Architecture. Observe how the Awards app sits on top of the Data Framework which sits on top of the BA System Engine.

The ATSDR sample systems serve as an example of how to do this. They use the Data Framework that is in org.jcon.df. Note the absence of lots of classes in the sample System Trees. They have been replaced by parex files. This is the sweeping new paradigm of Declarative Knowledge (DK). OO and code is out, DK is in. :-)

I find it ironic and revealing that just as OO and notations such as UML mature, they begin the decline into obsolescence. What is this telling us?

Organizations using this technology face challanges:

Education - They will need to learn how to design and use Ultra High Reuse Technology. Designing and building these frameworks, parts and tools is harder than OOAD to grasp, and seems to only be mastered by those who have already developed home grown table or DK driven systems. But it can be learned, starting with the principles of Structured Assembly. Using the frameworks and parts is straightforward and fun if the visual tools are well done.

Specialization - They will need to organize around two very different activities: Frameworks/Parts/Tools Development and System Assembly. The first deserves a place in your Core Technologies group, the second in the Product group. Overlap occurs mostly in the Part Shop.

Resource Shortages - They will discover few know how to do the first activity well, and that conceptual integrity concentration strategy (as implied in The Mythical Man Month) demands putting high level designs and first round iterations into the hands of the skillful few. This will immediately raise the question, "Who?" followed by, "Where can we find them?" followed by discovery there are nearly none available because this is an emerging technology.



Files

These are all in WinZip format.

Generation 1 release dates and main improvements are:

  1. 2/24/99 - First version release.
  2. 9/27/99 - Improved PropMap, added StubPart. A very minor release.

Here's the JCON distribution (1.7MB). This is the entire org.jcon package branch. The BA System Engine is in org.jcon.ba.system. See the ReadMe file to get started. Please note the class files have been removed to reduce download size. Compile the source yourself with Java 1.1 or later.

We have the CDC ATSDR sample systems. This is a small, simple relational database centric app with client and server systems. You need the systems (64K) and the MS Access Database (17K).. See the ReadMe file to get started.


Generation 2 has:

Version 1, 11/15/99 - Generation 2 Guide, 108K. - Generation 2 Code, 121K.

Version 2, 11/29/99 - Generation 2 Guide, 272K. - Generation 2 Code, 102K.


"If you want to build a ship, don't drum up people together to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea." - Antoine de Saint-Exupery

(supplied by Greg Kreis)