Behutsame Modernisierung

Größe: px
Ab Seite anzeigen:

Download "Behutsame Modernisierung"

Transkript

1 Software Evolution mit Legacy Systemen Forum Forschungsförderung / ViSEK Trends im Software Engineering Software Evolution mit Legacy Systemen Behutsame Modernisierung Jan Wloka <Jan.Wloka@first.fraunhofer.de>

2 Bekannte Situationen und Ursachen Situationen mit alter Software Ein System läuft stabil aber auf veralteter Hardware Wartung des Systems ist kostspielig Integrationsbemühungen werden massiv behindert Erweiterung der Funktionalität ist schwierig, wenn nicht sogar unmöglich Häufige Ursachen Starke Abweichungen zwischen Implementierung und Dokumentation "Featurerismus" Personal Fluktuation Seite 3 Das Problem Legacy Information System Definition Legacy System:... any information system that significantly resists modification and evolution... [Brodie, Stonebraker, 1995] Das Problem im Detail: Einzige Dokumentationsquelle ist der Quellcode Quellcode-Strukturen sind häufig spröde (brittle), Unflexibel, nicht erweiterbar Mangel an Offenheit für neue Funktionalitäten Isolierte Funktionalität Seite 4

3 Drei Kategorien von LösungsmL sungsmöglichkeitenglichkeiten Re-Development Neu-Entwicklung from scratch Neue Technologien, Architektur, Werkzeuge, etc. ABER: Sehr aufwendig, Keine Weiterverwendung, Ohne Erfolgsgarantie Wrapping Kapseln des Systems oder einzelner Systemteile Neue Schnittstellen zur Funktionalität Domäne der Komponenten-basierten Ansätze ABER: Keine Fehlerbehebung, Keine Verbesserung von System-Eigenschaften, Kaum erweiterbar Doch warum ist Wrapping häufig schwierig??????? Seite 5 Komplexe Strukturen und crosscutting crosscutting Funktionalitäten Besondere Probleme Komplexe Strukturen Beispiele: Starke Abhängigkeiten durch Vererbungs-/Benutzungsbeziehungen, Sehr lange Methoden Kaum verständlich da zu komplex crosscutting Funktionalitäten Liegen quer zur Struktur Schwer kappselbar Beispiele: Verteilung, Synchronisation, Notification, Logging, Exception-Handling, Memory-Management ClassA ClassB ClassC X X X Funktionalität 1 Funktionalität 2 X X X Funktionalität 3 Seite 6

4 crosscutting Funktionalitäten Ein Beispiel Werkzeug: Aspect Browser Identifikation von einzelnen Funktionalitäten mit Textanalyse (Regular Expressions) Beispiel: XML Parser Log ROT Write GRÜN Parse BLAU Seite 7 Re-Development Wrapping Re-Engineering Re-Engineering Analysieren/Verstehen und Abändern der existieren Quellen: Quellcode Analyse Zugang zur Funktionalität Modularisierung Separierung der Funktionalität Komposition Integration der Funktionalität Ziel: Die Implementierung in einer neuen Form wiederherzustellen??? Welche Möglichkeiten zur Modularisierung habe ich? Seite 8

5 Möglichkeiten zur Modularisierung Inkrementelle Strukturverbesserung Refactoring = methodisch fundierte Herangehensweise um strukturelle Änderungen in bestehenden Systemen gezielt und sicher durchzuführen Refactoring als Technik und vor allem methodischer Ansatz Bekannte, erprobte und Werkzeug-gestützte Technologie Strukturen werden zerlegt, entkoppelt und vereinfacht Verständnis und Modularität des bestehenden Systems werden verbessert Refactoring von OO-Strukturen Seite 9 Möglichkeiten zur Modularisierung Beschränkungen von Refactoring Quer zur Struktur liegende Funktionalität wird nur hin und her verschoben Komplexität wird nur lokal beseitigt (Wegräumen ohne Aufräumen) Designkonflikte können nicht immer aufgelöst werden z.b. Modularisierung nach Struktur (OO) vs. Modularisierung nach Funktion (Funktionale Psrogrammierung) OO Modularisierungsmöglichkeiten reichen nicht aus! Seite 10

