Model Driven Prototyping
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Model Driven Prototyping

on

  • 1,505 views

Shows a model-driven approach for building prototypes focused on domain models.

Shows a model-driven approach for building prototypes focused on domain models.

Presented at the Vancouver Island Java User Group in September 2009.

Statistics

Views

Total Views
1,505
Views on SlideShare
1,502
Embed Views
3

Actions

Likes
1
Downloads
19
Comments
0

1 Embed 3

http://www.slideshare.net 3

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

Model Driven Prototyping Presentation Transcript

  • 1. Model-driven prototyping Rafael Chaves rafael@abstratt.com
  • 2. Sample application: Business Expense Reporting Tracking and reporting of business-related expenses incurred by employees An employee records expenses and submits them for approval Expense processing dept approves and reimburses the employee, or returns for review (with a comment)
  • 3. Sample application: Business Expense Reporting Expenses are classified by one and only one category (food, transportation, lodging, etc) Must be able to filter expenses by period Must be able to filter expenses by category
  • 4. Proposed design
  • 5. Check-point Does this design satisfy the requirements? Do we understand all the requirements? Does the customer ? How can we be confident about that?
  • 6. How to validate? Traditional options: peer review stakeholders review what else? Not everybody can read UML (or ERD), let alone validate Often those who can read models don't understand the requirements, and vice versa
  • 7. What if we still miss something? Gaps in requirements are costly to address (design < construction < testing << acceptance <<< production) Study: 60% of errors from requirements phase, 15% of errors caught in that phase Longer specification documents or more diagrams won't help. Is there a better way of doing this?
  • 8. Prototype it! We must be able to play with the design . And so should all stakeholders. A prototype shows a design taking life All stakeholders can understand it
  • 9. Throw it away or start from it? Throwaway prototypes are for gathering requirements / feedback Evolutionary prototypes allow completing parts of the system incrementally Different goals: refining requirements vs. strategy for construction Throwaway prototypes typically do not prove something is viable/practical
  • 10. Effective prototyping Not only cheaper, a prototype must be orders of magnitude cheaper than the real thing Prototypes must be quick to build Focus on what we need feedback now, ignore the rest. What should we focus on? Typically, that would be...
  • 11. The domain model is king Most bang for the buck: mistakes in the domain model percolate throughout the application Only true for rich domain models - anemic domain models are worth very little Covers most functional requirements in a typical application How can users play with the domain model without a UI?
  • 12. Model-driven prototyping UI automatically generated from the domain model (cheap/quick) Allows validating structural and behavioural aspects Domain models for MDP are quick and cheap to build (can ignore all other concerns) Not for validation of the UI.
  • 13. Helps with the solution too Forces you to conceive the domain model upfront Leads to a rich domain model Results in a solid map for construction Brings design close to requirement analysis Greatly reduces gaps encountered beyond design
  • 14. Some tools for Model-driven Prototyping Naked Objects (domain-driven prototyping ) Scaffolding (Rails/Grails) and...
  • 15. http://alphasimple.com
  • 16. Model-driven prototyping Rafael Chaves rafael@abstratt.com