Design has both internal and external dimensions: Internally, it is necessary to define database structure (data), processing sequence and structure (function), network structure (location), sequencing and event logic (timing), and business rule algorithms (motivation). Externally, it is important to design the behavior of the system as it will be experienced by the user (people). ESI has experts available in all of these areas.
An ESI design project addresses both parts. It is important to design software that carries out the functions it is intended to carry out. But it is equally important that the system be easy and comfortable to use. The system will become a worker's partner. It is essential that they be able to work together.
The primary catagories of activity during during design are:
- First, a standard set of views and behavior for the system is established. This includes the appearance of screens, behavior of standard buttons, and overall menu structure.
- Second, programming standards establish coding style, library structures and other internal elements required to make it easy to maintain each program. Both internal and external standards will make extensive use of templates and other re-usable modules.
- Third, the actual modules themselves are defined. This includes menus, queries, data entry screens, business rule processing, and other utilities.
- Fourth, the e/r model is converted into a database design. This entails converting entities to tables and attributes to columns, organizing physical storage, and, if necessary, changing table and column definitions to improve performance selectively.
- Fifth, the design specification is in fact the user manual. This is the definitive description of the interaction expected between human beings and the system. As a design specification, it must be in a complete form that can be read. As an operating document, it should be converted to context-sensitive on-line help.
- Sixth, as design is proceding, it is important to define how each element of the system is to be tested. Each individual module must be tested, of course, but scenarios of business situations must also be envisioned, and the correct response by the system to each must be defined.
- Seventh, as design is proceding, programs to educate and train people in the system must be designed. "Education" means explanation of what the system is and what it means to the company. This should happen as soon as possible. "Training" refers to explanation of how to use each part of the system. This should happen only just before people are to start using the system.
- Finally, procedures must be defined for the conversion of any data required and for the transition from using older systems to using the new ones.
Note that with the advent of code generators, it is possible to construct modules to test each design element. Where this is feasible, it will make it possible to demonstrate each piece before the design is made final. This prototyping will make users much more active participants in the design. It is important, however, to make it clear in each case that this is just a prototype, and there will be more work required to put a system into production.
The Work to be Done
Essential Strategies, Inc. consultants will perform the following tasks to design each new system:
- Interview prospective users to understand the environment and constraints that will apply to it.
- Define screen layout standards and templates. Include overall layout, standard buttons and other fields, and screen behavior.
- Define module design standards, as necessary.
- Design the data base:
- Decide how sub-type/super-type entities and arcs will be implemented.
- Generate a default database design.
- Define referential integrity and transferability constraints.
- Create models of the physical database design, and review it, renaming elements, where appropriate.
- Generate data definition language (DDL) scripts and create the physical database.
- Design modules.
- Define each module's functional specification (to be confirmed by users).
- Define each module's technical specifications (to be used by builders). A CASE tool may convert the functional model into a module structure.
- Review each module and overall module structure.
- If tools are available, generate each module, test it, and have it reviewed by users.
- Create test scenarios.
- Create user documentation and reference materials.
- Create project plan for remaining phases.
After the Study
The design phase specifies how technology will be used to address the needs of the enterprise. If circumstances permit, the design phase may be tightly coupled to the construction phase, through a succession of prototypes and refinements. If this was not possible, the design documents and repository will then be the basis for construction of the system. This is followed by transition of the enterprise to use the new system, and ultimately the putting of it into production.
This project will produce the specifications for a new system, including its data base design, module design, and menu design. It will provide a consistent view of the system by users, and will make it possible for builders to be thorough in addressing all aspects of its operation.
Essential Strategies, Inc. consultants have helped many organizations develop systems, both in the US and abroad. The techniques employed have been used successfully by hundreds of consultants working on thousands of projects. We believe that Essential Strategies, Inc. consultants using these techniques can design a versatile and robust system that will meet your requirements for many years to come.