Dienstag, 25. April 2017

Clean Coding: Vortrag am 8. Mai in Stuttgart (Sven Strittmatter)

Clean Coding und Software Craftmanship sind globale Bewegungen, die sich für eine saubere Codierung einsetzen. Diese Idee ist nicht neu, sondern geht zurück auf sehr frühe Vorstellungen von "Pretty Printing" durch Leerzeilen und Einrückungen von Code. Beispiele hierfür finden Sie in Wikipedia.
Manche Autoren sprachen damals von Software-Code als einem literarischen Kunstwerk, das nicht nur für den Compiler Sinn machen muss, sondern auch für einen Menschen angenehm und verständlich lesbar sein muss.

Diese Forderung wurde umso drängender, je mehr verschiedene Personen denselben Code zu verstehen und ändern hatten. Mehrere Organisationen wie z.B. Sun und Google entwickelten Codierrichtlinien, die die Programmierung vereinheitlichen sollten, so dass jeder Programmierer den Code des anderen lesen kann. Schließlich verbringen Wartungsprogrammierer einen Gutteil ihrer Arbeitszeit mit dem Lesen fremden Codes. Eine einheitliche Formatierung beschleunigt das Verstehen und vermeidet Fehler.

Besonders die agile Entwicklung mit ihrer gemeinsamen Codeownership benötigt sauberen Code. Jeder muss jederzeit jeden Codeteil verstehen und weiterentwickeln können. Individueller Schreibstil ist hier nicht hilfreich.

Clean Coding geht über eine übersichtliche Formatierung und einheitliche Variablennamen hinaus. Clean Coding verlangt vom Programmierer eine hohe Professionalität, die beinhaltet, dass er sich über Qualiätseigenschaften der Software, Designmuster und ständige Verbesserung Gedanken macht. Es geht um die Werte hinter der Arbeit am Code und um die Verantwortung für das eigene Werk.

Die Clean-Coding-Initiative hat um sich gegriffen. Es gibt Software Craftmanship Konferenzen,
ein Software Craftmanship-Manifest, eine Clean Coding Developer Google-Gruppe und Clean Coding Regionalgruppen, auch in Stuttgart.

Weitere Informationen finden Sie hier und in dem originalen Buch
Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship. Addison Wesley, 2008, ISBN 0-13-235088-2.

Am Montag den 8. Mai trägt Dipl.-Ing. (BA) Sven Strittmatter (iteratec GmbH) bei der acm/GI-Regionalgruppe über Clean Coding vor:
http://rg-stuttgart.gi.de/veranstaltungen/mo-08052017-clean-coding.html

Freitag, 21. April 2017

Lebe frei und ungewöhnlich

Ich habe hier einen sehr schönen Wochenkalender für Frauen von Harenberg mit dem Titel "Lebe frei und ungewöhnlich". Jede Woche gibt es eine Postkarte mit einem Zitat einer Frau, die frei und ungewöhnlich lebte. Zwei der Sprüche habe ich mir herausgetrennt, weil sie schön zu mir passen:
  • "Unkompliziertheit ist nicht Einfalt, sondern Klarheit." (Anni Albers, deutsch-amerikanische Textilkünstlerin)
  • "Ich habe beschlossen, so viel wie möglich zu arbeiten, um endlich aus mir herauszuholen, was in mir steckt." (Sonia Delaunay, ukrainische Malerin)
Beides muss man wissen, um meine Arbeit zu verstehen...
Andrea Herrmann

Donnerstag, 13. April 2017

Zitate zur Modellierung

In dem Buch "Jakob Freund, Bernd Rücker: Praxishandbuch BPMN - Mit Einführung in CMMN und DMN. Hanser, 5. Auflage, 2017" fand ich ein paar schöne Zitate zur Modellierung:
  • "Unser Modellierungs-Knigge: Prinzipiell gilt also für strategische Prozessmodelle: eine möglichst korrekte Syntax, zur Not aber eine inkonsistente Semantik." (S. 117)
  • "Jedes Prozessmodell ist unvollständig - aber manche sind brauchbar!" (S. 118)
  • "Je genauer wir das Zusammenspiel ausmodellieren, desto mehr neue Fragen entstehen bzw. desto mehr Ungenauigkeiten und Inkonsistenzen werden erkennbar." (S. 122)

Freitag, 7. April 2017

Stilblüten aus Prüfungen

