Sunday, December 6, 2015

The CABOOSE XHTML StoryBoard Site as a CABOOSE-style MVC

Team. Hopefully, your week has been enjoyable without more fun than you can handle. We are delivering a port of our PHP proof of concept CABOOSE prototype MVC available on Google Drive as listed in an earlier weblog entry. This port is a PHP CABOOSE MVC interpretation of our main CABOOSE site which is a storyboard of a few pages. On the "home" page a hyperlink for the storyboard is along the bottom which will place you in the PHP controller, and in the 'home' view of the PHP MVC is a hyperlink which will teleport you out of the controller and place you back on the storyboard. The source for the storyboard and the PHP CABOOSE MVC will be available as zip archives soon. You will notice that the PHP CABOOSE has been architected slightly differently that out JAVA CABOOSE system. The PHP MVC was a quicker implementation with more pecking and less thinking. So, some redundancy exists in the structure of the xml mapping files. We will improve this in future editions of the PHP CABOOSE which will serve as a point from which we can nearly directly translate and produce our PERL and Python editions. The core of a CABOOSE system is rather small and easily implementable in a few hours. Feel free and experiment with the source code developing your own CABOOSE-style systems in your own favorite language(s). Also, as mentioned earlier this same type of dynamic invocation is useful in developing reuse-able kernels for rapid application development.

This CABOOSE journey arose from a need for a more rapid and better organized  web development paradigm for a single engineer or small team than was available during experiences working in corporate website development in the late 1990s. Over the following decade, while obtaining a pair of graduate degrees and staying somewhat abreast of web development approach, the initial idea of using dynamic invocation and a better partitioning of software concern that would "dazzle them all" still seemed viable, feasible, and needed. Reading Spring and Strut text plus creating simple tutorial applications produced the intuitive feeling that these approaches were missing something and were overly complex. Keep It Simple (KIS) is the first principle which most computing students learn. CABOOSE requires little beyond the web standards which already exist plus reinforces the notion that all we are really doing in web development is passing around strings of text. All of what we must be certain is simply that the strings are formatted properly and arrive in the proper place. Some might say that this is an oversimplification, but this is the essence of the principle KIS and the teaching of top-down architectural design. One can easily miss a forest when intensely focused on the branches, twigs, leaves, and trees.

The time seemed right for building a general-purpose extensible controller. Consider the general-purpose central processing unit which resides in the computing which you are using when you read this note. It can can process any computable function, but it must first be given the function as input. A CABOOSE controller can perform the processing for "any" MVC application on its platform when it receives as input  (is extended by) the proper view handler classes.

This style of controller abstracts out a common core of behavior found in Type-II Model-View-Controller architectures and places it in a reuse-able package. In many instances, software engineering teams with "immature" development processes spending costly develop effort rewriting these behaviors. This effort could be expended in requirements elicitation, verification, validation, or documentation which are more crucial and often overlooked engineering tasks. We are not highly versed in agile methods which seemingly represent a compromise between the "ad hoc" status quo of development and the "mature" best practices which are formally taught. But, as is championed by many software engineering purist, module reuse is highly valued for agile teams who often must meet the demands of short project cycles.

Hopefully, CABOOSE will reduced the stresses of software development by providing a reusable product which is easily understood and used, reduces implementation effort, plus provides a foundation for developing a competency of repeatable development projects which will eventually produced measured, managed, and optimized levels of maturity.

We will have those storyboard and PHP CABOOSE archives available soon.

Hunt... Peck... and Think... Some is watching the sparrows...

The CABOOSE Team

No comments:

Post a Comment