Application Migration using the Accelerated Delivery Platform


Published on

Application Migration using the Accelerated Delivery Platform

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Application Migration using the Accelerated Delivery Platform

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