6 Erweiterte Modularisierungskonzepte Aspektorientierte Softwareentwicklung Aspekte liegen quer zur Struktur Kapselung der crosscutting Funktionalitäten Aspektorientierte Programmierung: Kernsystem (OO) Aspekte beziehen sich auf das Kernsystem Aspekte müssen Quellen nicht verändern Integration durch Weaver ClassA m1() m2(p1) ClassB m2() m3(p1, p2) m4() ClassC m2() m5(p1) joinpoints Alle Methoden aus ClassA Alle Methoden m2 Alle parameterlosen Methoden Beispiele für Aspekte: Verteilung, Synchronisation, Logging, Exception-Handling, Memory-Management Techniken/Werkzeuge für unterschiedliche Sprachen verfügbar Kern Aspekte Seite 11 advice before after around Aspektorientierte Modularisierungstechniken Aspektorientierte Erweiterungen Für Java: AspectJ, Hyper/J, Object Teams Für C++: AspectC++, Object Teams AspectJ Erste Aspektorientierte Erweiterung Quellcode-Manipulation von außen Hyper/J Byte-Code Modifikation von außen Kein Quellcode nötig Object Teams Verbindung der Möglichkeiten verschiedener AO-Sprachen Seite 12

7 Lösungen und Probleme Separierung von quer zur Struktur liegender Funktionalität war unmöglich Aspekte ermöglichen deren Modularisierung und Komposition Aspekte für verschiedene Programmiersprachen verfügbar Offene Probleme: Methodisch richtige Separierung von Funktionalität in Aspekte Werkzeuge zum Auffinden und automatisierten Modularisierung Refactoring-Werkzeug für Aspekte FhI FIRST: Weiterentwicklung der Programmiersprache Object Teams Werkzeuge zur automatisierten Modularisierung in Aspekte Seite 13 Fazit Modernisierung ist Bestandteil fast jedes Softwareentwicklungsprojektes Für viele Probleme sind bereits Lösungen vorhanden Techniken der AOSD scheinen besonders geeignet, dabei Quellcode-Analyse technisch noch nicht ganz ausgereift, aber hilfreich Modularisierungstechniken ausreichend vorhanden, methodische Unterstützung? Kompositionsmöglichkeiten Teillösungen sind vorhanden, aber nicht vereint Was Fehlt: Integrierte Werkzeugunterstützung die Einzelwerkzeuge vereinigt Seite 14

8 Haben Sie Fragen? Jan Wloka Seite 15

Bessere Software durch AOP? Achim Demelt OOP 2008

Bessere Software durch AOP? Achim Demelt OOP 2008 Bessere Software durch AOP? Achim Demelt OOP 2008 Agenda Motivation Konzepte der Aspektorientierung Aspektorientierung in der Praxis Bessere Software? Die Zukunft von AOP 2 Motivation Software wird immer

Mehr

Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015

Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015 Re-Engineering: Test-First-Ansatz Dr. Thorsten Arendt Marburg, 17. Dezember 2015 Re-Engineering Patterns [Demeyer et al.] 2 Software-Evolution WS 2015/2016 Überblick Probleme Wie ändert man Teile eines

Mehr

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Proseminarvortrag Werkzeugunterstützung für sichere Software Jens Knipper Fakultät für Informatik Technische Universität Dortmund 31.

Mehr

Aspektorientierte Programmierung (aspect-oriented programming, AOP)

Aspektorientierte Programmierung (aspect-oriented programming, AOP) Aspektorientierte Programmierung (aspect-oriented programming, AOP) Abstract Die aspektorientierte Programmierung ist ein neues Programmierparadigma, das die Probleme und Nachteile, die aus der prozeduralen

Mehr

Instrumentation von Android Anwendungen mit ExplorViz

Instrumentation von Android Anwendungen mit ExplorViz Instrumentation von Android Anwendungen mit ExplorViz Jan Witzany 28. September 2016 Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September 2016 1 / 19 Gliederung 1. Motivation

Mehr

Aspektorientierte Modellierung

Aspektorientierte Modellierung Aspektorientierte Modellierung Softwaretechnik-Seminar 2002 Thema: Evolutionäre Software Referent: Alexander Winter Gliederung Einführung und Motivation Was ist Aspektorientierte Modellierung? Vorstellung

Mehr

Inhaltsverzeichnis. Teil I Grundlagen 1

