Introduction
If there is existing data to be migrated, it may be necessary to design software to do the conversion/migration. The
data to be migrated is identified by Task: Specify Data Migration in the Work Product: Data Migration Specification.
The software to do the data migration is commonly identified as one or more subsystems, often with dependencies on
subsystems that define the source data and the target databases.
The design of data migration subsystems is similar to that described in Task: Subsystem Design. Additional considerations
specific to data migration include:
Migration Suites
The need to cope with differing hardware and software environments is an important consideration when designing data
migration software, particularly automated migrations where the data to be migrated exists in one environment (or
possibly several) and needs to be migrated/converted into a completely different environment.
Different hardware, operating systems, and data management software can all create challenges, and relatively simple
conversion processes may have to be implemented as suites of four or five (or more) programs to cope with changes in
the environment. In this case, the sequence of the execution of the migration processes is very important since there
may be multiple files to be converted into one or more files, and there may be interdependencies where one program in
the conversion requires data from a previous one.
Reuse of Components
A further consideration is the use or reuse of components from the standard system as part of the conversion system.
System utility programs or programs from the existing production system should be utilized whenever possible to help
minimize development time for conversion modules. It is also sometimes possible to provide conversion facilities by
adding features to standard system components. When conversion involves manual input of converted data into the new
system, this input should, if possible, be performed using the standard facilities of the new system. The objective is
to avoid duplication of work and possible inconsistencies caused by an alternative method of data entry.
Performance
Migration may involve large volumes of data with consequent implications for performance. Even if data migration is
performed infrequently, poor performance may be a concern. For example, poor performance could slow down testing and
validation of the converted data, especially if there are failures part way through the conversion process, requiring
correction and re-execution.
Operational Procedures
It is important to specify the operational procedures to be followed during the migration process, including both
manual data maintenance steps and steps for executing migration software. Even if the migration procedures have a
limited life span, it is important that they are documented in sufficient detail to be performed. A good procedure
identifies the sequence of steps, who performs each step, how to validate the results, and what follow-up tasks are
required.
|