Markdown Editor

Mainframe Modernization Design Template (COBOL, CICS, Batch, Data)

Estate inventory, rules extraction, pattern per app, target mapping, CICS/IMS and batch design, EBCDIC and COMP-3 conversion, strangler increments, parallel run

ArchitectureFullStrangler fig pattern (Fowler); AWS Transform for mainframe; Azure Architecture Center mainframe refactor guidancemainframemodernizationdesign

How to use: Use it after the portfolio assessment to design how mainframe applications move. Fill the inventory from discovery tooling and the equivalence and parallel-run criteria first, then choose a pattern per application and plan strangler increments with one system of record per record. The main pitfall is treating data conversion as text translation, which corrupts packed, binary and redefined fields and floods parallel run with differences.

Preview

Mainframe Modernization Design: [Programme or application name]

Solution design for modernizing mainframe applications (COBOL, PL/I, CICS, IMS, JCL batch, Db2, VSAM): estate inventory, business rules extraction, the modernization pattern per application (retain and wrap, rehost, replatform, automated refactor, rewrite, replace), target architecture, online and batch modernization, data conversion (EBCDIC, packed decimal, record layouts) and migration, strangler fig increments with coexistence, integration through MQ and change data capture, non-functional design, equivalence testing and parallel run, cutover and decommissioning, skills and operations, risks and roadmap. It follows the strangler fig pattern described by Martin Fowler and maps to the published mainframe guidance of AWS (AWS Transform for mainframe, AWS Mainframe Modernization) and Microsoft (Azure Architecture Center mainframe scenarios). Replace every [bracketed] value and every row marked Example. The examples follow a regional bank modernizing its core lending system.

Document control

FieldValue
Document ID[MMD-001]
Programme[Name]
Applications in scope[App IDs from the application inventory]
Source platform[z/OS version, LPARs, sysplex, subsystems]
Target platform[Cloud provider and region / On-premises distributed platform]
Primary pattern[Retain and wrap / Rehost / Replatform / Automated refactor / Rewrite / Replace / Mixed]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@lead-solution-architect]
Approvers/reviewers[@business-owner], [@mainframe-systems-lead], [@data-architect], [@security-architect], [@operations-lead]
Classification[Internal / Confidential]
Last updatedYYYY-MM-DD
Related documents[Modernization assessment], [Business case], [Data migration strategy], [Cutover plan]

Approvals

