In-Depth

Development with metatools

The use of code generators and artificial intelligence to improve programming has been a dream since the first compiler. Dreams or not, some metatools are making useful inroads into application development. Metatools are tools that are used to design other tools. The most obvious tools include those that minimize the drudgery in client/server development, application partitioning and some simple and repetitive tasks now automated with wizards. The more efficient tools are design-time tools that help to design business process flows, database structures and retain a library of functions, procedures and add-in controls for reuse.

The continued value of the CASE-type tools has always been eroded as projects have progressed toward completion. It is hard to justify spending money on something that does not become part of the result. Metatools are once more removed from the process.

Maps of databases and flow charts of what the purpose of the application or the relationship between modules become dated and eventually irrelevant. That has finally changed as vendors have endeavored to include comparison and update features into the design-time tools. Design time extends through the development cycle and often becomes very important after rollout for enhancements and support. Specifically, Microsoft's Visual Modeler creates the flow chart of the process; the user sees this and maps it into the code components. This is useful on two fronts. First, a structure for a new VB project can be created. Second, this creates functional documentation between the hard-to-read code modules and what they do. The language is such that the process refers to the business function of placing a product order whereas the component is the associated code that performs the function. Modeling the process is really useful when creating the templates (in VB and SQL) for the actual component.

The reverse engineering features keep this mapping up-to-date, but is also useful for decoding entire applications from an earlier project or time. Third, functions tend to repeat and this mapping is eminently useful for identifying code for the repository to use again or locating functions anywhere in a VB program that can be pirated, altered and thus reused. The reverse engineering process can even parse ActiveX controls and older VB applications.

The bottom line is that process and functional modeling saves money (if it doesn't take a long time to become proficient with a modeling tool), shortens development cycles and provides information for all factions involved in the development process. Adam Frankl, Director of Product Marketing at Rational Software Corp., Santa Clara, Calif., explained that Microsoft's Visual Modeler UML (Unified Modeling Language) software design notation (OMG for standards), object modeling, component modeling, business process modeling, is an approachable tool for most users, for a first time modeler. He also elaborated on the usefulness of reverse engineering when integrated tightly with process (back and forth). The "mantra" for this product was that it be designed so that a programmer could actually use it, and it passed rigorous testing in at Microsoft's Usability Labs. The Rational Rose/VB product (about $2500) from Rational Software is upward and backward compatible with Visual Modeler, but includes more sophisticated functions including CASE, state and scenario modeling. Both adhere to the new UML that defines the protocols and data required for creating a model.

Although the Modeler tool is said to be part of the enterprise editions, it is not included in the package. The software must be downloaded after registering the VB 5.0 online. Also, the VM download is quite large. It took multiple tries to complete the download.

Modeling the process is only a part of the complete metatool uses. According to Microsoft market research, almost 80% of all VB projects include a relational database. Probably 100% of all mission-critical VB projects will include a new, or access an existing, corporate database. One hundred percent of all high-end and mid-range accounting software includes databases, particularly of the relational variety. Even IBM with its CICS base is migrating to DB2 and the DB2 products conform to most of the relational specifications now. Even smaller client/server, desktop and network applications have a DBMS component. The interesting number is that 80% of all VB applications include access to relational databases (whether Access, SQL, Sybase, Oracle, Informix, DB2 or others). John Roscoe, product manager for Visual Basic, threw out these figures for VB software attachment to DBMS: 35% against Oracle, 24% SQL Server and percentages that match the rest of DBMS installed base. Process and component modeling may only refer to the data sets but in no way designs these. That is where an entity-relationship modeling pays dividends.

Erwin Open for ModelMart from Logic Works Inc., Princeton, N.J., in particular, is extraordinary. It will create new, or map existing, databases to show the relationships between data sets, tables, indexes and business rules. It is not just for VB either because it is an SQL- and ODBC-based tool. This is a tool not just for Windows projects but also for those big warehousing projects, Intranet databases and other relational database implementations, migrations and new work. Diego Calderon, a regional manager at Actium Consulting, Philadelphia, stated that "he wouldn't walk into a database contract without ERwin from a tactical standpoint of understanding the data model, the process flows and the direction for the database reengineering."

Note that some of these tools support a transitional design and drive it to the server platform of choice. For example, some big projects that have spun out of control and even the typical database accounting system include multiple fields formats for the same type of data (as in address formats and phone numbers) and cause even functional applications to misfire because of "bad data." Many projects incurred a few lost weeks from broken database and poor data matchup with the application, and this is increasingly a problem as applications, especially BackOffice integration projects that include desktop, network, server and Web components are migrated to heterogeneous environments. These needs are increasingly important to address the traditional failure rate of development projects.

About the Author

Martin Nemzow is a consulting editor for McGraw-Hill Publishing. His company, Network Performance Institute, Miami Beach, Fla., provides enterprise network design and improvement consulting services, markets capacity planning, and develops and markets shrink-wrapped network configuration software tools.