Kommentierung & Dokumentation SE Programmierstil, Wind Markus, 2002. Überblick/Kommentierung Kommentierung Self-documenting code Arten von Kommentaren.

Slides:



Advertisements
Ähnliche Präsentationen
Mikrocomputertechnik
Advertisements

Benutzerorientierte Designprinzipien für die Microsoft-Guidelines
SCSI = Small Computer Systems Interface
Dokumentation von Software Architekturen unter Berücksichtigung von IEEE 1471 Vortrag an der FH Regensburg © Dr. Ulrich Margull, 2004 Dr. Ulrich.
Seminar „Software aus Komponenten“ Software comprehension Patrick Plieth Freie Universität Berlin, Institut für Informatik
ATutor Vorstellung des Open-Source-Systems ATutor Matthias Hartmann.
Befehlssatz und Struktur
LiLi und die Lernplattform
Agenda Sitzung 2 für den Programmaufbau
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Themen: Neue Funktionen Dynamische Bildgalerie Seminar: Macromedia Flash.
ILPÖ Infoveranstaltung Self–Study-Online GIMOLUS GIS- und modellgestützte Lernmodule für umweltorientierte Studiengänge.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Remus Rechtsfragen von Multimedia und Internet in Schule und Hochschule.
Virtual Communities in der Finanzbranche Communities
1 Analyse von Software-statisch- Darmstadt,den Presentation: Sebastian Schikowski Steve Kenfack.
Präsentation im Seminar Software Engineering verteilter Systeme im Sommersemester 2013 mit dem Titel.
Präsentation zur Veranstaltung XY mit dem Titel. Software Methodologies for distributed systems Hinweis Die vorgegebene Struktur dient lediglich als Anhaltspunkt.
SCSI – Arten und Funktion
2. IT-Klausurtagung 2. Tag Neues beginnen Oktober 2002 in Ludwigslust.
Kommentiertes Vorlesungsverzeichnis auf den Webseiten des ITMK Dateneingabe über Univis.
Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses
Folie 1 Titel Markus Mustermann Agenda Markus Mustermann Studiengang KT98 U12345 WS 2001/2002 Vorlesung Optische AVT Titel.
Konkurrenz-Ballet-Kompagnien: The New York City Ballet Twitter, Facebook, Youtube An Masterlayout anpassen.
Eine Rezeptesammlung der HLW Krems und des BG/BRG Rechte Kremszeile
Die Planungsphase Durchführbarkeitsuntersuchung: fachlich, personell und wirtschaftlich Lastenheft (grobes Pflichtenheft) Glossar Projektkalkulation Projektplan.
Wordpress. Wordpress… Open Source – GNU General Public License Wordpress…
Jugend forscht… …nach dem SEOKanzler SEOKanzler 2013.
Einführung Modellgetriebene Softwareentwicklung, Metamodellierung Stephan Hildebrandt.
Die Zählschleife int s = 0 for (int k=1; k
Informatik 1 Übung 4.
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
COPIE II Know-how Transfer aus EU-Ländern nach Deutschland
1 Ergänzung der Dokumentation zum Thema: Voice over IP Risiken und Sicherheit Jan Stumpf / Jochen Theobald.
Visionaire - Adventure Game Engine Tipps und Konzepte zur Entwicklung eines Spiele Editors Alex Hartmann.
Algorithmen und Datenstrukturen Übungsmodul 1
Einführung in PHP.
Einführung in PHP 5.
(C) , Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 1 Speichern von Flüssigkeiten Lernziele: Den Zusammenhang von Menge und ihrer Änderungsrate.
KOMMUNALE KOMMUNIKATION Projektarbeit Thema Eingereicht von:
Informatik Grundlagen, Seminar 8 WS04 1 Informatik Grundlagen, WS04, Seminar 8 Informatik.
Content Management im Überblick
Josten/Goder Konzepte 2002 Unsere Arbeit mit den neuen Medien Bestandsaufnahme & Ausblick.
Abschlusspräsentation von Fred. Wolfgang Bischoff, Sebastian Krysmanski, Christoph Müller Fred Abschlusspräsentation von Fred Softwarepraktikums 2006 der.
Markus Jochim Universität Essen
Kompetenzen - Hintergrund
Lehrveranstaltung Multimediaprogrammierung
Reporting AUFGABEN in einem Family Office – und wie man sie löst
Technische Kommunikation, Zusammenarbeit und Kommentierung mit RxView|RxHighlight.
Testvorbereitungen, Unit Test
RONI R3D 3. April 2015 RONI R3D1 Koordinierung in 3D.
Tomitas E-Cell Software-Umgebung zur Simulation ganzer Zellen
Grundfunktionen Laden von HTML-Dokumenten Bearbeiten von HTML-Dokumenten Speichern im HTML-Format Drucken (Update) Suchen und Ersetzen Vorschau Exportfunktion.
1 Einordnung (1) Elementare Zustandsräume Konstruktoren für Zustandsräume Operatoren Datenmodell Konkreter Zustandsraum Konkrete Konsistenz- bedingungen.
Schutzvermerk nach DIN 34 beachten XSoft: Einführung.
1 Der Einsatz der legistischen Formatvorlagen bei der BGBl Erstellung und ihre künftige Rolle bei der Texterzeugung 25. Februar 2005 Universität Salzburg.
Calendar+ makes things easier! calendar+ makes things easier!
Projektantrag für die Umsetzung von ITIL
Projektantrag für die Umsetzung von ISO :2011 Untertitel oder Sprecher.
Modul Datenmodelle entwickeln
Karsten Risseeuw Filemaker Module FileMaker Konferenz 2014 Winterthur Filemaker Module Einführung in die Vorteile modularer.
Evangelos Sakellariou Stefan Kreiner SOFTWAR QUALITÄT 1.
…Be readY.
Android Apps selbst gemacht
Informationsveranstaltung zum Projekt Hochschulportal
OZONLOCH Präsentiert von Noah Jallow. GLIEDERUNG Die Ozonschicht Das Ozonloch Probleme Zukünftige Lösung.
Keine Zielgruppen mehr angeben!
HowTo Video Hintergrund Neue Funktion und Apps Basic Video
Die Einmaleinstafel Löse die Aufgaben in der durch die Pfeile vorgegebenen Reihenfolge! ·
 Präsentation transkript:

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Überblick/Kommentierung Kommentierung Self-documenting code Arten von Kommentaren Wie wird kommentiert ? Konsistenz und Automatisierung

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Überblick/Dokumentation Dokumentation interne/externe Dokumentation Probleme von Dokumentationen Funktionen einer Dokumentation Entwicklungsprinzipien Layout von Dokumentationen

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Self-documenting code/Beispiel for(i=1;i<=Num;i++){ MeetsCriteria[i]=true; for(i=2;i<=Num/2;i++){ j=i+i; while(j<=Num){ MeetsCriteria[j]=false; j=j+i; }} for(i=1;i<=Num;i++){ if(MeetsCriteria[i]) System.out.println(i); for(primeCand=1;primeCand<=Num;primeCand++) IsPrime[primeCand]=true; for(factor=2;factor<=Num/2;factor++){ factNumber=factor+factor; while(factNumber<=Num){ IsPrime[factNumber]=false; factNumber=factNumber+factor; } for(primeCand=1;primeCand<=Num;primeCand++) if(IsPrime[primeCand] System.out.println(primeCand);

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Self-documenting code (1) Funktionen: beschreibender Name eine klar definierte Aufgabe verständliches Interface Datenorganisation: Zusätzliche Variablen wenn nötig ADT mit minimaler Komplexität und Schnittstelle

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Self-documenting code (2) Variablen- und Konstanten: beschreibende Namen Verwendung nur für beschriebenen Zweck Konstanten mit beschreibendem Namen Bezeichnung unterscheidet zwischen Typen Layout: Layout entspricht dem logischen Aufbau

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Self-documenting code (3) Kontrollstruktur: Kapselung von zusammengehörenden Anweisungen Normalablauf folgt dem if-Zweig minimale Komplexität der Kontrollstrukturen minimale Verschachtelung keine komplexen booleschen Konstrukte

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Arten von Kommentaren (1) erklärende Kommentare: komplizierte, trickreiche und sensible Stellen ist der Code zu kompliziert ? markierende Kommentare: verbleiben nicht im Code vom Compiler erkannt/nicht erkannt

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Arten von Kommentaren (2) inhaltliche Kommentare: was tut ein Abschnitt im Code ? zusammenfassende Kommentare: kompakte Prosabeschreibung

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, effizientes Kommentieren keine optisch aufwendigen Kommentare schwer wartbar hoher Zeitaufwand keine komplizierte Sprache fehlendes Codeverständnis ? schwer nachvollziehbar Die folgende Folie zeigt Beispiele für ineffiziente Kommentare:

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, effizientes Kommentieren/Beispiel /******************************************* * Mein wunderschön eingerahmter Kommentar * *******************************************/ // mein ineffizient unterstrichener Kommentar // // score aktueller Punktestand // topScore......höchster erzielter Punktestand

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Allgemein (1) keine Wiederholung des Codes was passiert, nicht wie passiert es vor dem zu kommentierenden Codeteil vernünftige Anzahl an Kommentaren

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Allgemein (2) überraschende Effekte werden dokumentiert Links- oder Rechtsshift Multiplikation oder Division keine Abkürzungen in Kommentaren Bugs und undokumentierte Features werden dokumentiert nahe beim betroffenen Code

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Allgemein (3) Verletzungen im Programmierstil dokumentieren break zum Beenden von Schleifen beim Compilerbau schlechten Code neu schreiben anstatt kommentieren Kommentare konsistent halten

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Einzelzeilen Gründe für kommentierte Einzelzeilen: komplexe Anweisung Fehlervermerk/Entwicklungsnotizen gute Eignung für Deklarationen Kennzeichnung von Blockbeginn und -ende

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Blöcke Keine Einzelzeilenkommentare zur Blockbeschreibung Schwere Zuordenbarkeit

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Funktionen allgemeine Beschreibung der Funktion Was tut die Funktion ? Einschränkungen I/O-Spezifikation globale Effekte Komplexe Beschreibung nicht für jede Funktion strCopy() nach obiger Definition überkommentiert

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Deklarationen Einheiten werden kommentiert Bereiche werden kommentiert codierte Bedeutungen werden kommentiert Static final int NEW=1, MODIFY=2,...

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Wie wird kommentiert ? / Klassen gilt auch für Programme, Module, etc. von einem Top-View aus kommentieren Aufgabe Inhalt Nicht zu detailliert Kontaktinformationen

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Konsistenz und Automatisierung Schwer konsistent haltbare Informationen werden, wenn möglich, nicht kommentiert exportierte Funktionen Entwicklungsverlauf Abhängigkeiten... Automatisierungswerkzeuge

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, interne/externe Dokumentation interne Dokumentation bleibt in der Firma / im Entwicklungsteam externe Dokumentation für den Anwender / Endkunden bestimmt

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Probleme von Dokumentationen Fachsprache schwer verständlich, lesbar Konsistenz nicht aktuell, unvollständig, widersprüchlich Gestaltung Layout, fehlendes Stichwortverzeichnis, etc.

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Funktionen einer Dokumentation (1) Anleitungsfunktion Produktpräsentation/Entscheidungsgrundlage Bedienungsanleitung Wartung und Weiterentwicklung der Software Kontroll- und Nachweisfunktion interne und externe Prüfung Kontrolle des Entwicklungsfortschritts

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Funktionen einer Dokumentation (2) Kommunikationsfunktion Basis für Entwickler, Auftraggeber/Auftragnehmer gesteigerte Wiederverwendbarkeit gesteigerte Vergleichbarkeit

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Entwicklungsprinzipien (1) entwicklungsbegleitende Dokumentation Benutzerorientierung Kommentierung Dokumentationswerkzeuge Zeitersparnis, Effizienz

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Entwicklungsprinzipien (2) grafische Darstellung Skizzen, Tabellen, etc. im Allgemeinen ER-Diagramme, UML, etc. im Entwicklungsbereich ansprechende Gestaltung Layout Index, Inhaltsverzeichnis, Querverweise Zusammenfassungen und Beispiele

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Layout von Dokumentationen (1) Gestaltungsmöglichkeiten sinnvoll nutzen Einsatz von Tabellen: effiziente Datenpräsentation Einheiten, Ausrichtung, Linien, etc. Informationen über verwendete Daten Konsistenz sicherstellen

Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Layout von Dokumentationen (2) logische Gliederung Vernünftige Dimensionierung von grafischen Elementen Skizzen, Bilder, Diagramme, etc. Konsistente Verwendung der Layoutmöglichkeiten Schriftgröße für Kapitelüberschriften