Neulich habe ich beim Korrigieren einer Prüfung Tränen gelacht. Ein Prüfling hat mit Spatzen auf Kanonen geschossen. Ich habe versucht, mir bildlich vorzustellen, wie das aussieht und warum man das tun sollte, aber es gelang mir nicht so einfach. Unter normalen Umständen würde auch dieser Prüfling so etwas niemals sagen, aber in der Prüfungssituation da verdreht man ganz gerne mal etwas vor Nervosität.

Neulich hat auch jemand meine Sammlung der möglichen Use Case-Beziehungen vervollständigt. Laut Lehrbuch heißen sie ja include und extend . In Prüfungen kommt regelmäßig noch das exclude dazu, was auch irgendwie Sinn machen könnte. Es klingt nach einer Art XOR-Beziehung. Neulich erfuhr ich auch noch von der vierten denkbaren Kombination von Vorsilbe und Verb: intend. Hier wird vermutlich die Absicht dokumentiert. Jetzt haben wir sie also vollständig!
Andrea Herrmann

Samstag, 1. April 2017

Ignorieren ist keine Toleranz.

Theodor Fontane (1819-1898), deutscher Schriftsteller

Seminar Software Engineering mit UML für Fortgeschrittene am 29.+30. Mai 2017

In dem Seminar Seminar "Software Engineering mit UML für Fortgeschrittene" am 29.+30. Mai 2017 vertiefen wir die Anwendung von UML für Anforderungen und Software-Architektur und beschäftigen uns außerdem mit modellbasierter Entwicklung und der Qualitätssicherung für UML-Modelle. Der Kurs findet an der Technischen Akademie Esslingen statt.

Projektmanagement by walking am 13. Mai 2017

Erwandern Sie sich die Prinzipien des Projektmanagements! Vom Stuttgarter Neuen Schloss zum Bärenschlössle führt uns der Weg, 21 Kilometer von 8 bis 20 Uhr.
Dabei erlernen oder wiederholen Sie die Grundlagen des Projektmanagements und wenden diese auf unsere Wanderung an. Planung, Kontrolle und Risikomanagement, Stakeholdermanagement und Teamarbeit sind unsere Themen.
Sie können sich für diese Wanderung hier anmelden.

Dienstag, 14. März 2017

Best of REFSQ Requirements Engineering: Foundation for Software Quality

Neues von der REFSQ Requirements Engineering: Foundation for Software Quality
Essen, 27. Februar bis 2. März
Drei Tage Konferenz mit parallelen Sitzungen fasst man nicht mal schnell in fünf Zeilen zusammen. Ich habe darum das herausgesucht, was auch aus praktischer Sicht handfest nützlich ist. Auf einer wissenschaftlichen Tagung werden ja auch vorläufige Ergebnisse, Forschungsvorschauen, Ideen und Meinungsbeiträge veröffentlicht.
Grundsätzlich scheint der Trend im Requirements Engineering in Richtung Automatisierung zu gehen. Das widerspricht nicht unserer Vision eines kreativen Requirements Engineering, denn es gibt genug unkreative Tätigkeiten in diesem Bereich. Jede langweilige, routinemäßige Tätigkeit ruft ja geradezu nach Automatisierung, um den Kopf für neue Ideen frei zu halten.