Inhaltsverzeichnis. 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

Mehr

Aspekt Orientierte Programmierung

Aspekt Orientierte Programmierung Kapitel 13 Aspekt Orientierte Programmierung 13.1 Aspekte in Apache Wir betrachten den Quellcode des Apache-Servers: Der Code zum XML-Parsen steckt in einer eigenen Klasse (rot) Quelle: aspectj.org 0 ausgearbeitet

Mehr

AOSTA. Aspects in Operating Systems: Tools and Applications

AOSTA. Aspects in Operating Systems: Tools and Applications AOSTA Aspects in Operating Systems: Tools and Applications Michael Engel, Philipps-Universität Marburg AG Verteilte Systeme engel@informatik.uni-marburg.de Aspektorientierung in 5 Minuten ;-) Crosscutting

Mehr

7. Zusammenfassung (1)

7. Zusammenfassung (1) Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung

Mehr

Christoph Behounek, eggs unimedia

Christoph Behounek, eggs unimedia Adobe Experience Manager6.1 Planung eines erfolgreichen AEM Upgrades Christoph Behounek, eggs unimedia Adobe Experience Manager Ohne Planung funktioniert es nicht Planung eines erfolgreichen AEM Updates

Mehr

windream SDK Einfache System-Erweiterungen und Software-Integrationen mit windream

windream SDK Einfache System-Erweiterungen und Software-Integrationen mit windream windream SDK Einfache System-Erweiterungen und Software-Integrationen mit windream 2 Einfache System-Erweiterungen und Software- Integrationen mit windream Die offene Architektur des Enterprise-Content-Management-Systems

Mehr

Olaf Seng Thomas Genßler Benedikt Schulz. Forschungszentrum Informatik, Karlsruhe

Olaf Seng Thomas Genßler Benedikt Schulz. Forschungszentrum Informatik, Karlsruhe Olaf Seng Thomas Genßler Benedikt Schulz Einführung Grundlagen Vorgehensweise Beispiel Zusammenfassung Übersicht 2 Einführung Szenario & Probleme Hinzufügen einer neuen Funktion zu einer Komponente Erfordert

Mehr

AOP Day 07. eine Veranstaltung der SIG AspectJ. organisiert vom AOP-Komitee. und der guten Fee. powered by. Oliver Böhm Darko Palic Ludger Solbach

AOP Day 07. eine Veranstaltung der SIG AspectJ. organisiert vom AOP-Komitee. und der guten Fee. powered by. Oliver Böhm Darko Palic Ludger Solbach AOP Day 07 eine Veranstaltung der SIG AspectJ organisiert vom AOP-Komitee Oliver Böhm Darko Palic Ludger Solbach und der guten Fee Bori Gerhardt powered by Historisches (1) Dez. 2005: AspectJ Winter Camp

Mehr

Software-Refactoring. 29. Mai 2013

Software-Refactoring. 29. Mai 2013 Software-Refactoring 29. Mai 2013 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie

Mehr

Viele Entwickler finden Testen langweilig.

Viele Entwickler finden Testen langweilig. 1 Viele Entwickler finden Testen langweilig. 2 Das galt auch für mich und meine Kollegen. 3 Programmierung kreativ Testen wiederholend, langweilig, eintönig 4 Programmierung konstruktiv, neuen Nutzen schaffen

Mehr

Software-Refactoring. 27. Mai 2015

Software-Refactoring. 27. Mai 2015 Software-Refactoring 27. Mai 2015 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie

Mehr

Hauptseminar AOSD. Design-by-Contract

Hauptseminar AOSD. Design-by-Contract Hauptseminar AOSD Seite 1 Entstehung Was ist das? Java Annotations und AOP ConceptJ Zusammenfassung Seite 2 Entstehung Entwickelt von Bertrand Meyer Heute Prof. an der ETH Zürich Erstmals in Programmiersprache

Mehr

Advanced Software Engineering WS0910 Kapitel4. Dr. Dominik Haneberg

Advanced Software Engineering WS0910 Kapitel4. Dr. Dominik Haneberg Advanced Software Engineering WS0910 Kapitel4 Dr. Dominik Haneberg ASPEKT-ORIENTIERTE ENTWICKLUNG 08.02.2010 Advanced Software Engineering 2 Einführung Aspektorientierte Programmierung (AOP) ist ein Programmierparadigma,

