Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright © 2004 InteliData A Real-World Example of MDA without Automation Ed Seidewitz 26 August 2004.

Similar presentations


Presentation on theme: "Copyright © 2004 InteliData A Real-World Example of MDA without Automation Ed Seidewitz 26 August 2004."— Presentation transcript:

1 Copyright © 2004 InteliData A Real-World Example of MDA without Automation Ed Seidewitz 26 August 2004

2 Copyright © 2004 InteliData 2 Agenda Background Model-driven architecture Case study Conclusions

3 Copyright © 2004 InteliData 3 Background Consumer bill payment InteliWorks architecture InteliWorks development

4 Copyright © 2004 InteliData 4 Background: Consumer bill payment

5 Copyright © 2004 InteliData 5 Background: InteliWorks architecture

6 Copyright © 2004 InteliData 6 Background: InteliWorks development InteliWorks project initiated late in 2000. Iterative development approach with each (overlapping) increment taking 3-4 months (currently working on Increment 18). Significant modeling introduced in stages starting early in 2001. –Architectural modeling –Logical data modeling –Physical Java class modeling (no longer done) –Use case modeling Complete model-driven approach established by mid 2003.

7 Copyright © 2004 InteliData 7 Model-driven architecture What is it? What is a platform? CIM, PIM, PSM and all that… Transformations Why “manual transformation”?

8 Copyright © 2004 InteliData 8 MDA: What is it? From the MDA Guide Version 1.0.1 (omg/2003-06-01) “The Model-Driven Architecture starts with the well-known and long established idea of separating the specification of the operation of a system from the details of the way that system uses the capabilities of its platform.”

9 Copyright © 2004 InteliData 9 MDA: What is a platform? From the MDA Guide Version 1.0.1 (omg/2003-06-01) “A platform is a set of subsystems and technologies that provide a coherent set of functionality through interfaces and specified usage patterns, which any application supported by that platform can use without concern for the details of how the functionality provided by the platform is implemented.”

10 Copyright © 2004 InteliData 10 MDA: CIM, PIM, PSM and all that… From the MDA Guide Version 1.0.1 (omg/2003-06-01) “A computation independent model is a view of a system” that “focuses on the on the environment of the system, and the requirements for the system.” “A platform independent model is a view of a system” that “focuses on the operation of a system while hiding the details necessary for a particular platform.” “A platform specific model is a view of a system” that “combines the platform independent viewpoint with an additional focus on the detail of the use of a specific platform by a system.”

11 Copyright © 2004 InteliData 11 MDA: Transformations “The platform independent model is transformed to be a model specific to a particular platform.” “Four different transformation approaches…illustrate the range of possibilities:” –manual transformation –transforming a PIM that is prepared using a profile –transformation using patterns and markings –automatic transformation

12 Copyright © 2004 InteliData 12 Case study Overview Architecture Data

13 Copyright © 2004 InteliData 13 Case study: Overview Requirements Model (use case and activity diagrams) Dependency Model (class diagrams) Architectural Realizations (sequence diagrams) Logical Data Model (class diagrams) xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx xxxxxxx xxxxxxxxxx xxxxxxx ]xxxx Interface Code (EJB) xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx xxxxxxx xxxxxxxxxx xxxxxxx ]xxxx Web Services Code (WSDL/SOAP) xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx xxxxxxx xxxxxxxxxx xxxxxxx ]xxxx Value Object Code (Java) xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx xxxxxxx xxxxxxxxxx xxxxxxx ]xxxx Schema Code (SQL) Database Design Model (class diagram) xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx xxxxxxx xxxxxxxxxx xxxxxxx ]xxxx Schema Definition (Torque XML) CIM PIM PSM PIM/PSM hand coded generated reverse engineered hand modeled traces hand modeled Implementation platform J2EE (WebLogic app server) Relational DB (Oracle DBMS) Web services (Apache Axis) Implementation platform J2EE (WebLogic app server) Relational DB (Oracle DBMS) Web services (Apache Axis)