Ein guter Teil der Automatisierung betrifft die Identifikation und Analyse von natürlichsprachlichen Anforderungen. Nachdem diese eigentlich chaotische Art der Anforderungsspezifikation in der Praxis immer noch vorherrscht, machen wir das Beste daraus.
  • Prof. Lionel C. Briand gab in seinem Keynote-Vortrag "Analyzing Natural-Language Requirements: The Not-Too-Sexy and Yet Curiously Difficult Research that Industry Needs" eine Übersicht über die automatisierte Bearbeitung von Text allgemein und Anforderungen im Speziellen. Ziel der Textanalyse ist beispielsweise die Übersetzung, Qualitätsprüfung, aber auch die Impact Analyse, d.h. herauszufinden, welche anderen Textstellen noch zu ändern sind, wenn qeine Anforderung sich ändert. Nähere Informationen zum Tool RETA (für Vorlagen-Compliance-Prüfung) finden Sie hier. Das Werkzeug Narcia führt eine Change Impact Analyse durch.
  • Martin Wilmink, Christoph Bockisch: On the Ability of Lightweight Checks to Detect Ambiguity in Requirements Documentation. pp. 327-343. Natürlichsprachliche Anforderungen leiden unter anderem unter dem Nachteil, dass sie uneindeutiger sind als Modelle. Diese Arbeit hat ein Werkzeug namens tactile check entwickelt, das Mehrdeutigkeiten in Anforderungen automatisch findet. Nähere Informationen zum Werkzeug bei Github.
  • Garm Lucassen, Fabiano Dalpiaz, Jan Martijn E.M. van der Werf, and Sjaak Brinkkemper:
    Improving User Story Practice with the Grimm Method: A Multiple Case Study in the Software Industry. pp. 235-252. Hier wird die Qualitätssicherung von User Stories automatisiert mit Hilfe des computerlinguistischen Werkzeugs Automatic Quality User Story Artisan (AQUSA). Die Kombination von AQUSA mit dem Quality User Story (QUS) Framework nennt sich die Grimmsche Methode. Ausprobiert wurde die Methode von 30 Praktikern in drei Firmen für zwei Monate. Die Qualität der User Stories verbesserte sich tatsächlich messbar, die Teilnehmer fanden die Unterschiede jedoch weniger wichtig.
  • Paul Hübner, Barbara Paech: Using Interaction Data for Continuous Creation of Trace Links Between Source Code and Requirements in Issue Tracking Systems. pp. 291-307. Diese Arbeit kümmert sich um das Stiefkind Traceability. Da diese üblicherweise händisch nur nachlässig gepflegt werden, verspricht die automatische Identifikation von Traceability-Verknüpfungen praktische Hilfe. In einer Fallstudie wurden solche Links automatisch im Issue Tracker System (ITS) gefunden und angelegt.
  • Carles Farré, Xavier Franch, and Tudor Ionescu: State of the Practice on Software Release Planning. Dieser Beitrag aus dem PrioRE-Workshop untersuchte die Fähigkeiten von Release-Planungs-Werkzeugen und verfolgte dabei die Idee zu prüfen, wie weit Algorithmen aus der künstlichen Intelligenz dort bereits eingesetzt werden. Ihre frühere Literaturstudie hatte gezeigt, dass von den vielen entsprechenden Forschungsansätzen nur einer den Sprung zum kommerziellen Werkzeug geschafft hatte. Nun untersuchten sie umgekehrt, was sich in real existierenden Werkzeugen befindet. Den Artikel finden Sie online hier.
  • Norbert Seyff, Melanie Stade, Farnaz Fotrousi, Martin Glinz, Emitza Guzman, Martina Kolpondinos-Huber, Denisse Munante Arzapalo, Marc Oriol, Ronnie Schaniel: End-user Driven Feedback Prioritization. Dieser Beitrag aus dem PrioRE-Workshop beschäftigt sich, wie man das Feedback von Endnutzern einer Software automatisiert auswerten und bewerten kann, ohne dass ein Mitarbeiter die Textfülle lesen und sortieren muss. Die Autoren können noch keine fertige Lösung präsentieren, zeigen jedoch erste Ideen für Lösungswege auf. Den Artikel finden Sie online hier.
Weitere handfeste Ergebnisse lieferten folgende empirischen Studien:
  • Irum Inayat, Sabrina Marczak, Siti Salwah Salim, and Daniela Damian: Patterns of Collaboration Driven by Requirements in Agile Software Development Teams -
    Findings from a Multiple Case Study. pp. 131-147. Hier wurden in mehreren Fallstudien die Kommunikationsmuster innerhalb verteilten agilen Teams untersucht. Das erstaunlichste Ergebnis besteht darin, dass die Entfernung keine Rolle zu spielen scheint. Ältere Studien legen eher nahe, dass jede Treppenstufe schon die Kommunikationshäufigkeit und -qualität mindert. Allerdings kann ich mir gut vorstellen, dass hier zwei Faktoren dazu führen, dass es in modernen agilen Teams besser läuft: Erstens wird in agilen Teams die Kommunikation sehr stark betont und geregelt und zweitens ist es für uns heute völlig normal, mit Menschen zusammen zu arbeiten - oder auch privat befreundet zu sein - die sich weit entfernt befinden.
  • Katsiaryna Labunets, Fabio Massacci, and Federica Paci: On the Equivalence Between
    Graphical and Tabular Representations for Security Risk Assessment . pp. 191-208. In zwei Experimenten wurden zwei alternative Notationen für Sicherheitsrisiken miteinander
    verglichen: graphische Notationen und Tabellen. Beide erwiesen sich als gleichwertig
    bezüglich ihrer Effektivität.

