Softwareentwicklungsumgebungen Pit Pietsch Dipl.-Wirt.-Inform. Universität Siegen Fachgruppe Praktische Informatik
Themen 1. SEU / Eclipse 2. Emf Ecore & Model Driven Engineering 3. Model-Repositories 5. EMF Henshin 6. GMF 7. Modellvergleichswerkzeuge
Softwareentwicklungsumgebungen Überblick Motivation CASE-Tools CASE CASE Einführung CASE & SEU SEU Benutzertypen Qualitätskriterien Kategorien
Überblick
Motivation Komplexe Software zu entwickeln ist zu aufwendig für rein manuelle Ansätze
Motivation Computer-Aided Software Engineering (CASE) Ziele: Verbesserte Qualität Reduktion der Kosten Verbesserung des Managements
Was sind CASE-Tools? &
Editoren Einfache Texteditoren Komplexe Editoren für Quellcode Autovervollständigung Syntaxhervorhebung API-Lookup...
Programmiersprachen Java, C++, Haskell, Assembler Quelltext Für Menschen leichter zugänglich als Bits & Bytes
Repositories Sicherung der relevanten Dokumente Versionsverwaltung & Archivierung Information Retrieval
Skriptsprachen Automatisierung wiederkehrender Aufgaben Steuerung der Werkzeuge
Modellierungstools Modellierung des Systems Abstraktion von unwichtigen Details
Simulation Entwurf Embedded Systems, Finanzmodelle, etc... Ausprobieren was passiert
Bugtracking Nachhalten offener Aufgaben und Zuständigkeiten
Informationssysteme Wissensbewahrung und -weitergabe
Integrierte Entwicklungsumgebungen
Scope Alle Werkzeuge die den Entwickler bei der Entwicklung von Software direkt oder indirekt unterstützen!
CASE Computer-Aided Software Engineering (CASE)
CASE Ziele Verbesserung der Qualität der entwickelten Software Automatische Kontrollen Reduktion der Gesamtkosten Weniger Fehler & kürzere Entwicklungszeit Verbesserung des Managements von Entwicklungsprojekten Planung, Dokumentation...
CASE Anspruch Kein Zaubermittel! Methodenkenntnisse erforderlich Beratung bei der Anschaffung Schulung der Entwicklung Struktur des Entwicklungsprozess muss stimmen
CASE Werkzeuge...alle Software Produkte die zumindest einzelne bei der Entwicklung von Software benötigte Funktionen anbieten
CASE Werkzeuge Problem: Insellösungen sind ineffizient Integration von mehreren CASE-Tools: Softwareentwicklungsumgebung
SEU
Definition SEU Eine Softwareentwicklungsumgebung ist eine Sammlung zahlreicher Hardware, Programme, Anwendungen und Dokumentationen, die dem Softwareentwickler bereitgestellt wird, um eine Anwendung zu erstellen. - Wikipedia.de
SEU Benutzertypen Entwickler (Informatiker) Verfügt über Methodenkenntnisse Arbeitet längerfristig mit einer SEU Detailwissen über SEU Fachleute Spezialisten mit rudimentären Informatikkenntnissen Reduktion auf sinnvolle Funktionen Gelegentliche Nutzer & Anfänger Reduktion auf ein Minimalstandard
SEU Qualitätskriterien
SEU Qualitätskriterien Funktionale Vollständigkeit Werden alle bei der Entwicklung anfallenden Tätigkeiten unterstützt? Abhängig von... der zu entwickelnden Software dem gewählten Vorgehensmodell
SEU Qualitätskriterien Integration Sind alle Tools von einem Arbeitsplatz nutzbar? Werden die Daten konsistent behandelt? Gibt es eine einheitliche Benutzerschnittstelle Gibt es Automatisierungsmöglichkeiten?...
SEU Qualitätskriterien Teamarbeit Wird paralleles Arbeiten und Kooperation unterstützt? Global Software Engineering
SEU Qualitätskriterien Benutzerfreundlichkeit Ist die SEU leicht zu bedienen? Methodentreue Werden alle Funktionen der Methode X auch umgesetzt?
SEU Qualitätskriterien Adaptierbarkeit Kann die SEU an gegebene organisatorische bzw. technische Gegebenheiten angepasst werden? Offenheit Lassen sich externe Werkzeuge in die SEU integrieren?
Klassifikationen SEU
Klassifikationen SEU Verschiedene Schema existieren Projektphase Realisierungsmethode Datenverwaltung
Klassifikationen SEU Projektphasen Upper-CASE Entwicklungswerkzeuge für frühe Phasen Lower-CASE Entwicklungswerkzeuge für späte Phasen
Klassifikationen SEU Realisierungsmethode Werkzeugkästen Sammlung diverser Tools Sprachbezogene SEU Einheitliche Tooling Meta-CASE Umgebungen Tools können vom Entwickler spezifiziert werden
Klassifikationen SEU Datenverwaltung Wo werden anfallende Dokumente verwaltet Datei Datenbank Repository
Weitere Materialen: Skript Softwareentwicklungsumgebungen (SEU Homepage) http://www.eclipse.org/ https://netbeans.org/
Assignments
Organisatorisches Aufgaben werden in der Veranstaltung verteilt Bearbeitung in Kleingruppen Gruppen werden von uns eingeteilt!
Form Es wird Aufgaben geben, wo......eine Ausarbeitungen (~1-5 Seiten) abzugeben ist. eine Präsentation (~10-30 Min) gehalten wird. etwas vorzuführen ist. Welche Dokumente einzureichen sind, geht immer explizit aus der Aufgabe hervor.
Form Alle eingereichten Dokumente (Folien, Text,.Zips,...) müssen eindeutig zuordenbar sein. Zu jeder Aufgabe ist der zur Bearbeitung benötigte Zeitaufwand anonymisiert zu vermerken. Student A Student B Student C Aufgabe 1.1 10h 7,5h 15h Aufgabe 1.2 6h 10h 5h
Form Präsentations- & Demonstrationstermine I.d.R. Individualtermine Anwesenheitspflicht für Präsentierende Jeder Student sollte etwas sagen! Setzen Euch wegen Terminen frühzeitig mit mir in Verbindung!
Assignment 1
Assignment 1 Erklärt die Eclipse Architecture Erklärt den Eclipse Plugin-Mechanismus Schreibt einen Taschenrechner Über Menü-Leiste erreichbar. Unterstützt +,-,*,/ Ausgabe über Pop-Up Fenster
Assignment 1 Präsentation ~15-30 Minuten Termin in der 21KW Schriftliche Ausarbeitung (.pdf) Tutorial Mit allen Quellcodes, etc... Abgabe mindestens 3 Tage vor Präsentation!