20090410   J Spring Pragmatic Model Driven Development In Java Using Smart
Upcoming SlideShare
Loading in...5
×
 

20090410 J Spring Pragmatic Model Driven Development In Java Using Smart

on

  • 4,801 views

In this unstable economy, organizations target software development at shorter time-to-market and high productivity. Model driven development has a promise of raising productivity in projects. ...

In this unstable economy, organizations target software development at shorter time-to-market and high productivity. Model driven development has a promise of raising productivity in projects. However, many approach fail to deliver this promise. During this high-paced, interactive talk speakers Sander Hoogendoorn (Principal Technology Officer and agile thought leader at Capgemini) and Rody Middelkoop (Technical evangelist at Avisi, and lecturer at the Hogeschool Arnhem Nijmegen) share their very pragmatic approach to delivering software using model driven development. First, Sander will elaborate on the modeling and code generation approach, that relies on smart use cases and smart use case stereotype, a solid software architecture and domain driven design. Next, Rody will take the stage and demonstrate how this approach effects building Java web applications, generating a fully deployable Java EAR live on stage! Although other architectures and frameworks can be applied, Rody will use open source Java frameworks such as Ant, FreeMarker, Struts2, Spring and JPA/Hibernate3.

Statistics

Views

Total Views
4,801
Views on SlideShare
4,141
Embed Views
660

Actions

Likes
0
Downloads
110
Comments
0

9 Embeds 660