14 Copyright © 2004 InteliData 14 Why “manual transformation”? Manual transformation “is not greatly different from how much good software design work has been done for years. The MDA approach adds value in two ways:” –“the explicit distinction between a platform independent model and the transformed platform specific model, –“the record of the transformation.” For InteliWorks… –Needed to establish effective modeling before introducing automation. –Lacked a business case for an effective team late in the product development cycle. The long-term benefits were not convincingly worth the short-term loss of productivity to introduce new tools. The business case would likely be different for a new product development cycle.

15 Copyright © 2004 InteliData 15 Case study: Architecture Dependency models –Payment Service dependencies Architectural models to code –PaymentFe helper class –Add payment request value object class Architectural models to Web services –WSDL for the Payment Service

16 Copyright © 2004 InteliData 16 Payment Service dependencies

17 Copyright © 2004 InteliData 17 PaymentFe helper class public class PaymentFeHelper { public static AddPaymentRsVO addPayment ( SessionVO session, AddPaymentRqVO request ) throws CheckedException, UncheckedException { … } public static CancelPaymentRsVO cancelPayment ( SessionVO session, CancelPaymentRqVO request ) throws CheckedException, UncheckedException { … } public static GetPaymentActivityRsVO getPaymentActivity ( SessionVO session, GetPaymentActivityRqVO request ) throws CheckedException, UncheckedException { … } public static GetPaymentsRsVO getPayments ( SessionVO session, GetPaymentsRqVO request ) throws CheckedException, UncheckedException { … } public static UpdatePaymentRsVO updatePayment ( SessionVO session, UpdatePaymentRqVO request ) throws CheckedException, UncheckedException { … } private static PaymentRequestMgr getPaymentRequestMgr () throws CheckedException, RemoteException { … } }

18 Copyright © 2004 InteliData 18 Add payment request value object class public class AddPaymentRqVO implements ValueObject { private PaymentSpecificationVO specification; public AddPaymentRqVO( ) { } public AddPaymentRqVO( PaymentSpecificationVO specification) { this.specification = specification; } public PaymentSpecificationVO getSpecification() { return this.specification; } public void setSpecification(PaymentSpecificationVO specification) { this.specification = specification; } }

19 Copyright © 2004 InteliData 19 WSDL for the Payment Service … … … …

20 Copyright © 2004 InteliData 20 Case study: Data Logical data model –Financial transaction entity model –Payment entity model Logical model to code –Payment value object classes Logical model to XML –Payment XML aggregate Logical model to database schema –Payment tables

21 Copyright © 2004 InteliData 21 Financial transaction entity model

22 Copyright © 2004 InteliData 22 Payment entity model

23 Copyright © 2004 InteliData 23 Payment value object classes public abstract class FinancialTransactionBaseVO implements ValueObject { private Long financialTransactionId; private Date processDate; private Date creditDate; // Getter and setter methods … } public abstract class FinancialTransactionConsumerDataVO extends FinancialTransactionBaseVO { private CreationDataVO creationData; private DisplayStatusVO displayStatus; // Getter and setter methods … } public class PaymentVO extends FinancialTransactionConsumerDataVO { private RoutedPaymentSpecificationVO paymentSpecification; // Getter and setter methods … }

24 Copyright © 2004 InteliData 24 Payment XML aggregate 10006 2004-06-01T04:00:00.000Z 2004-06-03T04:00:00.000Z … … … … …

25 Copyright © 2004 InteliData 25 Payment tables

26 Copyright © 2004 InteliData 26 Conclusions MDA has value, even without automated transformation. Advantages of manual transformation –No need to purchase and learn transformation tools. –No need to develop and maintain formal, executable transformation definitions. –Ability to quickly adapt as circumstances dictate. Disadvantages of manual transformation –Requires continuing effort and process discipline. –Unintentional inconsistencies are inevitable. –Compromises most be made to keep transformations simple enough to be manually tractable. –Care must be given to maintaining clear traceability.


Download ppt "Copyright © 2004 InteliData A Real-World Example of MDA without Automation Ed Seidewitz 26 August 2004."

Similar presentations


Ads by Google