Program Conversion - Mainframes - Look, Don't Touch

At the point where the database record structure is reasonably stable, the next phase is to build the 'foundation elements' of the program code.  If the entire project had been scheduled for 18 months, and the 18 months came and went simply getting the schema sorted out, then it's likely that new tools are in the toolbox and programmers that are ready to come on board are enthusiastic about using them.  In short, a project plan made a year and a half ago would have estimated completion based on the tools available at the time, and now the perceived cost may have diminished.

Foundation elements would include, for example: the record classes, data services, data service stored procedures, presentation user controls, interfaces, enumerations, and base classes.  As these are generated (where possible with automated tools) unit tests are created in parallel.  Some of the unit tests are 'stress tests', they try to create the transaction volume expected when the system goes into production.  This, in turn, exposes assumptions about database, web server, and middleware performance and bottlenecks.  This makes it possible to 'tune' the server farm, which might involve adding hardware, shifting the balance from web servers to database servers or vice versa, or upgrading the routers and firewalls.

A few 'critial' programs should be coded at this point, for the purpose of exposing omissions and naming conflicts.  If the core order entry system is developed, for example, the programmers will be asking for database or libary objects that no one anticipated.  In developing this one chunk of code, it may become clear that these objects will be needed for many other application blocks.  While setting a 'production' deadline on this application is a good idea, it should be kept in mind that the program is not being developed principally for production at this point: the objective is to stress-test the foundation.

While the automation tools are converting CICS DSEGs to user controls, the development of one or more core applications helps create the coding conventions for event names, command buttons, and helper classes.  These get their respective unit tests in turn.

Large systems usually have data import and export functionality, such as EDI, agency-to-agency updates, vendor master files, etc.  These take the form of CSVs, XML, JSON, or flat files, sometimes archived and exchanged via FTP.  The new system analogs of the mainframe equivalents should be developed during this phase, since they expose another round of issues and name conflicts, as well as exposing needs for database objects and helper classes.  They are part and parcel of the server farm stress testing: they are contributing to the data volume that will impact space use, index degradation, and server contention.

The original 'green screen' terminals supported 80 or 132 horizontal by 24 or 25 line vertical character resolutions.  On 19 inch monitors this takes up the upper left corner of the screen.  The older systems tended to shift between 'search' mode and 'edit' mode, where one used certain fields as search parameters.  Once a record was selected the same field was used to 'edit'.  With the extra room, it is possible to split the screen in half, using the left (for example) as a search panel and the right as the 'edit' panel.

The framework (perhaps generated by automation tools) at this point is used to query tables and views by search terms, populate lists of returned records in the search controls, and present a selected record on the 'edit' side.  This would add a user functionality benefit for those who aren't keying anything in.  To run these programs, the entire program navigation menu would have to be laid out.  This, in turn, would expose the security issues associated with read-only access.

With this part of the system complete, developers and users can see the light at the end of the tunnel.  Most of the infrastructre is in place.  This so-called middle phase could be done largely with automation tools, since most of the outputs have a close correspondence to a code file or object in the prototype system.

For those that feel like their system is way overdue for an upgrade, please call 210-734-5575 for free initial consultation.

Or, eMail us at