http://sanderhoogendoorn.com 505
http://www.accelerateddeliveryplatform.com 59
http://wiki.trinidadplatform.org 46
http://sanderhoogendoorn.org 23
http://www.smartusecase.com 14
http://www.slideshare.net 5
http://www.linkedin.com 5
https://www.linkedin.com 2
https://www.google.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    20090410   J Spring Pragmatic Model Driven Development In Java Using Smart 20090410 J Spring Pragmatic Model Driven Development In Java Using Smart Presentation Transcript

    • Pragmatic model driven development in Java using smart use cases and domain driven development Sander Hoogendoorn, Capgemini Rody Middelkoop, Avisi <TITLE> 1 © Copyright Capgemini 2008 All Rights Reserved
    • Sander Hoogendoorn Capgemini Principal technology officer Capgemini agile thought leader Certified global software engineer (SE4) Chief architect Accelerated Delivery Platform Other Author books (UML, agile) and articles Speaker at conferences Microsoft Partner Advisory Council .NET Columnist Software Release Magazine, SDN Magazine Editorial board Software Release Magazine Editorial board Tijdschrift IT Management Advisory board @Portunity Member expert panel Computable Web www.sanderhoogendoorn.com www.accelerateddeliveryplatform.com <TITLE> 2 © Copyright Capgemini 2008 All Rights Reserved
    • Rody Middelkoop Avisi Technical consultant Hogeschool Arnhem Nijmegen (HAN) Lecturer Software Engineering Other Sun Certified Java Programmer / Developer Author of several articles Contributor Livre Speaker at conferences Web www.avisi.nl rodymiddelkoop.blogspot.com <TITLE> 3 © Copyright Capgemini 2008 All Rights Reserved
    • Agenda Introduction Model driven development Pragmatic model driven development Our approach Benefite Smart use cases Modeling smart use cases Smart use cases in code Domain driven design Domain objects Smart references Value objects Generating code Text templating Using Tobago MDA Demo’s <TITLE> 4 © Copyright Capgemini 2008 All Rights Reserved
    • Model driven development An introduction <TITLE> 5 © Copyright Capgemini 2008 All Rights Reserved
    • Model driven development SH Why? Bridge gap between design and code Improve quality of delivered software Raise productivity Achieve platform and framework independency Increase testability How? Proprietary techniques DSL’s (textual and graphical) UML Database India What? Modeling tool code generation Development tool code generation Intermediate code generation <TITLE> 6 © Copyright Capgemini 2008 All Rights Reserved
    • A pragmatic approach To model driven development <TITLE> 7 © Copyright Capgemini 2008 All Rights Reserved
    • User interface Software Architecture specification 1. Map your 5. Finalize your business processes application to smart use cases Existing Applications Smart use cases Forms Use cases 4. Generate code using a Tobago text template Frameworks MDA engine Specifications Domain Domain objects Model Data / Service Business classes models 2. Create the Test 3. Establish scenario’s domain model your software Databases architecture(s) <TITLE> 8 © Copyright Capgemini 2008 All Rights Reserved
    • Smart use cases What makes a use cases smart? <TITLE> 9 © Copyright Capgemini 2008 All Rights Reserved
    • Different levels of use cases Merge companies Cloud level High summary Merge mortgage systems Kite level Summary Place order Sea level User goal Fish level Sub-function Select product Clam level Too low Insert orderline <TITLE> 10 © Copyright Capgemini 2008 All Rights Reserved
    • Different levels of use cases ‘Regular’ use cases Regular Smart Only user goal level use cases use case use case Use cases ‘as they are intended’ Format Textual Visual A single use case describes a single elementary business process Very Differ in granularity too much Granularity Unified different Law of Large Numbers does not apply Smart use cases Estimates Hard Easier User goal and sub function level use cases Good unit of work and estimation Unit of work Lousy Good A single elementary business process is modeled in a single use case diagram Re-use Incidental Normal A single user goal level use case + auxiliary use cases at sub-function level Very similar granularity Traceability Possible Likely in code <TITLE> 11 © Copyright Capgemini 2008 All Rights Reserved
    • Modeling smart use cases <TITLE> 12 © Copyright Capgemini 2008 All Rights Reserved
    • Modeling smart use cases Approach Create a use case diagram for each elementary business process Model a (user goal level) use case that maps to the elementary business process Name it after the elementary business process Identify the actors executing the use case Identify the sub-function level use cases Model include and extend relationships Identify supporting actors <TITLE> 13 © Copyright Capgemini 2008 All Rights Reserved
    • Identifying sub-function level use cases sub- Guidelines Identify re-use Model one form per use case Model one use case per functional web part Isolate unknown functionality Identify complex functionality Show extensive reporting Model complex calculations Isolate interaction with others Avoid low level (database) interaction <TITLE> 14 © Copyright Capgemini 2008 All Rights Reserved
    • Modeling smart use cases <TITLE> 15 © Copyright Capgemini 2008 All Rights Reserved
    • Smart use case stereotypes Decorating the model <TITLE> 16 © Copyright Capgemini 2008 All Rights Reserved
    • Smart use case stereotypes RM What? Classify model elements Do not add meaning to model Define custom stereotypes Why? Speed up analysis and design Map design to software architecture Generate lots of code! Standarize functional testing <TITLE> 17 © Copyright Capgemini 2008 All Rights Reserved
    • Adding stereotypes SH <TITLE> 18 © Copyright Capgemini 2008 All Rights Reserved
    • Adding stereotypes <TITLE> 19 © Copyright Capgemini 2008 All Rights Reserved
    • Smart use case stereotypes <TITLE> 20 © Copyright Capgemini 2008 All Rights Reserved
    • Mapping to software architecture Smart use cases and domain design <TITLE> 21 © Copyright Capgemini 2008 All Rights Reserved
    • Pages UserControls Presentation Panels Use cases Process Workflow Domain objects / Entities Factories / Repositories Domain Enums / Value objects / Smart references [Mapping] Table Gateways Data / Services Queries [Mapping] Outside world Database <TITLE> 22 © Copyright Capgemini 2008 All Rights Reserved
    • Pages UserControls Presentation Panels Use cases Process Workflow Domain objects / Entities Factories / Repositories Domain Enums / Value objects / Smart references [Mapping] Service gateways Data / Services Service locators [Mapping] Exact SAP BizTalk Java Outside world Services / ESB <TITLE> 23 © Copyright Capgemini 2008 All Rights Reserved
    • Service contracts Presentation Operation contracts Data contracts Use cases Process Services Domain objects / Entities Factories / Repositories Domain Enums / Value objects / Smart references [Mapping] Table Gateways / Service Gateways Data / Services Queries / Service Locators [Mapping] Exact SAP BizTalk Java Database Outside world Services / ESB <TITLE> 24 © Copyright Capgemini 2008 All Rights Reserved
    • Domain driven design A brief introduction <TITLE> 25 © Copyright Capgemini 2008 All Rights Reserved
    • Domain driven design Definition Base complex domain designs on the model Primary focus is on the domain and domain logic In practice Model the domain Apply the extended domain driven vocabulary Build the domain layer Hook in process layer Plug in data / services layer Useful when The domain of your application is core Two tier is not (never?) desirable Application needs to function independent of back office, data sources or services <TITLE> 26 © Copyright Capgemini 2008 All Rights Reserved
    • Domain driven design Vocabulary Entity / Domain object Association Value object Aggregate Repository Factory Service Additional vocabulary Enumeration Smart reference <TITLE> 27 © Copyright Capgemini 2008 All Rights Reserved
    • Example – Class diagram <TITLE> 28 © Copyright Capgemini 2008 All Rights Reserved
    • Defining classes Properties and property types <TITLE> 29 © Copyright Capgemini 2008 All Rights Reserved
    • Properties and property types RM Basic types string, integer, DateTime Include nullable wrapping Enumerations Set up at design time, unchangeable at run-time Genders, Categories Value objects No specific instances Isbn, Email, Url, Money Smart references Changeable at run-time, such as ContractType Associations Cached domain objects such as Country, Nationality First level citizens such as Customer, Product <TITLE> 30 © Copyright Capgemini 2008 All Rights Reserved
    • Value object <TITLE> 31 © Copyright Capgemini 2008 All Rights Reserved
    • Value object - Implementing <TITLE> 32 © Copyright Capgemini 2008 All Rights Reserved
    • Value object – In use <TITLE> 33 © Copyright Capgemini 2008 All Rights Reserved
    • Smart reference <TITLE> 34 © Copyright Capgemini 2008 All Rights Reserved
    • Smart reference - Table <TITLE> 35 © Copyright Capgemini 2008 All Rights Reserved
    • Smart reference - In entity <TITLE> 36 © Copyright Capgemini 2008 All Rights Reserved
    • Smart reference – In use <TITLE> 37 © Copyright Capgemini 2008 All Rights Reserved
    • Text templating <TITLE> 38 © Copyright Capgemini 2008 All Rights Reserved
    • Model driven development – Template engines SH How? Define project Define patterns Import model Generate deliverable Finalize code Additional features Combine model elements Combine types of model elements Remember location Changing the model withour losing code Partial classes Inherited classes Marking code <TITLE> 39 © Copyright Capgemini 2008 All Rights Reserved
    • Tobago MDA – www.accelerateddeliveryplatform.com <TITLE> 40 © Copyright Capgemini 2008 All Rights Reserved
    • Tobago MDA <TITLE> 41 © Copyright Capgemini 2008 All Rights Reserved
    • Tobago MDA <TITLE> 42 © Copyright Capgemini 2008 All Rights Reserved
    • Model driven development - Template engines RM Properties can be used in templates Template engine knows (part of) the UML meta model <TITLE> 43 © Copyright Capgemini 2008 All Rights Reserved
    • Freemarker Sitemesh Presentation DisplayTag Struts2 Process XWork Actions Spring EJB3 Services Data / Services EJB3 DataAccessObjects Spring JPA Domain objects Enums Domain Value objects Smart references Outside world MySQL <TITLE> 44 © Copyright Capgemini 2008 All Rights Reserved
    • Model driven development - Templates <TITLE> 45 © Copyright Capgemini 2008 All Rights Reserved
    • Generate many things e.g. Table create scripts <TITLE> 46 © Copyright Capgemini 2008 All Rights Reserved
    • Generate many things e.g. Table create scripts <TITLE> 47 © Copyright Capgemini 2008 All Rights Reserved
    • Generating code Demo! <TITLE> 48 © Copyright Capgemini 2008 All Rights Reserved
    • www.accelerateddeliveryplatform.com SH <TITLE> 49 © Copyright Capgemini 2008 All Rights Reserved
    • References and questions www.accelerateddeliveryplatform.com sander.hoogendoorn@capgemini.com r.r.middelkoop@avisi.nl Twitter: aahoogendoorn LinkedIn: aahoogendoorn rodym <TITLE> 50 © Copyright Capgemini 2008 All Rights Reserved