Softwareengineering: Case Tools, Integrated Developing Environments & Practices der Softwareentwicklung

Ähnliche Dokumente
Mobile Business Realisierung von Mobile Business Anwendungen II oder Wie programmiere ich eine Mobile Business Anwendung?

Einführung in Subversion

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Installation und Inbetriebnahme von Microsoft Visual C Express

Softwareentwicklungsprozess im Praktikum. 23. April 2015

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Präsentation Von Laura Baake und Janina Schwemer

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

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

Konventionen. Danksagung

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

MetaQuotes Empfehlungen zum Gebrauch von

Internet Explorer Version 6

Blacktip-Software GmbH. FVS. Fahrschul-Verwaltungs-System. Umstieg von V3 auf V4

Anleitung zur Verwendung der VVW-Word-Vorlagen

LEHRSTUHL FÜR DATENBANKEN

Einführung in Eclipse und Java

Sonnenfinsternis in der Technischen Redaktion

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Versionskontrolle mit Subversion

Software-Praktikum. Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2013

Installationsanleitungen

Programmieren was ist das genau?

OP-LOG

VB.net Programmierung und Beispielprogramm für GSV

Anleitung zur Verwendung der VVW-Word-Vorlagen

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Das Projekt wird durchgeführt von den Bezirksregierungen in Nordrhein- Westfalen in ihrer Funktion als Fachstelle für die öffentlichen Bibliotheken

Wie benutzt man TortoiseSVN

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Programmierung für Mathematik (HS13)

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Mit jedem Client, der das Exchange Protokoll beherrscht (z.b. Mozilla Thunderbird mit Plug- In ExQulla, Apple Mail, Evolution,...)

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Einführung in die Programmierung für NF

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

malistor Phone ist für Kunden mit gültigem Servicevertrag kostenlos.

WhiteStarUML Tutorial

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Mobile Business: Ihre Lehrveranstaltung im Überblick

Microsoft Update Windows Update

Java Script für die Nutzung unseres Online-Bestellsystems

Arbeiten mit UMLed und Delphi

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Pflichtenheft Version 1.0. Mäxchen/Meiern iphone App

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Versionsverwaltung mit SVN

Hex Datei mit Atmel Studio 6 erstellen

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

SMS Relay App für Android Smartphones GSM

Karten für MapSource (neu: BaseCamp) und Garmin-GPS-Geräte

Version 0.3. Installation von MinGW und Eclipse CDT

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

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

Content Management System mit INTREXX 2002.

iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013

1. das es keiner Ausdrucke mehr für die Formwertrichter bedarf 2. das die Korrekturen vom Richter selbst an seinem PC durchgeführt werden können.

Ihr Benutzerhandbuch AVIRA ANTIVIR EXCHANGE

Software Projekt 2 / Gruppe Knauth Lernziele:

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Software Engineering in der Praxis

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Microsoft Dynamics NAV 2013 R/2 Installationsanleitung. Inhalt: Begleitmaterial des ERP Übungsbuchs:

Schnittstelle DIGI-Zeiterfassung

Revit Modelle in der Cloud: Autodesk 360 Mobile

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

CADEMIA: Einrichtung Ihres Computers unter Windows

Klausur Software Engineering für WI (EuI)

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

Lokale Installation von DotNetNuke 4 ohne IIS

BILDER TEILEN MIT DROPBOX

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

IBM SPSS Statistics Installationsanleitung

Erstellen eines Formulars

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Use Cases. Use Cases

Pflichtenheft. Projektarbeit. RoboSim (NXT)

Kurzfassung der Studienarbeit

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Installation von MailON2!

Ein mobiler Electronic Program Guide

Robot Karol für Delphi

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Transkript:

Systementwicklung & Softwareengineering: Case Tools, Integrated Developing Environments & Practices der Softwareentwicklung Institut für Wirtschaftsinformatik der Gottfried Wilhelm Leibnitz Universität Hannover Dipl.-Ök. Philipp Maske Institut für Wirtschaftsinformatik Universität Hannover Prof. Dr. Michael H. Breitner 12.06.2008 maske@iwi.uni-hannover.de

