Entwicklungswerkzeuge Werner Struckmann & Tim Winkelmann 10. Oktober 2012
Gliederung Anforderungen Projekte Debugging Versionsverwaltung Frameworks Pattern Integrated development environment (IDE) Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 2
Anforderungen I funktionale Anforderungen nicht- (extra) funktionale Anforderungen DIN 66272 Zuverlässigkeit Benutzbarkeit Leistung und Effizienz Änderbarkeit Übertragbarkeit andere mögliche nicht funktionale Anforderungen Look and Feel Betrieb und Umgebungsbedingungen Sicherheitsanforderungen (z.b. Vertraulichkeit, Informationssicherheit, Datenintegrität, Verfügbarkeit) Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 3
Anforderungen II Korrektheit Flexibilität (z.b. Standards) Skalierbarkeit (z.b. Änderung bei Problemumfang) Randbedingungen (z.b. Kosten und Deadline) Struktur einer Anforderung Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 4
Struktur von Projekte Workspace Projekt Struktur src bin lib doc... Package Struktur model ui algorithm input... Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 5
Code Pflege Dokumentation Kommentare Javadoc Klassen Attribute Methoden und Konstruktoren Erzeugen von Javadoc 1 Sinnvolle Größen für Klassen und Methoden Java Code Guidelines 1 Teil vom JDK Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 6
Java code guidelines Wieso Code Conventions? 80% der Lebenszeitkosten von einer Software gehen in die Wartung Kaum eine Software wird ihr ganzes Leben von ihrem Autor gewartet Code Conventions verbessern die Lesbarkeit einer Software und erlauben es Entwicklern neuen Code schneller und sorgfältiger zu verstehen Wenn Sie den Quellcode als Produkt vermarkten, dann müssen Sie sicherstellen das er gut Strukturiert und Sauber ist, wie jedes andere Produkt was Sie entwerfen. 2 2 http://www.oracle.com/technetwork/java/codeconv-138413.html Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 7
Java Quellcode Beispiel: Java Quellcode und ein Blick in die Java Code Guidelines Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 8
Tools zur Code Qualität checkstyle 3 ist Werkzeug um Entwicklern zu helfen Java Code zu verfassen, welcher einem bestimmten Coding Standard einhalten soll. FindBugs 4 ist ein Programm, welches statische Analysen benutzt, um nach Bugs im Java Code zu suchen.... 5 3 http://checkstyle.sourceforge.net/ 4 http://findbugs.sourceforge.net/ 5 http: //en.wikipedia.org/wiki/list_of_tools_for_static_code_analysis Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 9
checkstyle - Demo DEMO 6 6 http://checkstyle.sourceforge.net/ Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 10
Debugging mit dem Editor Debugging ohne Werkzeuge Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 11
Versionsverwaltung Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen an Dokumenten oder Dateien verwendet wird. Alle Versionen werden in einem Archiv mit Zeitstempel und Benutzerkennung gesichert und können später wiederhergestellt werden. Versionsverwaltungssysteme werden typischerweise in der Softwareentwicklung eingesetzt um Quelltexte zu verwalten. Versionsverwaltung kommt auch bei Büroanwendungen oder Content-Management-Systemen zum Einsatz. 7 7 http://de.wikipedia.org/wiki/versionsverwaltung Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 12
Versionsverwaltung Aufgaben: Archivierung Wiederherstellung Protokollierung Paralleles Arbeiten Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 13
Versionsverwaltung Terminologie: Branch Trunk/Master Merge Tag Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 14
Werkzeuge zur Versionsverwaltung Lokal Source Code Control Systems (SCCS) Revision Control System (RCS) Zentral Concurrent Versions System (CVS) Subversion (SVN) 8 Verteilt GIT 9 Mercurial Bazaar 8 Tutorial http://maverick.inria.fr/~xavier.decoret/resources/svn/index.html 9 Tutorial http://gitref.org/ oder https://help.github.com/articles/set-up-git Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 15
Mercurial Kommandos und Ihre Beziehungen
Framework Ein Softwareframework ist eine Abstraktion, in der generische Funktionen durch Code vom Benutzer ausgewählt und angepasst werden, um eine spezifische Applikation zu erstellen. Ein Softwareframework ist eine universelle, wiederverwendbare Software Plattform, die dazu verwendet wird um Applikationen, Produkte oder Lösungen zu entwickeln. Sie beinhaltet Supportprogramme, Compiler, Code Bibliotheken, application programming interfaces (API) und Werkzeuge, welche alle verschiedenen Komponenten zusammenbringt, um das Entwickeln von Lösungen zu erlauben. 10 10 http://en.wikipedia.org/wiki/software_framework Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 19
Framework JUnit ist ein Framework zum schreiben und ausführen von automatischen Tests von Java Code. 11 Es gehört zur Familie der unit testing frameworks, allgemein bekannt als xunit. 11 http://sourceforge.net/projects/junit/ Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 20
Pattern In der Softwareentwicklung, ein Design Pattern ist im allgemeinen eine wiederholbare Lösung für ein gewöhnlich auftretendes Problem während im Softare Design. Ein Design Pattern ist kein fertiges Design, welches direkt in Code transformiert werden kann. Es ist eher eine Beschreibung oder eine Vorlage um ein Problem zu lösen, welches in vielen verschiedenen Situationen benutzt werden kann. 12 12 http://sourcemaking.com/design_patterns Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 21
Pattern Creational design patterns Abstract factory... Structural design patterns Adapter, Wrapper, Translator... Behavioral design patterns Iterator Oberserver... Architectural design patterns Model-View-Controller (MVC)... Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 22
Integrated development environment (IDE) Eclipse 13 Netbeans 14 Microsoft Visual Studio 15 Intelli J IDEA 16... 13 http://eclipse.org/ 14 http://netbeans.org/ 15 http://www.microsoft.com/visualstudio/ 16 http://www.jetbrains.com/ Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 23
Eclipse Demo Workspace Projekte Perspektiven Views Java Quellcode anzeigen Debugging Javadoc erzeugen Checkstyle JUnit GIT Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 24
Fragen Vielen Dank für die Aufmerksamkeit. Fragen? Werner Struckmann & Tim Winkelmann Entwicklungswerkzeuge 25