Integration Replacement Stabilization Server Migration Data Warehouse Portfolio Analysis User Front End IBM COBOL Language Conversion Model Migration Assimilation Redocumentation Redundant Systems Relational Database

Code Based Client/Server Migration

 

Overview

Symptoms

Redeveloping legacy systems from scratch is not required when major business functions remain constant in the target environment. Furthermore, organizations may not wish to redevelop systems in a model driven environment. This essentially means that the current system is to be remodularized and rehosted to a client/server based environment.

Symptoms for code based migration to client/server include:

· Management looking for fastest implementation path to client/server

· Organization accepts need for a relational database architecture in a distributed environment

· Language of choice, or at least an acceptable alternative, is the language host based systems already use

· Client/server system requirements functionally mirror host based implementation in terms of a one-for-one replacement

· Language change or language level upgrade is an acceptable pre-step to a client/server migration

· Management is not interested in fancy models - just results

· Client/server has been mandated and time allotted is too short for a complete redesign

Requirements

Organizations focusing on code based client/server migration tend to have unique requirements based on an aversion to functional models or the practical realization that code based reuse is a shorter path to a client/server system than analysis based reuse.

Requirements for code based migration to client/server include:

· Business architecture is to remain essentially unchanged

· Data architecture requires shift to relational design with level of distribution determined on a case by case basis

· Redistribution of system functionality into the client environment

· Little if any cross functional integration required (Note: This could, however, be supported under this scenario)

· Potential to perform language change/upgrade

· Ability to capture and reuse complex procedural rules at code level while accessing new relational data structures

· Control migration from mainframe environment to server environment by minimizing redesign of transaction based systems

Code Based Client/Server Migration Planning

The following recommendations are based on the premise that data redesign and source code rehosting of a given system meets the goals for the system under consideration.

The following steps depict a basic level of understanding and preparation suggested prior to entering the scenario.

· Define ideal client/server technical and data architecture with client/server SME(s)

· Apply standard data requirements planning to define data requirements for the rehosted system

Note: This level of data planning is prerequisite to defining centralized or distributed client/server data requirements.

· Define target technical architecture including hardware, GUI front-end, language type and data distribution

· Review technical architecture with users and application management - see figure below

· Finalize client/server development methodology to drive design through implementation

· Assess and select data modeling and GUI tools to support design effort - Comsys-TIM offers options under various steps

· Verify that code based functional implementation (i.e. non-model/non-CASE driven) is appropriate

· Determine tool support available to implement GUI based access capabilities into existing application source programs

Warning: The following prerequisite should be reviewed within the context of the guidelines of this scenario.

· Determine tool availability to replace traditional data access calls with relational SQL facilities

Build Client/Server Migration Plan

Develop Assessment Proposal

Objective setting/proposal development

Note: Extensive option analysis is bypassed in this scenario under assumption that code based migration decision has already been made. Planning Form completion essentially verifies objectives.

Complete Executive Planning

Develop Inventory/Analysis Objectives

Establish Assessment Task List

Note: The following steps are the actual Inventory/Analysis steps to be used in this assessment.

Finalize Environmental Analysis Work Plan

Finalize Process Flow Analysis Work Estimates

Note: All steps of data definition analysis, including assess multi-system data definition usage, will be performed. This is key to data redesign effort.

Finalize Data Definition Analysis Work Estimates

Note: Under general system architectural assessment, assume that all steps, depending on batch/on-line type of system, are to be performed. Metric gathering related sub-steps may be omitted.

Finalize General System Architecture Work Plan

Note: Presentation layer analysis is key to determining reusability of existing interfaces or batch to on-line migration requirements.

Finalize Presentation Layer Analysis Plan

Note: Data access layer analysis is key to determining complexity in deciphering and migrating existing physical data.

Finalize Data Access Layer Assessment Plan

Note: User backlog analysis should focus on how user requirements can be accommodated under migration plan.

Finalize User Backlog Analysis Plan

Note: Subject area analysis is required to perform initial analysis of data redesign effort. If target data model is available, perform gap analysis.

Finalize Subject Area Analysis Work Plan

Note: Function hierarchy analysis is re-documentation step that is important, but not critical. Gap analysis should be applied only if top-down models are available and target requirements vary. This task is very important if multiple systems are to be merged or systems are to be fragmented.

Finalize Function Hierarchy Analysis Plan

Note: Perform IS infrastructure analysis on application areas to determine skills with server development, testing and GUI interfaces.

Finalize IS Infrastructure Analysis Plan

Note: Interim and strategic planning tasks are integrated to produce a single plan focusing on streamlining, designing and migrating systems to client/server environment.