Mehr

Das Softwaresystem BASEMENT

Das 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

Mehr

Model Driven Architecture Praxisbeispiel

Model 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

Mehr

Ziele und Tätigkeiten von Architekten

Ziele 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)

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld

SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld SAP Software Engineering live Agile! SAP Ali Kaveh Software Engineering live Agile! Certified Scrum Master Solution

Mehr

Erläuterungen zu Darstellung des DLQ-Datenportals

Erläuterungen zu Darstellung des DLQ-Datenportals Erläuterungen zu Darstellung des DLQ-Datenportals Definition zum Datenportal Das DLQ-Datenportal (DP) definiert fachliche Schnittstellen für den Datenaustausch zwischen verschiedenen Kommunikationspartnern.

Mehr

ANGEWANDTE LINGUISTISCHE DATENVERARBEITUNG PROF. DR. JÜRGEN ROLSHOVEN UTE WINKELMANN

ANGEWANDTE LINGUISTISCHE DATENVERARBEITUNG PROF. DR. JÜRGEN ROLSHOVEN UTE WINKELMANN ANGEWANDTE LINGUISTISCHE DATENVERARBEITUNG PROF. DR. JÜRGEN ROLSHOVEN 15.02.2016 UTE WINKELMANN EINLEITUNG Akronym: Text Engineering Software Laboratory Virtuelle Arbeitsumgebung für textprozessierende

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Service Virtualisierung

Service Virtualisierung Service Virtualisierung So bekommen Sie Ihre Testumgebung in den Griff! Thomas Bucsics ANECON Software Design und Beratung G.m.b.H. Alser Str. 4/Hof 1 A-1090 Wien Tel.: +43 1 409 58 90 www.anecon.com office@anecon.com

Mehr

Thema: Aspekt-orientierte Entwicklung: Einführung

Thema: Aspekt-orientierte Entwicklung: Einführung Thema: Aspekt-orientierte Entwicklung: Einführung Student: Doris Tchouaffé Studiengang: Master Technische Informatik Matrikelnummer: 11021433 Betreuer: Prof. Dr. Hans W. Nissen Abgabedatum: 08.05.2008

Mehr

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012 Make-loses Java für mehr Produktivität: Das z 2 -Environment Henning Blohm 25.6.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Oh je noch ein Tool?

Mehr

Software Engineering

Software 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

Mehr

Performance Monitoring Warum macht es Sinn?

Performance Monitoring Warum macht es Sinn? Performance Monitoring Warum macht es Sinn? achermann consulting ag Nicola Lardieri Network Engineer Luzern, 25.5.2011 Inhalt Definition Monitoring Warum Performance Monitoring? Performance Monitoring

Mehr

1 Einleitung zum Thema Softwaremigration 1

1 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

Mehr

RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen

RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen Thorsten Keuler (thorsten.keuler@iese.fraunhofer.de) IESE Fraunhofer Institut Experimentelles Software

Mehr

secunet Security Networks AG A priori Policies zum Schutz von Fahrzeug Bordnetzen

secunet Security Networks AG A priori Policies zum Schutz von Fahrzeug Bordnetzen secunet Security Networks AG A priori Policies zum Schutz von Fahrzeug Bordnetzen 12. Deutscher IT-Sicherheitskongress Bonn, 10. Mai 2011 Dr. Marc Lindlbauer, Bereichsleiter Online Security Agenda 1 Online-Dienste

Mehr

Gemeinsam mehr erreichen.

Gemeinsam mehr erreichen. Gemeinsam mehr erreichen. Microservices, ein Vorgehensmodell zur Softwareentwicklung - Nürnberg - 17. November 2016 "Mit unserer Begeisterung für führende Technologien vernetzen wir Systeme, Prozesse und

Mehr

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Modellgetriebene 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

Mehr

2 Softwarearchitektur in der Organisationsstruktur 25

2 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

Mehr

Softwarearchitektur als Mittel für Qualitätssicherung und SOA Governance

Softwarearchitektur als Mittel für Qualitätssicherung und SOA Governance Softwarearchitektur als Mittel für Qualitätssicherung und SOA Governance Mag. Georg Buchgeher +43 7236 3343 855 georg.buchgeher@scch.at www.scch.at Das SCCH ist eine Initiative der Das SCCH befindet sich

