Programm- Dokumentation mit JavaDoc

Ähnliche Dokumente
Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

1. Zeilenendkommentare: // geklammerte Kommentare: /*... */ 3. Dokumentationskommentare: /**... */

Programmieren I. Dokumentation mit Javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Einführung in Javadoc

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Programmierpraktikum Java Entdecken Merkblatt 2

Einstieg in die Informatik mit Java

JAVA Kommentieren mit Javadoc

Objektorientierte Programmierung Studiengang Medieninformatik

8. Generics Grundlagen der Programmierung 1 (Java)

1 Klassen anlegen und Objekte erzeugen

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Javakurs zu Informatik I. Henning Heitkötter

Programmieren I + II Regeln der Code-Formatierung

1 Klassen anlegen und Objekte erzeugen

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

12 Abstrakte Klassen, finale Klassen und Interfaces

Programmiermethodik 1. Klausur

Methoden und Wrapperklassen

Programmieren in Java

Programmierstil in Java Coding-Standards und Dokumentation

Kapitel 12 Dokumentation und Zugriffsrechte

Einstieg in die Informatik mit Java

Kommentare, Client-Server, Protokolle

Einführung in die Programmierung

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Einstieg in die Informatik mit Java

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

14 Abstrakte Klassen, finale Klassen, Interfaces

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Probeklausur: Programmierung WS04/05

Programmieren I + II Regeln der Code-Formatierung

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Vererbung und Polymorphie

Properties und Proxies

Vererbung & Schnittstellen in C#

Java Einführung Methoden in Klassen

Besprechung. Übung 1 Software Engineering

5 Grundlagen der Java-Syntax

Einführung in die Programmiersprache Java II

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Computeranwendung und Programmierung (CuP)

Java Vererbung. Inhalt

4. Vererbung Die Klasse Object. Die Klasse Object

Software Engineering Klassendiagramme Einführung

Programmieren in Java

Überschreiben von Methoden

Java für Bauingenieure

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Einführung in die Informatik

Java Einführung Vererbung und Polymorphie. Kapitel 13

3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen.

Objektorientierung (OO)

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Programmieren in Java

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Einstieg in die Informatik mit Java

Einführung in die Programmierung mit Java

Dokumentieren mit Doxygen

Einführung in die Programmierung

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Softwareentwicklung Dokumentation mit JavaDoc

Multimedia im Netz Wintersemester 2012/13

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Klassen mit Instanzmethoden

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

Java I Vorlesung Generics und Packages

3 Objektorientierte Konzepte in Java

Einführung in die Informatik Tools

Einstieg in die Informatik mit Java

Wichtige Prinzipien von C#

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Grundlagen der Informatik Vorlesungsskript

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Wiederholung zur Vorlesung Programmieren

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Transkript:

In diesem Kapitel: Anatomie eines Doc Kommentars Tags @see {@link @param @return @throws und @exception @deprecated @author @version @since {@docroot Beispiel javadoc Programm- Dokumentation mit JavaDoc Any member introducing a dog into the Society's premises shall be liable to a fine of Any animal leading a blind peson shall be deemded to be a cat.. - Rule 46, Oxford Union Society Dokumentierende Kommentare werden in Java üblicherweise als doc comments bezeichnet. Sie dienen dazu, den Programmcode direkt zu dokumentieren. Der Inhalt dieser doc comments kann dann mit Hilfe eines Tools aus den Programmen extrahiert und formattiert werden, typischerweise mit Hilfe von HTML. Doc Comments sind in der Regel knapp gehaltene Referenzdokumentationen. Die Referenzdokumentation beschreibt typischerweise den Kontrakt des dokumentierten Interfaces, der Klasse, des Konstruktors, der Methode, des Datenfeldes in einem Detaillierungsgrad, wie ihn der Programmierer benötigt um das entsprechende Konstrukt einsetzten zu können. Dieser Ansatz unterscheidet sich von einer Spezifikation, welche in der Regel umfangreicher und als separates Dokument vorhanden ist. Eine Spezifikation umfasst in der Regel mehrere Seiten Text für eine einzige Methode. Die Referenzdokumentation im Java Doc sollte im Wesentlichen ein oder zwei Paragraphen sein, eventuell noch kürzer. Die Spezifikation sollte also separat erzeugt und festgehalten werden. Aber es ist möglich, dass aus einem comment doc auf eine Spezifikation verwiesen wird. Die Generierung der doc comments unterscheidet sich je nach Entwicklungsumgebung. Eine Möglichkeit, die Ihnen immer offen steht, ist es, das javadoc Hilfsprogramm einzusetzen, welches mit dem JDK mitgeliefert wird. Wegen dem Hilfsprogramm nennt man auch die generierte Dokumentation in der Regel javadoc, JavaDoc oder Javadoc. Es ist wichtig, dass Sie wenigstens die gängigen Tags kennen, mit denen Sie die Programme dokumentieren können. Falls Sie JBuilder einsetzen, sehen Sie die generierte Javadoc gleich in der Entwicklungsumgebung. Sie müssen auch wissen, wie man den generierten Text interpretiert, wobei Sie darin sicher schon einige Erfahrung haben. Programmdokumentation_JavaDoc.doc 1 / 12

1.1. Die Anatomie eines Doc Kommentars Doc Kemmentare beginnen mit den drei Zeichen und enden beim nächsten. Jeder doc comment beschreibt die Bezeichner, Methode,... die gleich anschliessend folgt. Beispiele: * Title: Java Doc * Description: ein einfaches Beispiel für den Einsatz von JavaDoc * Copyright: Copyright (c) 2000 * Company: abc * @author J.M.Joller * @version 1.0 oder * Erledige, was das aufrufende Objekt erwartet. "Erwartet" wird gemäss dem * ISO 7074-6 Standard definiert, auf Grund der Analyse des bisherigen Verhaltens. public void dwin() throws IntentUnknownException; Die * am Anfang der Zeile nach der Startzeile des Kommentars werden ignoriert, genauso wie Whitespaces (Tabs,...) vor den Sternen. Der erste Satz des Kommentars (Erledige, was das aufrufende Objekt erwartet.) fasst die Bedeutung das anschliessend beschriebenen Konzepts zusammen. Der erste Satz ist wie üblich der Text bis zum ersten Punkt. In praktischen Fällen sollten Sie also in diesem Bereich besonders vorsichtig dokumentieren und die Wortwahl sehr gut überlegen. Das obige Beispiel ist dafür kein gutes Beispiel! Oft sind im Kommentar normale HTML Tags eingebettet. Damit kann man den Text besser formattieren, beispielsweise Tabellen erstellen, etwas hervorheben oder auf weitere Dokumentationen verweisen. Die Titel Tags (<h1>,...) sind reseviert für den generierten HTML Code, die braucht also javadoc intern bereits! An Stelle der Zeichen '<' und '>' sowie & sollten Sie jedoch die in HTML üblichen &lt und &gt sowie &amp verwenden. Sie können also nicht in HTML dokumentieren, weil der Kommentar erst durch javadoc formattiert wird. Falls Sie in Ihrer Dokumentation ein '@' am Anfang einer Zeile haben müssen, muss dies als &#064 kodiert werden, sonst wird angenommen, dass es sich um einen Kommentartag handelt. Es werden nur Kommentare analysiert, die direkt einer Klassendefinition, einem Interface, Methode oder Feld vorangestellt sind. Falls sich etwas anderes als Whitespaces oder Kommentare zwischen einem doc comment und dem, was dieser beschreibt, befindet, wird der Kommentar ignoriert! Programmdokumentation_JavaDoc.doc 2 / 12

falls Sie einen Kommentar am Anfang der Datei schreiben und anschliessend eine Import oder eine Package Anweisung folgt, wird der Kommentar ignoriert. Kommentare gelten immer pro Zeile. Falls Sie in einer Deklaration mehrere Felder definieren, gilt die Dokumentation für die gesamte Zeile. Sie sollten also bei der Verwendung von Kommentaren die Deklarationen sauber aufteilen. Falls für geerbte Methoden keine Dokumentation erstellt wird, erbt diese Methode die Kommentare der Oberklasse. Sie sollten in den Fällen, bei denen Sie die Dokumentation aus der Oberklasse einfach übernehmen wollen in der verfeinerten Klasse einen Kommentar schreiben, aus dem hervorgeht, wo der Benutzer die Dokumentation findet und vorallem erwähnen, dass Sie die Dokumenattion nicht etwa vergessen haben. // Vererbung von Doc Kommentaren : siehe... public void dwim() throws IntentUnknownException { //... 1.2. Tags Doc Comments enthalten Tags, welche spezielle Informationen enthalten. Alle diese Tags beginnen mit einem @, wie beispielsweise @see oder @deprecated. Die Paragraphen mit diesen Tags werden speziell behandelt im generierten Dokument. Daraus resultieren spezielle Paragraphen in der Dokumentation, Verbindungen zu anderen Dokumenten oder weitere spezielle Anweisungen oder Hervorhebungen. In diesem Abschnitt besprechen wir die meisten Tags, ausser @serial, @serialdata und @serialfield, welche mit der Objektserialisierung zusammenhängen. Aller anderer Text (ausser den Tag Paragraphen) wird als Eingabetext für die HTML Generierung aufgefasst. Sie können diesen Text weiter formattieren, beispielsweise mit <p> für Paragraph, <pre> für vorformattierten Text und so weiter. 1.2.1. @see Der @see Tag kreiert einen Querverweis auf eine andere Javadoc Dokumentation. Sie können irgend eine Grösse als Querverweis einsetzen, in der Regel wird es eine Klasse oder eine Methode einer Klasse sein, einfach mit deren Namen bezeichnet. Falls die Methode überladen ist, müssen Sie präziser adressieren, da Sie sonst eventuell zur Methode mit den falschen Parametern geführt werden. Sie können auch auf Interfaces oder Klassen im aktuellen Package verweisen. In diesem Fall mus der Link nicht voll qualifiziert sein.falls Sie das Package wechseln, muss der Link voll qualifiziert sein. Beispiel für @see: - @see Attr - @see com.magic.attr.deck#deck_size - @see <a href="spec.html#attr">attribute Spezifkation</a> Programmdokumentation_JavaDoc.doc 3 / 12

Im ersten Falll wird auf ein Attr im selben Package verwiesen. Im zweiten Fall wird auf eine Konstante in einem bestimmten Package verwiesen. Im dritten Fall wird die Seite und der Anker auf den gesprungen werden soll, explizit aufgeführt. 1.2.2. {@link Der @see Tag wird typischerweise im Zusammenhang mit einem Hinweis am Ende der Dokumentation eingesetzt ("Siehe auch..."). Der Link Tag gehört zu einer Verbindung, die mitten im Text aufgeführt wird. Die Syntax des Tags ist { @link package.class#member [label] Der Unterschied zu @see ist wirklich nur der Ort bei dem Sie den einen oder anderen Tag einsetzen. Beispiel für Link: Ändert den Rückgabewert gemäss {@link #getvalue. 1.2.3. @param Der @param Tag dokumentiert einen einzelnen Parameter einer Methode. Falls Sie @param einsetzen, sollten Sie pro Parameter eine Definition liefern, bzw. einen Link. @param <Parametername> <Parameterbeschreibung> @param max Die maximale Anzahl Worte, die gelesen werden können. 1.2.4. @return Dieser Tag dokumentiert den Rückgabewert eines Methodenaufrufes @return <Beschreibung des Rückgabewerts> @return Die Anzahl Wörter, die gelesen wurden. Programmdokumentation_JavaDoc.doc 4 / 12

1.2.5. @throws und @exception Der @throws Tag dokumentiert eine Ausnahme, die von einer Methode geworfen wird. Falls Sie diesen Tag einsetzen, dann sollten Sie für jede Ausnahme, die geworfen werden kann einen Kommentar abgeben. Der Tag @exception ist äquivalent zu @throws. @throws <Name der Ausnahme> <Kurzkommentar> @throws java.io.ioexception Das Lesen aus dem Eingabestrom schlug fehl; diese Ausnahme wird von Eingabestrom weitergeleitet. @throws UnknownName Der Name ist unbekannt. 1.2.6. @deprecated Mit diesem Tag wird angezeigt, dass etwas veraltet ist, also unter Umständen in späteren Versionen nicht mehr unterstützt sein wird. Sie sollten aber in der Regel auch diese Programmteile so erhalten, dass alte Versionen des Programms problemlos weiterfunktionieren. Der Tag ist also als Warnung gedacht, bei Neuentwicklungen Konstrukte einzusetzen, die unter Umständen durch bessere ersetzt wurden. @deprecated <Hinweis> * Führe das aus, was der Aufrufende erwartet. Die Erwartung wird in... * definiert. * @deprecated Sie sollten besser dwishm einsetzen * @see #dwish public void dwim() throws IntentUnknownException Programmdokumentation_JavaDoc.doc 5 / 12

1.2.7. @author Der @author Tag spezifiziert einen Autor des Programms. @author <Name des Autors> @author Heinrich der Schreckliche Sie können mehrere Autoren angeben, also mehrere @author Tags verweden. 1.2.8. @version Dieser Tag dokumentiert die Version der Methode, Klasse oder was auch immer. @version <Versionsnummer> @version 1.3 1.2.9. @since Dieser Tag zeigt an. ab welcher Version diese Grösse zur Verfügung steht. @since <Version> @since 1.2 Dieser Tag ist hilfreich beim Suchen von Änderungen im Programm oder in den Basisklassen. Programmdokumentation_JavaDoc.doc 6 / 12

1.2.10. { @docroot Die Dateien, welche von javadoc generiert werden, werden in einer Baumstruktur organisiert. Sie können dies leicht selber testen, indem Sie javadoc auf eine der Java Dateien anwenden, welche Kommentare enthält. Die genaue Anordnung der Dokumente im Dokumentenbaum ist allerdings nicht vorgegeben und hängt vom konkreten javadoc Tool ab. Es kann aber leicht passieren, dass Sie zu einem späteren Zeitpunkt weitere Äste in Ihren Baum eintragen möchten. Der Tag { @docroot gestattet es Ihnen in Ihrem Dokument eine relative Position zu einem anderen Dokument anzugeben. { @docroot <Dokument [in der Regel eine HTML Seite]> Sie sollten den Kommentar in <a href="{@docroot/einfuehrung.html"> lesen </a> Es liegt aber an Ihnen, in diesem Fall dafür zu sorgen, dass im Root der generierten Dokumentation eine HTML Datei einfuehrung.html vorhanden ist. Programmdokumentation_JavaDoc.doc 7 / 12

1.3. Beispiel package javadocbeispiel; * Title: Attribut als Namen/Wert Paar * Description: Ein <code>attr</code> Objekt definiert ein Attribut als ein * Name / Wert Paar, wobei der Name ein <code>string</code> * und der Wert ein beliebiges <code>object</code> ist. * * Copyright: Copyright (c) 2000 * Company: Joller-Voss GmbH * @author J.M.Joller * @version 2.1 * @since 1.3 public class Attr { Der Attributname private final String name; Der Attributwert private Object value=null; * Kreiert ein neues Attribut mit dem gegebenen Namen und einem initialen * Wert von <code>null</code>. * @see Attr#Attr(String, Object) public Attr(String name) { this.name = name; * Kreiert ein neues Attribut mit dem gegeben Namen und initalen Wert. * @see Attr#Attr(String) public Attr(String name, Object value) { this.name = name; this.value = value; * Liefert den Namen des Attributs. public String getname() { return name; * liefert den Wert des Attributs. public Object getvalue() { return value; * Setzt den Wert dieses Attributs. Ändert den Wert, den Sie durch Aufrufen * von {@link #getvalue. Programmdokumentation_JavaDoc.doc 8 / 12

PROGRAMMDOKUMENTATION JAVADOC * @param newvalue Der neue Wert für dieses Attribut. * @return Der ursprüngliche Wert. * @see #getvalue() public Object setvalue(object newvalue) { Object oldval = value; value = newvalue; return oldval; * Liefert eine Zeichenkette in der Form <code>name=value</code>. public String tostring() { return name+"='"+value+"'"; Die Ausgabe konnte nicht ins Word importiert werden! Die generierte Struktur war zu komplex für die automatische Umwandlung. Sie finden das Ergebnis auf dem Server / der CD. Programmdokumentation_JavaDoc.doc 9 / 12

1.4. Das javadoc Hilfsprogramm Die Programmdokumentation ist in der Regel keine vollständige Dokumentation. Oft müssen Sie auf externe Dateien für eine vollständige Dokumentation verweisen oder umgekehrt aus einem Dokument auf die javadoc. Das javadoc Hilfsprogramm verfügt über einige Optionen, die Sie setzen können, um detailliertere oder kompaktere Beschreibungen Ihres Packages zu erhalten. javadoc [ options ] [ package source.java ]* 1.4.1. Beschreibung javadoc parsed, analysiert die Deklarationen und Dokumentationen in einem Java Programmcode Set und produziert eine HTML Dokumentation, in der public und protected Klassen, Interfaces, Konstruktoren Methoden und Felder beschrieben werden. javadoc akzeptiert entweder eine Serie von Java Packages oder Dateinamen. javadoc generiert eine.html Datei für jede.java Datei und jedes Packages, welches gefunden wird. Zusätzlich wird ein Klassenbaum tree.html aufgebaut und ein Index aller Klassen, die gefunden wurden, AllNames.html. 1.4.2. Optionen -public zeigt nur public Members -protected zeigt nur protected Members. Dies ist die Standardeinstellung. -package zeigt nur Packages -private zeigt alle Klassen und Members. -version das @version Tag soll auch ausgewertet werden (Standard: nicht) -author das @author Tag soll auch ausgewrtet werden (Standard: nicht) Programmdokumentation_JavaDoc.doc 10 / 12

-noindex generiere keinen Package Index -notree generiere keinen Klassenbaum -d directory schreibe die HTML Seiten in dieses Verzeichnis. javadoc -d C:\opus\public_html\doc java.lang -verbose zeige an, was konkret passiert Programmdokumentation_JavaDoc.doc 11 / 12

PROGRAMM- DOKUMENTATION MIT JAVADOC... 1 1.1. DIE ANATOMIE EINES DOC KOMMENTARS... 2 1.2. TAGS... 3 1.2.1. @see... 3 1.2.2. {@link... 4 1.2.3. @param... 4 1.2.4. @return... 4 1.2.5. @throws und @exception... 5 1.2.6. @deprecated... 5 1.2.7. @author... 6 1.2.8. @version... 6 1.2.9. @since... 6 1.2.10. { @docroot... 7 1.3. BEISPIEL... 8 1.4. DAS JAVADOC HILFSPROGRAMM...10 1.4.1. Beschreibung...10 1.4.2. Optionen...10 Programmdokumentation_JavaDoc.doc 12 / 12