Model-driven Developmentwith Executable UML Models           Rafael Chaves      rafael@alphasimple.com
Small scale vs. large scale           Small                Large                       team  single developer             ...
Small scale vs. large scale      Small                    Large  work properly   understandable by others  (once)         ...
Enterprise software is very hardProblem domains are typically not very complex (informationmanagement + business rules)How...
Two dominant dimensions business domain concerns vs. technological or implementation concerns Completely different beasts ...
Model Driven Development to         the rescue
model: a simplified representation of somethingfrom a particular point of view and with aparticular purpose
Models in software  brainstorming  communicating  documenting  understanding (rev. eng.)          That is not what MDD is ...
Models in MDD are the central artifacts in software (re: source vs. object code) are well-formed are precise* are complete...
MDA pattern              source: MDA Guide (OMG)
Technology-agnostic models                     source: eclipse.org
Code generation                  source: openarchitectureware.org
Model interpretation
MDD with UML
Relevant UML featuresUML has always had support for modeling:   structure: classes, attributes, operations and relationshi...
source: UML 1.5 spec (OMG)
Action Semantics: basic concepts  actions  input/output pins  data flows  activity nodes  activities
Action Semantics: basic actions read/write variable     activity node (block)                         call function create...
newCustomer = new Customer();                                source: UML 1.5 spec (OMG)
current_account.balance = new_balance;                                         source: same
if (factor == 2) { ... }                           source: same
Diagrams vs. Text graphical representation not suitable for AS models != diagrams (no loss of abstraction) textual notatio...
Model-driven Developmentwith Executable UML Models           Rafael Chaves      rafael@alphasimple.com
Upcoming SlideShare
Loading in...5
×

MDD with Executable UML Models

3,985

Published on

Slide deck from a lecture given to a Software Engineering class at UVic (SENG330)

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,985
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MDD with Executable UML Models

  1. 1. Model-driven Developmentwith Executable UML Models Rafael Chaves rafael@alphasimple.com
  2. 2. Small scale vs. large scale Small Large team single developer large feature set small feature set long lived short lived
  3. 3. Small scale vs. large scale Small Large work properly understandable by others (once) throughout time extensible resilient to change work properly (continuously)
  4. 4. Enterprise software is very hardProblem domains are typically not very complex (informationmanagement + business rules)How come?Secondary concerns aboundpersistence, concurrency, (a)synchronism, distribution,transactions, security, caching, replication, logging, ...
  5. 5. Two dominant dimensions business domain concerns vs. technological or implementation concerns Completely different beasts (why treat them the same way?) change rate abstraction level tools skills reuse Current approaches wont cut it
  6. 6. Model Driven Development to the rescue
  7. 7. model: a simplified representation of somethingfrom a particular point of view and with aparticular purpose
  8. 8. Models in software brainstorming communicating documenting understanding (rev. eng.) That is not what MDD is about
  9. 9. Models in MDD are the central artifacts in software (re: source vs. object code) are well-formed are precise* are complete* are executable (directly/code gen.)* are technology-independent*
  10. 10. MDA pattern source: MDA Guide (OMG)
  11. 11. Technology-agnostic models source: eclipse.org
  12. 12. Code generation source: openarchitectureware.org
  13. 13. Model interpretation
  14. 14. MDD with UML
  15. 15. Relevant UML featuresUML has always had support for modeling: structure: classes, attributes, operations and relationships (class diagrams) dynamics: state machines (state diagrams)Added in 1.5 (2003)/2.0 (2005): behavior: action semantics (no standard notation, typically textual) UML finally enabled for MDD
  16. 16. source: UML 1.5 spec (OMG)
  17. 17. Action Semantics: basic concepts actions input/output pins data flows activity nodes activities
  18. 18. Action Semantics: basic actions read/write variable activity node (block) call function create/destroy object conditional (if/switch) read self ("this") loop read/write attribute raise exception create/destroy link send signal call operation
  19. 19. newCustomer = new Customer(); source: UML 1.5 spec (OMG)
  20. 20. current_account.balance = new_balance; source: same
  21. 21. if (factor == 2) { ... } source: same
  22. 22. Diagrams vs. Text graphical representation not suitable for AS models != diagrams (no loss of abstraction) textual notations preferred (action languages) but... isnt UML required to be graphical? but... arent we back to coding?
  23. 23. Model-driven Developmentwith Executable UML Models Rafael Chaves rafael@alphasimple.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×