Rapid Application Development in Plone - Paul Roe

1,870 views

Published on

A case study regarding how a fairly complex learning system was developed in Plone by way of a tool that takes a UML diagram and converts it into working code.

Published in: Technology
  • Be the first to comment

Rapid Application Development in Plone - Paul Roe

  1. 2. Rapid Application Development in Plone Presenter: Paul Roe Company: The Virtual Limited Building Plone sites since 2002 www. the virtual .co.nz
  2. 3. People get pictures “When you talk code, logic or in abstract it hurts the head of the client and misses that rare opportunity to use the client's eyes and ears at the same time”. Steven Gourley
  3. 4. Pictures <ul>UML (Unified Modelling Language) <ul><li>General purpose visual modelling language.
  4. 5. We're interested in data models (entities and relationships), workflows and events. </li></ul>Gui Tools <ul><li>ArgoUML http://argouml.tigris.org/
  5. 6. Poseidon http://www.gentleware.com/
  6. 7. ObjectDomain http://www.objectdomain.com/ </li></ul></ul>
  7. 8. ArgoUML
  8. 9. Simple Content
  9. 10. Field Properties (tags)
  10. 11. Add Workflow (Statechart)
  11. 12. States and transitions
  12. 13. ArchGenXML <ul><li>http://plone.org/products/archgenxml
  13. 14. code generator
  14. 15. Generates Python code from UML-Models (XMI-Format) </li></ul><ul><li>Take advantage of version control
  15. 16. Plone and Archetypes changes </li></ul>
  16. 17. Generate $ archgenxml -c generate.conf PhotoDoc.zargo schema = Schema(( ImageField( name='photo', widget=ImageField._properties['widget']( label='Photo', label_msgid='PhotoDoc_label_photo', i18n_domain='PhotoDoc', ), storage=AnnotationStorage(), write_permission=&quot;PhotoDoc: Modify Images&quot;, label=&quot;An Image&quot;, ), StringField( name='code', widget=StringField._properties['widget']( label='Code',
  17. 18. Manual Code class photodoc(BaseContent, BrowserDefaultMixin): &quot;&quot;&quot; &quot;&quot;&quot; security = ClassSecurityInfo() implements(interfaces.Iphotodoc) meta_type = 'photodoc' _at_rename_after_creation = True schema = photodoc_schema ##code-section class-header #fill in your manual code here ##/code-section class-header # Methods registerType(photodoc, PROJECTNAME) # end of class photodoc ##code-section module-footer #fill in your manual code here ##/code-section module-footer
  18. 19. Install Copy across product, restart plone and you can install in a plone site.
  19. 20. Something More Complicated
  20. 21. A real project Steve Gourley approached us with the plan to build a web application for his Heath and Fitness Training and Recruitment company (NZIHF).
  21. 22. Simple Workflow
  22. 23. Permissions
  23. 24. Events
  24. 25. Steve Gourley - NZIHF “ A significant feature in attaining a good result for us was the opportunity to see the object and its relationships to other objects” “ We had no idea the thing was then generating code, but we did know what was being talked about and therefore had a richer exploration of what we wanted in a more economic (time, which is money in development too!) way”.
  25. 26. Rapid Application Development in Plone Presenter: Paul Roe Company: The Virtual Limited Building Plone sites since 2002 www. the virtual .co.nz

×