Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Whole Platform LWC11 Submission

237 views

Published on

Whole Platform presentation at Language Workbench Competition 2011

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Whole Platform LWC11 Submission

  1. 1. Whole PlatformLWC11 Submission Riccardo Solmi, Enrico Persiani
  2. 2. Outline• Whole Platform highlights• LWC11 Solution (for offline reading)• LWC11 Solution live demo
  3. 3. Whole Platform highlights• Vertically Integrated System• Domain level Agile Development• Mature for your business (for offline reading)
  4. 4. Vertically Integrated System• Fresh design and implementation of all of the enabling technologies • no mashup of existing tools and languages• From frameworks to domain languages • metamodeling, behavior, graphical, notations, and persistences frameworks • Models, Grammars, Actions, Queries, Workflows, Tests, Artifacts, ..., DSLs
  5. 5. Domain level Agile Development• Full domain level solutions with graphical auto-layouted notations • no abstractions on top of 3GL text code• Agile approach • hot deploy even incomplete or updated models (structure, behavior, and tooling) • testing with automation facilities
  6. 6. Mature for your business• Open Source licence (LGPL)• Real world applications (TASGroup) • used in production since 2005 • more than 40 products • worldwide customers • Electronic Money and Payment Systems markets
  7. 7. Mature for business• In TASGroup the Whole Platform is used for: • Data formats (~20 SEPA, ~900 FIN, ~300 RNI) • ~200 configurations of Software Product Lines • ~1000 Workflows • ~300 test cases • Database archiving and migration • Rich clients: Desktop (Eclipse), Web (JSF, GWT)
  8. 8. Mature for business• Performance (SepaCreditTransfer, per server) • 44000 transactions per hour • including for each: parsing, validation, enrichment, translation, assembly, bulking, tracing, routing
  9. 9. MessageformatDSL forAnalysts
  10. 10. MappingDSL forAnalysts
  11. 11. MappingDSL forAnalysts
  12. 12. Rules DSLfor Analysts
  13. 13. DB Archiving
  14. 14. Workflows BPEL
  15. 15. Web Notation JSF
  16. 16. Web Notation GWT
  17. 17. Web Notation GWT
  18. 18. TestingWorkflows
  19. 19. TestingJMS
  20. 20. TestingSQL
  21. 21. Compare Models
  22. 22. Compare Grammars
  23. 23. Solution Overview• two grammars for Entities and Instances• one metamodel for ER• two actions for behavior and tooling• a solution deployer• a testsuite
  24. 24. Grammars DSL• familiar BNF terminology• enriched with intentional constructs• graphical railroad notation• parser, unparser, notation, and derived metamodel
  25. 25. Entities and Instances grammars
  26. 26. Examples
  27. 27. Models DSL• focused on structure definition• compact tabular notation• scale to large languages• interpreter + generator
  28. 28. ER metamodel
  29. 29. Actions DSL• familiar tooling terminology• mimic Eclipse toolbar and context menu notation
  30. 30. Entities and Instances Actions
  31. 31. Instances Validator
  32. 32. Queries DSL• familiar query terminology (XPath, SQL)• safe traversal semantics• is all about sequences• templates with variables (Commons DSL)• JIT compiler to iterator framework
  33. 33. Entities to ERin out
  34. 34. Entities to XMLin out
  35. 35. Artifactsgenerator
  36. 36. Derived properties• Generate the Entities metamodel from the grammar• Add an optional behavior feature• Redeploy and add the behavior
  37. 37. Debugging
  38. 38. Tests DSL• familiar unit testing terminology (JUnit 4)• fluent assertions• domain notations in fragments• interpreter + generator
  39. 39. Testsuite
  40. 40. Tests
  41. 41. Autocomplete test

×