Source code-based reconciliation, dead logic elimination and re-aggregation extends the concept of code slicing well beyond making small programs out of large programs. This task is driven by requirements to align an implementation view of a system with an improved logical view of that system. This is done within current physical architectural limitations. This task moves, eliminates and combines functions to improve maintainability of current systems, while preparing systems for Transformation.
While certain programs may have undergone rudimentary code slicing prior to invoking this task, Code Reconciliation & Re-Aggregation does not assume that this has occurred and functions as an independent task.
One should be aware of the fact that this could be an extensive effort. Justification is driven by the length of time a system will survive under the current architecture and the degree of change required under the target architecture. Performing this task at the code-level is justified if phased code preparation is desired and/or subject matter experts are not familiar with modeling tools. Specific objectives include:
· Realign program logic blocks along functional boundaries
· Combine functions to streamline system, improve consistency and establish a basis for reusability and object based migration
· Separate functional logic, data access logic and presentation layer logic in current systems
· Eliminate inter-module recursive linkages
· Deactivate or segregate functional logic blocks in support of phased architecture transition strategies
· Facilitate code based redesign strategies including code based relational data base and/or client/server migration efforts
The entrance criteria for the code reconciliation and re-aggregation task are listed below.
· Determination of business objectives driving the reconciliation/re-aggregation task
· Completion of process flow analysis task of the technical assessment
· Application staging for source module and related component candidates
· Completion of the code flaw analysis and removal task
Note: This is required on all code being sliced.
· Completion of code restructuring task
· Completion of data name rationalization task
Note: Absence of rationalized data significantly complicates reconciliation and re-aggregation
· Function hierarchy analysis task
Note: Function hierarchy analysis mapping defines functional alignment and metrics relevant to this task.
· If logic/data/presentation layer separation is planned, general system architecture analysis data flows should be completed first - this is useful, not a requirement
Optional - based on availability:
· Population of LTM repository model as completed in process hierarchy/dependency task
The personnel and skill requirements necessary to meet the code reconciliation and re-aggregation task are identified below.
· Process Positioning Expert
- Expertise in performing code slicing, code reconciliation and functional re-aggregation
- If required by scenario/project, expert in source based redesign & migration to relational data base
· Current Systems Expert
- Knowledge of existing system source environment
- Knowledge of the functionality of the programs/systems being reconciled/re-aggregated
· Repository Administrator
- Ability to access and update LTM repository
The system components and related inputs required to initiate and complete the code reconciliation and re-aggregation task are listed below.
· Application source code, Copy members and execution control language relating to programs being re-aggregated
· Completed process flow analysis Form 003B and supporting tool generated metrics
· Completed functional mapping Form 004 based on entrance criteria specified above
· Blank copy of Positioning work plan - Form 020
· Blank copy of Positioning control log - Form 022
· If undergoing code based migration to relational data base, new physical relational data base design
Note: The following is optional based on presentation/data/logic separation objectives.
· Completed general system architecture analysis data flows (DFD) showing data/presentation/program interfaces
Optional - where available:
· Legacy transition meta-model (LTM) populated with all system components and relationships between processes and related physical components
Tool support for this task includes an analysis tool to identify split points and reusable code, a slicing tool to carve out code blocks to be reconciled/re-aggregated, a comparison tool to identify manual source code changes, and open systems repository, spreadsheet and program editor tools. Secondary support, in the absence of a remodularization tool, would include one of the restructuring tools identified in the code stabilization restructuring task.
Code remodularization facility
The main goal of a code remodularization facility in this task is to perform code slicing to carve out segmented functions of a program and to turn them into new called sub-programs. The remodularization tool must be able to perform automated slicing based on multiple criteria. Since this task functions at a physical level, the tool must produce usable source as a result.
Open systems repository
Use of repository in this task requires that a baseline meta-data was established during Inventory/Analysis, and has been kept up to date throughout any earlier positioning tasks. The main purpose for using the repository in this task is to update it with new source program objects, copybook objects, and related relationships as code slicing progresses. For large systems or cross functional expansion efforts, this repository model can be maintained as a sophisticated mechanism for managing project efforts.
Requirements include the ability to reflect system components as objects within the repository model and populate that model from a legacy environment. A recommended transition meta-model that supports this analysis is shown in the Appendix section of the Comsys-TIM product.
Spreadsheet
Spreadsheet tools offer a convenient format for recording much of the information gathered throughout this stage. Referenced Comsys-TIM Forms have been pre-loaded into certain spreadsheet tools (see the step level tool guidelines for specific tools) to facilitate data entry and analysis. While highly desirable, spread sheets are not essential to this task.
Program editor
An on-line facility capable of serving as a source code editor to make modifications required by this task . Use a program editor appropriate to the environment.
Compiler/preprocessors
A source language compiler/preprocessor is required to parse source code and convert it into machine executable instructions. This compilation process identifies many types of errors, and requires their correction before it will complete successfully.
The code reconciliation and re-aggregation task is comprised of the following tasks:
Build Reconciliation & Re-Aggregation Analysis Eliminate & Reconcile Redundant Processes Re-Aggregate Segregated Functions