Your SlideShare is downloading. ×
  • Like
Wie Software-Generatoren die Welt verändern können - Herbstcampus12
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Wie Software-Generatoren die Welt verändern können - Herbstcampus12

  • 401 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
401
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Wie Software-Generatoren die Welt verändern können Stephan Hochdörfer bitExpert AG
  • 2. Wie Software-Generatoren die Welt verändern können Über mich  Stephan Hochdörfer, bitExpert AG  Department Manager Research Labs  S.Hochdoerfer@bitExpert.de  @shochdoerfer
  • 3. Wie Software-Generatoren die Welt verändern können Software-Generator?
  • 4. Wie Software-Generatoren die Welt verändern können Software-Generator? WTF?!?
  • 5. Wie Software-Generatoren die Welt verändern können Software-Generator? Bin ich bald arbeitslos?
  • 6. Wie Software-Generatoren die Welt verändern können Entwickler vs. Geschäftsmann
  • 7. Wie Software-Generatoren die Welt verändern können Standardisieren du sollst!
  • 8. Wie Software-Generatoren die Welt verändern können Generalisieren du sollst!
  • 9. Wie Software-Generatoren die Welt verändern können Generative Programmierung Softwaresystemfamilien, Implementierungskomponenten und Konfigurationswissen
  • 10. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Workflow Generator Generator
  • 11. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Workflow Konfiguration Konfiguration (DSL) (DSL) Generator Generator
  • 12. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Workflow Konfiguration Konfiguration (DSL) (DSL) Implementierungs- Implementierungs- komponenten Generator Generator komponenten
  • 13. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Workflow Konfiguration Konfiguration (DSL) (DSL) 1..n Implementierungs- Implementierungs- komponenten Generator Generator Produkt komponenten Produkt
  • 14. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Workflow Konfiguration Konfiguration (DSL) (DSL) Implementierungs- Implementierungs- komponenten Generator Generator Kunde 11 komponenten Kunde
  • 15. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Workflow Konfiguration Konfiguration (DSL) (DSL) Kunde 22 Kunde Implementierungs- Implementierungs- komponenten Generator Generator Kunde 11 komponenten Kunde
  • 16. Wie Software-Generatoren die Welt verändern können Softwaresystemfamilie Eine Menge von Applikationen mit ähnlichen Eigenschaften wie auch speziellen Ausprägungen einzelner Familienmitglieder.
  • 17. Wie Software-Generatoren die Welt verändern können Generative Programmierung Generator Domain Engineering Domänen- analyse Domänen- design Domänen- implementierung
  • 18. Wie Software-Generatoren die Welt verändern können Generative Programmierung Generator Produkt Domain Engineering App. Engineering Neue Anforderungen Domänen- Anforderungs- analyse analyse Domänen- Produkt- design konfiguration Komponenten, Domänen- DSL, Testen und implementierung Generatoren, Integration Infrastruktur
  • 19. Wie Software-Generatoren die Welt verändern können Standardisieren du sollst!
  • 20. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Framework Java + Maven + Spring + Eclipse
  • 21. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Framework ./samplegenerator |-config |---generator.properties |---gpl.xml |-src |---main |-----java |-----resources |-------frames |-------generator |---------contentProvider.xml |---------features.xml |---------frames.xml |---------generatorContext.xml |---test |-----java |-----resources |-target
  • 22. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Features ./src/main/resources/generator/features.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:gp="http://www.replicatorframework.org/schema/gp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/..."> <gp:feature name="ContactForm" /> <gp:feature name="HintLayer" /> </beans> 51
  • 23. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Frames ./src/main/resources/generator/frames.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:gp="http://www.replicatorframework.org/schema/gp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/..."> <gp:fileframe id="App.ContactForm" sourcePath="frames/webroot/form.frm" exportPath="webroot/form.html"> </gp:fileframe> <gp:frame id="App.ContactForm.HintLayer" sourcePath="frames/webroot/hintlayer.frm"> </gp:frame> <gp:bundle id="App.Resources.Images" sourcePath="frames/webroot/resources/img" exportPath="webroot/resources/img" /> </beans> 52
  • 24. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Frame + Feature./src/main/resources/generator/features.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:gp="http://www.replicatorframework.org/schema/gp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/..."> <gp:feature name="ContactForm"> <!-- refers to the defined FileFrame --> <gp:resource ref="App.ContactForm"/> <!-- refers to the defined ResourceBundle --> <gp:resource ref="App.Resources.Images"/> </gp:feature> <gp:feature name="HintLayer" /></beans> 53
  • 25. Wie Software-Generatoren die Welt verändern können Generative Programmierung: ContentProvider./src/main/resources/frames/webroot/form.frm <html> <head> <title>Sample form</title> </head> <body> <h1><!{hello}!></h1> <form action="index.do" method="post"> <textarea name="msg"></textarea> </form> <!{hint}!> </body> </html> 54 54
  • 26. Wie Software-Generatoren die Welt verändern können Generative Programmierung: ContentProvider./src/main/resources/generator/contentProvider.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:gp="http://www.replicatorframework.org/schema/gp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/..."> <gp:contentProvider id="GenericContentProvider" type="generic"> <gp:rule> <gp:condition> <gp:group type="AND"> <gp:hasFeature name="ContactForm"/> </gp:group> </gp:condition> <gp:bind slot="hello" value="Hello World!"></gp:bind> </gp:rule> </gp:contentProvider> </beans> 55
  • 27. Wie Software-Generatoren die Welt verändern können Generative Programmierung: ContentProvider./src/main/resources/generator/contentProvider.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:gp="http://www.replicatorframework.org/schema/gp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/..."> <gp:contentProvider id="GenericContentProvider" type="generic"> <gp:rule> <gp:condition> <gp:hasFeature name="HintLayer"/> </gp:condition> <gp:bind slot="hint" ref="App.ContactForm.HintLayer" /> </gp:rule> </gp:contentProvider> </beans> 56
  • 28. Wie Software-Generatoren die Welt verändern können Generative Programmierung: ContentProvider Args! Zu viel XML! Ich will doch programmieren....
  • 29. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Konfiguration./config/gpl.xml<?xml version="1.0" encoding="UTF-8"?><features xmlns="http://www.replicatorframework.org/schema/gpl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.replicatorframework.org/... http://www.replicatorframework.org/schema/gpl/gpl-0.0.6.xsd"> <feature name="hintLayer"> <param name="color" type="String" value="#000" /> <param name="autoClose" type="Boolean" value="true" /> </feature> </features> 58
  • 30. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Generator mvn replicator:run
  • 31. Wie Software-Generatoren die Welt verändern können Generative Programmierung Wie kommt nun mein Code in den Generator?
  • 32. Wie Software-Generatoren die Welt verändern können Generative Programmierung Ganz einfach: Importieren ;)
  • 33. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Ziel Steigerung von Produktivität, Qualität und Lieferzeit.
  • 34. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Ziel Optimierte Anwendungen nach Bedarf bauen können!
  • 35. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Ziel Zusammenbau der einzelnen Komponenten automatisieren!
  • 36. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus
  • 37. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus Durch Automatisierung weniger fehleranfällig!
  • 38. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus Reduzierung der Komplexität der Endprodukte.
  • 39. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus Nur ein Code-Repository: Der Softwaregenerator
  • 40. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus Wartungsaufwände reduzieren
  • 41. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus Implementierungs- Merkmal komponente
  • 42. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus Merkmal Kunde
  • 43. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Bonus Kunde Merkmal Implementierungs- komponente
  • 44. Wie Software-Generatoren die Welt verändern können Generative Programmierung: Das Buch
  • 45. Wie Software-Generatoren die Welt verändern können Lust auf mehr? http://replicatorframework.org
  • 46. Vielen Dank!