Vorlesung Software-Reengineering



Ähnliche Dokumente
Was ist Software-Architektur?

Konsolidierung von Software-Varianten in Software-Produktlinien ein Forschungsprogramm

Softwaretechnik. Prof. Dr. Rainer Koschke. Sommersemester Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Vorlesung Software-Reengineering

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

IT-Unternehmensarchitektur Übung 01: IT-Strategie

Modul Software Komponenten 01 Komponenten

Some Software Engineering Principles

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

HP Service Manager 7 mit ITSM Implementation Accelerator (IIA) ITIL V3 out of the box?

Reengineering und Refactoring von Softwarearchitekturen

Scenario-Based Analysis of Software Architecture

Abschlussvortrag Masterarbeit: Operationalizing Architecture in an agile Software Projec

Über den Unterschied zwischen Business Analysis und Requirements Engineering & Management

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur

HR Prozesse und Tools

ITIL & TOGAF die Doppelspitze für IT Governance

Requirements Engineering Übung 8 Systemmodellierung im RE

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Dreibeinige Stühle kippeln nicht Fachbereich und IT als gemeinsames Projekt-Team

Anforderungen, KEFs und Nutzen der Software- Prozessverbesserung

Requirements-basiertes Testen am Beispiel des NI Requirements Gateways

Elementare Bildverarbeitungsoperationen

Safer Software Formale Methoden für ISO26262

SOMA Reverse Engineering

TOGAF The Open Group Architecture Framework

Cloud Architektur Workshop

Klausur Softwaretechnik Feb. 2008

Validierung und Verifikation

Team Collaboration im Web 2.0

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

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

Seminar: Software Engineering verteilter Systeme

Kapitel 1 Applikations-Architektur VI

16 Architekturentwurf Einführung und Überblick

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Übungsklausur vom 7. Dez. 2007

Erfolgreiche Realisierung von grossen Softwareprojekten

Process Instrumentation and Analytics. Ontologie. Was ist das? und - Was kann man damit machen? Vortrag von Carola Brix

Das Studium im Fach Informatik

The Modular Structure of Complex Systems Seminar SoftwareArchitektur Fabian Schultz

Der agile Software Architekt

Verwendung von Anforderungsbasierten Verfolgbarkeitsmetriken im Projektmanagement

! "# $% &'!( $ ) *(+,(,-

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Taxonomy of Evolution and Dependability. Integration Engineering SS 2009 Andreas Landerer

How to Survive an Audit with Real-Time Traceability and Gap Analysis. Martin Kochloefl, Software Solutions Consultant Seapine Software

Grundbegriffe der Wirtschaftsinformatik Informationssystem I

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Software Qualität: Übung 3

Comparison of Software Products using Software Engineering Metrics

Architekturen und LEGO Was wir von Kindern für Systemarchitekturen lernen können

ABSICHERUNG MODELLBASIERTER SICHERHEITSKRITISCHER AVIONIK SOFTWARE Dr. Elke Salecker

Grundlagen Software Engineering

P2P-Netzwerke für dynamische 3D-Szenen

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Herr Müller möchte anderen Menschen helfen. Er bekommt kein Geld für diese Arbeit. Aber die Arbeit macht ihm Freude.

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006

Big Data Projekte richtig managen!

Erfahrungsbreicht... Von der Auswahl bis zur Verwendung von Contour im Grossunternehmen.

SWE12 Übungen Software-Engineering

8 Design Patterns. Events

INSTALLATIONSANLEITUNG

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Wie der IBM Supercomputer Watson zum besten Freund von Human Resources werden könnte!

Big Data Umgang mit personenbezogenen Daten im Kontext von digitalen Gesundheits-Akten und Archivierungslösungen

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Software Architektur sehen

Digitale Lastenhefte - Austausch von Dokumenten

IVS Arbeitsgruppe Softwaretechnik Abschnitt Management komplexer Integrationslösungen

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Ideation-Day Fit für Innovation

