Dokumentationswerkzeuge Sven Müller, Thomas Hornberger

Größe: px
Ab Seite anzeigen:

Download "Dokumentationswerkzeuge Sven Müller, Thomas Hornberger"

Transkript

1 Sven Müller, Thomas Hornberger Software - Engineering Berufsakademie Horb Studiengang Informationstechnik 03 Florianstraße Horb musv@ba-horb.de hoth@ba-horb.de Abstract: Im Prozess der Softwareentwicklung ist ein Verzicht auf eine Dokumentation aus heutiger Sicht undenkbar. Der Zeitaufwand eines Programmierers für eine Dokumentation ist dem des eigentlichen Programmierens gleichzusetzen. Jedes Unternehmen fordert von seinen Mitarbeitern eine vernünftige und wieder verwertbare Dokumentation, um die immer kürzer werdenden Innovationszyklen meistern zu können. In dieser Arbeit wird auf die grundsätzlichen Vor- und Nachteile, sowie Probleme bei einer Software- Dokumentation eingegangen. Besonderes Augenmerk richtet sich auf die Kommentierung von Quellcode. Insbesondere hier wird in der Praxis häufig auf die Unterstützung von n gesetzt. Die Komponenten und Einsatzgebiete einiger wichtiger Werkzeuge werden beschrieben, sowie deren Effizienz anhand von Beispielen erläutert. Sven Müller, Thomas Hornberger Seite 1 von 26

2 Inhaltsverzeichnis 1. EINLEITUNG SINN UND NOTWENDIGKEIT VON DOKUMENTATIONEN KLASSIFIZIERUNG ENTWICKLUNGSPRINZIPIEN PROBLEME VON DOKUMENTATIONEN SELF DOCUMENTING CODE EINLEITUNG BEISPIEL VARIABLEN UND KONSTANTEN FUNKTIONEN DATENORGANISATION LAYOUT KONTROLLSTRUKTUR VERSCHIEDENE DOKUMENTATIONSWERKZEUGE EINLEITUNG DOC KDOC CCDOC PERCEPS JAVADOC DOXYGEN FAZIT LITERATURVERZEICHNIS INTERNET-REFERENZEN Sven Müller, Thomas Hornberger Seite 2 von 26

3 1. Einleitung 1.1 Sinn und Notwendigkeit von Dokumentationen Gute Dokumentation unterstützt die Entwicklung von und den Umgang mit Software in hohem Maße. Sie bietet eine Anleitung für den Anwender und Endkunden im Umgang mit dem Produkt. In diesem Zusammenhang ist keinesfalls zu unterschätzen, dass die Zufriedenheit eines Kunden mit dem Produkt mit dem Verständnis für das Produkt ansteigt. Eine gute Dokumentation kann ein wertvolles Hilfsmittel bei der Präsentation der Software gegenüber potentiellen Kunden sein und als Entscheidungsgrundlage dienen, welche vorab begutachtet werden kann. Eine technisch fundierte, interne Dokumentation unterstützt das Entwicklerteam bei der Wartung und Weiterentwicklung der Software. Sie ist ein wichtiges Dokument innerhalb von internen und externen Prüfungen, wodurch das Entwicklerteam eine Kontrollfunktion für den Entwicklungsfortschritt des Produkts erhält. Die Projektdokumentation bildet eine gemeinsame Gesprächsgrundlage zwischen vielen am Produkt beteiligten Personen und Personengruppen. Zwischen Entwicklern beispielsweise ebenso wie gegenüber einem Kunden. 1.2 Klassifizierung Der organisatorische Ablauf einer Dokumentation lässt sich in zwei Bereiche unterteilen: - Interne Dokumentation: Diese Form der Dokumentation wird nicht veröffentlicht. Sie bleibt innerhalb der Firma beziehungsweise innerhalb des Entwicklungsteams. Ihre Funktion liegt in der Unterstützung der Entwicklung und Wartung des eigenen Softwareproduktes. - Externe Dokumentation: Die externe Dokumentation ist für die Veröffentlichung konzipiert und dient dem Anwender und Endkunden als Bedienungsanleitung für die Software. 1.3 Entwicklungsprinzipien Das nachfolgende Kapitel beschäftigt sich mit wichtigen Anhaltspunkten für eine gute und erfolgreiche Dokumentation von Softwareprodukten. Bei einer Dokumentation handelt es sich um einen Entwicklungsbegleitenden Prozess, die Ausarbeitung der Dokumentation muss mit der Entwicklung des Quellcodes Schritt halten. Weiterhin muss eine Orientierung an der beabsichtigten Zielgruppe erfolgen, deren Wissen und deren Einsatz der Dokumentation sind entscheidende Kriterien für die Gestaltung der Dokumentation. Neben der Dokumentation ist eine gute Kommentierung des Quellcodes zwingend erforderlich. Sven Müller, Thomas Hornberger Seite 3 von 26

