08/1993 - 07/1999
(Permanent)
Ringwood Software Ltd.
Ringwood House
Walton Street
Aylesbury
Job title : Software Engineer

I was responsible for the design and implementation of an in-house utility to manage the deployment of service packs to customers.

The software internally maps the dependencies of all executables, DLL's and other files that make up the target product. This information is stored in a configuration file. The utility will, using the configuration file, checkout all product component files from the version control system (PVCS) using a version label identifier tied in to the Company's internal release tracking system.

The retrieval mechanism creates definition files that allow InstallShield to be run automatically, to create shippable installation media.

Individual files, or scheduled maintenance releases can be delivered to customers to upgrade their version of the product. The utility interfaces to our customer services department's customer database software, forcing any shipped components, or service packs, to be tracked for the purposes of auditing.

Service packs are created using a series of .RTPatch delta files, detailing the changes between different versions of separate components. These delta files are built using the utility and are stored under version control like any other of the product component. Several delta files are merged to form a history delta file, which is the eventual service pack file. The history delta file is created in such a way as to allow the upgrade from any valid system (including separately shipped individual components) to the latest version of the product.

Separate utilities, also written by me, deal with the installation and removal of service packs. Both utilities are dialog applications showing the progress of installation/removal of the service packs.

The utility has been written in Visual C++ version 5.0 as a dialog application using the MFC. Use of design patterns is made within the design of the utility. Within the component definition file dialog, I have used an embedded property sheet dialog (ordinarily a property sheet is a dialog invoked in its own right). A CTabCtrl could have been used, but this would not allow the individual pages on the property sheet to be created at design time.

I have been a member of various teams developing and maintaining a multi-platform family of on-line documentation systems (Trove for Manuals).

Windows

The Windows product has been developed and maintained by a small team and I have been involved in feature enhancement throughout the full product lifecycle.

The main Graphical User Interface of the product was originally written in Visual Basic and has since been ported to Visual C++. The main data retrieval mechanism resides within a DLL created using MicroFocus COBOL. Peripheral network access and licensing DLL's are used by the product and these are written using C++. I have been one of the main developers in all of the product areas above.

The products network DLLs act as an abstraction layer, with the actual DLL loaded depending upon which version of Windows is being run by the user. The underlying Windows network DLLs used to retrieve user and user group information differ from version to version of Windows. Windows 95 and 98, whilst being 32-bit operating systems, retain 16-bit networking components. This means that I have had to write separate Windows 95 and Windows NT DLLs. The Windows 95/98 DLL has to use thunking to allow the direct calling of 16-bit Windows network DLLs.

All of the 16-bit C++ code is written using Microsoft Visual C++ 1.5.2 and all of the 32-bit C++ code is written using Microsoft Visual C++ 5.0. In both cases extensive use is made of the Microsoft Foundation Classes (MFC)

Webserver

I have been a member of a four man team that carried out development work on a 32-bit "WebServer" version of the package.

This package allows users to access the databases used by the standard Windows product and view their documentation using their Web browser.

The data retrieval methods are written using NetExpress (MicroFocus' object oriented COBOL compiler) and the main Web Server engine is written using VC++ 5.0

UNIX

I was instrumental in the design and implementation of the UNIX product. The product was written in COBOL, using the AcuCobol compiler. This source code was then used as the basis for the IBM CICS version of the package.

Image of the date today

Mark’s C.V. :

Mark’s technical skills
At JP Morgan
At ICL/The AA
At Ringwood Software
At Trove Software
Valid XHTML 1.0 StrictValid CSS!