Globale Scrum Retrospektive

UNIVERSITY POLITEHNICA OF BUCHAREST POWER DEPARTMENT HYDRAULICS AND HYDRAULIC MACHINES CHAIR

Kapitel 2: Der Software-Entwicklungsprozess

Vorlesung Software-Reengineering

Agile Software Verteilung

Persistenzschicht in Collaborative Workspace

Software Systems Engineering

Gruppe 2: Rui Gu, Wei Zhu, Veysel Imamoglu, Dimitar Dimitrov, Karl Oppermann, Nathalie Hrycej, Markus Schnalke, Christoph Galler

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Requirements Management Methodology

peer-to-peer Dateisystem Synchronisation

Software Engineering. Dokumentation. Wintersemester 2005/06. Kapitel 21. Universität Zürich Institut für Informatik

Übungen zur Softwaretechnik

Ausführungsbestimmungen des. des Bachelor of Science Studienganges

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Transkript:

Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2008/09 Überblick I 1

1 Softwarearchitektur Idealisierte Softwarearchitektur Softwarearchitektur in der Praxis Definition von Softwarearchitektur Softwarearchitekturrekonstruktion Views und Viewpoints Viewpoints im Forward-Engineering Architekturrekonstruktion Beobachtungen Goal Question View( Metric) Zusammensetzung von Prozessen durch Sichten Prozessebenen Prozessentwurf Prozessausführung Wiederholungsfragen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 3 / 25 Lernziele Ziele und Notwendigkeit von Architekturrekonstruktion kennen Schritte der Architekturrekonstruktion kennen: Problemanalyse Sichtenbestimmung Datensammlung Inferenz von Wissen Informationspräsentation und -interpretation statische und dynamische Techniken der Datensammlung kennen Techniken der Inferenz von Wissen im Reverse-Engineering beherrschen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 4 / 25

Softwarearchitektur in Lehrbüchern Kanonische Compilerarchitektur nach Shaw und Garlan (1993) Symbol Table Text Lexical Analysis Syntactic Analysis Semantic Analysis Optimization Code Generation Code AST Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 9 / 25 Softwarearchitektur in der Praxis Compilerarchitektur im echten Leben Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 10 / 25

Definition von Softwarearchitektur Definition Software architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution. IEEE Std. 1471-2000 (2000) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 11 / 25 Architekturrekonstruktion und Reverse-Engineering Definition Reverse Engineering is the process of analyzing a subject system to identify the system s components and their interrelationships and create representations of the system in another form or a higher level of abstraction. Chikofsky und Cross II. (1990) Definition Architecture reconstruction is the process of analyzing a subject system to reconstruct architectural views. Rainer Koschke, 2008 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 12 / 25

Views und Viewpoints IEEE Std. 1471-2000 (2000) Definition A view (deutsch: Sicht) is a representation of a whole system from the perspective of a related set of concerns. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 13 / 25 Views und Viewpoints IEEE Std. 1471-2000 (2000) Definition A viewpoint (deutsch: Blickwinkel) is a specification of the rules and conventions to construct and use an architectural view. var-access calls module type-dep cloned Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 14 / 25

Viewpoints im Forward-Engineering Zachman Perry and Wolfe 4+1 Siemens... Clements et al. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 15 / 25 Viewpoints-Kategorien nach Clements u. a. (2002) M: module: static structure decomposition use generalization layers CC: component & connectors: runtime structure pipe and filter shared data publish and subscribe client server peer-to-peer communicating processes A: allocation: embedding in organizational development context deployment implementation work assignment Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 16 / 25

