Better Application Life-cycle Management with MDA Andrew Watson VP & Technical Director, OMG
Introducing OMG One of the most successful forums for creating open integration standards in the computer industry - CORBA integration platform & many related specifications - UML design notation and related specifications An industrial consortium with vendor and user members - Implementation must be available from OMG member Interfaces freely available to all - Visit http://www.omg.org Decisions taken by members ALM with MDA 2
2AB 88 Solutions ABB Adaptive Adobe Alcatel Aonix Artisan BAE Systems BEA Systems Boeing Borland CA Worldwide Membership CBOE Cisco Compuware Credit Suisse Daimler Deere & Co. DoCoMo EBI EDS EFF Eurocontrol EuroSTEP Fujitsu GCHQ G. Dynamics Gnome Fndn. HDMA HP Hitachi IBM IDS Scheer Int active Obj IONA Kaiser K dy Carter Lockheed MedicAlert Mentor G ics Motorola NASA NEC NATO NIST Nokia Northrop OIS Oracle Promia PrismTech Raytheon Rockwell SAP SAS Institute Siemens Sun Telefonica Thales Toshiba Union Switch Unisys VHA W3C ALM with MDA 3
OMG in action: Unified Modelling Language The successor to multiplicity of OO A&D notations of early 90s Result of OMG RFP begun in 1994, completed in 1997 - Complemented by XML Metadata Interchange (XMI) and repository (MOF) specs Standard released flood of support - 110+ books, dozens of tools UML 2.0 now published - Extensions for System Engineering (SysML) in progress ALM with MDA 4
What is Application Lifecycle Management? An Application Lifecycle is the continuum of activities required to support an enterprise application from its initial inception through its deployment and system optimization Application Lifecycle Management (ALM) integrates and governs the planning, definition, design, development, testing, deployment, and management phases throughout the application lifecycle Eclipse Application Lifecycle Framework project ALM with MDA 5
Current state of ALM In 2002 only 34% of US IT projects delivered on time, within budget, and with all specified features 15% failed completely Of the other, challenged 51%: - 41% delivered less than 50% of spec - 41% more than 50% over-time - 27% more than 50% over-budget (Source: The Standish Group, CHAOS Chronicles Version III, 2003) ALM with MDA 6
Why do projects fail? One of the most important reasons is that there is an enormous gap between the developers who work on application projects, and the managers who set the goals of the projects. Application Lifecycle Management, Butler Group, 2005 Poor requirements capture and inadequate communication leads to project catastrophes - Requirement errors are easy to fix if found early... -... but can be impossible to fix if not found until testing ALM with MDA 7
Does this sound familiar? ALM with MDA 8
The Mythical Man Month Originally written in 1975, still in print Based on Brooks OS/360 experience Over 250,000 copies sold Peppered with pithy aphorisms, like: The sooner you start, the longer it takes Adding manpower to a late software project only makes it later ALM with MDA 9
What s missing from ALM? More than 50% of staff time spent on maintenance Leintz & Swanson 1981 survey of 487 organisations Recent maintenance & evolution cost estimates even higher > 90% Erlikh, 2000 75% Eastwood, 1993 > 90% Moad, 1990 60-70% Huff, 1990 Bizarrely, some definitions of ALM exclude maintenance! ALM with MDA 10
More maintenance data There are about 250bn lines of source code under maintenance Sommerville, 2000 The volume of code being maintained doubles every 7 years Mueller et al, 1994 US annual software maintenance cost > $70bn Sutherland 1995, Edelstein 1993 Maintainers spend ~ 50% of their time understanding the code Standish, 1984 ALM with MDA 11
Why is maintenance hard? Lack of documentation - Maintainers often have to reconstruct missing designs Changing platforms - Maintainers often forced to build for defunct platforms - Shortages of experienced staff, good tools etc. Changing program structure - Maintenance violates original design assumptions - Code becomes contorted, thus even more difficult to understand and modify ALM with MDA 12
Cost of technology churn (1) Every seven years, we have torn up what has gone before and started again There have been eight cycles of 'build and scrap' since 1946. The first cost $100m, equal to 7 per cent of business investment at the time. The last cost $2,000bn, or 47 per cent. The next would have cost $5,000bn but we have run out of money: we have come to the end of history as we know it. Paul A. Strassmann, former Chief Information Technology executive for General Foods, Kraft, Xerox and the US Department of Defense. http:// www.strassmann.com/ ALM with MDA 13
Cost of technology churn (2) New delivery technologies arrive every 5-10 years - Often an improvement (e.g. Java vs. C++) But critical IT systems live 25+ years - Two Zurich banks with 6 million lines of PL/I in production - Gartner estimates 180 billion lines of COBOL still in use We can no longer afford to pretend that today s delivery platform is the last one there ll ever be - We must stop investing all our intellectual capital in code - That investment too difficult to withdraw when it s time to change platforms ALM with MDA 14
How to cope? How we always do - raise level of abstraction & use better tools - Octal/Hex machine code to assembler - Assemblers to High-Level Languages - Procedural to OO HLLs (see Steele s Growing a language ) - Physical to logical to semantic database schemas - Manual to automatic storage allocation There s always a fierce rearguard action - But greater abstraction always wins in the end We need to raise abstraction level above platform APIs - Abstract and automate ALM with MDA 15
Model-Driven Architecture Raising the level of abstraction above the deployment platform - Improves requirements capture & system specification Build computation-independent model in business language Store in common, standards-based model repository Transform into implementation models - Platform-Independent Model is technology-independent - Platform-Specific Models for target platforms - Code, test scripts, database schemas, deployment language Maintain models as the long-lived intellectual assets, not code ALM with MDA 16
Models vs. diagrams Model = machine-readable structures in underlying repository - Diagrams = visual representation of the model - Several possible diagram notations for different models UML has diagram notations for different aspects of IT systems - Use-case diagrams, class diagrams, sequence diagrams etc - Becoming ubiquitous in IT world, less so in business world Business Process Modelling Notation now adopted by OMG - Simple, graphical, flow-chart syntax for processes (only) Business Rules languages for formal yet readable facts & rules ALM with MDA 17
Business Process Modelling Notation Published May 2004 by Business Process Modelling Initiative - Organisation merged into OMG, September 2005 Similar notational conventions to UML 2 activity diagram - Becoming de-facto standard Business Process Modelling syntax, understandable by both business & technical users - Models all business processes, not just automatable ones - Standard mapping to Business Process Execution Language BPEL/BPEL4WS Aids capture and communication of business processes ALM with MDA 18
BPMN Example Supplier Financial Institution Sales Distribution Authorise credit card + Authorise payment Process order + Pack goods Ship goods ALM with MDA 19
Semantics of Business Vocabulary & Rules MOF metamodel for vocabularies & rules describing business - Designed from the start to be used with MDA - As for BPMN, applies to whole business, not just IT Business rule: Rule that business can enact or revise - Based on first-order predicate logic, with limited extensions Also precise, non-normative human-readable text syntaxes - Structured English - RuleSpeak - Business Rule Solutions established notation Aids capture and communication of business rules ALM with MDA 20
Structural & Operative Rules Structural rules are definitions - how a business chooses to organise the things it deals with - A Car Hire Customer has at least one of the following: A Reservation An in-progress car hire A car hire completed within the last 5 years Operative Rules govern conduct of business activities -... and therefore can be violated by the people involved - A customer who appears drunk must not be given possession of a hire car ALM with MDA 21
Example operative rules in Structured English It is obligatory that each rental car is owned by exactly one branch. Quantifier Fact type Object type Modality Object type Quantifier It is obligatory that at the actual return date/time of each in-country rental and each international inward rental the local area of the return branch of the rental owns the rented car of the rental. ALM with MDA 22
Building an MDA application (1) Computation-independent model CIM represents business context for the IT Solutions, expressed in terms of Business Processes and Business Concepts Start by creating Computationindependent model (CIM) of your business application ALM with MDA 23
Building an MDA application (2) Computation-independent model Platform-independent model Map CIM to Platformindependent model (PIM) Platform-independent model (PIM) describes business functionality and behaviour in automatable way, but undistorted by technology details ALM with MDA 24
Building an MDA application (3) Computation-independent model Platform-independent model Map PIM to a specific middleware technology MDA tool helps apply mapping to generate a Platform-Specific Model (PSM) from the PIM. CORBA model ALM with MDA 25
Building an MDA application (4) Computation-independent model Platform-independent model Map PIM to many middleware technologies In real life there s usually more than one platform in any application. MDA tools help map to them all. CORBA model EJB/Java model C#/.Net model Other model ALM with MDA 26
Building an MDA application (5) Computation-independent model Platform-independent model Map PSM to application interfaces, code, SQL queries, etc. MDA tool generates some or all of the implementation code for deployment technologies. CORBA EJB/ Java C#/.Net Other ALM with MDA 27
Building an MDA application (6) Computation-independent model Platform-independent model Reverse engineer existing application into a model for integration MDA tools for reverse engineering automate discovery of models for re-integration on new platforms. Legacy App COTS App Other ALM with MDA 28
Middleware Company MDA study Two parallel implementations of Sun s Pet Store sample app - Sun s illustration of Java Blueprints design patterns - Typical 3-tier DB/Java/HTML e-commerce application Two 3-person teams, traditional Java tools vs. OptimalJ See http://www.compuware.com/dl/mdacomparisontmcfinal.pdf MDA team completed in 330 man-hours, traditional in 508-35% effort saving, despite learning MDA tool on the job - MDA team estimated they would be 10-20% faster next time Level of bugs found during the testing process was higher for the traditional IDE team than the MDA-tool team ALM with MDA 29
EDS report Another study based on the Pet Store reference application See http://www.eds.com/thought/thought_leadership_agility_model_arch.pdf Coded app using vanilla J2EE,.NET and OptimalJ J2EE - 14,000 hand-coded lines in J2EE - 3,000 hand-coded lines in.net/c# - 600 hand-coded lines in Java/OptimalJ (+ creating models) - Developers write only 1-4 lines for each 200 lines generated 30 minutes to add EJB 2.0 features to OptimalJ EJB 1.1 version - New local interfaces, better container-managed persistence - Would have taken several months to do manually ALM with MDA 30
EDS study - lines of handwritten code 15000 14000 13000 12000 11000 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 610 3484 14273 Total lines of code 535 1881 5891 User interface 45 863 Middle tier 5404 J2EE with OptimalJ.NET J2EE 0 684 412 Data tier 30 56 Config ALM with MDA 31 2566
Middleware Company maintenance report Pair of 2-man teams add new features to existing Petstore apps - Tracking pet maturation - Calculating shipping costs - Soliciting supplier bids for new inventory - Integrating with Amazon.com via its web service - Integrating with mainframe application to track shipments Traditional team took 260 hours, MDA team 37% less (165 hrs) See http://www.middleware-company.com/casestudymda2.pdf MDA advantage greatest for disruptive changes (pet maturation), break-even for smallest updates (shipping costs) ALM with MDA 32
Real-world MDA Case Study Deutsche Bank Bauspar AG - 400 employees & 800,000 contracts - Provides savings & loans for customers buying property - 30,000 client machines at 1000 Deutsche Bank offices Objective: Provide web access to bank mainframe system - Classic large CICS / COBOL / DB2 legacy application - Originally purchased in1987 - Migrated from IMS to DB2 (1993), Y2K/Euro conversion (1997-2001) ALM with MDA 33
Users of new system Customers - view contracts & check status - Via the internet, any kind of browser Field staff - make and support sales - 30,000 workstations, sometimes used off-line - Windows to OS/2, Mozilla to Internet Explorer to Opera - Needed to reduce support cost of browser diversity Back office - finalises transactions - 200 Windows NT workstations - Needed to improve efficiency of back office via better automation, better integration with sales applications ALM with MDA 34
New application structure (1) Online clients XML/HTTPS Server Front End Layer Servlets/JSP Offline clients Back Office Logical Layer Physical Layer Business Layer EJB WFMS XML/MQSeries Mainframe Business Layer Logical Layer Physical Layer HTTPS Oracle DB2 ALM with MDA 35
New application structure (2) Core functions remain on mainframe - Fundamental business model remains the same - New app for each type of user, share data and common code New integration tier - Dual Sun Fire 280R servers - WebLogic Enterprise - MQ Series queue manager - Oracle 8.1.7 stores partially-complete data not ready for DB2 - Custom workflow manager manages longer transactions ArcStyler MDA tool used to build large parts of new system ALM with MDA 36
EJBs Deployment descriptors RPC Client stubs Artifacts generated by MDA tool Server Front End Layer Servlets/JSP Struts Form Classes Struts Action Classes Dialogue configuration Standard access methods Data access objects Logical Layer Business Layer EJB Mainframe WFMS Business Layer XML/MQSeries WFMS process definitions General Server-side Value objects SAX handler J-Unit test classes Physical Layer Oracle Logical Layer Physical Layer DB2 COBOL modules XML parser/builder RPC Server Stubs ALM with MDA 37
60% 70% 90% Code generation percentages Server Logical Layer Physical Layer Oracle Front End Layer Servlets/JSP Business Layer EJB Mainframe Business Layer Logical Layer Physical Layer DB2 WFMS XML/MQSeries 40% 70% 60% 90% ALM with MDA 38
DB Bauspar results Web access for legacy (i.e. working!) back-office mainframe Large parts of new applications generated from models - e.g. 100% of XML interfaces directly generated Coding and maintaining generation templates consumed 5-10% of overall project effort Overall cost & time-scale savings estimated at 40% compared to non-mda approach - Models a long-lived asset that can be used to maintain & develop system in future ALM with MDA 39
Summary Precise modelling languages & MDA addresses key ALM problems: poor requirements capture difficult legacy integration difficult maintenance poor software quality low productivity ALM with MDA 40
For further Information Slides: ftp://ftp.omg.org/pub/presentations/ajw_alm MDA: http://www.omg.org/mda FastStart: http://www.omg.org/faststart/index.htm Email: andrew@omg.org ALM with MDA 41