4 Der Einsatz von grafischen Elementen ist unbedingt anzuraten, er erleichtert das Erfassen und Verstehen der Dokumentation deutlich. Dies gilt sowohl für Skizzen, Tabellenund Ähnlichem in allgemeiner Hinsicht als auch für domänenspezifische Visualisierungstechniken wie ER-Diagramme oder UML. Der Einsatz von Ein Einsatz von n empfiehlt sich, wenn dieser möglich ist. Der Vorgang gewinnt an Zeit und Effizienz und die Motivation für die Entwicklung der Dokumentation wächst. 1.4 Probleme von Dokumentationen Nachfolgend finden sich schwere Fehler bei der Dokumentationsentwicklung, welche den Nutzen der Dokumentation zumindest in hohem Maße schmälern: - Fachsprache: Eine Dokumentation darf höchstens jenes Maß an Fachsprache beinhalten, welches die Zielgruppe mit Sicherheit versteht. Demzufolge ist die diesbezügliche Gestaltung stark vom Anwender abhängig. Generell kann jedoch angeführt werden, dass leicht verständliche Sprache in den wenigsten Fällen ein Fehler ist. - Konsistenz: Eine in sich inkonsistente Dokumentation stellt ein erhebliches Problem bei deren Verwendung dar. Häufige Fehler in dieser Hinsicht liegen in fehlender Aktualität, in Unvollständigkeit und in Widersprüchlichkeit. - Gestaltung: In diesem Bereich können zwei unterschiedliche Arten von Fehlern gemacht werden. Zum Einen kann durch ein nicht ansprechendes Layout die Motivation der Verwendung deutlich herabgesetzt werden, und zum Anderen stellen inhaltliche Fehler wie ein nicht vorhandenes Stichwortverzeichnis ein Hindernis in der Benutzung dar. Sven Müller, Thomas Hornberger Seite 4 von 26