Finalize Interim Planning Task Effort

Note: Remodularization will be a component of the strategic planning task - see actual steps under finalize code based migration plan section of this scenario.

Finalize Strategic Redevelopment Work Effort

Develop Inventory/Analysis Work Plan

Complete Inventory/Analysis Assessment Proposal

Assess Migration Requirements

Environmental analysis

Note: The following steps are performed for each system input to this assessment.

Identify/Categorize Physical System Components

Identify/Categorize External System Components

Inventory/Cross Reference Mainframe Components

Review/Refine Environmental Analysis Results

Produce Environmental Counts and Scores

Produce Environmental Analysis Narrative Summary

Process flow analysis

Note: The process flow analysis is performed for each system input to this assessment. Look for large, monolithic modules and poor source code quality.

Verify and Finalize System/Sub-System Groupings

Perform Process Flow Analysis

Note: Only one of the following two steps is executed based on tool availability. Multiple language types may necessitate use of both steps.

Record Manually Derived Process Flow Metrics

Record Tool Derived Process Flow Metrics

Produce Process Flow Narrative Summary

Review Process Flow Analysis Results

Data definition analysis

Note: The following steps are performed for each system input to this assessment.

Perform System-Wide Data Definition Analysis

Note: The following step lends additional input to data name rationalization decision.

Perform Data Definition Complexity Analysis

Assign Data Definition Metric Counts

Calculate Data Definition Metric Scores

Produce Data Definition Narrative Summary

Review Data Definition Analysis Results

Note: The following step is required if multiple systems are being assessed. This is key if multi-system merger is required.

Assess Multi-System Data Definition Usage

General system architecture assessment

Note: The following steps are performed for each system input to this assessment. The DFD flows will be used to assess target architecture event analysis.

Document Batch System Information Flow

Document On-Line System Information Flow

Develop System/Sub-System Interface Map

Assess Batch Versus On-Line Update Factor

Note: The following step is a required component of this analysis as interface systems must be accommodated under the new server environment.

Document Related System Interfaces

Note: The following step should focus on language types and levels that are not transportable to client/server environments.

Identify Use of Non-Standard Technologies

Document Subroutine Interface Levels

Summarize General Architecture Analysis

Presentation layer assessment

Note: The following steps are performed for each system input to this assessment (if multiple systems are being assessed).

Identify Batch Output Presentation Media

Identify/Categorize Batch Input Sources

Identify/Categorize On-Line Presentation Media

Summarize User Supported Environments

Note: Metric step may be bypassed if time does not permit.

Record Presentation Layer Analysis Metrics

Create Presentation Layer Narrative

Data access layer assessment

Note: The following steps are performed for each system input to this assessment.

Finalize Database/Data File Inventory

Assess Physical Data Usage Redundancy

Determine Data Integration Levels

Note: Metric analysis may be bypassed if time does not permit.

Rate Data Architecture Conformance

Summarize Data Architecture Analysis

User backlog requirements analysis

Note: This analysis will focus on how backlogs will be handled during and after client/server transition.

Categorize User Backlog Requests

Uncover Hidden User Request Backlog

Eliminate/Consolidate Redundant Requests

Perform User Request Critical Path Ordering

Calculate Functional Quality Metrics

Complete User Backlog Analysis Summary

Subject area/entity type analysis

Derive Current System Subject Areas

Note: The following two steps are performed for each system being assessed.

Prepare/Load Current System Entity Types

Derive Existing Entity Relationship Diagram

Note: The following step is performed using current to target views and only if a target model is available.

Perform Current to Target Data Gap Analysis

Note: Current to current model merge is required for multi-system consolidation. Current to target merge not usually performed since it may force data model to change too dramatically to reuse source code baseline.

Perform Current/Target ER Model Merge

Create Subject Area Analysis Summary

Function hierarchy analysis

Note: The following steps are performed for each system input to this assessment. This is a re-documentation step because this is not a model driven activity.

Create Current Function/Process Hierarchy

Map Functions to Program Source Modules

Note: The following step requires top-down target model and should be pursued only as a means of identifying missing functions that are to be accommodated later within the target design. Metric analysis is not required.

Build Current to Target Function Map

IS infrastructure analysis

Note: The following steps are performed for each system area input to this assessment - focus is on testing environment (data) and staff education requirements.

Determine Staff Experience/Skill Ratings

Determine Testing Skill/Maturity Ratings

Determine IS Development Tool Ratings

Determine IS Quality/Maturity Ratings

Determine IS Summary Rating Factors

Finalize Code Based Migration Plan

