Projekt Systementwicklung

Ähnliche Dokumente
Kommentierung in C. Kommentierung in C. Von Sebastian Rothe 1/26. Kommentierung in C

Dokumentations-Richtlinien

Dokumentieren mit Doxygen

Dokumentationskonzept

Coding-Standards und Dokumentation

Kurze Einführung in die Benutzung des Dokumentationswerkzeugs Doxygen

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Sonargraph in 15 Minuten. Andreas Hoyer blog.hello2morrow.com

Programmierstil in Java Coding-Standards und Dokumentation

Warum JavaScript? Vorwort

Kommentierung in C. Von Sebastian Rothe

Programmieren I + II Regeln der Code-Formatierung

TD Mobile Eine Einführung

Daniela Reiner. Stuttgart,

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel

Qualitätssicherungskonzept

SAP -Schnelleinstieg: ABAP-Entwicklung in Eclipse. Christoph Lordieck

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Werkzeugunterstützung für UML Profiles. Verteidigung des Großen Belegs Andreas Pleuß

Informatik II Übung 1

Programmieren I. Entwicklungsumgebungen Eclipse, NetBeans und IntelliJ IDEA. Institut für Angewandte Informatik

Programmieren I. Entwicklungsumgebungen Eclipse, NetBeans und IntelliJ IDEA. Institut für Angewandte Informatik

Programmieren I + II Regeln der Code-Formatierung

Zwei Arten von Attributen. Klassenvariablen. Introspektion. getattr(object_instance, string)

Zwei Arten von Attributen

swp12-6 Aufgabenblatt Qualita tssicherungskonzept

Hinweise zu Eclise. Überblick: 1. Vorbermerkungen. 2. Einstieg in Eclipse. 3. Importieren des Praktikumsprojekts

Kurze Bedienungsanleitung für den Java-Editor

9. Programmierrichtlinien. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2014/15

Programmierpraktikum Java Entdecken Merkblatt 2

Programmieren in Haskell Debugging

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Freie Markierung Die Templating-Engine FreeMarker im Einsatz

Programmieren mit Edipse 3

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

Entwicklung mit mehreren Dateien

Einführung in Maven und GWT

Blockpraktikum Multimediaprogrammierung

Die autotools.eclass gestattet die Entwicklung von Programmen, die die neuesten Versionen von autconf/automake benötigen.

Android Freund oder Feind

Programmierstile in C

Versionsverwaltung mit SVN