Beobachtungen Architekturrekonstruktion ist problemgetrieben Probleme sind kontextabhängig verschiedene Kontexte erfordern verschiedene Architektursichten es gibt keinen detailierten Rekonstruktionsprozess, der immer passt Rekonstruktionsprozesse müssen im Kontext entworfen werden Rekonstruktion basiert meist auf vielen Architektursichten der Rekonstruktionsprozess lässt sich durch Architektursichten definieren Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 17 / 25 Goal Question View( Metric) Problemgetriebene Architekturrekonstruktion rekonstruiert Sichten systematisch: Goals: Was ist das Problem, weswegen die Rekonstruktion erfolgt? Was ist das Ziel der Rekonstruktion? Beispielproblem: Änderungen betreffen immer viele Module. Ziel: Existierende Modularisierung bewerten und verbessern. Questions: Was muss ich wissen, um das Ziel zu erreichen? Bsp.: Was sind die Abhängigkeiten zwischen Modulen? Wie kann die Modularisierung verbessert werden? Views: Welche Architektursichten werden benötigt, um die Antwort zu finden? Bsp.: Module-Use Viewpoints: as-is und verbessert + Lücke Metrics: Wie können die Antworten quantifiziert werden? Bsp.: Kopplungs- und Kohäsionsmetriken für existierende und verbesserte Modularisierung, Anzahl und Gewicht der Unterschiede Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 18 / 25

Zusammensetzung von Prozessen durch Sichten input view 1 output view input view 2 input view 3 van Deursen u. a. (2004) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 19 / 25 Prozessebenen Prozessentwurf Was ist das Problem? Welche Sichten werden rekonstruiert? Wie werden diese Sichten rekonstruiert? Prozessausführung Datensammlung Inferenz von Wissen Informationspräsentation und -interpretation Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 20 / 25

Architekturrekonstruktion: Prozessentwurf Datenfluss Akteur in Problem analyse Problem darstellung Bibliothek von Viewpoints Sichten bestimmung Quell Viewpoints Abbildungsregeln Ziel Viewpoints Quell Viewpoints Daten sammlung Verfeinerung Problemdarstellung Ziel Viewpoints Inferenz von Wissen Informations interpretation Interessenten Prozess Designer Rekonstrukteur Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 21 / 25 Architekturrekonstruktion: Prozessausführung Daten Daten sammlung Quell sichten Wissensbank Ziel sichten Architektur Informations sichten interpretation Quell sichten Abbildung Ziel sichten Datenfluss Akteur in Inferenz von Wissen Rekonstrukteur Interessenten Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 22 / 25

Wiederholungsfragen Erläutere die Begriffe View (Sicht) und Viewpoint. Wie kann man Viewpoints klassifizieren? Erläutere die Schritte der Architekturrekonstruktion. Welche Rolle spielen Views (Sichten) und Viewpoints in der Architekturrekonstruktion? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 23 / 25 1 Chikofsky und Cross II. 1990 Chikofsky, Elliot J. ; Cross II., James H.: Reverse Engineering and Design Recovery: A Taxonomy. In: IEEE Software 7 (1990), Januar, Nr. 1, S. 13 17 2 Clements u. a. 2002 Clements, Paul ; Bachmann, Felix ; Bass, Len ; Garlan, David ; Ivers, James ; Little, Reed ; Nord, Robert ; Stafford, Judith: Documenting Software Architecture. Boston : Addison-Wesley, 2002 3 van Deursen u. a. 2004 Deursen, Arie van ; Hofmeister, Christine ; Koschke, Rainer ; Moonen, Leon ; Riva, Claudio: Symphony: View-Driven Software Architecture Reconstruction. In: IEEE/IFIP Working Conference on Software Architecture, IEEE Computer Society Press, Juni 2004, S. 122 132 4 IEEE Std. 1471-2000 2000 IEEE P1471: IEEE Recommended Practice for Architectural Description of Software-intensive Systems Std. 1471-2000. 2000 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 24 / 25

5 Shaw und Garlan 1993 Shaw, Mary ; Garlan, David: An Introduction to Software Architecture. In: Advances in Software Engineering and Knowledge Engineering. River Edge, NJ : World Scientific Publishing Company, 1993 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2008/2009 25 / 25