System stabilization planning

Create Interim Plan Outline

Correlate Analysis Requirements/Findings

Identify Positioning Tasks/Cost Analysis

Develop Pilot/Proof of Concept Plan

Note: The "finalize interim support work plan step" refers to subsequent work plan steps (each belonging to a respective Positioning task) that follow.

Finalize Interim Support Work Plan

Note: Application staging estimates must be developed for each of the subsequent Positioning steps outlined below.

Finalize Application Staging Plan

Note: Each code stabilization step below is to be estimated based on findings in process flow analysis steps.

Finalize Flaw Analysis & Removal Work Plan

Determine Restructuring Work Effort

Finalize Design Improvement Work Effort

Note: Data name rationalization is key to delivering quality system that maps source back to logical data model. This is required in all cases except where current system data definition quality is perfect.

Assess Data Definition Rationalization Scope

Finalize Data Definition Rationalization Plan

Develop Literal Externalization Work Plan

Note: Language change task planning step is based on target system language requirements as identified in general system architecture assessment/obsolete technology step. May be performed at any point in this section, but is recommended after baseline stabilization.

Finalize Language Change Work Effort

Note: Validation step below is used to develop an estimate to validate each of the Positioning steps listed above. See actual validation step lists later in this scenario to determine estimating criteria.

Establish Validation Criteria & Plan

Identify Support Structure Adjustments

Integrate Interim Plan/Strategic Objectives

Client/server migration planning

Note: The following 2 steps only refer to remaining planning steps in this section. Apply this task accordingly and do not utilize sub-steps that do not apply to this scenario.

Build Strategic Redevelopment Plan

Develop Redevelopment Cost/Benefit

Note: The following steps identify work tasks and associated estimates required to complete the above two planning steps. Goal of these tasks is to port application data and logic into server architecture.

Finalize Logical Data Analysis Work Plan

Warning: Only estimate work effort related to design client/server interfaces step within middleware enabling task as this is NOT a middleware based scenario.

Estimate Middleware Enabling Work Effort

Finalize Dialog Flow Analysis Plan

Finalize Presentation Analysis Work Plan

Finalize Physical Data Design/Migration Plan

Note: The following task allows organizations to slice out logic that will not be migrated to client/server, move code into another system that is to remain on host and/or consolidate logic where redundancies exist within or across systems being migrated. It also may be used to slice up large modules although simple code slicing supports this as well.

Develop Reconciliation/Re-Aggregation Plan

Note: Finalization step should estimate level of effort for each activity listed at the end of the Redesign & implement source programs section of this scenario.

Finalize Redevelopment Work Plan

Prepare Systems for Code Based Migration

Stabilize Legacy Baseline

Note: Apply selected stabilization steps based on findings of the assessment effort.

Application staging

Identify/Categorize Components of Interest

Create Working Version Libraries

Document Versions and Library Protocol

Synchronize Staged Source with Production

Flaw analysis & removal

Produce Detailed Flaw Analysis Reports

Note: Enter/execute following steps only as required.

Eliminate Runaway Logic Paths

Assess and Eliminate Dead Code

Review/Eliminate Active Exits

Review/Eliminate Looping Range Violations

Review and Eliminate Recursive Performs

Review and Eliminate ALTER Logic

Perform Quality Review and Finalize Changes

Code restructuring

Create Detail Restructuring Analysis

Perform Program Structuring Adjustments

Establish Restructuring Parameters

Perform Source Code Restructuring

Design review & improvement

Note: Minimize efforts in steps below based on the degree that modules will retain their identity in target server architecture.

Optimize Program Size

Optimize Procedure/Paragraph Size

Eliminate Logic Spikes/Reduce Complexity

Review and Correct Switch Variables

Review and Improve Procedure Names

Review/Refine Table Handling Techniques

Finalize Design Review/Improvement Task

Validation

Perform Code Quality Assurance

Compile/Link Baseline Components

Compile/Link Positioned Components

Identify Validation Data Sets

Refine Validation Data Sets

Validate Modified Programs

Obtain Validation Sign-Off

Standardize System-Wide Data Definitions

Note: Apply selected data definition standardization steps based on findings of the assessment effort.

Application staging

Identify/Categorize Components of Interest

Create Working Version Libraries

Document Versions and Library Protocol

Synchronize Staged Source with Production

Data name rationalization

Setup Data Name Rationalization Libraries

Review Record Grouping Analysis

Build Composite Record Definitions

Apply Descriptive Composite Names

Propagate Composite Record Definitions

Review and Propagate Secondary Names

Reconcile DNR Source with Production

Validate/Implement Rationalized Code