public static void main(string[] args) { try { kill(); } catch (RuntimeException r) { System.out.println("RunTimeException "+ r +"\n"); } catch

Bibliotheksverwaltung in CODESYS Katarina Heining Automatisierungstreff IT & Automation 2015

Einführung in BioConductor

Smartphone Entwicklung mit Android und Java

Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht

HYDROINFORMATIK. Integrated development environment IDEs. JProf. Dr. rer. nat. Marc Walther

Dokumentation mit ILEDocs

HYDROINFORMATIK. Integrated development environments IDEs. JProf. Dr. rer. nat. Marc Walther

Praxis der Programmierung

Programmieren I. Entwicklungsumgebungen Eclipse und NetBeans. Institut für Angewandte Informatik

Poseidon for UML. Einführung. Andreas Blunk

Informationen zur Verwendung von Visual Studio und cmake

Einführung in die Programmierung 1

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

Methoden und Wrapperklassen

Funktionen in JavaScript

DOXYGEN-DOKUMENTATIONS- RICHTLINIEN FÜR C

Softwareentwicklungsumgebungen

Maven Einführung. Dipl.-Inform. Alex Maier

LINUX-WORKSHOP. WINTEROPHASE 17/18 Heiko Carrasco

Artem Eger. Build-Systeme in java Maven & ANT

VB.net Programmierung und Beispielprogramm für GSV

Styleguide NAVISION Programmierung. Inhaltsverzeichnis

Entwicklungswerkzeuge

AuD-Tafelübung T-B5b

1.3.1 Java-Compiler installieren

Organisatorisches Einführung Quellen. Einführung. Praktikum C-Programmierung. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar

Einführung in Google Web Toolkit

Merkblatt System-C Installation Linux

Objektorientiertes Programmieren (Java)

Release-News: Technische Lösungen

Datenbanken und Netzanbindung

Selbststudium OOP1 SW Programmieren 1 - H1103 Felix Rohrer

in 21 Tagen Jesse Liberty Der optimale Weg - {Schritt für Schritt zum Programmierprofi

Programmieren in Python

Globale Variablen Diverses. Globale Variablen. Globale Variablen

Guile Die Erweiterungssprache des GNU-Projekts

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Webtechnologien Teil 1: Entwicklungsumgebung(en)

SensIDL Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL

Verbesserung der Architektur und Dokumentation der DPP-Software Saros. Slawa Belousow Institut für Informatik FU Berlin

Hydroinformatik 1 Integrated development environments IDEs

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Literatur und Links. Webtechnologien SS 2018 Teil 1/Entwicklung

C++-Entwicklung mit Linux

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Build Management Tool

Webtechnologien Teil 1: Entwicklungsumgebung

Definitionen/Vorarbeit zum Thema Java

APEX und Drucken Die Schöne und das Biest! Seite 1 von 61

IHK Karlsruhe Tag der Gründer Eigene Website und nun?

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Transkript:

Projekt Systementwicklung Programmier-, Codier- und Projektkonventionen Prof. Dr. Nikolaus Wulff

Coding Standards Pro: Erleichtern das gemeinsame Bearbeiten des Quellcodes durch verschiedene Teammitglieder. Ermöglichen einen Wiedererkennungseffekt und helfen Fehler schneller zu erkennen. Erleichtern neuen Teammitgliedern den Einstieg. Contra: Werden nicht immer akzeptiert und behindern. Führen dann zu unnötigen Streit. :-( Deshalb: Am Projektanfang verbindlich festlegen! Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 2

Coding Standards cont. Zum Standard gehören nicht nur Formatierungsregeln, sondern auch: Quellcodeorganisation, z. B.: External/System Header Internal Header Typ und Konstanten Definitionen Globale Variablen Funktionen Namenskonventionen für Klassen bzw. Strukturen (ADTs), Variablen und Methoden. Konstanten und Makros in Großbuchstaben Methoden als Verben in Kleinschrift, Klassen/Strukturen als Hauptwörter in Groß. Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 3

Namenskonventionen Das Schema zur Vergabe von Namen für Klassen/Strukturen, Variablen und Methoden muss einheitlich einer definierten und im Projektteam bekanntgegeben Logik folgen. Es darf nicht ein Programmierer eine_methode und ein Anderer einemethode codieren... Ähnliches gilt für die Vergabe von Strukturnamen etc. Es muss klar definiert werden, ob Strukturen per typedef versteckt werden oder nicht. Siehe die Linux Kernel Regeln... Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 4

Projektorganisation Projekte werden i.a. nicht platt im Eclipseprojektverzeichnis hinterlegt, sondern durch Unterverzeichnisse strukturiert: $Projekt/src /gen /lib /html /doc /Debug /Release Sourcen generierte Sourcen Bibliotheken generierte Web-Doku Dokumentation Word & LaTeX Debug Binaries Release Binaries Einige Verzeichnisse liegen unter Versionsverwaltung andere nicht... Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 5

Dokumentation Zu gutem Code gehört eine gute Dokumentation. Java verwendet das Java-Doc Werkzeug, für C/C++ Programme leistet Doxygen gute Arbeit. www.doxygen.org Eclipse plugin http://home.gna.org/eclox Alle öffentlichen Funktionen müssen ausreichend dokumentiert werden. Eine einfache Richtlinie für eine Dokumentation ist: Was wird mit wem (Argumente) wozu (Rückgabewert) gemacht (=> externe Doku). Nicht wie wird etwas gemacht (interne Doku). Dies kommt in interne Methodenkommentare für den Programmierer. Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 6

Eclipse + Doxygen Doxygen Task Installierte Generierte Doku-Site Fehlende Dokumentation Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 7

Generierte Dokumentation Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 8

Werkzeugunterstützung Gute IDE's erleichtern das Einhalten eines Standards durch automatische Formartierung. Eclipse mit shift-ctrl-f Eclipse besitzt mehrere vordefinierte Profile: K&R GNU Projektspezifisch angepasstes Profil So ist es sehr leicht möglich eine einheitliche Formatierung des Quelltexts zu erreichen. Der Streit über geschweifte Klammern ist unnötig Sie müssen aber im Projekt einheitlich sein! Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 9

Referenzen Es gibt nicht den Standard. Im Web existieren zahlreiche Vorlagen für Coding Standards. Ein kleiner Google Auszug mit Anregungen: http://www.gnu.org/prep/standards/ http://www.possibility.com/cpp/cppcodingstandard.html http://www.jetcafe.org/jim/c-style.html http://lxr.linux.no/#linux+v3.3.2/documentation/codingstyle Lesen einer guten Codebasis (z.b. GNU oder Linux Kernel) übt und vermittelt good practices zur eigenen Anregung im Projekt. Die Standards widersprechen sich allerdings teilweise... Prof. Dr. Nikolaus Wulff Projekt Systementwicklung 10