DB-Client Application Framework
Customer: ProSiebenSat.1 Media AG
Technologies and tools: C++ (MFC, MDI), Rational Rose
Workload: 7 man/months
The customer wanted to reengineer existing framework for development of applications that worked with Informix database. Framework had been developed on customers request and had been used for development of an application for modification of database records. After finishing the project, development team quit. Some time later the customer decided to use the framework for development of new applications, it was necessary to modify already existing one, besides framework contained bugs to be fixed. Documentation on project appeared fragmented, it was clear that further use of the framework needed its full reengineering.
We've received source code of the applications developed with the framework, along with the sources of the framework itself. It turned out that some parts of the framework were missing, while there were several different versions of other parts. Some applications didn't use all the possibilities of the framework, so corresponding source files were missing. The first phase of our work was reconstruction of a working (functioning) version of the framework.
The second phase was devoted to project reengineering itself. We chose Rational Rose as an instrument. First we have extracted class hierarchies, and than detected functional interactions between classes. The architecture became clear; source code files were grouped into functional modules and their contents was studied and comprehended. As a result we created a document that described system architecture, contained OOP-diagrams of some modules, and described roles of classes in the modules and purpose of methods.
Although at first our customer wanted detailed description of architecture and classes only, we realized that the framework was going to be used for development of new applications. So we suggested creation of User Manual. When approved, we wrote a detailed User Manual that contained step-by-step description of a sample application implementation with growing complexity.
It has been a challenge to combine the results of reengineering by 5 investigators into a single 150-pages English document describing architecture of the framework and methods of new applications development.
That is a framework for development of applications dealing with Informix database. The framework allows viewing, modification, adding and deleting records in database tables. It is possible to create custom queries with help of dialogs by selecting tables and fields to be available. Custom queries are stored and can be modified later.
Programmer can create dialog boxes for editing database records and than attach them to a developed application. Usually it is the only work to be performed by the programmer during development of a new application with use of the framework.