application migration using the accelerated delivery platform
DESCRIPTION
Application Migration using the Accelerated Delivery PlatformTRANSCRIPT
using the Accelerated Delivery PlatformTransforming from client/serverTransforming from client/server
2TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
AgendaAgenda
Client/server Short overview
Issues with client/server applications Application issues
Portfolio issues
Re-engineering approach Automatic conversion is hard
Re-engineering approach
Capgemini’s Accelerated Delivery Platform Introduction
Key benefits for re-eningeering
Setting the outlineTransforming from client/serverTransforming from client/server
4TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
IntroductionIntroduction
Client/server Popular paradigm during the ’90s
Client/server architecture Typically two tier
Client: user interface
Server: database
Data centric
Business logic in presentation and database
Typical client/server tools Visual Basic or ASP
PowerBuilder
Oracle Designer and Developer
SQLWindows
DataFlex, FoxPro, Clipper, DBase
5TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
IssuesIssues
Quality of code Client/server is a limited architecture
Applications are not built to last
Copy-and-paste programming
Decentralized business logic
Lots of bug fixes and patches have lowered quality of applications
Often low on documentation
Future Business has come to depend on client/server
applications
Maintenance increasingly difficult and expensive
New requirements cannot be implemented
New platforms unsupported
6TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
IssuesIssues
Portfolio’s of applications Multiple tool sets
Overlapping business logic
Missing business logic
Contradicting business logic
Multiple occurrences of the same data
Varying levels of documentation
Automated transformation is unlikely Scattered business logic
Contradicting business logic
Source and target architectures differ too much
Platform requirements differ, e.g. from Windows to web and mobile
Re-engineering is inevitable
7TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Why automated conversion is unlikelyWhy automated conversion is unlikely
In field validation On forms Behind forms In database calls
In stored procedures Behind triggers Validation?
Application
Database
Traditional client/server
Businesslogic
Presentation
Process
Business
Data access
Databases /Services
Multi-tier applications
?
?
?
?
???
Where doesthe business logic go?
Where doesthe business logic go?
A pragmatic approachTransforming from client/serverTransforming from client/server
9TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
ApproachApproach
1. Portfolio scan Which tools have been used? How many of these tools are deceased or
unsupported? What applications are present? When do these applications go out of date?
2. Reusability discovery What domains are covered? Which business logic can be salvaged? Which components and services can be discovered? Advice on introducing service orientated architecture
3. Vitality index Which applications need to be ported? What is the business case for these applications? What business priorities are there? What business risks are lurching without
transformation Advice on porting applications
10TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
ApproachApproach
4. Re-engineering Re-engineer each individual application Maximize reuse using service oriented
architecture Apply Accelerated Delivery Platform / Trinidad Re-engineering approach
Model smart use cases from existing user interface Model domain model from existing data models Generate base application, often up to 75% Investigate and build in business logic Connect new application to central services Migrate existing data
5. Program management Porting a single application is a software
development project Total portfolio porting requires program
management
Agile re-engineeringTransforming from client/serverTransforming from client/server
12TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Agile re-engineering approachAgile re-engineering approach
1. Model smart use cases from existing user interface Apply smart use case modeling guidelines Introduce standard stereotypes Generate user interface specification Fill-in the blanks
2. Model domain model from existing data model Harvest from reference business models
Capgemini holds reference models for pensions, mortgages, health care, insurances, claims
Apply object-relational transformation rules Set up ID strategy Introduce associations and compositions
Enrich model Introduce enumeration patterns Model value objects in domain model, such as ISBN,
Sofinummer, Bank account Model reference patterns in domain model
13TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Agile re-engineering approachAgile re-engineering approach
3. Generate base application with Tobago MDA, often up to 75% - 80% Apply reference architecture Generate target user interface Process logic in use cases Business logic Data / services logic
4. Investigate and re-build in business logic Extract reusable business logic to domain
services Centralize business logic Connect new application to key services
5. Migrate existing data Apply automated migration scenario’s when
possible Migrate data to centralized services using
generated code
Why this approach worksTransforming from client/serverTransforming from client/server
15TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Why this approach worksWhy this approach works
Key accelerators in re-engineering approach Harvest from available business reference models Standardized re-modeling existing applications High productivity code generation Only address deviations from standard implementation Standardized documentation in model Reference architectures supporting services Easy to use frameworks
Key benefits Industrialized re-engineering approach Extreme standardization Emphasis on process and business logic Open platform High maintainability courtesy of created traceability Easily extensible to other platforms Growing community
Introducing theIntroducing theAccelerated Delivery PlatformAccelerated Delivery PlatformExtreme quality at extreme speed
17TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Accelerated Delivery PlatformAccelerated Delivery Platform
18TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
The Accelerated Delivery PlatformThe Accelerated Delivery Platform
What is the Accelerated Delivery Platform (ADP)?
A unified agile software development collaboration platform that encompasses high speed, high quality delivery of working software in distributed environments
What accelerators does it include?
Full agile lifecycle
Smart use cases to capture structured requirements
Pragmatic estimation based on smart use cases
Agile dashboarding to facilitate progress tracking
Unified testing throughout the project lifecycle
Reference architectures to support reuse and standardization
Model driven development to increase productivity and quality
Frameworks to drive high speed software development
Upgrade competences through training and coaching
19TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
What’s in ADP?What’s in ADP?
Integrated platform Set of integrated accelerators High speed, high quality software
development
Agile methodology Smart is a full agile lifecycle Agile (and RUP) best practices Integrated project management From project proposal to application
management
Industrialized requirements Smart use cases Industrialize requirement management Easy handover between business analysis
and software development
20TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
What’s in ADP?What’s in ADP?
Pragmatic estimation Smart estimation
Easy-to-use, repeatable project estimation
Applicable to most types of projects
Agile dashboards Real-time project progress
Burn down charts, BI and reporting
Flexible and solid technology High quality software development technologies
Includes generators and frameworks
Various development environments
Coaching and learning Standards and guidelines, community wiki
Various workshops available
Coaching on the job
21TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
What’s in ADP?What’s in ADP?
Standardization Standardized modeling and testing techniques Software architectures Model and domain driven software development High speed and high quality software
Community Open user community Includes wiki and community meetings Knowledge sharing between companies worldwide
Learning 8 courses at Capgemini Academy 4 courses at international seminar organizers Coaching on-the-job Quick project start-up Fast knowledge distribution
Introducing smart use casesIntroducing smart use cases
23TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Smart use casesSmart use cases
What are smart use cases? Smart use cases represents the highly
standardized functional requirements in software development projects.
Smart use cases are independent of approach, methodology and platform
There is a clear and pragmatic approach towards modeling smart use cases from business processes, in service oriented architectures, and even from existing applications
An easy-to-use estimation technique exists to estimate size and complexity of projects based on smart use cases
An associated testing technique allow for easy and early smart use case testing
24TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Smart use casesSmart use cases
Why smart use cases? Allow Capgemini to solve requirements
issues for a growing number of customers, including Achmea, AFM, DFZ, GVB, Essent
Structure and standardize requirements
Easy to model
Proven technology
Are applied to various types of projects including .Net, Java, Sharepoint, BI and SAP
Allow for realistic estimates of projects
Are used as primary unit of work in Capgemini agile projects
Can service a primary unit of work in optimizing rightshore projects
25TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Different levels of use casesDifferent levels of use cases
‘Regular’ use cases Only user goal level use cases
Use cases ‘as they are intended’
A single use case describesa single elementary business process
Differ in granularity too much
Law of Large Numbers does not apply
Smart use cases User goal and sub function level use cases
Good unit of work and estimation
A single elementary business process is modeledin a single use case diagram
A single user goal level use case + auxiliary use cases at sub-function level
Very similar granularity
NormalNormalIncidentalIncidentalRe-useRe-use
LikelyLikelyPossiblePossibleTraceabilityin codeTraceabilityin code
GoodGoodLousyLousyUnit of workUnit of work
EasierEasierHardHardEstimatesEstimates
UnifiedUnifiedVery differentVery differentGranularityGranularity
VisualVisualTextualTextualFormatFormat
Smartuse caseSmartuse case
Regularuse caseRegularuse case
26TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Smart use cases - ExampleSmart use cases - Example
Using the Accelerated Delivery PlatformModel driven developmentModel driven development
28TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Model driven developmentModel driven development
How do we apply model driven development? Represent the functional requirements for a
project in standardized use cases Model the domain model for a project, and
map it to the smart use cases Export the project model (to XMI) Generate code and other artefacts using
Tobago MDA (free code generator) and a wide variety of templates
From smart use cases generate workflow, web pages, Windows forms, tasks, estimates, use case and UI documentation, etc.
From the domain model generate domain factories, domain objects, data layer objects, configuration files, table create statements, etc.
29TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Model driven developmentModel driven development
Why model driven development?
Applied at a growing number of customers and projects, including DFZ, GVB, Essent, EnergieDirect, SRC, FleetSolutions, Kluwer
High productivity and high quality code
Easy to learn, pragmatic to apply
Allows for new and extended templates to generate even more artefacts
Generates .Net 2.0 and 3.x code
Generated code is open for extensions, such as adding presentation and business logic
Supported by rich frameworks in .Net
30TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Forms
Use cases
Domainobjects
Data / Serviceclasses
Databases
Reference Architecture
TobagoMDA
Testscenario’s
FrameworksDocumentation
CurrentApplications
Businessmodels
Businessdomain
Smartuse cases
User interfacespecification
A pragmatic approachA pragmatic approachMap all work Map all work and business and business processes to processes to
smart use casessmart use cases
Set up your Set up your domain modeldomain model Establish and Establish and
support your support your reference reference
architecturesarchitectures
Generate your Generate your code using a code using a
text template text template engineengine
Finalize your Finalize your applicationapplication
31TRANSFORMING FROM CLIENT / SERVER© Copyright Capgemini 2007 All Rights Reserved
Tobago MDATobago MDA
Fits APD TrinidadFits APD Trinidadarchitecturalarchitectural
layers and typeslayers and types
From user interface to From user interface to database and servicesdatabase and services
FromFromuse-casesuse-cases
FromFromdomain domain objectsobjects
References and questionsReferences and questionswiki.trinidadplatform.org [email protected]