Gliederung dieser Vorlesung Kommunikationsprobleme in Softwareprojekten? Ausgewählte Herausforderungen der Softwareentwicklung Case Tools Integrierte Softwareentwicklungsumgebungen, Ausgewählte (Best) Practices: Programmieren im Team, Debugging, Dokumentieren, Performancetests Hello World auf einem Android Smartphone Ausblick maske@iwi.uni-hannover.de 2

Ihre Dozent Dipl.-Ök. Philipp Maske Tel.: (0511) 762 4979 Mail: maske@iwi.uni-hannover.de Online-Sprechstunde: Di 17-18 Uhr u.n.v Forschungs- und Interessenschwerpunkte: E-Learning M-Business M-Learning Strategisches M-Business Geschäftsmodelle und Kosten- /Nutzenanalysen für M-Business Ubiquitäre E-Learning Systeme (insb. UbiLearn ) Softwareentwicklung insb. Konzeption aber auch Praxis (C#.NET, Java, PHP) maske@iwi.uni-hannover.de 3

Kommunikationsprobleme in Softwareprojekten maske@iwi.uni-hannover.de 4

Objektorientierung Programmierung: Klassenbildung Mensch Superklasse -Alter - Geschlecht -Größe - Augenfarbe Vererbung Klasse (m. Vererbung) Schüler Student Dozent -Alter - Geschlecht -Größe - Augenfarbe - Schultyp - Notenschnitt - Jahrgangsstufe -Alter - Geschlecht -Größe - Augenfarbe - Studiengang -Semester - Matrikelnummer -Alter - Geschlecht -Größe - Augenfarbe - Veranstaltung - Rhetorik - Fachwissen maske@iwi.uni-hannover.de 5

Objektorientierung Programmierung: Objektinstanzen und Polymorphie Max Müller (Student) Petra Peters (Schülerin) - Alter: 24J - Geschlecht: männlich - Größe: 175cm - Augenfarbe: blau - Studiengang: WiWi - Semester: 7 - Matrikelnummer: 123456789 - Alter: 12J - Geschlecht: weiblich - Größe: 165cm - Augenfarbe: blau - Schultyp: Gymnasium - Notenschnitt: 2,7 - Jahrgangsstufe: 6. Klasse Objekte Botschaft: Gehe zur Lernstätte (erste Unterrichtsstunde)! Botschaft Ergebnis: Max Müller geht um 12.30 Uhr in die Universität Hannover zur Veranstaltung BWL V Ergebnis: Petra Peters geht in das Kaiser- Wilhelm-Gymnasium um 08.00 Uhr zum Mathematikunterricht. Aufgerufene Methode maske@iwi.uni-hannover.de 6

Vorgehensmodelle in der Systementwicklung Analyse Entwurf Realisierung Klassisches Phasenmodell Projektbegründung Systemeinführung Ist-Analyse Sollkonzept Systementwurf Programmentwurf Realisierung Programmtest Dokumentation maske@iwi.uni-hannover.de 7

CASE Tools Systemeinführung Faktensammlungen, Skizzen, Diagramme Upper CASE Tools Grafische Modellierung des Systementwurfs, UML bspw. Use-Case, Klassendiagramm, Sequenzdiagramm Softwareentwicklungsumgebung Dokumentation, Programmtest Analyse Entwurf Realisierung Integrierte CASE Tools / i-case Projektbegründung Lower CASE Tools CASE Computer Aided Software Engineering CARE Computer Aided REeingeering CAME Computer Assisted Measurement and Evaluation maske@iwi.uni-hannover.de 8

Was soll mein System leisten? UML Anwendungsfall-Diagramme (Use Case) Zeigt das externe Verhalten eines Systems aus Nutzersicht, Darstellung von: Nutzer (Akteure), Use Cases, Beziehungen zueinander. Ein Nutzer kann eine Person aber auch ein System sein. Ein Use Case kapselt eine in sich geschlossene Sammlung von Aktionen, um der Umwelt eine Dienstleistung (bzw. ein Verhalten) anzubieten. Was statt wie : Ein Use Case zeigt den Auslöser eines Use Case, einzelne Schritte (auch Sonder- und Fehlerfälle) und daran beteiligte externe Personen/Systeme. Es zeigt jedoch nicht welcher Programmcode, welche Klassen bzw. Operationen daran beteiligt sind. maske@iwi.uni-hannover.de 9

Beispiel für ein UML Use Case Diagramm maske@iwi.uni-hannover.de 10

Beispiel: Ein UML Use Case Diagramm mit MS Visio maske@iwi.uni-hannover.de 11

Programmspezifikation mit einem Pflichtenheft Ein Pflichtenheft enthält eine detaillierte verbale Beschreibung, was die Anwendung leisten soll (nicht: wie die Anwendung realisiert werden soll!). Ein Pflichtenheft enthält eine Zielbestimmung, die von der Anwendung erreicht werden sollen. Dabei wird eine Unterteilung zwischen Musskriterien, Wunschkriterien und Abgrenzungskriterien vorgenommen. Musskriterien müssen von der Anwendung in jedem Fall erfüllt werden. maske@iwi.uni-hannover.de 12

Programmspezifikation mit einem Pflichtenheft (2) Wunschkriterien sind Anforderungen, die sinnvoll sind, aber nicht unbedingt erfüllt werden müssen. maske@iwi.uni-hannover.de 13

Programmspezifikation mit einem Pflichtenheft (3) Abgrenzungskriterien sollen von der Anwendung bewusst nicht erfüllt werden. maske@iwi.uni-hannover.de 14

Programmspezifikation mit einem Pflichtenheft (4) Weiterhin sollte der Einsatz der Anwendung bewusst definiert werden, bspw. Einsatz im privaten Bereich, bewusst nicht im gewerblichen Bereich. Auch eine Zielgruppe sollte definiert werden, also bspw. Studenten der Wirtschaftswissenschaften im Grundstudium. Wichtig ist auch, die Umgebung zu definieren, auf dem die Anwendung zukünftig laufen soll. Bspw. Smartphone HTC mit Windows Mobile 2005. Angabe der benutzten Entwicklungsumgebung (z.b. Microsoft Visual Studio.NET 2008, Eclipse). Einen Hauptteil des Pflichtenhefts machen die vorgesehenen Funktionen (Use- Case) aus einer abstrakten Benutzersicht aus. maske@iwi.uni-hannover.de 15

Programmspezifikation mit einem Pflichtenheft (5) Beispiel für einen Anwendungsfall (Use-Case): Ausgabe einer persönlichen Begrüßung auf dem Handy-Display: Typischer Ablauf: 1. Eingabe des Namens. 2. Drücken des Begrüßungsbuttons. 3. Prüfung, ob Name nicht leer. 4. Präsentation der persönlichen Begrüßung. Mögliche Alternativen: 1. Name ist leer. 2. Ausgabe einer Fehlermeldung. maske@iwi.uni-hannover.de 16

Erstellung eines Programmentwurfs Klasse 1 +öffentliche Eigenschaft -private Eigenschaft #geschützte Eigenschaft +öffentliche Methode() -private Methode() Allgemeine Beziehung Klasse 3 +öffentliche Eigenschaft -private Eigenschaft +öffentliche Methode() -private Methode() Vererbung Klasse 2 +öffentliche Eigenschaft -private Eigenschaft +öffentliche Methode() -private Methode() Objekt 1 : Klasse 3 öffentliche Eigenschaft private Eigenschaft Anhand des entwickelten Systementwurfs und unter Berücksichtigung des Pflichtenheftes wird ein detaillierter Programmentwurf erstellt, der entweder objektorientiert oder strukturiert erfolgen kann. maske@iwi.uni-hannover.de 17

UML Sequenzdiagramm Objekt 1 Objekt 2 Objekt 3 Botschaft 1() Botschaft 2() Return Return EigeneMethode() maske@iwi.uni-hannover.de 18

Realisierungsphase Die Realisierungsphase wird auch Implementierungsphase genannt. Die Realisierungsphase beinhaltet die Vorgänge: Programmierung der Anwendung, und einen anschließenden Programm- und Systemtest. Damit Programme besser lesbar sind, sollte eine ausführliche Selbstdokumentation (Inlinedokumentation) erstellt werden. Diese besteht in der Regel aus speziellen Kommentarzeilen innerhalb des Programmcodes, die beim Kompilieren ignoriert werden, aber die Lesbarkeit des Quelltextes erhöhen. In einem anschließenden Programmtest wird überprüft, ob die Anwendung die gestellten Aufgaben zufrieden stellend löst und das Programm stabil läuft. Zum Programmtest sollte mindestens eine, möglichst mehrere, Testplattformen definiert werden. maske@iwi.uni-hannover.de 19

Realisierung eines Prototypen für Google Android mit Eclipse Eclipse ist ein OpenSource Framework zur Entwicklung von Software vieler verschiedenen Arten. Eclipse selbst basiert auf Java Technologie. Eclipse ist der Nachfolger von IBM Visual Age for Java 4.0, seit 2001 quelloffen und seit 2004 weiterentwickelt durch die rechtlich eigenständige Eclipse Foundation. Eclipse ist bekannt geworden als IDE für Java, unterstützt aber vielfältige Programmiersprachen (bspw. Java, C++, C#, PHP, JavaScript, ). Durch eine offene, plug-in basierte Struktur können neue Entwicklungsaufgaben hinzugefügt werden. Eclipse eignet sich daher besonders als: Lower-CASE Tool (UML Modellierung, Implementierung, Dokumentation, Programmtest), CAME Tool (Profiling, Software-Metriken, Junit-Testing), CARE Tool (Code to model) maske@iwi.uni-hannover.de 20

Realisierung eines Prototypen für Google Android mit Eclipse (2) Download von Eclipse bspw. 3.3 von: http://www.eclipse.org/downloads/ Download des Google-Android SDK von: http://code.google.com/android/download.html Das Google Android Software Development Kit enthält alle notwendigen Java Klassen, eine online Dokumentation und einen Emulator zum Testen der Anwendungen auf dem PC. Download des JDK 6 (evtl. auch JDK 5) von: http://java.sun.com/javase/downloads/index.jsp Installation des Android Plugins for Eclipse, gemäß Anleitung von: http://code.google.com/android/intro/installing.html#installingplugin Weiterführende Hilfe (englisch) verfügbar unter: http://code.google.com/android/intro/index.html Omondo Eclipse UML (optional): http://www.eclipsedownload.com/ maske@iwi.uni-hannover.de 21

Realisierung eines Prototypen für Google Android mit Eclipse (3) maske@iwi.uni-hannover.de 22

Realisierung eines Prototypen für Google Android mit Eclipse (3) maske@iwi.uni-hannover.de 23

UML Klassenmodell mit Omondo Eclipse UML maske@iwi.uni-hannover.de 24

UML Sequenzmodellierung mit Omondo Eclipse UML maske@iwi.uni-hannover.de 25

Programmierung des Prototypen mit Eclipse: Package Explorer & Project Outline maske@iwi.uni-hannover.de 26

Programmierung des Prototypen mit Eclipse: Der Java Editor maske@iwi.uni-hannover.de 27

Programmierung des Prototypen mit Eclipse: Start im Android-Emulator maske@iwi.uni-hannover.de 28

Programmtest und Fehlersuche mit Eclipse: Debugging maske@iwi.uni-hannover.de 29

Programmtest und Fehlersuche mit Eclipse: Debugging (2) maske@iwi.uni-hannover.de 30

Kontrolle des Emulators maske@iwi.uni-hannover.de 31

Programmdokumentation in Eclipse: Code-Kommentare maske@iwi.uni-hannover.de 32

Programmdokumentation in Eclipse: Dokumentation mit JavaDoc maske@iwi.uni-hannover.de 33

Softwareentwicklung im Team: Subversion Peter schreiben lesen Repository Monika schreiben lesen Hans schreiben lesen maske@iwi.uni-hannover.de 34

Das Problem gemeinsam genutzter Dateien 1. Peter liest 2. Monika liest 3. Hans liest Repository 1. Peter schreibt 2. Monika schreibt 3. Hans schreibt Repository maske@iwi.uni-hannover.de 35

Die Modify-Lock-Unlock Lösung Arbeitsschritt 1: (1) Peter liest eine aktuelle Kopie aus dem Repository. (2) Gleichzeitig sperrt er den Lese- und Schreibzugriff auf das Repository für andere (Lock). (3) Peter nimmt Veränderungen am Code vor. (4) Peter überträgt die Änderungen ins Repository (Modify) und entfernt die Zugriffssperre (Unlock). Arbeitsschritt 2: (1) Monika liest die von Peter aktualisierte Version als Kopie aus dem Repository. (2) Monika sperrt den Lese- und Schreibzugriff (Lock). (3) Monika nimmt Veränderungen am Code vor. (4) Monika überträgt die Änderungen ins Repository (Modify) und entfernt die Zugriffssperre (Unlock). Arbeitsschritt 3: (1) Vice versa für Hans. maske@iwi.uni-hannover.de 36

Probleme der Lock-Modify-Unlock Lösung Locking kann administrative Probleme verursachen: Bspw. setzt Peter einen Lock und vergisst diesen die anderen Teamkollegen warten vergeblich und dann fährt Peter noch in einen ausgiebigen Urlaub Locking verursacht unnötige Serialisierung der Arbeitsabläufe: Bspw. möchte Peter nur den Anfang einer Datei und Monika das Ende einer Datei bearbeiten. Beide könnten gefahrlos nebeneinander arbeiten. Ein Lock verhindert dies. Locking vermittelt einen falschen Eindruck von Sicherheit: Bspw. bearbeitet Peter Datei A und Monika Datei B. Beide wiegen sich in Sicherheit jedoch hängt Datei B von Datei A ab. maske@iwi.uni-hannover.de 37

Die Copy-Modify-Merge Lösung (1) Peter und Monika lesen jeweils eine Kopie aus dem Repository. (2) Beide bearbeiten ihre individuelle Kopie. (3) Monika spielt die bearbeitete Version ins Repository zurück. (4) Nun spielt Peter seine Version ins Repository zurück und erhält eine Warnung, dass sein Kopie nicht mehr aktuell ist (Conflict). (5) Peter lässt sich die Änderungen von Monika anzeigen und wählt manuell die passende aus. Hieraus ergibt sich ein neues Dokument, dass beide Änderungen kombiniert (Merge). (6) Peter spielt die neue Version ins Repository zurück. (7) Ab diesem Zeitpunkt können weitere Änderungen vorgenommen werden. Wichtig: Das Merging lässt sich nicht automatisch durchführen, es ist immer ein manueller Eingriff nötig! maske@iwi.uni-hannover.de 38

Merging mit Eclipse maske@iwi.uni-hannover.de 39

Exkurs: Fortgeschrittene Programmierung mit PHP PDT Developer Tools (kostenlos) http://www.zend.com/de/community/pdt Zend Studio for Eclipse (kostenpflichtig) http://www.zend.com/de/products/studio/eclipse/ Hervorhebenswerte Eigenschaften: Codevervollständigung, Debugging, Stacktracing, Performancetests, Refactoring, Codeanalyse (PHP, HTML und JavaScript). maske@iwi.uni-hannover.de 40

Ausblick Modellgetriebene Entwicklung mit Eclipse, Rapid Prototyping mit Eclipse (EMF), Kontextbezogene Entwicklung (Mylyn), Integration von C# in Eclipse (Mono)?, Integration von Bugtracking, Mylin und Eclipse, bessere Unterstützung von Sprachen jenseits von Java (Eclipse 4.0), Annäherung von Eclipse und Microsoft?. maske@iwi.uni-hannover.de 41

Literaturempfehlung Standardwerk und allumfassend 7. Auflage, mit 2 DVDs Ca. EUR 49,90. 1478 Seiten. Theoretische Grundlagen und Praxisanweisungen. Behandelt Java und Eclipse. maske@iwi.uni-hannover.de 42

Literaturempfehlung (online) Google Android: http://code.google.com/android/ Kostenlose Openbooks unter: http://www.galileocomputing.de/katalog/openbook/ Java ist auch eine Insel als Openbook: http://www.galileocomputing.de/openbook/javainsel7/ Zend Forums: http://www.zend.com/forums/ Einrichtung eines Bugtrackers mit Wiki, SVN, Bugzilla, Mailman: http://oss.segetech.com/bugzilla-svn-wiki.html maske@iwi.uni-hannover.de 43