CompuwareCorporation Agile Software Development with Pragmatic MDA Jon Kern Agile MDA Evangelist Jon.Kern@compuware.com http://blogs.compuware.com/cs/blogs/jkern/ http://javacentral.compuware.com/members/straight-talk/ V1.1
Page 2 What are Our S/W Dev Challenges? Ability to meet the demands of the business Shrinking business cycle Need for business agility Ability to meet the demands of development Crazy schedules Need for application agility Too many death marches Producing quality software Striving for effective process Gaining productivity Getting a return on the IT investment
Page 3 Easy Solution to Our Quest! Model app & svcs completely in UML Push some buttons in our MDA tool Presto-magic, your business app is done!
Page 4 How Is Software Built? People, Process, and Tools! In about that order Good people will trump poor/non-existent process Good people will either create tools or use tools in an effective manner Process and Tools cannot make up for inadequacies of the development staff Gray matter is a pre-requisite
Page 5 3 Keys to S/W Development Success Separation of Concerns Model the Business Keep technology separate Construction Consistency Application Architecture Consistent application of: Technical architecture Construction guidelines Standards & conventions Agile Development Environment Frequent, working, tangible results
Page 6 Separation of Concerns #1 Architectural best practice Keep business logic in one place Architect for the future Keep Technology at arm s length Isolate change User Interface Business/Problem Domain Persistence DB DB DB Legacy/Ext. Systems
Page 7 It s The Business! Protect the company s primary asset: Business Intellectual Property That is The UI is not the business J2EE/.NET is not the business Messaging is not the business WebServices is not the business DBMS is not the business Your Business is the Business! Architect to Protect!
Page 8 No Separation of Concerns? Older applications are brittle hard to change without causing breakage It takes 80% of the effort just to keep the lights on It is hard to add new features No one can really point to your business model It is very hard to train new developers to work on the application DBMS DB UI Domain Legacy
Page 9 Eliminate Technical Debt Software development makes it easy to build up a slow, insidious, internal poison How? Small infractions of writing spaghetti code Seem harmless at the time They accumulate over time (like rust, or barnacles on a boat) It can get so bad that You are no longer competitive You can t even service the debt You can go bankrupt Technical Debt
Page 10 Construction Craftsmanship #2 Application Arch. Variable Technical Arch. Client:PC Consistent Browser (IE) Request Response WebContainer:Tomcat ControllerServ :ControllerSer t View(JSP) SOA, Distr., Web App ActionServ...ControllerSer Right-click, choose "Hyperlink To" menu select the hyperlin watch what happens. Cashier Debit Point of Sale System Scan Product or "Identify" P Total Ite Product System Take in Payme Update Product Co Please refer to Doug Rosenberg's boo "Use Case Driven Object Modeling wit for more information on Robustness D Credit Check Cashier makes a sale Price Looku <<include>> lnksaledm SaleDM <<moment-interval (The <<include>> databas Determine Ta CashSale The entity Features Inventory Sys <<ui-component> POSFrame The std cashier DBMS:Solid Legacy Cobol, IMS, etc EntityEJB:BudgetCe (optional) EJBContainer:JBoss BusinessInterf BusinessDelegat SessionEJB If both contain are on one serv (e.g., WebLogic better performa can be achieved Construction Guidelines Working App! Patterns, Conventions
Page 11 Agile Development #3 A state of mind! Shrink waterfall cycle into small iterations Ensure working application and feature progress Make it simpler to embrace change Improve communication Test between business and IT Deliver business value faster and continuously Make change an asset! Deploy/Run Analysis Design Code
Page 12 Agile Manifesto Individuals and Interactions Working software Customer collaboration Responding to change over over over over Processes and Tools Comprehensive documentation Contract negotiation Following a plan While we value the things on the right, we value those on the left more http://agilemanifesto.org
Page 13 Running Software Necessary but not sufficient! Don t be fooled by running software alone It must be built on a good architectural foundation It must not incur technical debt It must be treated as an important asset Even poorly architected software can give the appearance of being good at the user interface level.
Page 14 Three Fundamentals #1 User Interface Business/Problem Domain Persistence DB DB DB Legacy/Ext. Systems Separation of Concerns Test Deploy/Run Analysis Agile OptimalJ MDA Right-click, choose "Hyperlink To" menu, select the hyperlink watch what happens. Cashier Debit Design Code Application Arch. Point of Sale System Scan Product or "Identify" Pro Total Item Agile #3 Development Product System Take in Payment Update Product Coun Please refer to Doug Rosenberg's book on "Use Case Driven Object Modeling with UML for more information on Robustness Diagra Credit Check Cashier <<include>> SaleDM (The <<include>> database) makes a sale Price Lookup lnksaledm <<moment-interval>> Determine Tax CashSale The entity Inventory Syste <<ui-component>> POSFrame The std cashier U #2 Dual Architecture Technical Arch. Client:PC DBMS:Solid Browser (IE) Legacy Cobol, IMS, etc. Request Response EJBContainer:JBoss EntityEJB:BudgetCente (optional) WebContainer:Tomcat ControllerServle :ControllerServl t View(JSP) BusinessInterfac BusinessDelegate SessionEJB ActionServle...ControllerServl If both containers are on one server (e.g., WebLogic), better performance can be achieved. Construction Guidelines Working App!
Page 15 What Needs to be Agile? Move at the Speed of Business Business model changes New requirements Allow for changes in technology! Framework refactoring Vendor changes Platform changes Mergers/Acquisitions How does Pragmatic MDA help?
Page 16 The Simplicity of Pragmatic MDA Meta Data Models are used for business Models are used for technical artifacts (e.g., DBMS, build.xml) Transformations Templates/Java used to transform the models to your desired architecture First pass is an Application Model (platform-specific) Second pass is the Code Model (i.e., working app) Intermediate Model Useful Permits using technology: J2EE Security EJB Finders DBMS Logical Model Etc. Transformation Rules Model-to-Model Model-to-Model Transformations Transformations Model-to-Code Model-to-Code Transformations Transformations OptimalJ OMG Domain Model Application Model Code Model P I M P S M C od e
Page 17 Meta Data Models Models about your models ( M2 ) Model of UML classes, etc. Yields the ability to model classes, Tables, UIs Ability to model custom metadata Your own unique artifact types Metamodel languagem3 Metamodels Models Data M2 M1 M0
Page 18 Transformations Transform a UML model to a Database model Model to Model Transform Database model to SQL Model to Code Classes Tables SQL Code Model-to-Model Model-to-Code
Page 19 Multi-Tier Models Platform Independent Model (PIM) Business, business rules, process Platform Specific Model (PSM) Technology features Architecture goes here; e.g.: JSP Struts EJB/CMP RDBMS Integration (DBMS, WSs, Cobol, MQ, etc.) Code Model (code ;=)
Page 20 How it Works in Practice Design the technical architecture Relative Participation Create Technical Architecture (Or re-use existing) Model the Business (Appl. Architecture) Work out breadth of application s features Each Iteration/Release Work out N# of features to be delivered. Work out Appl. Details (Coding, UI, Integration) Continuous Integration and Testing Conduct verification of high-risk issues (as often as needed) Development Cycle Duration / Time
Page 21 Recap: MDA/OJ Provides Dramatic Potential for improving application Development and lowering TCO Separation of Domain Model Concerns + Appl/Technical Architecture + Agile Development Technical Transformations End-to-end Working Application Open, flexible, agile, iterative environment that delivers pure source code Vendor neutral approach to DBMSs & App Servers, etc.
Page 22 Thank You! Feel Free to contact me: Jon.Kern@compuware.com People and software for business applications sm