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