Mehr

Model Driven Architecture

Model Driven Architecture Model Driven Architecture Wilhelm Stephan Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Julian Kunkel SommerSemester

Mehr

Continuous Everything

Continuous Everything Continuous Everything Development, Integration, Deployment, DevOps Peter Hormanns cusy GmbH, Berlin Vortrag OpenRheinRuhr 5./6. November 2016 de.slideshare.net/cusyio/continuous-everything Kapitel you

Mehr

Software Evolution: Einführung. Dr. Thorsten Arendt Marburg, 15. Oktober 2015

Software Evolution: Einführung. Dr. Thorsten Arendt Marburg, 15. Oktober 2015 Software Evolution: Einführung Dr. Thorsten Arendt Marburg, 15. Oktober 2015 Überblick Was ist Software-Evolution? Warum ist Software-Evolution wichtig? Was sind die Prinzipien der Software-Evolution?

Mehr

Mustersuche in Quellcode

Mustersuche in Quellcode Mustersuche in Quellcode Komponentenbasierte Softwareentwicklung 13.07.2005 Peter Schübel 1 Gliederung 1. Vorstellung des Projekts InPulse 2. Design Patterns 1. Idee 2. Beispiele 3. Referenzsystem World

Mehr

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012 Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment Henning Blohm 5.7.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Ein Builtool?

Mehr

AOP im Einsatz mit OSGi und RCP. Martin Lippert, Peter Friese und Heiko Seeberger

AOP im Einsatz mit OSGi und RCP. Martin Lippert, Peter Friese und Heiko Seeberger AOP im Einsatz mit OSGi und RCP Martin Lippert, Peter Friese und Heiko Seeberger Agenda Einführung Aspect-Weaving im Überblick Aspect-Weaving für OSGi: Equinox Aspects Anwendungsfall: Security für Eclipse-RCP

Mehr

Software Engineering II (IB) Softwareevolution

Software 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

Mehr

Verbesserung der Architektur und Dokumentation der DPP-Software Saros. Slawa Belousow Institut für Informatik FU Berlin 13.01.2011

Verbesserung der Architektur und Dokumentation der DPP-Software Saros. Slawa Belousow Institut für Informatik FU Berlin 13.01.2011 Verbesserung der Architektur und Dokumentation der DPP-Software Saros Slawa Belousow Institut für Informatik FU Berlin 13.01.2011 Vorstellung der Arbeit Problem Entwicklung wird immer schwieriger Ziel

Mehr

Software Engineering II (IB) Softwareevolution

Software 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...................

Mehr

Aspektorientierte Middleware Florian Wagner

Aspektorientierte Middleware Florian Wagner Anwendungen der Aspektorientierung (5) Übersicht Middleware? Middleware-Concerns Java 2 Enterprise Edition AO Implementierung AOP & JBoss 2 mid dle ware (mĭd'l-wâr') n. Software that serves as an intermediary

Mehr

MDRE die nächste Generation des Requirements Engineerings

MDRE 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

Mehr

CiAO (CiAO is Aspect-Oriented)

CiAO (CiAO is Aspect-Oriented) CiAO (CiAO is Aspect-Oriented) Eine aspektorientiert entworfene Betriebssystemfamilie Daniel Lohmann Olaf Spinczyk Wolfgang Schröder-Preikschat Lehrstuhl für Informatik IV Verteilte Systeme und Betriebssysteme

Mehr

Test-driven development JUnit-Test. Lars Varain

Test-driven development JUnit-Test. Lars Varain Test-driven development JUnit-Test Lars Varain Inhalt Test-driven Development (TDD) Junit4 Beispiel Inhalt Test-driven Development (TTD) Warum TDD? Zyklus Ausnahmebehandlung Junit4 Beispiel Inhalt Test-driven

Mehr

OOP. Tagesprogramm. Aspektorientierte Programmierung. Annotationen

OOP. Tagesprogramm. Aspektorientierte Programmierung. Annotationen 1 2014-12-03 Tagesprogramm Aspektorientierte Programmierung Annotationen 2 Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten

Mehr

Schnelles Prototyping für die medizinische Bildverarbeitung