Bericht von CreaRE: Sixth International Workshop on Creativity in Requirements Engineering

CreaRE 2017: Sixth International Workshop on Creativity in Requirements Engineering

Das wichtigste Event im Februar war für mich die REFSQ-Tagung, bei der ich seit 2005 Teilnehmerin und meist auch Mitorganisatorin bin. Dieses Jahr bestand mein Beitrag darin, zum sechsten Mal den CreaRE-Workshop zu organisieren. Er fand am 27. Februar in Essen statt. Das Programm bestand aus drei Vorträgen und einer interaktiven Sitzung.
  • Luisa Mich, Victoria Sakhnini and Daniel Berry: Downsizing EPMcreate to Lighter Creativity Techniques for Requirements Elicitation. EPMCreate ist eine kreative Methode, um Requirements zu erheben durch den definierten Wechsel der Perspektive. Die Methode umfasst in ihrer ursprünglichen Form 16 Schritte, was sich als recht aufwändig herausgestellt hat. Darum verfolgte dieser Vortrag die Frage, wie man aus den 16 Schritten einschrittige, zweischrittige, dreischrittige usw. Methoden entwickeln kann und welche davon schon existierenden Kreativitätstechniken entsprechen. Am Ende sollen alle Perspektiven abgedeckt sein.
  • Eduard C. Groen, Matthias Koch and Andreas Maier: Vicus – A Persona for Towns:
    Die Autoren beschäftigen sich damit, Anforderungen für den Bereich Smart Towns zu erheben. Hier sind die Bedingungen etwas anders als sonst im Requirements Engineering. Nicht einzelne Stakeholder oder Gruppen sollen betrachtet werden, sondern ganze Städte oder Dörfer als Gemeinschaft. Darum verwenden die Autoren hier Personas, um eine ganze Stadt zu charakterisieren. Dabei verwenden sie eine entsprechende Vorlage.
  • Nils Kubischok: Imagining the future: A social science approach to the importance of visions in the software development process. Die Sozialwissenschaften wissen, wie erwartungsformend und handlungsweisend Visionen auf Menschen wirken. Im Requirements Engineering wird dies bisher nur erahnt. Dieser State of the Art Artikel zeigt dies in einer Übersicht und begründet die Bedeutung von Visionen im Requirements Engineering.
  • Kristian Beckers, Veronika Fries, Eduard C. Groen and Sebastian Pape: Creativity Techniques for Social Engineering Threat Elicitation: A Controlled Experiment (interactive session): Für dieses Experiment wurden wir in drei Gruppen aufgeteilt. Alle Gruppen verfolgten das Ziel, Social Engineering Bedrohungen zu finden, die einer Konferenz gefährlich werden können. Die einen spielten ein Kartenspiel, ein Serious Game, die anderen sammelten per Brainstorming jeweils Listen von Opfern (victims), Werten (assets), Angriffskanälen (channels), psychologischen Prinzipien (psychological principles), Angriffen (attacks) und Angreifern (attacker) und kombinierten mit Hilfe der Technik Morphological Forced Connections diese miteinander zu konkreten Angriffsszenarien.
Ich war in der zweiten Gruppe. Da wir für jede Kategorie jeweils ungefähr 10 Ergebnisse fanden, überschlug ich schnell, dass wir im Prinzip bis zu einer Million Szenarien bilden können. Das fühlte sich etwas frustrierend an. Womit beginnen? Grundsätzlich glaube ich aber, dass wir so ziemlich alles gefunden haben, was man sich nur denken kann.
Die Gruppe "Kartenspiel" berichtete von Spielspaß und dem Vergnügen, hinterhältig zu sein.
Sie fanden die Karten hilfreich, gerade für Nicht-Experten, die sich über Social Engineering
zuvor noch keine Gedanken gemacht haben, um in die Thematik sehr anschaulich hinein
zu kommen.
Die Ergebnisse der beiden Gruppen werden im Nachgang wissenschaftlich miteinander verglichen. Ich bin gespannt, was dabei herauskommen wird!

Die Vortragsfolien können Sie von der Workshop-Webseite herunterladen unter "Workshop Program" und die zugehörigen Proceedings sind hier online.
Hier finden Sie auch die Proceedings der anderen REFSQ-Workshops.

Best of SQD-Konferenz

Neues von den Software Quality Days SQD
Die SQD fand am 17. bis 20. Januar in Wien statt. Auf dieser eher praxisorientierten Konferenz werden Best Practices und Erfahrungen ausgetauscht. Ich selbst hielt am 20. Januar einen Workshop über Ethische Entscheidungen im Software Engineering ab.