RoleNameDecisionDate
Business owner[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Mainframe systems lead[@name][Decision]YYYY-MM-DD
Data architect[@name][Decision]YYYY-MM-DD
Security architect[@name][Decision]YYYY-MM-DD
Architecture board[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft
0.2YYYY-MM-DD[@name]Example: Inventory baselined from discovery tooling; pattern per application agreed
1.0YYYY-MM-DD[@name]Example: Approved; increment 1 (customer enquiry) cleared for build

Contents

1. Scope, drivers and constraints

1.1 Scope

[Describe the applications, business capabilities, users and interfaces in scope.] Example: Core lending (origination, servicing, repayments, interest, arrears, statements) for 1.4 million loan accounts, running on CICS and IMS with Db2 and VSAM data and a nightly JCL batch. In scope: the lending application group APP-L01 to APP-L06 and their interfaces. Out of scope: deposits (separate programme), the general ledger package and the payments hub, which stay as they are and are integrated through existing interfaces.

1.2 Drivers and constraints

IDTypeStatementSource
DRV-01 (Example)BusinessLaunch new loan products in weeks rather than quartersLending strategy
DRV-02 (Example)SkillsSix of nine COBOL developers retire within four yearsHR workforce plan
DRV-03 (Example)CostSoftware licence renewal for the mainframe stack due in 2029Vendor contract
CON-01 (Example)OperationalNightly batch must finish between 22:00 and 02:00Operations calendar
CON-02 (Example)RegulatoryLoan records retained 10 years after closure and retrievable within 2 working daysRecords schedule
CON-03 (Example)RegulatoryOutsourcing and ICT third-party rules apply to the target platformCompliance review
CON-04 (Example)TechnicalDeposits system keeps using Db2 tables shared with lending until 2028Dependency analysis
[ID][Type][Statement][Source]

2. Estate inventory and dependencies

2.1 Inventory

ItemCountUsed in last 13 monthsSourceNotes
COBOL programs (Example)3,8502,910Source library scan and runtime usage9.6 million lines including copybooks
PL/I programs (Example)12095Source library scanInterest engine
Assembler modules (Example)6440Load library scanDate and checksum utilities
Copybooks (Example)1,420Not applicableSource library scanRecord layouts for files and messages
JCL jobs (Example)2,6001,870Scheduler databaseIncluding 140 month-end and 25 year-end jobs
JCL procedures (PROCs) (Example)310260Procedure libraries
CICS transactions (Example)640410CICS statistics3270 screens (BMS maps) and web service front ends
IMS transactions and databases (Example)85 transactions, 22 databases60 transactionsIMS system definitionsHierarchical customer history
Db2 tables (Example)780610Db2 catalogue4.2 TB
VSAM data sets (Example)260 (KSDS, ESDS, RRDS)190Catalogue and usage180 GB
Sequential and GDG data sets (Example)5,400Not applicableCatalogueBatch intermediates and archives
MQ queues (Example)9572MQ definitionsChannels to payments hub and digital channels
Third-party products (Example)1818Licence registerSort, scheduler, report distribution, security, compression
[Item][Count][Used][Source][Notes]

2.2 Dependency discovery

Record the dependency types and how each was found. Use the result to cut the estate into increments (section 9) that can move with the fewest live links back to the mainframe.

Dependency typeDiscovery methodResult
Program calls (static and dynamic)Static analysis of CALL statements; runtime traces for dynamic callsExample: 14 call clusters; 3 utility clusters used by everything
Transaction to programCICS and IMS definitionsExample: 410 used transactions map to 1,120 programs
Program to dataStatic analysis of file and SQL access; Db2 package dependenciesExample: 61 Db2 tables shared with deposits
Job to data setJCL analysis and SMF recordsExample: 230 data sets passed between lending and other applications
External interfacesMQ channels, file transfers, connectorsExample: 47 interfaces, 12 of them undocumented
[Type][Method][Result]

3. Business rules extraction

TopicDecision
Extraction depthExample: Full extraction for interest, fees, arrears and regulatory reporting; summary only for screens and housekeeping jobs
MethodExample: Static analysis tooling to locate rules, review by subject matter experts, rules recorded in a rules catalogue with source references
Use of AI-assisted analysisExample: Allowed for code explanation and documentation drafts; every extracted rule is reviewed and signed off by an SME; no source code sent to services outside the approved tenancy
RepresentationExample: Each rule has ID, description, inputs, outputs, source program and paragraph, test cases
OwnershipExample: Business analysts own the catalogue; SMEs approve; testers derive equivalence cases
[Topic][Decision]
Rule IDRuleSourceCriticalityTest casesSME sign-off
BR-INT-001 (Example)Daily interest accrues on the cleared balance using the product rate and an actual/365 day countLNINT010 (PL/I), procedure ACCRUE_DAILYRegulatoryTC-INT-001 to TC-INT-024[@sme] YYYY-MM-DD
BR-ARR-004 (Example)An account enters arrears stage 2 after two missed instalments, counting partial payments below the threshold as missedLNARR020RegulatoryTC-ARR-010 to TC-ARR-019[@sme] YYYY-MM-DD
BR-FEE-012 (Example)Late fee is capped per month and waived for accounts under hardship arrangementLNFEE005Customer impactTC-FEE-030 to TC-FEE-036[@sme] YYYY-MM-DD
[BR-xxx-nnn][Rule][Program, paragraph][Level][Cases][Sign-off]

4. Modernization pattern per application

4.1 Patterns

PatternWhat it means hereFits whenWatch out for
Retain and wrapKeep the application on the mainframe and expose it through APIs or eventsStable, well-performing logic; other priorities firstMainframe cost and skills risk remain
RehostRun the same COBOL and PL/I on an emulation or compatible runtime on distributed hardware, usually with recompilation (binary emulation runs the existing load modules without it)Fixed exit date; little change demandRuntime licence lock-in; skills problem not solved
ReplatformRehost plus targeted changes, such as moving VSAM to a relational database or replacing the schedulerAs rehost, with some managed servicesScope creep into a rewrite
Automated refactorConvert code and data with tooling to Java or C# and a relational database, keeping behaviourLarge code base, need to leave COBOL, behaviour must stayConverted code can be hard to maintain; heavy equivalence testing
Rewrite (reimagine)Rebuild the capability with a new design, using extracted rulesHigh change demand and value; domain well understoodLongest and riskiest; needs strong rule extraction
ReplaceMove to a package or SaaS product and migrate dataNon-differentiating capability with a mature marketFit-gap and customisation; data mapping
RetireSwitch off and archiveNo longer used, or capability duplicatedRetention and retrieval duties

4.2 Decision criteria

CriterionWeightQuestion
Business change demandExample: 25%How often must this capability change in the next five years?
Code health and knowledgeExample: 20%Is the code understood, documented and testable?
CouplingExample: 20%How many programs, tables and jobs does it share with the rest of the estate?
Performance and batch criticalityExample: 15%Does it sit on the critical path of the batch or a high-volume online path?
Market alternativesExample: 10%Is there a mature product for this capability?
Deadline pressureExample: 10%Must it leave by a fixed date?

4.3 Pattern per application

App IDApplicationPatternRationaleTargetIncrement
APP-L01 (Example)Customer and account enquiryRewriteHigh change demand from digital channels; simple read logicEnquiry services on the container platformINC-1
APP-L02 (Example)Loan servicing online (CICS)Automated refactor1,900 programs; behaviour must stay; skills riskJava services on the container platformINC-3
APP-L03 (Example)Interest and fees engine (PL/I)RewriteProduct agility is the main driver; rules extractedRules-driven pricing serviceINC-2
APP-L04 (Example)Nightly lending batchAutomated refactorTightly coupled to APP-L02 dataBatch framework on the target platformINC-3
APP-L05 (Example)Customer history (IMS)ReplatformRead-mostly; data moved to relational storeRelational database and read APIINC-2
APP-L06 (Example)Statement printingReplaceCommodity capabilityCustomer communications SaaSINC-1
[APP-nn][Name][Pattern][Why][Target][INC-n]

5. Target architecture

Mainframe conceptTarget equivalentNote
CICS or IMS transactionExample: REST or gRPC service operation behind the API gatewayUnit of work becomes a database transaction per service call
BMS map or MFS screenExample: Web front end or channel APIScreen flows redesigned with users
COBOL programExample: Java class or service (refactor); new service (rewrite)
CopybookExample: Generated data classes and schema definitionsKept as the single source for layouts during coexistence
JCL job and PROCExample: Batch job definitions in the batch framework, orchestrated by the scheduler
GDGExample: Versioned object storage prefixes with retention rules
VSAM KSDSExample: Relational table with primary keyCheck key order after conversion (section 8)
Db2 for z/OSExample: Managed relational databaseSQL dialect differences reviewed
RACF profilesExample: Central identity provider groups and service rolesSection 11
SMF and monitor dataExample: Platform observability stack

6. Online transaction modernization

TopicSource behaviourTarget design
Unit of workExample: CICS syncpoint across Db2 and VSAM updatesSingle database transaction per service call; VSAM data moved into the same database so no distributed transaction is needed
Conversation stateExample: Pseudo-conversational with COMMAREA and temporary storage queuesStateless services; state held by the channel or in a session store with expiry
LockingExample: Record locks held during an update taskOptimistic concurrency with version columns; conflicts returned to the caller
Volume and latencyExample: Peak 900 transactions per second, 95th percentile 180 msSame or better at peak plus 30% headroom (section 11)
ScreensExample: 3270 green screens for back officeWeb screens for top 40 transactions by use; the rest retired or merged
Error handlingExample: ABEND codes and transaction dumpsStructured errors, correlation IDs, alerts
[Topic][Source][Target]

7. Batch modernization and scheduling

7.1 Batch inventory and design

TopicDecision
SchedulerExample: Enterprise scheduler kept as the single orchestrator during coexistence, with agents on the target platform
Job structureExample: One job definition per JCL job; steps become tasks; PROC parameters become job parameters
Sort and utilitiesExample: Sort steps replaced by database operations or a distributed sort utility; IDCAMS steps replaced by storage operations
RestartExample: Checkpoint per commit interval; each job restartable from the last successful step without manual data fixes
CalendarsExample: Business day, month-end and year-end calendars migrated and tested with a full year simulation
Data hand-offsExample: Files between jobs on shared object storage; file layouts unchanged in increments 1 and 2
[Topic][Decision]

7.2 Critical path estimate

JobFunctionMainframe (min)Target, first PoC (min)Target, after redesign (min)
J1 (Example)Extract daily transactions353030
J2 (Example)Sort by account201515
J3 (Example)Post transactions to accounts7011234
J4 (Example)Accrue interest403838
J5 (Example)Produce statement extracts252020
Total190215137

Consequences: Example: The window is 240 minutes and the programme requires a 20% margin, so the critical path must finish in 192 minutes. The first PoC result of 215 minutes fits the window but leaves only 25 minutes (about 10%) of margin, which fails the requirement. J3 posting was redesigned to run in four parallel streams by account range (112 / 4 = 28 minutes plus 6 minutes to merge control totals = 34 minutes), bringing the path to 137 minutes and the margin to 103 minutes (about 43%). Parallel streams require that no account appears in two ranges, which the sort step guarantees.

8. Data conversion and migration

8.1 Conversion rules

Source typeCOBOL exampleStorageConversion rule
AlphanumericPIC X(20)20 bytes EBCDICTranslate with the agreed code page (for example CCSID 037 or 1140 for US English, 273 or 1141 for German); trim or keep trailing spaces as agreed
Zoned decimalPIC S9(3) (DISPLAY)1 byte per digit; sign in the zone half of the last byteDecode digits and sign: +123 is F1 F2 C3, -123 is F1 F2 D3
Packed decimalPIC S9(7)V99 COMP-3(digits + 1) / 2 bytes, rounded up: 9 digits use 5 bytesDecode two digits per byte and a sign in the last half byte (C positive, D negative, F unsigned); apply the implied decimal point: +12,345.67 is 00 12 34 56 7C
BinaryPIC S9(4) COMP2 bytes big-endian; S9(9) uses 4, S9(18) uses 8Convert byte order where the target is little-endian; check the compiler TRUNC setting for values above the PIC limit
Floating pointCOMP-1, COMP-2IBM hexadecimal floating pointConvert to IEEE 754 with a documented rounding rule; flag precision changes
DatesPIC 9(8) or packed CYYDDDVariousMap each format to a date type; define handling of 00000000, 99999999 and invalid dates
Redefined fieldsREDEFINESSame bytes, several layoutsChoose the layout per record from a type field; document the selector rule
Variable occurrenceOCCURS DEPENDING ONVariable-length recordNormalise to a child table or array using the counter field
Special valuesLOW-VALUES, HIGH-VALUES00 or FF bytesMap to null, empty or a sentinel as agreed per field; never translate as characters

Worked example: a negative amount of -42.50 in PIC S9(3)V99 COMP-3 has five digits (04250), stored in 3 bytes as 04 25 0D. Decoding gives digits 04250 with sign D, so the value is -042.50, that is -42.50.

8.2 Sort order and keys

EBCDIC and ASCII order characters differently: in EBCDIC lowercase letters sort before uppercase letters and both sort before digits, while in ASCII digits come first, then uppercase, then lowercase. Any key, report or merge logic that depends on order must be checked after conversion.

Key or orderingRiskDecision
VSAM KSDS keys with mixed letters and digits (Example)Range reads and "next record" logic return different recordsUse a binary or EBCDIC collation for those columns, or rewrite range logic
Report sort order (Example)Reports differ from the mainframe in parallel runCompare after sorting both sides with the same collation
Control-break processing in batch (Example)Totals split differentlyRetest with converted data in J3 and J5
[Key][Risk][Decision]

8.3 Migration approach

Data setSourceTargetVolumeStrategyReconciliation
Loan accounts and history (Example)Db2 tablesRelational operational store3.6 TB of the 4.2 TB Db2 estateBulk load plus CDC catch-up until cutoverRow counts, balance totals per product, field-level sample (project/data-migration-reconciliation)
Rate and fee tables (Example)VSAM KSDSRules store12 GB of the 180 GB VSAM estate, with historyConvert and verify by replaying 3 months of calculationsCalculation parity
Tables shared with deposits (Example)Db2 tables (61)Relational operational store, lending as system of record0.6 TBBulk load plus CDC catch-up with the loan accounts; reverse feed to deposits after INC-3 (section 9)Row counts and checksums on both sides of the reverse feed
Other lending VSAM files (Example)VSAM KSDS and ESDSRelational tables in the operational store168 GBConvert with the field rules in 8.1, load with the Db2 dataRecord counts, key ranges and control totals
Customer history (Example)IMS databasesRelational tables900 GBUnload, flatten hierarchy, load; read-only after INC-2Segment counts and checksums
[Data set][Source][Target][Volume][Strategy][Checks]

Estimate: Example: At a measured conversion and load rate of 400 GB per hour, the Db2 data and the other lending VSAM files that move at the INC-3 cutover (3,600 + 600 + 168 = 4,368 GB) take about 10.92 hours. The rate and fee tables (12 GB, a few minutes) and the IMS customer history (900 GB, about 2.25 hours) move earlier, in INC-2. With CDC catch-up after the bulk load, the cutover weekend only needs the final delta and reconciliation, so the 36-hour window in the cutover plan holds with margin. Strategy detail belongs in Data Migration Strategy (architecture/data-migration-strategy).

9. Strangler increments and coexistence

The strangler fig pattern replaces a system gradually: a routing facade sends each capability either to the legacy system or to the new implementation, and capabilities move one at a time until the legacy system can be removed. The temporary code that lets both run together (routing, synchronisation, reconciliation) is transitional architecture; budget it and plan its removal.

IncrementCapability movedSystem of record during incrementData synchronisationRoutingRollbackExit criteria
INC-1 (Example)Account enquiry; statement printingMainframeOne-way CDC from Db2 to the enquiry storeGateway sends enquiry calls to new services, 10% then 50% then 100%Route back to CICS enquiry transactionsEnquiry results identical on 1 million replayed requests; statements accepted by business
INC-2 (Example)Pricing, interest and fees; customer historyMainframe for accounts; new pricing service for ratesRates published from the pricing service to the mainframe through MQMainframe batch calls pricing through MQ request and replySwitch batch back to LNINT010Interest parity within 0.01 currency unit per account for 3 month-ends
INC-3 (Example)Servicing online and nightly batchTarget platform after cutoverCDC catch-up until cutover; reverse feed to deposits for shared tables until 2028All lending calls to targetFall back to mainframe within the cutover window onlyParallel run criteria in section 12 met
[INC-n][Capability][Owner][Direction][Routing][Rollback][Criteria]

10. Integration

Interface IDPartnerMechanism todayDuring coexistenceTargetOwner
INT-01 (Example)Payments hubIBM MQ request and replyUnchanged; MQ bridge adds events to the streamEvents and APIs on the integration platformIntegration team
INT-02 (Example)General ledgerNightly fixed-length file via managed file transferUnchanged layout produced by mainframe until INC-3Same layout produced by target batch, then API in a later phaseFinance IT
INT-03 (Example)Digital channelsCICS web servicesGateway routes per capabilityNative APIsDigital team
INT-04 (Example)Credit bureauBatch file exchangeUnchangedMoved with INC-3Lending IT
INT-05 (Example)Deposits systemShared Db2 tablesReverse CDC feed from target to Db2API when deposits modernizesData architecture
[INT-nn][Partner][Today][Coexistence][Target][@owner]

Detailed interface design belongs in Integration Design (architecture/integration-design) and CDC Pipeline Design (system-design/design-cdc-pipeline).

11. Non-functional design

IDQualityCurrent (measured)TargetDesign responseVerification
MMD-NFR-001 (Example)Online throughput900 TPS peak1,170 TPS (peak plus 30%)Horizontal scaling of stateless servicesLoad test with production mix
MMD-NFR-002 (Example)Online latencyp95 180 msp95 at most 200 msDatabase close to services; connection poolingLoad test
MMD-NFR-003 (Example)Batch window190 minAt most 192 min (20% margin)Parallel posting (section 7.2)Full-volume batch run
MMD-NFR-004 (Example)Availability99.95% monthly99.95% monthlyMulti-zone deployment; tier per architecture/resilience-tiering-ha-dr-designDR test
MMD-NFR-005 (Example)SecurityRACF profiles per transaction and data setEquivalent or stronger access per roleRole mapping from RACF groups; least privilege service identitiesAccess review (ops/access-review)
MMD-NFR-006 (Example)AuditabilitySMF and application journalsTamper-evident audit log per business eventAppend-only audit storeAudit walkthrough
MMD-NFR-007 (Example)Sizing4,200 MIPS installed, 2,900 used by lending at peakBenchmark-based sizingPoC benchmark on target hardwarePoC report (architecture/proof-of-concept)
[MMD-NFR-nnn][Quality][Current][Target][Response][Method]

12. Testing, equivalence and parallel run

Test levelPurposeDataPass criterion
Conversion unit testsProve field conversion rulesSynthetic edge-case records per copybook100% of cases pass
Program equivalenceSame outputs for the same inputs, per converted programCaptured inputs and outputs from production (masked)No unexplained differences
Online replaySame responses for recorded transactions1 million recorded requests from a peak dayIdentical responses after masking agreed volatile fields
Batch equivalenceSame files and database state after each jobFull copy of a month-end business dayRecord counts and control totals equal; field differences explained
Parallel runBusiness-level proof over real cyclesLive inputs fed to both platformsCriteria below
PerformanceMeet section 11Production volumesMMD-NFR-001 to MMD-NFR-003 met

Parallel run acceptance criteria (Example):

  1. Runs for at least two month-ends and one quarter-end.
  2. Account balances, accrued interest and arrears status are equal for every account, with a tolerance of 0.01 currency unit only where a documented rounding change was approved.
  3. Every difference is classified as a legacy defect, a target defect or an approved change, and none remains unclassified at the go decision.
  4. Interfaces to the general ledger and the payments hub reconcile to the same totals.
  5. The business owner signs the parallel run report.

Test strategy detail belongs in Test Strategy (quality/test-strategy); reconciliation reports in Data Migration Reconciliation (project/data-migration-reconciliation).

13. Cutover and decommissioning

TopicDecision
Cutover approachExample: Final CDC delta, freeze of mainframe updates, reconciliation, routing switch, smoke tests; detailed in Cutover Plan (project/cutover-plan)
Point of no returnExample: First nightly batch on the target platform completes and posts to the general ledger
Fallback before that pointExample: Route back to mainframe; replay target transactions to mainframe from the event stream
Read-only periodExample: Mainframe lending data kept read-only for 90 days for comparison
ArchiveExample: Closed loans archived in a searchable store to meet CON-02; layouts and code pages documented with the archive
Licence and contract exitExample: Notice periods for ISV products tracked from the licence register; capacity reduction agreed with the vendor per increment
Decommission evidenceExample: No lending access for 60 days in SMF data; data archived and verified; security profiles removed
[Topic][Decision]

14. Skills, organisation and operations

TopicPlan
Knowledge retentionExample: SMEs paired with each increment team; retention agreements to the end of INC-3 parallel run
UpskillingExample: COBOL developers trained on the target language and platform; platform engineers trained on mainframe concepts to read the source
Converted code ownershipExample: Product teams own refactored services from go-live; coding standards adapted for generated code
OperationsExample: Run book per batch job; on-call rota covers both platforms during coexistence
MonitoringExample: Batch job status, transaction latency, CDC lag and reconciliation status on one dashboard
ActivityProgramme leadMainframe teamTarget platform teamBusiness ownerTest lead
Inventory and dependency analysisARCII
Rule extraction and sign-offCRCAC
Conversion and buildACRIC
Equivalence testing and parallel runACCCR
Cutover go decisionRCCAC
DecommissioningARCII

15. Decisions, risks and roadmap

15.1 Key decisions

IDDecisionOptions consideredChoice and reason
MMD-ADR-001 (Example)Programme approachBig-bang conversion; incremental stranglerIncremental: lower risk, earlier value, learning between increments
MMD-ADR-002 (Example)Servicing onlineRehost on emulation; automated refactor to JavaRefactor: removes COBOL skills dependency; budget for equivalence testing approved
MMD-ADR-003 (Example)Coexistence data flowTwo-way sync; one owner per record with one-way CDCOne owner per record: avoids conflicts
[MMD-ADR-nnn][Decision][Options][Choice]

Record the full decisions in Architecture Decision Log (architecture/architecture-decision-log).

15.2 Risks

IDRiskLikelihoodImpactMitigationOwner
MMD-RSK-01 (Example)Hidden dependencies break an incrementHighHighRuntime usage data over 13 months; dependency review gate per incrementLead architect
MMD-RSK-02 (Example)Converted batch misses the windowMediumHighPoC on full volume; parallel design (section 7.2)Batch lead
MMD-RSK-03 (Example)Data conversion defects in packed and redefined fieldsMediumHighField-level rules and edge-case tests (section 8)Data lead
MMD-RSK-04 (Example)Loss of SMEs before parallel run endsMediumHighRetention agreements; pairingProgramme lead
MMD-RSK-05 (Example)Licence costs do not fall as plannedMediumMediumContract exit plan per incrementProcurement
[ID][Risk][L][I][Mitigation][@owner]

15.3 Roadmap

IncrementScopeStartGo-liveParallel run endDecommission
INC-1 (Example)Enquiry and statementsYYYY-MM-DDYYYY-MM-DDYYYY-MM-DDYYYY-MM-DD
INC-2 (Example)Pricing and customer historyYYYY-MM-DDYYYY-MM-DDYYYY-MM-DDYYYY-MM-DD
INC-3 (Example)Servicing and batchYYYY-MM-DDYYYY-MM-DDYYYY-MM-DDYYYY-MM-DD

Wave detail belongs in Migration Wave Plan (project/migration-wave-plan).

16. Traceability matrix

Driver or requirementDesign elementIncrementTest or evidenceStatus
DRV-01 (Example)Rewrite of pricing (APP-L03), section 4.3INC-2New product configured in under 2 weeks in UAT[Planned / Met]
DRV-02 (Example)Refactor to Java (MMD-ADR-002), section 14INC-3COBOL code in production for lending: zero[Status]
CON-01 / MMD-NFR-003 (Example)Parallel posting, section 7.2INC-3Full-volume batch run at most 192 min[Status]
CON-02 (Example)Archive, section 13INC-3Retrieval test within 2 working days[Status]
BR-INT-001 (Example)Pricing service rulesINC-2TC-INT-001 to TC-INT-024; parallel run[Status]
[ID][Element][INC-n][Evidence][Status]

17. Glossary and references

17.1 Glossary

TermMeaning in this document
ABENDAbnormal end of a program or task
CCSIDCoded character set identifier that names a code page, for example 037 or 1140
CICSOnline transaction monitor on z/OS
COMMAREACommunication area that passes data between CICS programs and across pseudo-conversational steps
COMP-3COBOL packed decimal storage: two digits per byte and a sign half byte
CopybookSource member included in programs, often holding record layouts
EBCDICCharacter encoding family used on IBM mainframes
GDGGeneration data group: a set of versioned sequential data sets
IMSHierarchical database (IMS DB) and transaction manager (IMS TM)
JCLJob control language that defines batch jobs and their data sets
MIPSTraditional measure of mainframe processing capacity
RACFSecurity product on z/OS that controls access to resources
SMFSystem management facility records that log system and job activity
VSAMFile access method with keyed (KSDS), entry-sequenced (ESDS) and relative record (RRDS) data sets

17.2 References

ReferenceVersion or date checkedUse
Martin Fowler, "Strangler Fig", martinfowler.com/bliki/StranglerFigApplication.htmlRevised 2024-08-22Pattern and transitional architecture
AWS, "AWS Transform for mainframe is now generally available", aws.amazon.com2025-05-15Service name and status
AWS, "AWS Blu Insights is now AWS Transform for mainframe refactor", aws.amazon.com2026-03Refactor, replatform and reimagine patterns under one service; AWS Mainframe Modernization console where not yet available
AWS Mainframe Modernization service page, End of Support Notice, aws.amazon.com/mainframe-modernizationChecked 2026-10-23The self-managed experience is closed to new customers; check the current status before planning on it
Microsoft Azure Architecture Center, General mainframe refactor to Azure, learn.microsoft.comms.date 2025-04-02Refactor scenario, single-pass versus gradual migration
Microsoft Cloud Adoption Framework, Select your cloud migration strategies, learn.microsoft.comChecked YYYY-MM-DDStrategy vocabulary
IBM documentation for Enterprise COBOL, CICS Transaction Server, IMS, Db2 for z/OS and z/OS DFSMS[Versions in use]Data types, code pages, subsystem behaviour
[Internal mainframe standards][Version][Use]

Standard and licence note

Based on the strangler fig pattern described by Martin Fowler (cited, not copied) and on the publicly documented mainframe modernization guidance of Amazon Web Services and Microsoft, whose service and pattern names were checked at their official pages; names change often, so check the current pages before use. COBOL data types, code pages and subsystem terms are described in original words; consult the vendor documentation for the compiler and subsystem versions you run. AWS, Microsoft Azure, IBM, z/OS, CICS, IMS, Db2, RACF and IBM MQ are trademarks of their owners; this template is not affiliated with or endorsed by them. This template is original text written for this collection; examples and figures are illustrative, not benchmarks. Template licence: MIT.

Related templates