Softwaretechnik II ST II. 6 Reengineering
|
|
- Nelly Weiss
- vor 6 Jahren
- Abrufe
Transkript
1 Softwaretechnik II 6 Reengineering Lernziele Wissen, warum und wann Software Reengineering? Wissen, dass Software Reengineering alle Aktivitäten, deren Ziel die qualitative Verbesserung, Aufbereitung und Weiterentwicklung von Software ist, umfasst Prozesse Reverse Engineering, Respezifikation, Restrukturierung und Redokumentation kennen Methodologien, Tools und Praktiken des Software Reengineerings kennen Literatur K. Cremer: Graphbasierte Werkzeuge zum Reverse Engineering und Reengineering, Deutscher Universitätsverlag, 2000 K. A. Ingle: Reverse Engineering, McGraw-Hill Education, 1994 F. Lehner: Softwarewartung und Reengineering, Deutscher Universitätsverlag, IAS, Universität Stuttgart 255
2 Softwaretechnik II 6 Reengineering 6.1 Warum Software Reengineering? 6.2 Reverse Engineering 6.3 Respezifikation 6.4 Redokumentation 6.5 Programmtransformation 6.6 Hinweise für die Praxis 2015 IAS, Universität Stuttgart 256
3 6.1 Warum Software Reengineering? Komplexe, gewachsene Systeme sind (oft) nicht austauschbar! 2015 IAS, Universität Stuttgart 257
4 6.1 Warum Software Reengineering? Ziel: Modernisierung von Altsystemen 2015 IAS, Universität Stuttgart 258
5 6.1 Warum Software Reengineering? Warum Software Reengineering? Aber: Reengineering intereressiert mich nicht, meine Programme funktionieren! Wann wird auf einen neuen Computer oder Sprachstandard umgestellt? Wann wird auf eine andere Programmiersprache umgestellt? Wie lange wird mein Betriebssystem noch unterstützt? Wie offen ist mein System bezüglich der Integration neuer Technologien? Besitze ich eine aktuelle Programmdokumentation? Steigt mein Wartungsaufwand nur, um den Ist-Zustand zu erhalten? Wie gut läßt sich das System in seinem aktuellen Zustand zur Erfüllung gegebener und künftiger Erfordernisse verwenden? Verhält sich das System in allen erdenklichen Situationen robust? 2015 IAS, Universität Stuttgart 259
6 6.1 Warum Software Reengineering? Aufwand für die Pflege von Software-Altsystemen (Live-Mitschrieb) Aufwand für Pflege Sanierung Nutzungsdauer 2015 IAS, Universität Stuttgart 260
7 6.1 Warum Software Reengineering? Kosten Software-Wartung Wartungskosten pro Jahr > 1 Vermögenswert < 10 Sanierungsbedarf hoch = = 10 Jahre Nutzung Sanierungsbedarf gering Vermögenswert = Kosten für Neuentwicklung unter Beachtung des tatsächlichen Funktionsbedarfs 2015 IAS, Universität Stuttgart 261
8 6.1 Warum Software Reengineering? Was ist Software Reengineering? Unter Reengineering versteht man den Prozess der Analyse und der strukturellen Veränderung existierender Programme mit dem Zweck, die qualitativen Eigenschaften Portabilität Wartbarkeit (Produktivität) Wiederverwendbarkeit zu verbessern IAS, Universität Stuttgart 262
9 6.1 Warum Software Reengineering? Das Reengineering umfasst: Die nachträgliche Erzeugung und Verbesserung einer Dokumentation Redokumentation Die nachträgliche Erstellung der Spezifikation, um eine CASE-Umgebung nutzen zu können Respezifikation Die nachträgliche Strukturierung und Formatierung von Programmen, die schlecht lesbar sind Restrukturierung Die Wiederverwendung bewährter Programme Reuse Verbesserung der Möglichkeit, die Programmiersprache zu wechseln Recycle Erweiterung und Änderung von Programmen während des Betriebs Redesign 2015 IAS, Universität Stuttgart 263
10 6.1 Warum Software Reengineering? Wann sind Software Reengineering Maßnahmen notwendig? Technische Anforderungen = verwendete Technik erfüllt fachlich sanieren beibehalten nicht erfüllt aussondern neu entwickeln technisch sanieren nicht erfüllt erfüllt Fachliche Anforderungen = Funktionen 2015 IAS, Universität Stuttgart 264
11 6.1 Warum Software Reengineering? Bewertungsfaktoren für Reengineering Maßnahmen Kosten für Reengineering Kosten für Pflegearbeiten Vermögenswert Zu erwartende Lebensdauer Zukünftige Anforderungen Zeitbedarf für Sanierung Verfügbarkeit von Werkzeugen Mitarbeitersituation 2015 IAS, Universität Stuttgart 265
12 6.1 Warum Software Reengineering? Einflussfaktoren für Reengineering Maßnahmen Wartungskosten Alter der Software Erreichbarkeit Wartungsumgebung Benutzerfreundlichkeit Wartungsressourcen Erfahrung Sicherheitsanforderungen Code- Qualität Technische Abschätzung Wirtschaftliche Abschätzung Risikoabschätzung Andere Abschätzungen Werkzeugunterstützung Ablauf Management Entscheidungsprozess Politik Projektwachstum Geschäftsziele Lebenserwartung des Codes Dokumentation Neue Technologien Wartungsproduktivität Entscheidung 2015 IAS, Universität Stuttgart 266
13 6.1 Warum Software Reengineering? Kosten/Nutzen-Vergleich NW AW DS *( KS E * AW AW NW ) 1 mit DS > 0 Abkürzungen: AW NW DS E KS ZE Alte Wartungskosten/ZE vor Sanierung Neue Wartungskosten/ZE nach Sanierung Dauer der Sanierung in ZE Lebenserwartung in ZE Kosten der Sanierung / ZE Zeiteinheit (z.b.: 1 Monat) 2015 IAS, Universität Stuttgart 267
14 6.1 Warum Software Reengineering? Beispiel für eine Kosten-Nutzen-Analyse AW NW DS / Monat (2 Mitarb.) / Monat (1 Mitarb.) 2 Monate KS Tool Lohnkosten / Monat E 5 Jahre = 60 Monate Faktor: E 1 Jahr = 12 Monate Faktor: 0.75 < IAS, Universität Stuttgart 268
15 6.1 Warum Software Reengineering? Risiken bei Neuentwicklung/Risiken bei Reengineering Neuentwicklung Aufwand/Kosten werden unterschätzt Hohe Fehlerrate in Einführungsphase Neuentwicklung generiert neue Anforderungen Reengineering Entfremdung durch Restrukturierung Parallel zur laufenden Systempflege Je umfangreicher die Sanierungsmaßnahmen sind, um so mehr Fehler sind im neuen System 2015 IAS, Universität Stuttgart 269
16 6.1 Warum Software Reengineering? Reengineering Tätigkeiten Bestandsaufnahme Kosten-Nutzen- Analyse Kosten > Nutzen Planung Respezifikation/Analyse Redokumentation Restrukturierung/ Transformation Abschlusstest Integration 2015 IAS, Universität Stuttgart 270
17 6.1 Warum Software Reengineering? Vorstudie Bestandsaufnahme Feststellung des Gesamtumfangs in LOC Programmiersprache, Dialekte Qualitätsbestimmung Komplexitätsbestimmung Prüfung des Einsatzes von Werkzeugen Verfügbarkeit von qualifizierten Mitarbeitern Kosten/Nutzen-Analyse Aufwandsabschätzung Neuentwicklung Aufwandsabschätzung Reengineering Einsparungen in der Wartungsphase Kostenreduktion durch preiswerte Hardware/ Standardsoftware 2015 IAS, Universität Stuttgart 271
18 6.1 Warum Software Reengineering? Projektplanung Modulweise Umstellung Evolutionäre Integration neuer Module Gemischter Betrieb Zeitunkritisch Komplett-Umstellung Einfrieren des Gesamtsystems Abrupter Wechsel zwischen altem und neuem System Zeitkritisch 2015 IAS, Universität Stuttgart 272
19 6.1 Warum Software Reengineering? Abschlusstest Überprüfung der korrekten Funktion durch Vergleich der Testergebnisse des alten und des neuen Systems Protokollierung Benutzungsschnittstelle Datenbank-Transaktionen Funktionstrace/Datentrace Prozess-I/O 2015 IAS, Universität Stuttgart 273
20 6.1 Warum Software Reengineering? Reengineering Vorgehensweisen Spezifikation 1 Redesign Spezifikation 2 Abstraktion Generierung Ursprung z. B.: Quellprogramm in Fortran, schriftliche Unterlagen, Know-How Transformation Restrukturierung Metriken Übersetzung Redokumentation Instrumentierung Ergebnis z.b.: Quellprogramm in C, Übersichtsdiagramme, strukturierter Code 2015 IAS, Universität Stuttgart 274
21 Frage zu Kapitel 6.1 Frage zu Kapitel 6.1 Welche qualitativen primären Eigenschaften soll Software Reengineering verbessern? Antwort f Dokumentation Reaktionszeit Produktivität Wiederverwendbarkeit 2015 IAS, Universität Stuttgart 275
22 Softwaretechnik II 6 Reengineering 6.1 Warum Software Reengineering? 6.2 Reverse Engineering 6.3 Respezifikation 6.4 Redokumentation 6.5 Programmtransformation 6.6 Hinweise für die Praxis 2015 IAS, Universität Stuttgart 276
23 6.2 Reverse Engineering Was ist Reverse Engineering? Reverse Engineering beinhaltet die Analyse existierender Programme mit dem Zweck: Die Komponenten und deren Beziehung zu bestimmen Das Programmsystem in anderer Form und auf höherer Abstraktionsebene zu beschreiben IAS, Universität Stuttgart 277
24 6.2 Reverse Engineering Reverse Engineering Anforderungs- Analyse REQ 1 REQ 2 REQ 3 Requirementspezifikation Respezifikation + Reverse Engineering manuelle Interaktion Programmanalyse Dokumentation PROG 1 Grobentwurf MOD 1 MOD 2 MOD 3 F 1 F 2 F 3 Entwurfsspezifikation (high level) Respezifikation + manuelle Interaktion Respezifikation Feinentwurf Entwurfsspezifikation (low level) Implementierung Forward Engineering Programmquelle 2015 IAS, Universität Stuttgart 278
25 Softwaretechnik II 6 Reengineering 6.1 Warum Software Reengineering? 6.2 Reverse Engineering 6.3 Respezifikation 6.4 Redokumentation 6.5 Programmtransformation 6.6 Hinweise für die Praxis 2015 IAS, Universität Stuttgart 279
26 6.3 Respezifikation Respezifikation Respezifikation ist Bestandteil des Reverse Engineering Aus allgemeinen Informationen, der vorhandenen Dokumentation, dem Quelltext und dem funktionalen Verhalten des Programms wird die Beschreibung der Anforderungen und des Entwurfs nachempfunden Anforderungsspezifikation Entwurfsspezifikation Quellcode und Dokumentation 2015 IAS, Universität Stuttgart 280
27 6.3 Respezifikation Vorgehensweise bei der Respezifikation Schritt 1: Analyse des Quellcodes bezüglich der Struktur Schritt 2: Ergänzung der Struktur durch funktionale Aspekte Schritt 3: Vollständige Beschreibung, welche die Beziehungen zwischen den Anforderungen, dem Entwurf und dem Quellcode beschreibt Schritt 4: Überprüfung der Respezifikation 2015 IAS, Universität Stuttgart 281
28 6.3 Respezifikation Zusammenhang zwischen Quellcode, Entwurf und Anforderungen REQ 400: REQ 410: REQ 420: Anforderungs- Spezifikation Funktion X Funktion Y A X1 Y1 C X2 X3 X4 Y2 Y3 D Entwurfs- Spezifikation B X5 X6 X7 E { Quellcode { 2015 IAS, Universität Stuttgart 282
29 Frage zu Kapitel 6.3 Frage zu Kapitel 6.3 In welchen Situationen ist der Einsatz von Reverse Engineering Maßnahmen sinnvoll? Antwort f Wenn die bestehende Software nicht weggeworfen werden kann Wenn die vorhandene Datenstruktur wieder verwendet werden kann Wenn die Kosten der Neuentwicklung signifikant hoch sind 2015 IAS, Universität Stuttgart 283
30 Softwaretechnik II 6 Reengineering 6.1 Warum Software Reengineering? 6.2 Reverse Engineering 6.3 Respezifikation 6.4 Redokumentation 6.5 Programmtransformation 6.6 Hinweise für die Praxis 2015 IAS, Universität Stuttgart 284
31 6.4 Redokumentation Redokumentation Unter Redokumentation versteht man die nachträgliche Erstellung und Aktualisierung der Programmdokumentation Sichten: Kontrollfluss Datenfluss Programm Datenstrukturen Aufrufstruktur 2015 IAS, Universität Stuttgart 285
32 6.4 Redokumentation Nutzen einer Redokumentation Besseres Verständnis, mehr Übersicht Transparenz für neue/andere Mitarbeiter Gute Dokumentation erhöht Akzeptanz beim Auftraggeber Höhere Wiederverwendbarkeit durch eine leicht verständliche, aktuelle und präzise Dokumentation 2015 IAS, Universität Stuttgart 286
33 6.4 Redokumentation Redokumentation Der Ist-Zustand eines vorhandenen Programms wird am Projektende oder in der Wartungsphase nachträglich dokumentiert Nassi- Shneidermann- Diagramme Crossreferenzlisten Dokumentation andere Informations- Quellen + REVERSE ENGINEERING Quellprogramm 2015 IAS, Universität Stuttgart 287
34 6.4 Redokumentation Alternativen: Manuell, werkzeugunterstützt: Quelltext-Formatierer Struktogramm-Generatoren Respezifikations- und Dokumentationswerkzeuge Beispiele für Werkzeuge: Goose Menge von Werkzeugen zur Analyse des Entwurfs eines objektorientierten Softwaresystems, die am FZI Karlsruhe entwickelt wurden SRF Generator Ein Kommandozeilenwerkzeug zur Fact Extraction aus Java Systemen TableGen Ein Kommandozeilenwerkzeug für C/C++ Systeme Film: Reverse Engineering mit Rose IAS, Universität Stuttgart 288
35 Frage zu Kapitel 6.4 Frage zu Kapitel 6.4 Welche Nutzen bringt die Redokumentation? Antwort f Besseres Verständnis und mehr Übersicht Anzeigen eines Programmablaufplans Erhöhung der Akzeptanz beim Auftraggeber Transparenz für neue/andere Mitarbeiter 2015 IAS, Universität Stuttgart 289
36 Softwaretechnik II 6 Reengineering 6.1 Warum Software Reengineering? 6.2 Reverse Engineering 6.3 Respezifikation 6.4 Redokumentation 6.5 Programmtransformation 6.6 Hinweise für die Praxis 2015 IAS, Universität Stuttgart 290
37 6.5 Programmtransformation Sprachtransformation höhere Programmiersprache höhere Programmiersprache Assembler manuell automatisch interaktiv Assembler 2015 IAS, Universität Stuttgart 291
38 6.5 Programmtransformation Vorgehensweise bei der Programmtransformation Quellprogramm (z.b. FORTRAN) Preprozessor Scanner Parser Symboltabelle Strukturtabelle Quellcode- Generator Bereitstellung der Laufzeitroutinen aus der alten Programm- Umgebung in der neuen Programmiersprache Laufzeitbibliothek Quellprogramm (z.b. C) Übersetzbares und ablauffähiges Programmsystem 2015 IAS, Universität Stuttgart 292
39 Softwaretechnik II 6 Reengineering 6.1 Warum Software Reengineering? 6.2 Reverse Engineering 6.3 Respezifikation 6.4 Redokumentation 6.5 Programmtransformation 6.6 Hinweise für die Praxis 2015 IAS, Universität Stuttgart 293
40 6.6 Hinweise für die Praxis Reengineering bedeutet: Investition zur Sicherung alter Investitionen Vorteile des Reengineerings Möglichkeit der Rettung großer getätigter Softwareinvestitionen Steigerung der Produktivität bei der Softwarewartung und der Weiterentwicklung Portabilität durch Verwendung von Standards Kostenreduktion durch Wiederverwendung bewährter Komponenten Einfache Integration neuer Technologien Höhere Zufriedenheit der Mitarbeiter Einfache Adaption von Produkten Verbesserung der Softwarequalität 2015 IAS, Universität Stuttgart 294
41 6.6 Hinweise für die Praxis Grenzen des Reengineerings Einschränkungen beim Gebrauch automatisch arbeitender Werkzeuge: Programmtransformation Neuer Quellcode ist schwierig zu warten Restrukturierung unterschiedliche Sichtweisen Programm wird größer Effizienz nimmt ab Respezifikation, Dokumentation Nur formale (syntaktische) Sprachelemente werden ausgewertet Einschränkungen bei der manuellen Arbeit lange Dauer fehleranfällig unbeliebt 2015 IAS, Universität Stuttgart 295
42 Vorbereitungsfragen Vorbereitungsfragen zu 6 Frage 1: Reengineering (WS 03/04) Im Rahmen einer großen Softwareinvestition wurde vor 10 Jahren eine verfahrenstechnische Anlage automatisiert. In diesem Jahr müssen Teile der Anlage durch weiterentwickelte Hardware ersetzt werden. Es besteht die Möglichkeit die Software komplett neu zu entwickeln oder sie zu sanieren. Welches Verfahren schlagen Sie vor? Begründen Sie Ihre Aussage. Frage 2: Reengineering (WS 05/06) Ein Softwaresystem, das zur Steuerung einer verfahrenstechnischen Anlage eingesetzt wird, verursacht Wartungskosten pro Jahr. Die Neuentwicklung kostet 10 Millionen. Besteht ein Sanierungsbedarf? Begründen Sie Ihre Aussage IAS, Universität Stuttgart 296
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Softwaretechnik II. Sommersemester 2015
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Softwaretechnik II Sommersemester 2015 www.ias.uni-stuttgart.de/st2 st2@ias.uni-stuttgart.de
MehrSoftware Engineering. 7) SW Wartung. Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik. Studiengang WiBac 4 (Stand:
Software Engineering 7) SW Wartung Prof. Dr. Anja Metzner Hochschule Augsburg, Fakultät für Informatik Kontakt: anja.metzner@hs-augsburg.de Studiengang WiBac 4 (Stand: 15.03.2014), Hochschule Augsburg,
MehrInhaltsverzeichnis. Teil I Grundlagen 1
xv Teil I Grundlagen 1 1 Modelle und Modellierung 3 1.1 Modelle, die uns umgeben.................................. 3 1.2 Modelltheorie........................................... 5 1.3 Ziele beim Einsatz
MehrSoftware Engineering II (IB) Softwareevolution
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 21:17 Inhaltsverzeichnis Softwareveränderungen............................... 2 Spiralmodell von Entwicklung und Evolution...................
MehrSoftware Engineering II (IB) Softwareevolution
Software Engineering II (IB) Softwareevolution Prof. Dr. Oliver Braun Letzte Änderung: 16.05.2017 21:17 Software Engineering II (IB), Softwareevolution 1/28 Softwareveränderungen Veränderungen der Software
MehrGrundlagen der Informatik II
Grundlagen der Informatik II login: pw: Prof. Dr.-Ing. habil Fakultät für Informatik und Automatisierung FG Softwaresysteme/Prozessinformatik email: ilka.philippow@tu-ilmenau.de Tel. 69 2826 Sekr. 69 2870,
Mehr2 Softwarearchitektur in der Organisationsstruktur 25
xiii Teil I Grundlagen und Organisation 1 1 Grundlagen 3 1.1 Warum Softwarearchitektur?.............................. 4 1.2 Was ist Softwarearchitektur?.............................. 6 1.2.1 Definition
MehrMDRE die nächste Generation des Requirements Engineerings
MDRE die nächste Generation des Requirements Engineerings Tom Krauß, GEBIT Solutions GmbH Copyright 2007 GEBIT Solutions Agenda Requirements Engineering heute eine Bestandsaufnahme Modell-Driven Requirements
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. R. Koschke 1 D. Simon 2 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen 2 Institut für Software Technologie Fakultät
MehrEvaluation of Database Design and Reverse Engineering Tools for a Large Software System
Evaluation of Database Design and Reverse Engineering Tools for a Large Software System Anne Thomas TU Dresden Dr. B. Demuth Pre Press GmbH (Dresden) T. Reuter Gliederung Einleitung Vorgehensweise Kontext
MehrEntwicklungsmethoden
Slide 5.1 Entwicklungsmethoden Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1 Session 5 Slide 5.2 TOOLS Development Methodologies Prof. Dr. Josef M. Joller
MehrModellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013
Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 7. Februar 2013 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion
MehrSoftwareentwicklungsumgebungen
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
MehrProgrammentwurf mittels strukturierter Programmierung. Programmentwurf. Nassi-Shneiderman-Diagramm [DIN ]
Programmentwurf Bevor man sich daran macht, den Quelltext eines Programmes zu schreiben, sollte man sich einen Plan der Struktur des zukünftigen Programmes machen. Diese Phase eines Softwarentwicklungsprojekts
MehrSoftwaretechnik. Fomuso Ekellem WS 2011/12
WS 2011/12 Inhalt Projektvorstellung Übung 1 Wiederholung zusammengefasst Planungsphase Lernziele Ziele und Inhalt der Planungsphase Anlass und Aufgabestellung(Was ist dabei erförderlich) Requirement Engineering
MehrPoseidon for UML. Einführung. Andreas Blunk
Poseidon for UML Einführung Andreas Blunk Gliederung 1) Editionen/Lizenzen 2) Die Programmoberfläche 3) Modelle speichern 4) Einführung am lebenden Objekt 5) Generierung (Doc & Code) 6) Funktionsumfang
MehrSOMA Reverse Engineering
SOMA Reverse Engineering Univ.Prof. Dr. Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt Was versteht man unter Reverse Engineering? Techniken/Methoden Probleme VU Software Maintenance
MehrVorgehensweise zur Einführung der ISO/IEC 27001: Sven Schulte
- Sven Schulte Agenda Prozessüberblick Projektplanung / Projekteinführung Einführungsschulung Bestandsaufnahme Aktionsplan Projektumsetzung Aufgabenzuordnung Dokumentation Internes Audit Managementbewertung
MehrTypen von Softwareprojekten
Softwaretechnik- Praktikum: 5. Vorlesung Jun.-Prof Prof.. Dr. Holger Giese Raum E 3.165 Tel. 60-3321 Email: hg@upb.de Übersicht I Einleitung II Ergänzungen zur Software-Entwicklung III Software Management
MehrBehutsame Modernisierung
Software Evolution mit Legacy Systemen Forum Forschungsförderung / ViSEK Trends im Software Engineering Software Evolution mit Legacy Systemen Behutsame Modernisierung Jan Wloka
Mehr4.Grundsätzliche Programmentwicklungsmethoden
4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden
MehrSoftwaretechnik- Praktikum: 5. Vorlesung
Softwaretechnik- Praktikum: 5. Vorlesung Jun.-Prof Prof.. Dr. Holger Giese Raum E 3.165 Tel. 60-3321 Email: hg@upb.de Übersicht I Einleitung II Ergänzungen zur Software-Entwicklung III Software Management
MehrInstitut für Informatik Betriebliche Informationssysteme Graph-basiertes Reengineering
Graph-basiertes Reengineering Seminar Model-Driven Software Development (MDSD) Stefan Sosnicki Agenda 1. Einleitung 2. Begriffsklärung 3. Vorstellung der Werkzeuge 1. Jumli 2. Umodel 3. Fujaba 4. Vergleich
MehrEinführung in die Informatik
Einführung in die Informatik Softwareentwicklung Probleme bei großer Software Life-Cycle-Modelle Teilphasen eines Software-Projekts Methoden und Werkzeuge 01101101 01011001 11010011 10011000 00000011 00011100
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2009/10 Überblick I 1 I 1 Arten von Reengineering-Projekten
Mehr16 Architekturentwurf Einführung und Überblick
Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software
MehrKompetenzfeld Software- und Automatisierungstechnik
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Kompetenzfeld Software- und Automatisierungstechnik Prof. Dr.-Ing. Michael Weyrich 27.04.2016 1
MehrAufbau betrieblicher Informationssyteme
Aufbau betrieblicher Informationssysteme Dr. Thomas Lux Aufbau betrieblicher Informationssyteme 0 Einleitung 2 Entwicklung von Software: Prozedurale Programmierung 3 Software Engineering 4 Objektorientierte
MehrGnädinger & Jörder Consulting Assuring Project Success
Gnädinger & Jörder Consulting Assuring Project Success TQS Technische Qualitätssicherung Management Summary Dr. Markus Schmitt 2010-03-01 Folie 1 Ihre Anforderungen unsere Leistung Sie möchten zukünftige
MehrGibt es eine eigenen Didaktik für das Hauptund das Nebenfach sowie weitere Differenzierungen?
Gibt es eine eigenen Didaktik für das Hauptund das Nebenfach sowie weitere Differenzierungen? Peter Forbrig Fakultät für Informatik und Elektrotechnik Institut für Informatik Lehrstuhl für Softwaretechnik
MehrPotentiale modellgetriebener Softwareentwicklung
Model Driven Software Development Potentiale modellgetriebener Softwareentwicklung Referent: Hartwig Tödter Seite 2 / 23 Inhaltsverzeichnis 1. Grundideen modellgetriebener Softwareentwicklung 2. Vorteile
MehrSoftwaremetriken. 15. Mai 2013
Softwaremetriken 15. Mai 2013 Was sind Softwaremetriken? Softwaremetriken messen Qualität. besser: Softwaremetriken definieren, wie Kenngrößen der Software oder des Softwareentwicklungsprozesses gemessen
MehrSoftware Engineering
lan Sommerville 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Software Engineering 6. Auflage Pearson Studium ein
MehrSoftware-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase)
Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase) Prof. Dr. Rolf Dornberger Software-Engineering: 7 Implementierungsphase 27.04.2006 1 7 Implementierungsphase
MehrSoftware- und Systementwicklung
Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg Inhalt Vorgehensmodelle Wasserfallmodell V-Modell Phasen (Pflichtenheft) UML Klassendiagramm Sequenzdiagramm
MehrSoftware Engineering für kritische Systeme
Software Engineering für kritische Systeme (v. 31.01.2015) Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV und Fraunhofer Institut für Software- und Systemtechnik, Dortmund http://jan.jurjens.de
MehrISim Standardisierung von Flugkörpersimulationen. Vortragender: Florian Peter DGLR, Braunschweig Datum: 30.
ISim Standardisierung von Flugkörpersimulationen Vortragender: Florian Peter (florian.peter@mbda-systems.de) Ort: DGLR, Braunschweig Datum: 30. Mai 2017 Übersicht 1. Motivation 2. Rolle von ISim im Technologiefeld
MehrProgrammiermethodik Vorlesung und Praktikum SS 2001
Vorlesung und Praktikum SS 2001 Prof. Dr. W. Effelsberg, G. Kühne, Ch. Kuhmünch Universität Mannheim 1. Einführung 1-1 Inhalt 1. Einführung, Vorstellung der Programmieraufgabe 2. Der Software-Entwicklungszyklus
MehrCONSULTING // ENGINEERING // ENTWICKLUNG KOMPLEXER SOFTWARE-SYSTEME
CONSULTING // ENGINEERING // ENTWICKLUNG KOMPLEXER SOFTWARE-SYSTEME Seadex verfügt über umfangreiches Spezialwissen, wenn es um Pflege, Weiterentwicklung und Refactoring gewachsener Software-Systeme geht.
MehrFormale Verifikation von Software. 10. Juli 2013
Formale Verifikation von Software 10. Juli 2013 Überblick Wann ist formale Softwareverifikation sinnvoll? Welche Techniken gibt es? Was ist Model Checking und wie kann man es zur Verifikation einsetzen?
MehrTEILZEIT (ZWEI JAHRE)
TERMINKALENDER (STUDIENJAHRE 2017-2018 / 2018-2019) TEILZEIT (ZWEI JAHRE) MATERIALIEN 01 Einleitende Übersetzungsübung: Herkömmliche Übersetzung vs. Übersetzung im Bereich der Neuen Technologie 15. bis
MehrSoftware Engineering
Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,
Mehr1 Einleitung zum Thema Softwaremigration 1
xi 1 Einleitung zum Thema Softwaremigration 1 1.1 Die Motivation für Softwaremigration........................ 1 1.2 Zum Zustand der IT in der betrieblichen Praxis................. 4 1.3 Alternativen zur
MehrTERMINKALENDER (STUDIENJAHR ) VOLLZEIT (EIN JAHR)
TERMINKALENDER (STUDIENJAHR 2017-2018) VOLLZEIT (EIN JAHR) MATERIALIEN 01 Einleitende Übersetzungsübung: Herkömmliche Übersetzung vs. Übersetzung im Bereich der Neuen Technologie 04. Oktober 2017 22. Oktober
MehrFormale Verifikation von Software. 8. Juli 2015
Formale Verifikation von Software 8. Juli 2015 Überblick Wann ist formale Softwareverifikation sinnvoll? Welche Techniken gibt es? Was ist Model Checking und wie kann man es zur Verifikation einsetzen?
MehrUML (Unified Modelling Language) von Christian Bartl
UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...
MehrDie Softwareentwicklungsphasen!
Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.
MehrPraktikum Datenbanken und verteilte Systeme SS Einführung August 2008
Praktikum Datenbanken und verteilte Systeme SS 2007 - Einführung - 18. August 2008 Verteilte Systeme und Informationssysteme (VSIS) Department Informatik Universität Hamburg VSIS Arbeitsbereich VSIS: Verteilte
MehrÜbung Einführung in die Softwaretechnik
Lehrstuhl für Informatik 3 RWTH Aachen Übung Einführung in die Softwaretechnik Lösungshinweise zur Sonderübung Aufgabe S1 Gegenläufige Entwicklungen: - Entwicklungsinfrastruktur: Werkzeugunterstützung
MehrFunction-Point Analysis Theorie und Praxis
^O Edition «JO expert^ Robert Hiirten Function-Point Analysis Theorie und Praxis Die Grundlage für das moderne Softwaremanagement 2., erweiterte Auflage expertlqp] verlag«enthält: 1 CD-ROM Inhaltsverzeichnis
MehrRelevante Metriken zur Bestimmung von Softwarequalität
Relevante Metriken zur Bestimmung von Softwarequalität Steffen Förster 2 Definitionen Metrik Eine Funktion, die eine Software-Einheit in einen Zahlenwert abbildet. Dieser berechnete Wert ist interpretierbar
MehrSoftwaremetriken. 29. April 2015
Softwaremetriken 29. April 2015 Was sind Softwaremetriken? [FP] Softwaremetriken messen Qualität. besser: Softwaremetriken definieren, wie Kenngrößen der Software oder des Softwareentwicklungsprozesses
MehrIntegration eines Application Security Management in ein ISMS nach BSI IT- Grundschutz 1. BSI IT-Grundschutztag Limburg
Integration eines Application Security Management in ein ISMS nach BSI IT- Grundschutz 1. BSI IT-Grundschutztag Limburg 09.03.2017 Wer wir sind Beratung und Dienstleistung für anspruchsvolle Anforderungen
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2010/11 Überblick I Durchführung von Reengineering-Projekten
MehrEIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217
EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?
MehrÜbungsaufgaben zum Software Engineering: Management
Übungsaufgaben zum Software Engineering: Management Grundbegriffe: Aufgabe 1: Aus welchen Disziplinen setzt sich das Software Engineering zusammen? a. Informatik b. Physik c. Psychologie d. Chemie e. Geologie
MehrSoftware Engineering. 11. Einführung und Wartung
Software Engineering 11. Einführung und Wartung Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Testen
MehrModell zur Einflussanalyse Ein Modell zur Einflussanalyse von Methodenänderungen in Entwicklungsprozessen
Modell zur Einflussanalyse Ein Modell zur Einflussanalyse von Methodenänderungen in Entwicklungsprozessen Roland Koppe, Stefan Häusler, Axel Hahn 2 Übersicht Einleitung und Motivation Ansatz und Methodik
Mehr1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge
Einführung. Vorbemerkungen und Überblick. Die elektronischen e des Fahrzeugs. Prozesse in der Fahrzeugentwicklung im Überblick,.4 Grundlagen. Steuerungs- und regelungstechnische e (Prof. Schumacher). Diskrete
MehrDas Softwaresystem BASEMENT
Numerische Modellierung von Naturgefahren mit dem Softwaresystem BASEMENT Workshop vom 6. Oktober 2006 an der VAW ETH Zürich Das Softwaresystem BASEMENT David Vetsch Inhalt 1. Motivation und Entstehungsgeschichte
MehrWas versteht man unter Softwarequalität?
Was versteht man unter? ist die Gesamtheit der Merkmale und Merkmalswerte eines Softwareproduktes, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Was ist
Mehr7. OSE SYMPOSIUM. Dr. Siegfried Streitz
7. OSE SYMPOSIUM Bewertung von Software Dr. Siegfried Streitz öffentlich bestellter und vereidigter Sachverständiger für Systeme der Informationsverarbeitung Siegfried.Streitz@Streitz.de Pingsdorfer Str.
MehrFPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007
Paderborn Center for Parallel l Computing Paderborn University 29. Mai 2007 Übersicht 1. FPGAs 2. Entwicklungssprache VHDL 3. Matlab/Simulink 4. Entwicklungssprache Handel-C 5. Fazit Übersicht FPGAs 1.
MehrMDA-Praktikum, Einführung
MDA-Praktikum, Einführung Prof. Dr. Peter Thiemann Universität Freiburg 02.11.2005 Was ist MDA? MDA = Model-Driven Architecture Initiative der OMG Object Management Group: CORBA, UML,... offenes Firmenkonsortium
MehrLastenheft (Universität Paderborn, Softwaretechnikpraktikum SS2006)
Lastenheft (Universität Paderborn, Softwaretechnikpraktikum SS2006) Alles, was in dieser Schriftart gesetzt ist, dient nur zur Erläuterung und sollte im fertigen Lastenheft nicht mehr auftauchen! Der Umfang
MehrVerbesserung und Pflege der Dokumentation der DPP-Software Saros
Verbesserung und Pflege der Dokumentation der DPP-Software Saros Meike Johannsen Freie Universität Berlin Seminar "Beiträge zum Software Engineering", 2011 Inhalt Motivation Ziele dieser Diplomarbeit Vorgehensweise
MehrZiele und Tätigkeiten von Architekten
Ziele und Tätigkeiten von Architekten Definition Software Architektur o A software architecture provides a model of a whole software system that is composed of internal behavioral units (i.e. components)
MehrModel Driven Architecture Praxisbeispiel
1 EJOSA OpenUSS CampusSource Model Driven Architecture Praxisbeispiel 2 Situation von CampusSource-Plattformen Ähnliche Funktionen (Verwaltung von Studenten und Dozenten, Diskussionsforen,...), jedoch
MehrKapitel 1 1 Einleitung
Kapitel 1 Einleitung 1 1 1 Einleitung 1 Einleitung Die Informatik begegnet uns im Alltag ständig. Einmal natürlich als Rechenanlagen, die wir in Büros, Arztpraxen und zu Hause sehen. Zum anderen ist sie
MehrKontinuierliche Architekturanalyse. in 3D
Kontinuierliche Architekturanalyse in 3D Stefan Rinderle Bachelor an der HS Karlsruhe Master "Software Engineering" in München / Augsburg Seit 2013 bei Payback 2 Software-Visualisierung Visualisierung
MehrSystemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich
Einführung 1 Systemtheorie 1 Formale Systeme 1 #342234 http://fmv.jku.at/fs1 WS 2006/2007 Johannes Kepler Universität Linz, Österreich Univ. Prof. Dr. Armin Biere Institut für Formale Modelle und Verifikation
MehrModellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015
Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 11. Februar 2015 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion
MehrDokumentationskonzept
1. Eigene Java Code Convention Dokumentationskonzept Soweit nichts Abweichendes angegeben, sind die Implementierer dazu gehalten, sich an die Regeln für guten Code aus den allgemeinen SUN Konventionen
Mehr1. Grundbegriffe des Software-Engineering
1. Grundbegriffe Software Engineering 1 1. Grundbegriffe des Software-Engineering Was ist Software-Engineering? (deutsch: Software-Technik) Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen
MehrEntwicklung des Softwareengineerings im Bereich der IT-TK-Technologie. Stefan Bläsius und Gregorio Roper Berlin,
Entwicklung des Softwareengineerings im Bereich der IT-TK-Technologie Stefan Bläsius und Gregorio Roper Berlin, 05.05.2004 1 ServiceForce Die ServiceForce GmbH hat engagierte Mitarbeiter in den Bereichen
MehrSoftware Engineering
Software Engineering Gustav Pomberger, Wolfgang Pree Architektur-Design und Prozessorientierung ISBN 3-446-22429-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22429-7 sowie
MehrSoftware-Engineering
Software-Engineering Problemdefinition Anforderungen an SW-Produkte Software-Lebenszyklus Steht am Anfang des SW-Lebenszyklus Stellt den Auftrag zur Entwicklung eines SW- Produktes dar Anforderungsanalyse
Mehr2. Der Software-Entwicklungszyklus
2. Der Software-Entwicklungszyklus 2.1 Klassische Phasenmodelle 2.1.1 Wasserfallmodell 2.1.2 Rapid Prototyping 2.2 Objektorientierte Phasenmodelle 2.2.1 OOA / OOD / OOP 2.2.2 Iteratives Phasenmodell 2.2.3
MehrInteroperabilität von Simulatoren aus Software Engineering Sicht
MATLAB EXPO 2016 Interoperabilität von Simulatoren aus Software Engineering Sicht 10.05.2016 Prof. Dr.-Ing. R. Finsterwalder Ingenieurinformatik Universität der Bundeswehr München Projekt MASTER: Entwicklung
MehrLegacy-Modernisierung
Mehr als nur Kosten sparen Frankfurt, 10.03.2016 The Perfect Way to Better Software 1 Legacy Entstanden In ca. 30 Jahren Nach damaligen Paradigmen: Monolith Mit damaligen Programmiersprachen: COBOL, PL/I,
MehrModernisierung eines Legacysystems mittels MDSD
Modernisierung eines Legacysystems mittels MDSD Tim Gesekus, Ralph Kar ATM Simulator Centre Research & Development DFS Deutsche Flugsicherung GmbH Tim Gesekus & Ralph Kar, OOP 2010 Inhalt Vorstellung Problemstellung
MehrTrivadis-Gadgets im Dienste ihrer Qualität: FAAT und PL/SQL Cop
Trivadis-Gadgets im Dienste ihrer Qualität: FAAT und PL/SQL Cop Andreas Fend Consultant Michael Schmid Senior Consultant BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN
MehrWann lohnt sich GUI- Testautomatisierung?
Wann lohnt sich GUI- Testautomatisierung? Martin Moser, Gregor Schmid Quality First Software GmbH qfs@qfs.de Tel: +49 8171 919870 2006-2007 Quality First Software GmbH 26.02.2007 1 Überblick Hintergrund
MehrEinfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis
Einfach generieren Susanne Klar, Michael Klar Generative Programmierung verständlich und praxisnah ISBN 3-446-40448-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40448-1
MehrKommentierung in C. Kommentierung in C. Von Sebastian Rothe 1/26. Kommentierung in C
Von Sebastian Rothe 1/26 Inhaltsverzeichnis 1. Programmierstil eine Übersicht 2. Motivation wozu Kommentierung? 3. Aspekte der Kommentierung 4. GLib als Beispiel 5. Dokumentationssysteme 6. Zusammenfassung
MehrPraxis der Softwareentwicklung WS 2015/16
Praxis der Softwareentwicklung WS 2015/16 Prof. Dr. Gregor Snelting LEHRSTUHL PROGRAMMIERPARADIGMEN 0 KIT 28. Universität Oktober des 2015- Landes Praxis Baden-Württemberg der Softwareentwicklung und WS
MehrSoftwarequalität und Softwarealterung. Anne Moormann Benedikt Scholz Michael Herbener
Softwarequalität und Softwarealterung Anne Moormann Benedikt Scholz Michael Herbener Präsentationstitel, Referent: Meta Normal-Roman 12 pt 2 Agenda Softwarequalität Softwarealterung Maßnahmen gegen Softwarealterung
MehrEntwicklung einer sensorlosen Motorregelung für Dentalbohrer nach IEC Dr. Michael Schwarz
Entwicklung einer sensorlosen Motorregelung für Dentalbohrer nach IEC 62304 Dr. Michael Schwarz Agenda ITK Engineering AG Von der Idee bis zum Produkt Überblick und Motivation Herausforderungen sensorlose
MehrInhaltsverzeichnis VII
VII Teil 1: Grundlagen für die Entwicklung eines Software-Entwicklungs-Systems 1 1. Problemstellung und Aufbau der Arbeit 1 2. Begriffliche Abgrenzungen 4 2.1 Software 4 2.2 Software-Engineering (Prinzipien
MehrErstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO
Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO Ich über mich Rudi Gast (rgast@ghs-software.de) seit 2000 angestellt bei der GHS Tätigkeiten: Projektleitung Softwareentwicklung F&E ca.
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation
MehrStuPro Visualisierung der Ergebnisse von Programmanalysen
StuPro Visualisierung der Ergebnisse von Programmanalysen Abteilung Programmiersprachen und Compilerbau Daniel Gerlach, Mikhail Prokharau Universität Stuttgart 15. November 2010 Übersicht Vorstellungsrunde
MehrModel Driven Architecture (MDA)
Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale
MehrSo haben Sie Ihre Systeme im Griff
So haben Sie Ihre Systeme im Griff mit Visual Studio 2010 Egal, ob eine bestehende Anwendung erweitert oder modernisiert wird die meisten Projekte starten mit einer vorhandenen Codebasis. In den allermeisten
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Lehrstuhl Prof. Plödereder Eduard Wiebe Institut für Softwaretechnologie Abteilung Programmiersprachen und Übersetzerbau Sommersemester 2007 Programm-Ausführung Programmiersprachen
Mehr1.3 Geschichte der Programmiersprachen
50er Jahre erste Definition höherer Programmiersprachen Effizienz maßgebliches Designziel FORTRAN (Backus) als Sprache für wissenschaftliches Rechnen (komplexe Berechnungen, einfachen Daten), Arrays, Schleifen,
Mehr... die mit dem plus. Service-Leistungen. Von Experten für Experten After Sales Portfolio. automotive distribution produktion
... die mit dem plus Service-Leistungen Von Experten für Experten After Sales Portfolio automotive distribution produktion Lösungen + Systeme + Komponenten Das plus an Erfahrung Seit mehr als 50 Jahren
MehrWann lohnt sich GUI- Testautomatisierung?
Wann lohnt sich GUI- Testautomatisierung? Martin Moser, Gregor Schmid Quality First Software GmbH qfs@qfs.de Tel: +49 8171 919870 2006-2007 Quality First Software GmbH 26.02.2007 1 Überblick Hintergrund
MehrSystems Quality Day - Technical
Systems Quality Day - Technical Software Quality in der Praxis - Software-Qualitätsmanagement für den Mittelstand - Frank Guder, Tynos Bremen, 3. Juli 2008 Tynos Software-Qualität und Dienstleistungen
MehrGrundlagen der Programmierung! Kapitel 1: Einführung! Ziel der Vorlesung Grundlagen der Programmierung! Überblick über das Einführungs-Kapitel!
Herzog Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2015/2016 Kapitel 1: Einführung Grundlagen der Programmierung TUM Wintersemester 2015/16 Kapitel
Mehr