Nur Schall und Rauch?

Post on 15-Jul-2015

174 views 0 download

Transcript of Nur Schall und Rauch?

Nur Schall undRauch?

Wie systematisch formulierte Namen imAlltag helfen können ...

Jan Christian Krause (AKRA GmbH) auf der #pyunconfhh 2014

Wozu Namen?

Volkswagen Typ 2 T3

Quelle:http://www.vw-bulli.de/de/modelle/t3-bis-1990/modell-nachricht-detailansicht/article/vom-nutzfahrzeug-zum-pkw-t3-caravelle-und-t3-

multivan/news-browse/1.html

Volkswagen Typ 2 T3?

Quelle:http://de.wikipedia.org/wiki/Deutz-Fahr_Agrotron

Nein!

Volkswagen Typ 2 T3?

Quelle:Eigenes Foto

Ja, aber mit Lücken ...

Volkswagen Typ 2 T3?

Quelle:http://www.kaeferblog.com/vw-bus-t3-top-chop

?

Namen erlauben Verifikation.

== VW Typ 2 T3 ==

Konzept Konkretes

Verben in Operationen (I)

Verben in Operationen (II)1. get (74.790) 2. add (6.105)3. create (4.929) 4. delete (4.769)5. update (4.398) 6. send (3.176)7. list (2.658) 8. check (1.944)9. remove (1.861) 10. is (1.845)

11. load (1.762) 12. search (1.742)13. run (1.727) 14. find (1.367)15. echo (1.146) 16. submit (1.041)17. save (1.018) 18. wait (949)19. modify (944) 20. do (913)21. validate (841) 22. register (836)23. insert (728) 24. edit (701)25. query (553) 26. retrieve (539)27. process (535) 28. change (526)29. test (524) 30. describe (500)

Verifikationdurch Namen

(von Operationen)

Was fehlt hier?

Typen von Operationen?Schema pro Operationstyp?

Typ: Sendende Operation (I)Eine sendende Operation informiert ein oder mehrere OBJECTs an eineroder mehreren DESTINATIONs über ein Ereignis. Die Benachrichtigung

geschieht über eine MESSAGE eines bestimmten Typs (E-Mail, Brief, etc.)in einem bestimmten FORMAT. Die MESSAGE wird mit einem

INSTRUMENT verschickt bzw. transportiert. Ein REPORT gibt an, ob dieMESSAGE erfolgreich abgeschickt werden konnte oder nicht.

Typ: Sendende Operation (II)

public void sendInvoice(Customer addressee, Order whatIsPaid) { // ...}

def sendInvoice(self, addressee, whatIsPaid): # ...

OBJECT CustomerDESTINATION ?MESSAGE ?FORMAT ?INSTRUMENT ?

Typ: Sendende Operation (III)

public void sendInvoice(Customer addressee, Order whatIsPaid) { // ...}

def sendInvoice(self, addressee, whatIsPaid): # ...

ERROR OBJECT ?ERROR DESTINATION ?ERROR MESSAGE ?ERROR FORMAT ?ERROR INSTRUMENT ?

Weitere Operationstypen ...Prüfende Operation Schlussfolgernde OperationKonvertierende Operation Erzeugende OperationBeschreibende Operation Duplizierende OperationVerbindende Operation Lesende OperationZusammenführende Operation

Prototokollierende OperationBerechnende Operation

Parsende Operation Deponierende OperationLöschende Operation Rücksetzende OperationSuchende Operation Initiierende OperationSubstituierende Operation Traversierende Operation

Unterm Strich ...Namen können die Verifikation eines SW-Entwurfes ermöglichenStandardisierung / Konventionen für Operationsnamen erforderlichDerzeitiger Katalog enthält 20 OperationstypenKatalog dokumentiert in meiner Dissertation unter http://ediss.sub.uni-hamburg.de/volltexte/2014/7022/

Fragen oderAnmerkungen?

Twitter: @idocitBlog: idocit.blogspot.deMail: jan-christian.krause@akra.deSkype: jan-christian_krause