61
書をプログラムにする技術 SimpleModeler + Mindmap & SmartDox 20121022 浅海智晴

文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox

Embed Size (px)

Citation preview

  • 1. !- SimpleModeler + Mindmap & SmartDox20121022

2. 1985-2001 UNIX OS Web COBOL 1993 1995Java 1998Java&XML() SmartDoc(XML)Relaxer() 2001- XMLJava 20022003IPA Relaxer (DSL) 2005-2007 2007-Java 20092-edge2.cc 20095-Lab 3. SmartDoc (1998)[Java] XML XMLHTMLLaTeX Relaxer (2000)[Java] XMLRELAXDSL RELAXJavaW3C XML Schema SmartCase (2004)[Java] XML JavaDSL (2007)[Java] JavaDSL Java SimpleModler (2008)[Scala] ScalaDSL Java SmartDox (2012)[Scala] Emacs org-mode 4. 5. 6. MindmapModelingSmartDox DSL DSLSimpleModeler 7. 8. 9. 10. 11. 12. 13. PIM/PSM/CIM : Computer Independent Model DSLPIM : Platform Independent Model CIMPIM PSM : Platform Specific ModelDSL: Domain Specific LanguageDSL PSM (Java XML ) 14. ! 15. DSL DSL OO OO OO DSL DSL OO OO OO 16. DSL DSL UML!? DSL UML UML DSL DSL DSL 17. SimpleModeling 18. SimpleModeling 19. SimpleModeling OCL OCL OCL 20. UML 21. Modegramming () Modeling + Programming DSL+ DSL (Domain Specific Language) Scala DSL Mindmap DSL (MindmapModeling) Excel DSL, XML DSL, JRuby DSL () SimpleModeling SimpleModeler 22. SimpleModeling SimpleModeling MindmapModeling SimpleModeling (+) SimpleModeler SimpleModeling 23. MindmapModeling 24. MindmapModeling MindmapModeling : : MindmapModeling MindmapModeling 25. MindmapModeling () ()UML () MindmapModeling 26. MindmapModeling () MindmapModeling 27. MindmapModeling MindmapModeling http://www.slideshare.net/asami224/mindmapmodeling http://www.facebook.com/groups/223587707726703/ http://www.facebook.com/groups/223587707726703/doc/370544933030979/ 28. MindmapModeling 29. SimpleModeler 30. SmartDox DSL 31. SmartDox DSL SmartDox https://github.com/asami/smartdoxprocessor SmartDoc Emacs org-mode SmartDox DSL SmartDoc DSL 32. SimpleModeler 33. SimpleModeler https://github.com/asami/simplemodeler SimpleModel Relaxer DSL Scala DSL Scala DSLmaven WebJavaAndroid GrailsGoogle App Engine Python/Java 34. SimpleModeler service http://www.mindmapmodeling.org/service SmartDox DSL 35. SimpleModelerWeb project html CSVimport javaSimpleModel (Maven project)Java convert grails Scala DSL Grails import gae Mindmap (Xmind) Google App Engine/Pythongaejverifytestset importGoogle App Engine/Java gaeo Excel Google App Engine Oil 36. SimpleModeler Web Controller/ Action/TemplateHTML Form JSP index.jsp EntityRepositoryServiceServlet Dojo index.jsp index.jsp DEACustomerController index.jsp DDCustomer GwtCustomerDSYorozuEntityGWTRepositoryService GWT-RPC JDO index.html ServletGwtYorozuEntityDEACustomer GWTCustomerRepositoryServiceImplEditor JDOAtomAtomPub AtomPubServlet AtomYorozuDomainAtom RepositoryServiceServlet DataStore HTML FormREST JSONServletWebRESTYorozuDomain(JavaScript) RepositoryServiceServlet 37. 38. SimpleModeler 0.1.5 Grails 1.0.4 Google App Engine/Python 1.1.9 Eoogle App Engine/Java 1.2.0 Google Web Toolkit 1.6.4 Eclipse 3.4 Java EE Developers + Google App Engine Plugin 39. Groovy/Spring/Hibernate Grails Python/Django/Dojo Toolkit CSV Google App EnginePython SimpleModel Java/JDO/ Scala Google App EngineServlet/JSP/Dojo ToolkitDSL Java Google App EngineJava/JDO/Google Web ToolkitJava Google Web Toolkit //Web 40. CSVdemo.csv #actor,parts,attrs customer,,phone #resource goods,,note #event buy,customer;goods 41. SimpleModelerCSV$ simplemodeler convert demo.csv 42. SimpleModeler 43. SimpleModelerScala DSL(SimpleModel)$ simplemodeler project demo$ cd demo$ simplemodeler import ../demo.csv import.package:com.demo$ mvn compile 44. SimpleModelerScala DSLGrails$ grails create-app grailsdemo$ simplemodeler grails com.demo output:grailsdemo$ cd grailsdemo$ grails generate-all com.demo.DeeBuy$ grails generate-all com.demo.DeaCustomer$ grails generate-all com.demo.DerGoods$ grails run-app 45. SimpleModelerGrails 46. SimpleModelerScala DSLGoogle App Engine/Python$ simplemodeler gae com.demo gae.project:simplemodelerdemo output:gae$ dev_appserver.py gae$ cd gae$ cd appcfg.py update simplemodelerdemo 47. SimpleModelerGoogle App Engine/Python 48. SimpleModelerScala DSLGoogle App Engine/Java[Eclipse]gaej$ simplemodeler gaej com.demo gaej.project:simplemodelerdemo gaej.gwt output:../gaej[Eclipse][Eclipse]Gaej[Eclipse]Google 49. SimpleModelerGoogle App Engine/Java Servlet/JSP/Dojo Toolkit 50. SimpleModelerGoogle App Engine/JavaGoogle Web Toolkit 51. SimpleModelerCSVScala DSLWeb$ simplemodeler convert yorozu.csv$ simplemodeler project yorozu$ cd yorozu$ simplemodeler import ../yorozu.csv$ mvn compile$ simplemodeler html com.yorozu output:target/html.d 52. SimpleModelerCSVyorozu.csv#actor,base,parts,attrs,powers,states,roles,,,,,,,(;),,,,,,,#role#resource,,+,,,(;;;)#event,,;,,+ 53. SimpleModeler(XMind) 54. SimpleModelerScala DSLpackage com.yorozuimportorg.simplemodeling.dsl._importorg.simplemodeling.dsl.datatype._importorg.simplemodeling.dsl.domain._importorg.simplemodeling.dsl.domain.values._case class DER extends DomainResource { term = "" caption = "" brief = description = id("Id", DVIId())attribute("Name", DVNName())}case class DVIId extends DomainValueId { term = "Id" caption = "Id" brief = description = attribute("value", XString)}case class DVNName extends DomainValueName { term = "Name" caption = "Name" brief = description = attribute("value", XString)} 55. SimpleModelerWeb 56. SimpleModeler 57. SimpleModelerScala DSLpackage com.yorozucase class DMS extends DomainState {import org.simplemodeling.dsl._term = ""import org.simplemodeling.dsl.datatype._ caption = ""import org.simplemodeling.dsl.domain._ brief = import org.simplemodeling.dsl.domain.values._description = case class DER extends DomainResource { transition(DEE(), DMS()) term = ""} caption = "" brief = case class DMS extends DomainState { description = term = "" caption = ""id("Id", DVIId())brief = attribute("Name", DVNName()) description = association("", DER(), OneMore)statemachine(DM())transition(DEE(), DMS())} transition(DEE(), DMS())}case class DM extends DomainStateMachine {case class DMS extends DomainState { term = "" term = "" caption = ""caption = "" brief = brief = description = description = state(DMS())transition(DEE(), DMS())state(DMS()) }state(DMS())state(DMS()) case class DMS extends DomainState {}term = "" caption = "" brief = description = } 58. SimpleModeler 59. SmartDox DSL 60. Scala DSL SmartDox DSL 61. END