Скачать презентацию Getting Started with Code Generation In An Enterprise Скачать презентацию Getting Started with Code Generation In An Enterprise

86707b401966f2f885c55b4a2861230b.ppt

  • Количество слайдов: 27

Getting Started with Code Generation In An Enterprise Matthew Fowler matthew. fowler@nte. co. uk Getting Started with Code Generation In An Enterprise Matthew Fowler matthew. fowler@nte. co. uk 1

Agenda • • Who's Who Jee. Wiz Introduction Demonstration Benefits 2 Agenda • • Who's Who Jee. Wiz Introduction Demonstration Benefits 2

Who's Who - The Customer • Global Financial Operating Division, 20 k employees • Who's Who - The Customer • Global Financial Operating Division, 20 k employees • Security Identity and Access Management (IAM) HR System Joiners, leavers Application/ Rules Repository Reqts. Status Application Authent. Authorisn. • Web Services + Web Application 3

Who's who - NT/e • J 2 EE Technical Services – Architecture, trouble-shooting, development Who's who - NT/e • J 2 EE Technical Services – Architecture, trouble-shooting, development – Supply of development staff and projects • Jee. Wiz System Generator – J 2 EE - Struts, EJB, Web Services – High levels of generation 4

Jee. Wiz Process Business Analyst Meta. Programmer Local Variations Application Programmer Meta-Programs Project & Jee. Wiz Process Business Analyst Meta. Programmer Local Variations Application Programmer Meta-Programs Project & Build Jobs Application Framework Model Business Logic Platform Server Deployed Application 5

NT/e J 2 EE Customers 6 NT/e J 2 EE Customers 6

Phase 1 • Customer's Business Goals – – – Improve governance, protect credit rating Phase 1 • Customer's Business Goals – – – Improve governance, protect credit rating Clarify detailed business process Reduced cost/timescales Reduced risk - fixed price Explore large-scale MDA/MDD technology • NT/e's goals – Prove the technology and business proposition – Open up another enterprise customer – Make some money (or not lose too much) 7

