MDD with Executable UML Models

4,180 views
4,069 views

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
4,180
On SlideShare
0
From Embeds
0
Number of Embeds
3,133
Actions
Shares
0
Downloads
20
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

×