28.02.2014 Aufrufe

Softwareentwicklungsumgebungen - Praktische Informatik

Softwareentwicklungsumgebungen - Praktische Informatik

Softwareentwicklungsumgebungen - Praktische Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

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!

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!