Application Migration using the Accelerated Delivery Platform - Presentation Transcript
using the Accelerated Delivery Platform Transforming from client/server
Agenda
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 outline Transforming from client/server
Introduction
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
Issues
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
Issues
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
Why 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 Multi-tier applications Where does the business logic go? Business logic Presentation Process Business Data access Databases / Services ? ? ? ? ? ? ?
A pragmatic approach Transforming from client/server
Approach
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
Approach
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-engineering Transforming from client/server
Agile 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
Agile 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 works Transforming from client/server
Why 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 the Accelerated Delivery Platform Extreme quality at extreme speed
Accelerated Delivery Platform
The 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
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
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
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 cases
Smart 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
Smart 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
Different levels of use cases
‘ Regular’ use cases
Only user goal level use cases
Use cases ‘as they are intended’
A single use case describes a 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 modeled in a single use case diagram
A single user goal level use case + auxiliary use cases at sub-function level
Very similar granularity
Normal Incidental Re-use Likely Possible Traceability in code Good Lousy Unit of work Easier Hard Estimates Unified Very different Granularity Visual Textual Format Smart use case Regular use case
Smart use cases - Example
Using the Accelerated Delivery Platform Model driven development
Model 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.
Model 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
A pragmatic approach Forms Use cases Domain objects Data / Service classes Databases Reference Architecture Tobago MDA Test scenario’s Frameworks Documentation Current Applications Business models Business domain Smart use cases User interface specification Map all work and business processes to smart use cases Set up your domain model Establish and support your reference architectures Generate your code using a text template engine Finalize your application
Tobago MDA Fits APD Trinidad architectural layers and types From user interface to database and services From use-cases From domain objects
References and questions wiki.trinidadplatform.org [email_address]
0 comments
Post a comment