Schnelles Prototyping für die medizinische Bildverarbeitung Schnelles Prototyping für die medizinische Bildverarbeitung Danial Bin Mohamed Saruji, Michael Müller, Hans-Peter Meinzer Abteilung Medizinische und Biologische Informatik, Deutsches Krebsforschungszentrum

Mehr

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

Modellgetriebene 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

Mehr

SOAP Simple Object Access Protocol. Dr. Reinhard Riedl Universität Zürich/Universität Rostock

SOAP Simple Object Access Protocol. Dr. Reinhard Riedl Universität Zürich/Universität Rostock SOAP Simple Object Access Protocol Dr. Reinhard Riedl Universität Zürich/Universität Rostock Vision Implementierung von verteilten Systemen über Systemgrenzen hinweg Integration von heterogenen verteilten

Mehr

Software 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. 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,

Mehr

Aspektorientierte Programmierung

Aspektorientierte Programmierung Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten das mehrere Klassen betrifft Objektorientierte Programmiertechniken: Aspektorientiertheit,

Mehr

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3 Systems Engineering Systems Engineering ist die gezielte Anwendung von wissenschaftlichen und technischen Ressourcen! zur Transformation eines operationellen Bedürfnisses in die Beschreibung einer Systemkonfiguration

Mehr

ZUSAMMENARBEIT TU MÜNCHEN

ZUSAMMENARBEIT TU MÜNCHEN ZUSAMMENARBEIT TU MÜNCHEN Datum: 23.03.2010 Rudolf Vaas Agenda 1. Motivation und Hintergrundinformation 2. Forschungsprojekt SoQuo in der Praxis 3. Fazit MOTIVATION & HINTERGRUNDINFORMATION Motivation

Mehr

Erweiterung von objektorientiertem Refactoring für die aspektorientierte Sprache ObjectTeams/Java

Erweiterung von objektorientiertem Refactoring für die aspektorientierte Sprache ObjectTeams/Java Erweiterung von objektorientiertem Refactoring für die aspektorientierte Sprache ObjectTeams/Java Diplomarbeit vorgelegt von Gregor Brcan laibach@cs.tu-berlin.de Gutachter: Prof. Dr. Stefan Jähnichen Dr.

Mehr

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung

Mehr

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Feature Modelle und ihre Anwendung Feature Modelle und ihre Anwendungen 22.07.2010 1 Software-Produktlinien Zusammenfassung mehrerer verwandter Softwaresysteme zu einer Domäne (Anwendungsgebiet) Softwaresysteme

Mehr

Kostengünstige Performance Engineering Lösungen (Java Forum Stuttgart 2009)

Kostengünstige Performance Engineering Lösungen (Java Forum Stuttgart 2009) Low Costs High Speed Kostengünstige Performance Engineering Lösungen (Java Forum Stuttgart 2009) M.Sc. Stefan Siegl NovaTec GmbH Business Unit Leitung Application Performance Engineering NovaTec Ingenieure

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Die 5 Leben des AspectJ

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Die 5 Leben des AspectJ Einleitung Die 5 Leben des AspectJ Markus Völter, voelter@acm.org, www.voelter.de Martin Lippert, lippert@acm.org, www.martinlippert.com Aspekte dienen dazu, querschnittliche Belange, sogenannte Cross-Cutting

Mehr

Anwendung der Aspektorientierung : Security

Anwendung der Aspektorientierung : Security Seminar AOSD Anwendung der Aspektorientierung : Security Miao Tang Betreuer: Dipl.-Inform. Dirk Wischermann 1. Motivation Anwendung der AO: Security 2 Sicherheitsprobleme beim Design und bei der Programmierung

Mehr

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Fakultät Informatik Institut für Systemarchitektur, Professur Betriebssysteme VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Henning Schild Dresden, 5.2.2009 Definition Einführung von Abstraktionsschichten

Mehr

JUnit. Software-Tests

JUnit. Software-Tests JUnit Software-Tests Übersicht Einleitung JUnit Jia Li Grundlegendes Diana Howey Hendrik Kohrs Praktische Einbindung Benjamin Koch Zili Ye Einleitung in allgemeines Testen Automatische Tests Testen ist

Mehr

Software Engineering für kritische Systeme

Software 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