5 2 Self documenting Code 2.1 Einleitung Mit dem Anwachsen an Quellcode in einem Projekt wird die Übersicht schlechter. Deswegen ist es sinnvoll seinen Quellcode in einer gewissen Form zu schreiben. Diese Form nennt man auch Self-documenting Code. Unter Self-documenting Code versteht man die Generierung von Quellcode mit einer sinnvollen und möglichst selbsterklärenden Syntax. Dies bezieht sich auf das Layout sowie auf die Wahl von Klassen-, Funktions- und Variablennamen. 2.2 Beispiel Der durch self-documenting code hinsichtlich der Lesbarkeit und des Verständnisses entstehende Vorteil lässt sich gut anhand eines Beispiels nachvollziehen. Die folgende Tabelle zeigt zweimal den, in Bezug auf seine syntaktische Bedeutung, gleichen Code. for(i=1;i<=num;i++){ MeetsCriteria[i]=tru e; for(i=2;i<=num/2;i++ ){ j=i+i; while(j<=num){ MeetsCriteria[j]=fal se; j=j+i; }} for(i=1;i<=num;i++){ if(meetscriteria[i]) System.out.println(i ); for(primecand=1;primecand<=num;primec and++) 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;primec and++) if(isprime[primecand] System.out.println(primeCand); Sven Müller, Thomas Hornberger Seite 5 von 26

6 Die rechte Version ist ungeachtet der oben stehenden Tatsache deutlich besser lesbar und verständlich. Durch die Verwendung von sprechenden Variablenbezeichnern, durch die Einrückungen und durch die Trennung des Initialisierungsteils mittels einer Leerzeile wurde wesentlich besser kommentierter Code geschrieben, ohne eine einzige Zeile klassischen Kommentar verwendet zu haben. Es folgt nun ein weiteres Beispiel: Falsch: int status = NEW; // der Integervariablen status wird der Wert der Konstante NEW zugewiesen Richtig: int status = NEW; // Art der Benutzeranmeldung 2.3 Variablen und Konstanten Der Bezeichner ist so zu wählen, dass er die Aufgabe beziehungsweise Verwendung der Variablen oder Konstanten beschreibt. Gute Beispiele sind NOfUsers, maxvalue oder currentproduct. Bei Schleifenzählern oder in ihrer Verwendung klar erkennbaren Hilfsvariablen kann hiervon Abstand genommen werden. Insbesondere bei codierten Bedeutungen ist auf gute Bezeichner zu achten, wie am nachstehenden Beispiel gut erkennbar ist. Beispiel: static final int NEW_USER = 1, MODIFY_USER = 2,... Eine subjektiv sehr unterschiedlich wahrgenommene Kommentierungsvariante ist die im Allgemeinen als Hungarian Notation bezeichnete Möglichkeit, den Typ der Variablen im Namen durch ein oder mehrere dem eigentlichen Bezeichner vorangestellte Symbole zu kennzeichnen. Als interessante Variante sei sie jedoch angeführt. 2.4 Funktionen Funktionen werden durch einen sprechenden Namen bezeichnet, dieser muss ihre Aufgabe beschreiben. In diesem Sinne gut gewählte Namen sind beispielsweise checknumber(), getnoforders() oder writesum(). Eine Funktion soll eine, und nur eine klar definierte Aufgabe durchführen. Das Interface der Funktion ist selbsterklärend und beschreibt die Bedeutung der einzelnen Parameter. Ein Beispiel für eine entsprechend gestaltete Schnittstelle ist calculateprims(int from, int to) oder checkuserstate(string username, String password). Sven Müller, Thomas Hornberger Seite 6 von 26

7 2.5 Datenorganisation Es ist besser zusätzliche Variablen zu verwenden und auf die maximal mögliche Wiederverwendung zu verzichten, wenn dadurch die Lesbarkeit des Codes erhöht wird. Bei der Verwendung von abstrakten Datentypen (ADT) ist darauf zu achten, dass dieser die gegebene Aufgabe effizient bewältigen kann, jedoch keine beziehungsweise so gering wie möglich darüber hinaus gehende Funktionalität besitzt. Insbesondere bei ADT ist auf eine gut lesbare Schnittstelle zu achten. 2.6 Layout Das Layout sollte an allen Stellen konsistent gehalten werden, dies betrifft beispielsweise die Form der Einrückungen. Darüber hinaus sollte es dem logischen Aufbau des Programms entsprechen, in diesem Zusammenhang ist insbesondere auf die Reihenfolge von Methoden und Blöcken wie der Deklaration von globalen Variablen oder Konstanten zu achten. 2.7 Kontrollstruktur Zusammengehörende Anweisungen werden gekapselt, um diese Blockbildung auch zum Ausdruck zu bringen. Der normale Programmablauf folgt dem if-zweig und nicht dem else-zweig. Die verwendeten Kontrollstrukturen sind hinsichtlich ihrer Komplexität gerade so groß dimensioniert, als dies zur Erfüllung ihrer Aufgabe erforderlich ist. Auch die Verschachtelung sollte auf das minimal mögliche Maß reduziert werden. Abfragen unter Verwendung von booleschen Konstrukten sollten so einfach wie möglich zu halten sein, besondere Vorsicht ist bei der Anwendung des NOT-Operators geboten. Sven Müller, Thomas Hornberger Seite 7 von 26

8 3. Verschiedene 3.1 Einleitung Oft ist es nicht ausreichend seinen Quellcode in einer bestimmten Form zu schreiben. Je größer der Umfang eines Projektes, desto schwieriger wird es für andere, sich in diesen einzulesen. Um diesem Problem Abhilfe zu schaffen, gibt es eine Vielzahl von Werkzeugen, so genannte. Mit deren Hilfe ist es nicht nur möglich innerhalb des Quellcodes Kommentare zu generieren, sondern es lassen sich auch externe Dokumente erzeugen, in denen der Quellcode beschrieben wird. Auf den folgenden Seiten wird auf die bedeutendsten dieser eingegangen. 3.2 DOC++ DOC++ ist ein Dokumentationssystem für C, C++, IDL und Java, welches sowohl TeX- Ausgabe für sinnvolle Ausdrucke als auch HTML-Seiten für sinnvolle Online- Darstellungen der Dokumentation erzeugen kann. Die Dokumentation wird direkt den C/C++/IDL-Header- bzw. -Quelldateien oder den Java-Klassendateien entnommen. Beispiel einer mit DOC++ kommentierten c++ Klasse: /** Function to send information to the immediate uplink, to be gathered using 1 on error, 0 on success. int dm_sendinfo (const char * TAG, /// TAG to identify information const char * string /// The information string. ) Beispielausgabe: Sven Müller, Thomas Hornberger Seite 8 von 26

9 3.3 KDOC KDOC ist ein C++ Dokumentationswerkzeug, welches speziell für die Kommentierung von KDE-libraries ausgelegt ist. Es wurde entwickelt, da man mit DOC++ unzufrieden war. Die Syntax ähnelt Javadoc. KDOC extrahiert speziell formattierte Informationen über die Klassen aus den Header- Dateien und generiert HTML-Dateien, Latex oder man pages. Beispiel eines mit KDOC dokumentierten C++ Header-Dateien: // von KDOC ignorierter Kommentar /** * Dies ist meine Klasse. Die Klasse ist sehr einfach. * Kurzbeschreibung der Klasse Mein Name 0.1alpha (string) class MyClass : public MyBaseClass { public: // ein leeres Doc-Tag. /** void mymethod(); // eine Methode mit mehr Information /** * Ich bin eine dokumentierte Methode. Sven Müller, Thomas Hornberger Seite 9 von 26

10 }; * * Hier steht noch mehr Information über die Methode. * anotherclass#someothermethod athirdclass * wert ist Integer para parameter parb parameter. int mycutemethod( int para, const char *parb ); Sven Müller, Thomas Hornberger Seite 10 von 26

11 3.4 Ccdoc ccdoc ist ein kommandozeilen-orientiertes, einfach zu bedienendes Werkzeug um HTML-Dokumentationen aus C/C++ Header-Dateien zu generieren, also eine Art javadoc für C/C++ Entwickler. ccdoc wurde von Joe Linoff entwickelt und auf unterschiedliche Plattformen portiert. Der Quellcode wurde sogar öffentlich gemacht. So konnte (und kann) ccdoc von anderen Leuten auch auf weitere Plattformen portiert werden. Beispiel: // ================================================ // This is the brief description of the simple function. // // The simple function takes in two integer arguments, adds them together // and then returns the result. x The y value. y The x value. The sum of x and y. //@} // ================================================ extern "C" unsigned simple(unsigned x,unsigned y); Beispielausgabe: Sven Müller, Thomas Hornberger Seite 11 von 26

12 3.5 PERCEPS PERCEPS erzeugt aus C/C++-Header-Dateien eine Dokumentation in HTML. Das Ausgabeformat kann aber angepasst werden. PERCEPS ist ein Perlä-Skript, welches die C/C++ Header-Dateien parsed. Mithilfe von Templates passt es seine Ausgabe nach Wunsch an. Die Formate TeX, RTF, man page und Plain Text sind auch möglich. Beispiel: //! author="hannes" // Wird nicht interpretiert. //: Eine Beispiel-Klasse // Hier steht die detaillierte Beschreibung der Klasse. class Base { // Weitere Klassenbeschreibung // <I><B><FONT COLOR="red">HTML Code!</FONT></B></I> //!italic: Benutzerdefinierter Typ int private1; public : Base(int arg1); //: Konstruktor int public1(); //: eine öffentliche Objekt-Methode // Hier steht eine detaillierte Beschreibung der Funktion. // /* Dieser Kommentar wird ignoriert float public2( float arg1, float arg2 ); //: Weitere Methode //!param: arg1 Beschreibung von arg1 //!param: arg2 Beschreibung von arg2 class NestedClass { //: Eine innere Klasse public: int nestedvar1; float nestedvar2; float nestedmember2( float arg1, float arg2 ); }; protected : }; float protected1; //: Geschützte Objekt-Variable Sven Müller, Thomas Hornberger Seite 12 von 26

13 Beispielausgabe: Sven Müller, Thomas Hornberger Seite 13 von 26

14 3.6 JavaDoc JavaDoc ist ein Software-Dokumentationswerkzeug, das aus Java-Quelltexten automatisch HTML-Dokumentationsdateien erstellt. Für zusätzliche Informationen können spezielle Kommentare im Quelltext eingefügt werden. Kommentare können dabei für Interfaces, Klassen, Methoden und Felder über spezielle Doclet-Tags definiert werden. JavaDoc wurde ebenso wie Java von Sun Microsystems entwickelt und ist Bestandteil des Java 2 Software Development Kits (J2SDK). Als Doclet bezeichnet man in Anlehnung zu Applets Module, die von n zur Verarbeitung und automatischen Erzeugung von Dokumentation und eventuell auch Code eingesetzt werden. Das in JavaDoc integrierte Standard-Doclet erzeugt aus Java-Quelltexten eine API- Dokumentation in HTML. Es existieren zahlreiche alternative Doclets, um die API- Dokumentation in anderen Formaten, z.b. dem Windows Help Format, Framemaker / MIF, XML oder PDF zu erzeugen. Derzeit erfreuen sich noch Doclets zur Erzeugung von Code großer Beliebtheit, auch wenn sie mittelfristig wohl durch die in Java 1.5 hinzugefügten Annotationen abgelöst werden. Die neuen Annotationen in Java 1.5 werden vom Compiler nicht mehr ignoriert und sind somit auch im.class-file enthalten. Mit Hilfe des neuen Paketes java.lang.annotations können diese Informationen verarbeitet werden. public class Parent public void foo(int x) { System.out.println("This method is deprecated and should not be used.");}} Sven Müller, Thomas Hornberger Seite 14 von 26

15 Beispiel: /** * Diese Klasse soll die Verwendung von Feldern bei Methodenaufrufen * demonstrieren. Insbesondere wird das Konzept des CALL BY REFERENCE gezeigt. * bisanz 1.0 public abstract class CTest { /** * Dieses ist unsere Feldgröße. Alle unsere Felder in dieser Klasse * sollen genau so groß sein. private static int ARRAY_SIZE = 3; /** * Die Startroutine des Programms. * args Kommandozeilenparameter. Sie werden hier nicht verwendet. public static void main (String[] args) { int[] meinfeld = { 17, 23, -2 }; System.out.println("meinFeld:"); printarray(meinfeld); twice(meinfeld); System.out.println("meinFeld:"); printarray(meinfeld); int[] nocheinfeld = twicecopy(meinfeld); System.out.println("meinFeld:"); printarray(meinfeld); System.out.println("nochEinFeld:"); printarray(nocheinfeld); }} Sven Müller, Thomas Hornberger Seite 15 von 26

16 Beispielausgabe javadoc: Sven Müller, Thomas Hornberger Seite 16 von 26

17 3.7 Doxygen Doxygen ist ein Software-Dokumentationswerkzeug, das aus Quelltexten verschiedener Programmiersprachen automatisch eine Dokumentation erstellt. Doxygen wird seit 1997 als Dokumentationswerkzeug für C und C++ Quelltexte entwickelt. Gedacht war es für die Dokumentation großer Softwareprojekte. Dazu müssen speziell gekennzeichnete Kommentare in den Quelltext eingefügt werden. Doxygen unterstützt heute die Programmiersprachen C++, C, Java, Objective-C, IDL, PHP, C#, D und Actionscript. Die Dokumentation kann in den Formaten HTML, RTF, PostScript, PDF, Latex und als Man pages erzeugt werden. Das Ausgabeformat XML befindet sich zurzeit noch im Entwicklungsstadium. Von den Ausgabeformaten werden nur HTML, Latex und PDF weiter betrachtet, da die anderen Formate keine Formeldarstellung (man, RTF) erlauben. Die prinzipielle Vorgehensweise für jedes Projekt, was zukünftig mit Doxygen bearbeitet werden, soll ist immer gleich: Konfiguration für das konkrete Projekt erstellen Dokumentieren des Quelltextes während der Entwicklung Die Reihenfolge der Schritte spielt keine Rolle, da zu jedem Zeitpunkt eine neue Dokumentation eines Projektes (auch mit geänderter Konfiguration) möglich ist. Die initiale Konfigurationsdatei (Doxyfile) wird entweder über die Konsole oder über den Doxywizard erzeugt. DoxyWizard ist ein grafischer Aufsatz zur Erstellung und Bearbeitung von Doxygen-Konfigurationsdateien. Beispiel einer Konfigurationsdatei: # Doxyfile # # Project related configuration options # PROJECT_NAME = XCTL32 PROJECT_NUMBER = OUTPUT_DIRECTORY = /u/ddamm/disk/doxygen/doxygenbeispiel/ CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = German... JAVADOC_AUTOBRIEF = YES... # # Build related configuration options # EXTRACT_ALL = NO... # Sven Müller, Thomas Hornberger Seite 17 von 26

18 # configuration options related to the input files # INPUT = /u/ddamm/disk/doxygen/doxygenbeispiel/ FILE_PATTERNS = RECURSIVE = YES EXCLUDE =... # # configuration options related to the HTML output # GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION =.html HTML_HEADER = HTML_FOOTER =... # # configuration options related to the LaTeX output # GENERATE_LATEX = YES LATEX_OUTPUT = latex LATEX_CMD_NAME = latex... # # Configuration::additions related to the search engine # SEARCHENGINE = NO Zum zweiten Schritt ist unbedingt anzumerken, dass es sich durchaus lohnt, auch völlig unkommentierten Quelltext mit in ein (vorhandenes) Projekt aufzunehmen. Doxygen generiert dann zwar keine ausführlichen Informationen, aber die Dateien, Klassen und Funktionen werden zumindest mit in die Übersicht aufgenommen, und man kann sich einen groben, schnellen Überblick verschaffen. Die Arten der Dokumentation lehnen sich in den entsprechenden Sprachen den z.t. schon länger existierenden Werkzeugen an. Konkret bedeutet das, dass folgende Dokumentationsmöglichkeiten von Doxygen unterstützt werden: JavaDoc für Java-Quelltexte KDoc bzw. Qt-Stil für QT bzw. KDE-Projekte Zusätzlich existieren aber noch einige Erweiterungen, die weitergehende Dokumentationsmöglichkeiten bieten. Sehr positiv fällt z.b. auf, daß Informationen aus dem CVS über die entsprechenden Schlüsselworte ebenfalls extrahiert werden können. Ein Dokumentationsblock hat also eine der folgenden Formen: einzeilig: //! Eine Zeile Dokumentationstext im Qt-Stil. /// Eine Zeile Dokumentationstext im JavaDoc-Stil. Sven Müller, Thomas Hornberger Seite 18 von 26

19 mehrzeilig: /*! mehrzeiliger Dokumentationstext im Qt-Stil führende * in der Zeile werden entfernt; werden sie dort benötigt, müssen sie zweimal eingegeben werden /** * mehrzeiliger Dokumentationstext * im JavaDoc-Stil * führende * in der Zeile werden ebenfalls entfernt; * werden sie dort benötigt, müssen sie zweimal eingegeben werden Zusätzlich können nun, um aus diesem Kommentar auch einen geeigneten Dokumentationseintrag zu machen, einige besondere Tags angegeben werden, die die nachfolgende Klasse, Methode, Struktur oder auch gesamte Datei näher spezifizieren. Ein Tag wird durch \Tagname im Kommentar gekennzeichnet. Die am häufigsten verwendeten Tags beschreibt Parameter einer beschreibt Rückgabewerte einer gibt nachfolgender Klasse (aussagekräftigeren) gibt einen Überblick über den Inhalt einer beschreibt die Struktur Kurzbeschreibung des nachfolgenden Elements (Klasse, Funktion, Autor (Hier kann sinnvollerweise auch nur $Author$ bzw. $Author:hame$ Bekannte Warnungen und Referenzen auf andere Dokumente und Was ist noch zu <titel> Beschreibung der Hauptseite der <name> <titel> Beginnt ein <listenelement> Erzeugen einer Liste Sven Müller, Thomas Hornberger Seite 19 von 26

20 Dies ist nur eine Auswahl. Es werden auch eine Vielzahl von HTML-Befehlen und auch Latex-Befehlen (für das Einbinden von Formeln) unterstützt. Die Konfiguration in der Datei Doxyfile unterteilt sich in einen allgemeinen Teil für Projektname, Versionsnummer, Projektverzeichnis, Dateien, Ebenen der Dokumentation, usw. und einen Teil speziell für das entsprechende Ausgabeformat. Es ist zu beachten, dass jedes Projekt eine eigene Konfigurationsdatei benötigt. Für die Konfigurationsdatei sollte man eine Vorlage anlegen: einheitliche CSS-Seitengenerierung (HTML) einheitliche Sprache (Englisch ist zu bevorzugen, da einige Einträge nur unzureichend oder gar nicht übersetzt sind) einheitliche Struktur/Tiefe der Dokumentation Einbindung der mathematischen Formeln bei komplexen Algorithmen Erstellen von Vorlagen für die entsprechenden Ausgabeformate erfolgt duch doxygen -w <typ> <optionen> Dabei kann <typ> "rtf", "html" oder "latex" sein. Die Optionen hängen vom Typ und von der Konfigurationsdatei ab. Anhand der Beispieldateien soll abschließend die Verwendung der Tags und eine vollständige Dokumentationsproduktion mit doxygen demonstriert werden. Sven Müller, Thomas Hornberger Seite 20 von 26

21 Beispiel-Klasse: /** Klasse realisiert Beispiel2. * Hannes * 0.2 KAPITEL 4. DOKUMENTATION 11 Abbildung 4.2: Klassenbeschreibung mit Doxygen * Toten Code entfernt. * 0.1 * Kommentare hinzugefügt (Doxygen). class Beispiel2 {} Beispielausgabe: Sven Müller, Thomas Hornberger Seite 21 von 26

22 Beispiel-Klasse: /** Klasse realisiert Beispiel3. * Hannes class Beispiel3 { public: /** Addiert zwei ganze Zahlen. a Die erste Zahl. b Die zweite Zahl. Die Summe der beiden Zahlen a und b. Addiere(double,double) int Addiere(int a, int b); double Addiere(double a, double b); } Beispielausgabe: Sven Müller, Thomas Hornberger Seite 22 von 26

23 Beispiel-Klasse: /** Darstellung von Listen. * * Einfache Listen: Liste 1a KAPITEL 4. DOKUMENTATION 16 Abbildung 4.6: Erstellung von Listen mit Doxygen Liste 1b * Liste 2a Liste 2b * * Verschachtelte Listen: * <ul> * <li>liste 3a</li> * <ol> * <li>liste 3a.1</li> * <li>liste 3a.2</li> * </ol> * <li>liste 3b</li> * </ul> class Beispiel4 {} Beispielausgabe: Sven Müller, Thomas Hornberger Seite 23 von 26

24 Beispiel für Formel-Anwendung: /** * Der Abstand zwischen \f$(x_1,y_1)\f$ und \f$(x_2,y_2)\f$ ist * \f[\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}.\f] Beispielausgabe: Der Abstand zwischen (x1;y1) und (x2;y2) ist Hinweis: Dieses funktioniert aber nur für die HTML- oder LATEX-Ausgabe. Sven Müller, Thomas Hornberger Seite 24 von 26

25 Beispiel aus dem Open-Source Projekt Mozilla, wo mit Doxygen gearbeitet wird: Die vorangegangenen Beispiele demonstrieren die Fähigkeiten und Möglichkeiten von Doxygen. Mit Doxygen ist es mit relativ wenig Aufwand möglich, Quelltexte so zu dokumentieren, dass sie für andere Entwickler nutzbar sind. Gegen das Konzept von Doxygen, die Dokumentation und die Implementierung eines Programmes in den selben Quelltext zu speichern, spricht eigentlich nur, dass die Quelltexte schnell unübersichtlich werden, wenn die Dokumentation sehr umfangreich ausfällt. Sven Müller, Thomas Hornberger Seite 25 von 26

26 4. Fazit Im Laufe der Entwicklung von Programmiersprachen und Software nahm insbesondere die Bedeutung von guten Quellcode-Kommentaren zu. Mit dem Aufkommen der objektorientierten Programmierung wurden auch die Dokumentationen immer umfangreicher, da sich große Projekte nur so über Jahre sinnvoll entwickeln lassen. Um Code sinnvoll und einheitlich zu kommentieren entstanden viele Werkzeuge, die diese Arbeit unterstützen sollen. Ein großer Nachteil erster solcher Werkzeuge wie KDOC, DOC++ oder Cocoon ist, dass sie lediglich für C++ Programme ausgelegt sind. Weiterhin haben sie eigene Anforderungen zur Formatierung an den Quelltext. Suns Javadoc revolutionierte sozusagen die und setzte neue Standards, an denen sich nun alle Konkurrenten orientieren. Doxygen hingegen hebt sich durch seine Anzahl an unterstützten Sprachen hervor. Ein weiterer Vorteil ist die Kompatibilität zu Javadoc und KDOC. Letztlich hat man noch die Wahl aus einer Vielzahl an unterstützten Ausgabeformaten. Doxygen ist durch seine Großzahl an Funktionen, sowie Variabilität in seinen Formatierungen ein den heutigen Ansprüchen gerecht werdendes und mittlerweile auch etabliertes Dokumentationswerkzeug. Einziger zu erwähnender Nachteil ist die lange Einarbeitungszeit bei Doxygen, aufgrund seines Umfangs. Literaturverzeichnis [GG00] Grünwied, G.; Kontakt & Studium Bd Software-Dokumentation, Expert-Verlag [AH03] Hunt, A.; Der Pragmatische Programmierer, 2003 [FP05] Padberg, F.; Vorlesungsskript Softwaretechnik2, Richtlinien für guten Programmierstil, Sommersemester 2005, TU Clausthal [AZ04] Zeller, A.; Vorlesungsskript Software-Dokumentation, Lehrstuhl für Softwaretechnik, Universität des Saarlandes, Saarbrücken 2004 Internet-Referenzen [Doxygen Homepage] ( [DOC++ Homepage] ( [KDOC Homepage] ( [Ccdoc Homepage] ( [Perceps Homepage] ( [Trolltech] (insbesondere Qt-Bibliotheken) ( [Mozilla Homepage] ( [Sun JavaDoc] ( [AT&T Graphviz] ( [Wikipedia] ( [Google] ( Sven Müller, Thomas Hornberger Seite 26 von 26

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Dokumentieren mit Eclipse und Doxygen

Dokumentieren mit Eclipse und Doxygen Dokumentieren mit Eclipse und Doxygen Boris Budweg, 28.11.2009 Version 0.2 Abstract: Kurze Anleitung für die Benutzung von Doxygen und Eclox in Eclipse. Doxygen-Kommentare / Schlüsselwörter...2 Beispiel...2

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

.NET Code schützen. Projekt.NET. Version 1.0

.NET Code schützen. Projekt.NET. Version 1.0 .NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll

Mehr

Was versteht man unter Softwaredokumentation?

Was versteht man unter Softwaredokumentation? Was versteht man unter? Mit bezeichnet man die Dokumentation von Computer-Software. Sie erklärt für Anwender, Benutzer und Entwickler in unterschiedlichen Rollen, wie die Software funktioniert, was sie

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Einführung in die Informatik Tools

Einführung in die Informatik Tools Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Support-Tipp Mai 2010 - Release Management in Altium Designer

Support-Tipp Mai 2010 - Release Management in Altium Designer Support-Tipp Mai 2010 - Release Management in Altium Designer Mai 2010 Frage: Welche Aufgaben hat das Release Management und wie unterstützt Altium Designer diesen Prozess? Zusammenfassung: Das Glück eines

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Bedienung des Web-Portales der Sportbergbetriebe

Bedienung des Web-Portales der Sportbergbetriebe Bedienung des Web-Portales der Sportbergbetriebe Allgemein Über dieses Web-Portal, können sich Tourismusbetriebe via Internet präsentieren, wobei jeder Betrieb seine Daten zu 100% selbst warten kann. Anfragen

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

HTML5. Wie funktioniert HTML5? Tags: Attribute:

HTML5. Wie funktioniert HTML5? Tags: Attribute: HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

PowerPoint 2010 Mit Folienmastern arbeiten

PowerPoint 2010 Mit Folienmastern arbeiten PP.002, Version 1.1 07.04.2015 Kurzanleitung PowerPoint 2010 Mit Folienmastern arbeiten Der Folienmaster ist die Vorlage für sämtliche Folien einer Präsentation. Er bestimmt das Design, die Farben, die

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung Inhalt 1. Schritt Prüferkommentare... 1 2. Schritt Prüferkommentar kommentieren... 4 3. Schritt Nachweisdokumente hochladen... 6 4. Schritt

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT

Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT LADEN DER VORLAGE 2 Öffnen Sie Outlook 2 Klicken Sie auf EXTRAS >> OPTIONEN 2 Im Optionenfeld von Outlook folgend Sie den Schritten 2 Fenster

Mehr

Anleitung für das Content Management System

Anleitung für das Content Management System Homepage der Pfarre Maria Treu Anleitung für das Content Management System Teil 6 Wochenspiegel und Begegnung Einleitung Die Veröffentlichung einer Begegnung oder eines Wochenspiegels erfolgt (so wie auch

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

SEMINAR Modifikation für die Nutzung des Community Builders

SEMINAR Modifikation für die Nutzung des Community Builders 20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen

Mehr

TYPO3 Super Admin Handbuch

TYPO3 Super Admin Handbuch TYPO3 Super Admin Handbuch Erweiterung News Für das System der Maria Hilf Gruppe Version 02 09.03.10 Erstellt durch: NCC Design Florian Kesselring Zeltnerstraße 9 90443 Nürnberg 1 Inhaltsverzeichnis Inhalt

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

25 Import der Beispiele

25 Import der Beispiele 25 Import der Beispiele Versuch es nicht mit Gewalt. Nimm einfach einen größeren Hammer (Murphy s Law) 25.1 Einleitung Alle Beispielprogramme dieses Buchs funktionieren mit jeder Java-konformen Entwicklungsumgebung.

Mehr

LEHRSTUHL FÜR DATENBANKEN

LEHRSTUHL FÜR DATENBANKEN LEHRSTUHL FÜR DATENBANKEN Informatik II für Verkehrsingenieure Java & Eclipse Installationsguide Prof. Dr.-Ing. Wolfgang Lehner > Was ist Eclipse? Eine sogenannte Integrierte Entwicklungsumgebung (engl.

Mehr

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags 2013 style_sheet_bis_verlag_20130513 Arbeiten mit der Dokumentvorlage des BIS-Verlags... 3 Dokumentvorlage Wofür?... 3 Wohin mit der Dokumentvorlage...

Mehr

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets Verwalten und erstellen Sie Ihre eigenen Tickets NetStream GmbH 2014 Was ist NetStream Helpdesk-Online? NetStream Helpdesk-Online ist ein professionelles Support-Tool, mit dem Sie alle Ihre Support-Anfragen

Mehr

Kapitel 12 Dokumentation und Zugriffsrechte

Kapitel 12 Dokumentation und Zugriffsrechte Kapitel 12 Dokumentation und Zugriffsrechte Seite 1 / 6 Kapitel 12 Dokumentation und Zugriffsrechte Lernziele: Dokumentation mit Hilfe von Javadoc Datenkapselung über Zugriffsrechte 12.1 Dokumentation

Mehr

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH Amt für Informatik Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH Anleitung vom 12. September 2009 Version: 1.0 Ersteller: Ressort Sicherheit Zielgruppe: Benutzer von SSLVPN.TG.CH Kurzbeschreib:

Mehr

FORUM HANDREICHUNG (STAND: AUGUST 2013)

FORUM HANDREICHUNG (STAND: AUGUST 2013) FORUM HANDREICHUNG (STAND: AUGUST 2013) Seite 2, Forum Inhalt Ein Forum anlegen... 3 Forumstypen... 4 Beiträge im Forum schreiben... 5 Beiträge im Forum beantworten... 6 Besondere Rechte der Leitung...

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Die Textvorlagen in Microsoft WORD und LibreOffice Writer Die Textvorlagen in Microsoft WORD und LibreOffice Writer Liebe Teilnehmer(-innen) am Landeswettbewerb Deutsche Sprache und Literatur Baden- Württemberg, Diese Anleitung soll Ihnen helfen Ihren Wettbewerbsbeitrag

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Boris Golubovic Dortmund, den 24. Oktober 2010 Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Ein Projekt anlegen Ein Projekt kapselt alle zu einer Anwendung gehörenden

Mehr

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller Proseminar: Website-Managment-System NetObjects Fusion von Christoph Feller Netobjects Fusion - Übersicht Übersicht Einleitung Die Komponenten Übersicht über die Komponenten Beschreibung der einzelnen

Mehr

Stapelverarbeitung Teil 1

Stapelverarbeitung Teil 1 Stapelverarbeitung Teil 1 In jedem Unternehmen gibt es von Zeit zu Zeit Änderungen in Normen und Firmenstandards, an die aktuelle und bereits bestehende Zeichnungen angepasst werden müssen. Auch Fehler

Mehr

Erstellen einer E-Mail in OWA (Outlook Web App)

Erstellen einer E-Mail in OWA (Outlook Web App) Erstellen einer E-Mail in OWA (Outlook Web App) Partner: 2/12 Versionshistorie: Datum Version Name Status 13.09.2011 1.1 J. Bodeit Punkte 7 hinzugefügt, alle Mailempfänger unkenntlich gemacht 09.09.2011

Mehr

Erstellen eines Beitrags auf der Homepage Schachverband Schleswig-Holstein - Stand vom 01.06.2015

Erstellen eines Beitrags auf der Homepage Schachverband Schleswig-Holstein - Stand vom 01.06.2015 Erstellen eines Beitrags auf der Homepage Einleitung... 3 01 Startseite aufrufen... 4 02 Anmeldedaten eingeben... 5 03 Anmelden... 6 04 Anmeldung erfolgreich... 7 05 Neuen Beitrag anlegen... 8 06 Titel

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Um sich zu registrieren, öffnen Sie die Internetseite www.doodle.de und wählen Sie dort rechts oben

Um sich zu registrieren, öffnen Sie die Internetseite www.doodle.de und wählen Sie dort rechts oben Doodle Anleitung Konto erstellen Die Registrierung eines Benutzerkontos ist für Umfragen nicht erforderlich. Sollten Sie jedoch öfters Umfragen erstellen, ist dies aus Gründen der Übersicht und Einfachheit

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Erster Schritt: Antrag um Passwort (s. www.ifb.co.at Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)

Erster Schritt: Antrag um Passwort (s. www.ifb.co.at Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung) Benutzeranleitung Sehr geehrte Mitglieder und Experten! Diese Benutzeranleitung erklärt die Handhabung und Navigation zu den spezifischen Arbeitsgruppen unter der Rubrik Technische Richtlinien auf der

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Beschreibung des MAP-Tools

Beschreibung des MAP-Tools 1. Funktionen des MAP-Tool 2. Aufbau des MAP-Tools 3. Arbeiten mit dem MAP-Tool Beschreibung MAP-Tool.doc Erstellt von Thomas Paral 1 Funktionen des MAP-Tool Die Hauptfunktion des MAP-Tools besteht darin,

Mehr

FAQ The FAQ/knowledge base. Version 2.1.1

FAQ The FAQ/knowledge base. Version 2.1.1 FAQ The FAQ/knowledge base. Version 2.1.1 (c) 2012 OTRS AG, http://otrs.org/ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007 This work is copyrighted by OTRS AG, Norsk-Data-Str. 1, 61352 Bad

Mehr

Outlook Vorlagen/Templates

Outlook Vorlagen/Templates Joachim Meyn Outlook Vorlagen/Templates Erstellen Sie Vorlagen bzw. Templates in Outlook Joachim Meyn 27.03.2013 Inhaltsverzeichnis Outlook Vorlagen (.oft Dateien)... 2 Vorbereitung... 2 Anlegen einer

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Bedienungsanleitung Anlassteilnehmer (Vereinslisten) Bedienungsanleitung Anlassteilnehmer Dieses Programm ist speziell für Vereine entworfen. Es ist lizenzfrei verwendbar und gratis. Das Programm ist mit Excel 2010 erstellt worden und enthält VBA Programmierungen,

Mehr

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter

Mehr

Argelander Institut für Astronomie. Persönliche Website

Argelander Institut für Astronomie. Persönliche Website Argelander Institut für Astronomie Persönliche Website Zunächst loggt man sich auf www.astro.uni-bonn.de/typo3 mit seinem AIfA Zugang ein. Nach erfolgreichem Login befindet man sich im Backend des TYPO3

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE UND ZEILENABSTAND Word 2010 und 2007 Jedes neue leere Dokument, das mit Word 2010 erstellt wird, basiert auf einer Dokumentvorlage mit dem Namen Normal.dotx.

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Werkschau Web-Präsentationen

Werkschau Web-Präsentationen Werkschau Web-Präsentationen Willkommen zum Tutorial für neue Beiträge in der Werkschau. Mein Name ist Eugen Notter; ich habe für Sei diese Anleitung verfasst. Sie hilft Ihnen dabei, in der Medien-Galerie

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Umstellung News-System auf cms.sn.schule.de

Umstellung News-System auf cms.sn.schule.de Umstellung News-System auf cms.sn.schule.de Vorbemerkungen Hinweis: Sollten Sie bisher noch kein News-System verwendet haben, nutzen Sie die Anleitung unter http://cms.sn.schule.de/admin/handbuch/grundlagen/page/25/

Mehr

Import von Daten aus Word nach KlasseDozent

Import von Daten aus Word nach KlasseDozent Import von Daten aus Word nach KlasseDozent KlasseDozent ermöglicht Ihnen prinzipiell den Import aus Word-Dateien heraus auf zwei Wegen. Sie können einmal eine Word-Datei im Rich-Text-Format abspeichern

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

Mehr

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard

Mehr

Patch Management mit

Patch Management mit Patch Management mit Installation von Hotfixes & Patches Inhaltsverzeichnis dieses Dokuments Einleitung...3 Wie man einen Patch installiert...4 Patch Installation unter UliCMS 7.x.x bis 8.x.x...4 Patch

Mehr