Von den Vorträgen gefielen mir diese am besten, weil sie wirklich Neues und Nützliches brachten:
  • die beiden Vorträge von den Herren Jürgen und Pagano über Test Gap Analyse:
    "Haben wir das Richtige getestet? Erfahrungen mit Test-Gap-Analyse im Hotfix-Test, Iterationstest und Releasetest in der Praxis" und "Oh nein, morgen ist Release! - Test-Gap-Analyse live am Beispiel".
    Es handelt sich dabei um die Visualisierung von zwei unterschiedlichen Aspekten derselben Software als Tree Map: Die Information, welche Codestellen geändert wurden, und welche bei Tests ausgeführt wurden. Besonders kritisch sind diejenigen, die zwar geändert, aber nicht
    getestet wurden. So offenbart sich Nachholbedarf. Natürlich macht man diese Auswertungen
    nicht von Hand, sondern mit dem Werkzeug TeamScale, das sich momentan noch in der
    Pilotphase befindet und kostenlos erhältlich ist. Noch.
    Die Folien des ersten Vortrags mit Screenshots stellen die Autoren hier zur Verfügung.
  • Und mal wieder ein Sneedscher Vortrag über die COBOL-Java-Migration:
    Harry M. Sneed, Chris Verhoef: Validating converted Java Code via Symbolic Execution.
    Wie findet man eigentlich heraus, dass der Java-Code exakt dasselbe tut wie der COBOL-Code? Man hat ihn ja idealerweise bei der Migration restrukturiert! In meiner Vorlesung lehre ich eigentlich, dass es praktisch unmöglich ist, zwei Computerprogramme exakt miteinander zu vergleichen. Behaupten die Theoretischen Informatiker. Sneed ist es trotzdem gelungen: Er vergleicht die Kontroll- und Datenflüsse beider Programme durch symbolic execution.

Montag, 13. März 2017

Seminar Requirements Engineering nach IREB am 24.-26. April 2017

Am 24.-26.04. 2017 findet das Seminar "Requirements Engineering nach IREB" an der Technischen Akademie Esslingen statt. Dieser Kurs bereitet auf die Zertifizierungsprüfung zum CPRE Foundation Level vor.

Donnerstag, 9. März 2017

IHK: Big Data, Cloud-Computing, Webshop nicht von Dauer

Gerade lese ich die Beschreibung des Gutachter-Sachgebiets "Informationstechnologie" unserer Stuttgarter IHK. Hier steht auf Seite 3 oben: "Trend-Begriffe wie Big Data, Cloud-Computing, Webshop sind bewusst nicht als Zusatzgebiete vorgesehen, da nicht zu erwarten ist, dass diese von Dauer sind." Als ich das las, hätte ich mich beinahe verschluckt, weil gerade diese drei Technologien ganz sicher von Dauer sein werden. Sie sind der Dose der Pandora entkommen und werden sich hartnäckig halten, weil ihr Vorteil und Nutzen offensichtlich groß sind. Dieses Merkblatt ist von 2015, aber ich vermute, dieser Satz ist schon älter und wurde bei späterer Überarbeitung einfach überlesen. Hoffe ich.

User Status

Du bist nicht angemeldet.

Aktuelle Beiträge

Clean Coding: Vortrag...
Clean Coding und Software Craftmanship sind globale...
AndreaHerrmann - 25. Apr, 18:41
Lebe frei und ungewöhnlich
Ich habe hier einen sehr schönen Wochenkalender...
AndreaHerrmann - 21. Apr, 18:18
Zitate zur Modellierung
In dem Buch "Jakob Freund, Bernd Rücker: Praxishandbuch...
AndreaHerrmann - 13. Apr, 14:50
Stilblüten aus Prüfungen
Neulich habe ich beim Korrigieren einer Prüfung...
AndreaHerrmann - 7. Apr, 12:18
Ignorieren ist keine...
Theodor Fontane (1819-1898), deutscher Schriftsteller
AndreaHerrmann - 1. Apr, 16:19

Links

Suche

 

Status

Online seit 1411 Tagen
Zuletzt aktualisiert: 25. Apr, 18:42

Credits

vi knallgrau GmbH

powered by Antville powered by Helma


xml version of this page
xml version of this page (with comments)

twoday.net AGB


Profil
Abmelden
Weblog abonnieren