Mehr

Potentiale modellgetriebener Softwareentwicklung

Potentiale modellgetriebener Softwareentwicklung Model Driven Software Development Potentiale modellgetriebener Softwareentwicklung Referent: Hartwig Tödter Seite 2 / 23 Inhaltsverzeichnis 1. Grundideen modellgetriebener Softwareentwicklung 2. Vorteile

Mehr

Team Foundation Server & Ranorex Workshop

Team Foundation Server & Ranorex Workshop Tag 1: Testing Fundamentals Der Kurs (Tag) zeigt wie Software Tests in einem "best practice" Ansatz gestaltet werden können. Referenzierend auf den ISTQB gibt es ein "Best off" aus der Gestaltung, Abwicklung,

Mehr

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre. Copyright 2010, MATHEMA Software GmbH 1 Wer bin ich > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.Net > Schwerpunkte Software

Mehr

Schnelle systematische Entwicklung von Internet-Anwendungen

Schnelle systematische Entwicklung von Internet-Anwendungen Schnelle systematische Entwicklung von Internet-Anwendungen Birkenfeld 12. Januar 2001 IESE Fraunhofer Institut Experimentelles Software Engineering Dr. Peter Knauber Sauerwiesen 6 D-67661 Kaiserslautern

Mehr

Software Engineering

Software Engineering Software Engineering Grundlagen, Menschen, Prozesse, Techniken von Jochen Ludewig, Horst Lichter 1. Auflage Software Engineering Ludewig / Lichter schnell und portofrei erhältlich bei beck-shop.de DIE

Mehr

Programmverstehen 3: Detailliertes Verständnis. Dr. Thorsten Arendt Marburg, 10. Dezember 2015

Programmverstehen 3: Detailliertes Verständnis. Dr. Thorsten Arendt Marburg, 10. Dezember 2015 Programmverstehen 3: Detailliertes Verständnis Dr. Thorsten Arendt Marburg, 10. Dezember 2015 Re-Engineering Patterns [Demeyer et al.] 2 Software-Evolution WS 2015/2016 Überblick Probleme Auch wenn das

Mehr

SW-Archäologie mit AOP (Praxisbericht)

SW-Archäologie mit AOP (Praxisbericht) SW-Archäologie mit AOP (Praxisbericht) Ausgrabungen vergangener SW-Architekturen 9. Workshop SW-Reengineering Bad Honnef Mail 2007 Oliver.Boehm@agentes.de agentes AG 2006 Aktionäre Pironet NDH AG (Hauptaktionär)

Mehr

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung I/ Software Engineering I Modulnummer

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung I/ Software Engineering I Modulnummer Modulbeschreibung Programmierung I/ Software Engineering I Modulname Programmierung I/ Software Engineering I Modulnummer -1.3 Pflicht-/Wahlpflicht-/ Pflicht Modul-Verantwortlicher Prof. Erich Stein Inhalt/Untermodule

Mehr

Institut für Informatik Betriebliche Informationssysteme Graph-basiertes Reengineering

Institut 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

Mehr

Hauptseminar AOSD. Aspektorientierte Programmierung am Beispiel AspectJ

Hauptseminar AOSD. Aspektorientierte Programmierung am Beispiel AspectJ Hauptseminar AOSD Aspektorientierte Programmierung am Beispiel Seite 1 Aspektorientierte Programmierung Umfeld - eine Definition Elemente in Introduction Pointcut Join Point Advice Aspect Errors and Warnings

Mehr

Neue Funktionen in Innovator 11 R5

Neue Funktionen in Innovator 11 R5 Neue Funktionen in Innovator 11 R5 Innovator for Enterprise Architects, Java Harvester und Prüfassistent 12.11.2013 Agenda 1 2 3 Einführung Was ist neu in Innovator 11 R5? Szenario Enterprise Architektur

Mehr

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal HIER DREHT SICH ALLES UM IHRE ZUKUNFT Entwicklung einer Architektur für automatisierte UI-Tests Im Rahmen Ihrer entwickeln Sie eine Software-Lösung, die das automatische Bedienen und Befüllen der graphischen

Mehr

Vorlesung Software aus Komponenten