Validation

Perform Code Quality Assurance

Compile/Link Baseline Components

Compile/Link Positioned Components

Identify Validation Data Sets

Refine Validation Data Sets

Validate Modified Programs

Obtain Validation Sign-Off

Application staging

Identify/Categorize Components of Interest

Create Working Version Libraries

Document Versions and Library Protocol

Synchronize Staged Source with Production

Literal externalization

Note: Literal externalization is performed optionally based on a requirement to capture and externalize embedded data within current system. Perform no more than one of the following three steps.

Perform Literal Group Analysis

Create Tables from Literals

Externalize Embedded Literals

Validation

Perform Code Quality Assurance

Compile/Link Baseline Components

Compile/Link Positioned Components

Identify Validation Data Sets

Refine Validation Data Sets

Validate Modified Programs

Obtain Validation Sign-Off

Complete Language Level Upgrades

Application staging

Identify/Categorize Components of Interest

Create Working Version Libraries

Document Versions and Library Protocol

Synchronize Staged Source with Production

Language change/language upgrade

Note: Use of this task within this scenario supports both language type (i.e. PL/I to COBOL, COBOL to C, etc.) and language level (COBOL to COBOL 370) standardization for client/server environments. This group of steps could be performed prior to:

Prepare Source Code for Conversion

Convert/Upgrade Each Source Module

Perform Environmental Migration

Validation

Perform Code Quality Assurance

Compile/Link Baseline Components

Compile/Link Positioned Components

Identify Validation Data Sets

Refine Validation Data Sets

Validate Modified Programs

Obtain Validation Sign-Off

Finalize Code Based Client/Server System

Finalize Client/Server Design

Note: This section focuses on finalizing target system design by creating a target data model and redesigning host based system as required to support rehosting of application.

Logical data analysis

Load/Merge Bottom-Up ER Model(s)

Note: The following step is used to capture existing system data usage.

Refine Bottom-Up Derived ER Model

Note: Target model merge is applicable only insofar as it does not dramatically force rewriting of application source programs. If no target data model is available, use bottom-up views as input to the normalization process.

Merge Top-Down/Bottom-Up ER Models

Note: The following step creates normalized data model for target system. Apply any special client/server requirements to model at this time.

Normalize Merged ER Model

Review and Sign-Off Normalized Data Model

Design client/server environment

Note: The following step is taken from middleware enabling and deals with specific configurations within a client/server environment. Use it as a check list for environmental design.

Design Client/Server Interfaces

Dialog flow analysis

Note: Dialog analysis allows one to review host system execution flow and respecify that flow as needed in target environment. Dialog flow diagrams are not required as an output as long as the concept is applied to specify some type of dialog flow for target system. If event modeling is required, refer to Event Derivation Analysis task in the Comsys-TIM Transformation stage.

Assess Current System Dialog Flows

Perform Dialog Flow Gap Analysis

Create Target Dialog Flow Diagrams

Presentation analysis

Note: Importation and reuse is the general goal of this section. Focus is on capturing legacy user views and representing those views as GUI interfaces.

Categorize Existing Screen/Report Layouts

Perform Presentation Functional Analysis

Determine Reusability Under Target System

Refine Target System Report/Screen Design

Physical Data Analysis & Migration

Note: The steps below focus on finalizing a physical data design for the client/server architecture and establishing migration approach and related routines.

Finalize Physical Data Model

Perform Physical Data Migration Process

Gain Physical Design/Migration Plan Sign-Off

Redesign & Implement Source Programs

Note: This section focuses on a redesign of system source programs to enable GUI access and relational DBMS access in under the new client/server environment.

Application staging

Identify/Categorize Components of Interest

Create Working Version Libraries

Document Versions and Library Protocol

Synchronize Staged Source with Production

Source program data structure access modifications

Note: The working assumption here is that baseline functions are to remain intact, while isolated I/O logic will be modified to utilize GUI and relational access logic. Follow analysis guidelines specifically pointing to relational data base or client/server migration.

Build Reconciliation/Re-Aggregation Analysis

Note: The following step supports reconciliation of redundant logic and creation of I/O logic sub-routines including isolation of data structure and screen/report access related logic. Use this concept and specific design requirements as a guide to using this step.

Eliminate/Reconcile Redundant Processes

Note: Step below supports the creation of new routines comprised of source logic from existing programs. Follow analysis guidelines specifically pointing to relational data base or client/server migration.

Re-Aggregate Segregated Functions

Note: User participation and acceptance testing is required after finalizing this task. While this not a part of the standard validation process, validation guidelines may be used to support this effort.