Technical environment Company • Java/J 2 EE – Java – Business objects meta-model (E-R, Technical environment Company • Java/J 2 EE – Java – Business objects meta-model (E-R, DAOs, services, facades) – Screens (pages, events, page flow) – J 2 EE (incl. Struts, JSP, JSTL) – Web. Sphere 5 specifics • Web Services, deployment descriptors • Oracle Date. Time! – Company-specific Web. Sphere J 2 EE Screen Bizobject Java 8

Entity Modelling in RSM 9 Entity Modelling in RSM 9

The Original Plan • The Original Plan • "You do the work – but informally bring us up to speed" • Developer-developer interface • Significant support from customer: – volumetrics, document templates, L&F standards, UAT envt. , database setup, equipment, timely reviews, build/deploy standards • Fast Agile Development – Ready for UAT in 2 months 10

The Reality • Requirements and Functional Specs – Guessed by customer dev team – The Reality • Requirements and Functional Specs – Guessed by customer dev team – Then re-verified with business unit • Dependencies all missed – Very few standards and procedures • • Demonstration of finished application - 2 months Reqts&FS signed off - 3 months Development/UAT finished - 8 months Formal Acceptance - 1 year 11

Statistics - Phase 1 • Input: Model 376 kb Business Logic 393 kb 39 Statistics - Phase 1 • Input: Model 376 kb Business Logic 393 kb 39 files Generated 14. 4 Mb 1295 files • 97% generation 12

Hard Lessons • Fixed price for long projects is bad news – Customer determination Hard Lessons • Fixed price for long projects is bad news – Customer determination to get value for money destroyed the short-term value – Front-end benefits of Jee. Wiz were forgotten • Huge organisational learning on both sides – The hidden investment in the relationship • Customer priorities no effective learning of Jee. Wiz 13

Positive Outcomes • Web. Sphere 5 Automation – Database descriptors – Web Services build; Positive Outcomes • Web. Sphere 5 Automation – Database descriptors – Web Services build; no change in model – Integration with WSAD/customer build jobs • Asynchronous processing framework • Customer-specific Software Factory – Customised UI, logging, security, build 14

Phase 2 • Phase 2 • "Now the business understands better. . . " • Manual upload from Web. App – Tactical de-emphasis of web services – Complex "Dashboards" for administrators and support personnel – 10 new pages, 4 changed pages – 7 new database tables, with CRUD • Integrate Web. App into asynch processing – shared with Web Services 15

Dashboard Modelling in RSM 16 Dashboard Modelling in RSM 16

Contractual Changes • T&M • Contractual Changes • T&M • "Specification": mock-up of web pages & flow • No substantive changes – Customer in a hurry • The Phase 1 investment in the relationship pays off: – Minimal contractual overhead – No specification arm-wrestling – Win-win project situation. 17

Productivity Modelling • 6 man-days modelling. . . produced – 11, 000 lines, working Productivity Modelling • 6 man-days modelling. . . produced – 11, 000 lines, working and unit tested • Java • JSP • Config changes • 45 man-days, design → system test, documented – – 11, 000 lines generate 2, 800 lines new functionality 2, 800 modified 350 lines per day 18

Result • Perception change – From: Not sure Jee. Wiz adds anything – To: Result • Perception change – From: Not sure Jee. Wiz adds anything – To: Definitely couldn't have done it in the same time • On time, on budget – minor changes in spec, absorbed into planned time • Generation %: – Additional/modified code: 80% generated • Refactoring of existing backend logic – Overall: 95% generated 19

Phase 3 • Bring skill in-house – Reduce cost of maintenance – Give the Phase 3 • Bring skill in-house – Reduce cost of maintenance – Give the team leader a new toy to play with • Create another complex new page • Integrate with WSAD development – Fast turnaround with integrated Web. Sphere • Integrate with CM and Deployment tools 20

Commercial • Consultancy/mentoring input only • Adoption of Jee. Wiz by customer • Team Commercial • Consultancy/mentoring input only • Adoption of Jee. Wiz by customer • Team leader changed generation system – – build and deploy scripts to create WSAD projects complex new pages (Assign Accounts & relations) new modelling terms (page type) page style generation, field rendering overrides • 8 weeks part-time 21

Result • Maintenance of application passes to customer • Customer has in-depth knowledge of Result • Maintenance of application passes to customer • Customer has in-depth knowledge of all levels of Jee. Wiz • Learning curve for meta-programming – Modelling, profile changes: minimal – Mechanics of meta-programming (XML, Java, Velocity, Ant): minimal – Meta-programming system internals: steep • But programming in WSAD, reverse into JW 22

Phase 4 - Variant Application • Different department – But similar business requirements • Phase 4 - Variant Application • Different department – But similar business requirements • Big rush • New model - mostly subset of Phase 3 – – Remove Web Services Remove some file upload Detail changes, new pages for usability Add Email chasing workflow 23

Commercial • Delivered by NT/e – In-house capability on other priorities • Approx 40% Commercial • Delivered by NT/e – In-house capability on other priorities • Approx 40% effort on deployment – (Task previously done by customer) 24

Results • Separation of concerns – Double-teaming possible – Parallel development of model, meta-programs Results • Separation of concerns – Double-teaming possible – Parallel development of model, meta-programs and application programming • Fast generation of variant application – Easiest to prune the model and rebuild • Generated files reduced by 20% – 8 new implementation files (new pages, Email) 25

Late-breaking news 26 Late-breaking news 26

Conclusions • Jee. Wiz stands up well • Customer can quickly build Web. Apps Conclusions • Jee. Wiz stands up well • Customer can quickly build Web. Apps (new skill) • Maintenance phase benefits – Pre-existing "software factory" reuse – Efficiency increases with time • Agile process fits better – Waterfall takes too long to get business value – Fixed-price chunks, T&M for deployment better • Big cultural learning curve 27