Vorlesung Software aus Komponenten Vorlesung Software aus Komponenten 1. Komponenten Markt - Standards Prof. Dr. Hans-Gert Gräbe Wintersemester 2006/07 1 1.3. Komponenten Eigenschaften 4 Haupteigenschaften von Komponenten: eine funktional

Mehr

Softwareentwicklungsumgebungen

Softwareentwicklungsumgebungen 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

Mehr

Validierung von System- Architekturen

Validierung von System- Architekturen Validierung von System- Architekturen Westsächsische Hochschule Zwickau, Fachgruppe Informatik André Pflüger, Christian Poßögel Motivation Schwierigkeit: Entwicklung schreitet stetig voran Ergebnisse sind

Mehr

MDA-Praktikum, Einführung

MDA-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

Mehr

Design Patterns. 3. Juni 2015

Design Patterns. 3. Juni 2015 Design Patterns 3. Juni 2015 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Taentzer Softwarequalität 2015 138 Was sind Design Patterns?

Mehr

Use Cases vs. Funktionale Spezifikation

Use Cases vs. Funktionale Spezifikation Use Cases vs. Funktionale Spezifikation Ein experimenteller Vergleich zweier Methoden zur Anforderungsspezifikation Fraunhofer IESE: Anne Groß (Anne.Gross@iese.fraunhofer.de) & Jörg Dörr (Joerg.Doerr@iese.fraunhofer.de)

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Vom Wiegen wird die Sau nicht fett: PL/SQL-Qualitätsanalysen

Vom Wiegen wird die Sau nicht fett: PL/SQL-Qualitätsanalysen Vom Wiegen wird die Sau nicht fett: PL/SQL-Qualitätsanalysen Dr. Elmar Jürgens TU München & CQSE GmbH München Abstract Für Programmiersprachen wie Java oder C# gibt es eine Vielzahl von Qualitätsanalysen:

Mehr

Aspekt-orientierte Programmierung

Aspekt-orientierte Programmierung Aspekt-orientierte Programmierung Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-01-09 Separation der Interessen Die Separation der Interessen (separation of

Mehr

Grundlagen Software Engineering

Grundlagen Software Engineering Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der

Mehr

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST Modellbasierte Generierung von statischen Schedules für sicherheitskritische, eingebettete Systeme mit Multicore Prozessoren und harten Echtzeitanforderungen J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim

Mehr

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

Mehr

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag Refactoring von Legacy Systemen Jochen Winzen jochen.winzen@andrena.de andrena objects ag Was ist ein Legacy System Ein Legacy System hat folgenden Eigenschaften: + Besitzt die geforderte Funktionalität

Mehr

Die SOLID-Prinzipien Fünf Grundsätze für bessere Software

Die SOLID-Prinzipien Fünf Grundsätze für bessere Software ESE Kongress 2014 Vortragsskript: Die SOLID-Prinzipien Fünf Grundsätze für bessere Software Frank Listing, MicroConsult GmbH Die Qualität der Software ist nicht in allen Projekten ideal, und deshalb werden

Mehr

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015 Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von

Mehr

Mögliche Wege Ihrer Legacy-Applikationen in die Moderne mit Bison Technology. Diego Künzi, Produktmanager Bison Technology, Bison Schweiz AG

Mögliche Wege Ihrer Legacy-Applikationen in die Moderne mit Bison Technology. Diego Künzi, Produktmanager Bison Technology, Bison Schweiz AG Mögliche Wege Ihrer Legacy-Applikationen in die Moderne mit Bison Technology Diego Künzi, Produktmanager Bison Technology, Bison Schweiz AG Inhalt Weshalb Legacy Applikationen modernisieren? Mögliche Strategien

Mehr

Software- und Systementwicklung

Software- und Systementwicklung Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg Inhalt Vorgehensmodelle Wasserfallmodell V-Modell Phasen (Pflichtenheft) UML Klassendiagramm Sequenzdiagramm

Mehr

Agiles Testen. Gedankensammlung. 17. November 2013 - Patrick Koglin

Agiles Testen. Gedankensammlung. 17. November 2013 - Patrick Koglin Agiles Testen Gedankensammlung 17. November 2013 - Patrick Koglin Inhalt Reflektion: Agilität notwendig? Wo? Eigenschaften agiler Entwicklung Quality is everyone s responsibility Qualität möglich machen

Mehr