Vorlesung Software-Reengineering
|
|
- Eduard Dittmar
- vor 6 Jahren
- Abrufe
Transkript
1 Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2006/07 Überblick I 1
2 1 Über diese Folien Lernziele Reengineering Kontext Programm-Visualisierung Statische Programm-Visualisierung Dynamische Programm-Visualisierung Visualisierung von Metriken Klassenblaupause Evolutionäre Aspekte Zusammenfassung Wiederholungsfragen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Über diese Folien Diese Folien entstammen einer Präsentation von Michele Lanza (Universität Bern), mit dessen freundlicher Genehmigung. Die Unterschiede zum Original sind: Übersetzung ins Deutsche Kleinere Restrukturierungen und Verkürzungen Zusatz Spektrograph (Courtesy Jingwei Wu, Richard C. Holt, Ahmed Hassan, University of Waterloo, Canada) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
3 Software-Visualisierung I Lernziele Software-Visualisierung in einem Reengineering-Kontext Statische Code-Visualisierung Dynamische Code-Visualisierung Visualisierung von Metriken Visualisierung der Evolution Leichtgewichtige Ansätze Kontext Reengineering ist meist interaktiv Große Datenmengen müssen verstanden werden Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Software-Visualisierung II Software Visualization is the use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction and computer graphics technology to facilitate both the human understanding and effective use of computer software. Price, Baecker and Small, Introduction to Software Visualization Software is intangible, having no physical shape or size. Software visualisation tools use graphical techniques to make software visible by displaying programs, program artifacts and program behaviour. Thomas Ball Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
4 SV im Reengineering-Kontext Ziele: Reduktion der Komplexität Herausforderungen: Skalierbarkeit Aufgabenabhängigkeit der Visualisierung Art der Visualisierung Begrenzte Ressourcen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Programm-Visualisierung Program visualization is the visualization of the actual program code or data structures in either static or dynamic form. [Price, Baecker und Small] Gebiete Statische Programm-Visualisierung Dynamische Programm-Visualisierung Aufgaben Verschiedene Sichten generieren Inferenzen ermöglichen Spezifische Probleme (aktives Forschungsgebiet) Effiziente Ausnutzung des Platzes, Kantenüberschneidungen, Layout-Probleme, Fokus, Human-Computer-Interaction,... Keine Konventionen (Farben, Symbole, Interpretation,... ) Granularität? Ganze System, Subsysteme, Module, Klassen, Hierarchien,... Wofür, wie und wann anzuwenden? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
5 Statische Programm-Visualisierung Visualisierung von Information, die statisch abgeleitet ist. Hängt von Sprache und Sprachparadigma ab: objektorientierte Sprachen: Klassen, Methoden, Attribute, Vererbung,... prozedurale Sprachen: Prozeduren, Aufrufe, Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Klassendiagramme Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
6 Klassendiagramme (wie von herkömmlichen CASE-Werkzeugen dargestellt... ) Vorteile: Stellen objektorientierte Konzepte dar Geeignet für kleine Ausschnitte Nachteile: Skalieren nicht Benötigen Filter für relevante Informationen Nur voreingestellte Sichten Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Beispiel 1a: Rigi Entity-Relationship- Visualisierung generische Präsentation durch typisierte Graphen Probleme: Filterung Navigation Skalierbarkeit Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
7 Beispiel 1b: Rigi Entities können gruppiert werden Vorteile: Skaliert besser generisch Nachteile: Wenig Programmiersprachensemantik Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Beispiel 2: Klassen-Hierarchien Jun/OpenGL Smalltalk Klassenhierarchie Probleme: Keine weitere Bedeutung der Farbe Überladen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
8 Beispiel 3: Tree Maps Vorteile: hierarchisch (m.e.) 100% Raumnutzung skaliert Nachteile: Grenzen Wirres Bild Interpretation Nur Blätter Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Beispiele 4 und 5 Euklidische Kegel Vorteile: Nutzen dritte Dimension Nachteile: Mangelnde Tiefe Navigation Hyperbolische Bäume Vorteile: Fokus ist wählbar Dynamisch Nachteile: Copyright Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
9 Dynamische Programm-Visualisierung Visualisierung dynamischen Verhaltens Ausführungs-Trace Ressourcenverbrauch (Speicher/Laufzeit) Objekt-Interaktion... Schritte: 1 Code-Instrumentierung 2 Gewinnung der Laufzeitinformation 3 Auswertung der Laufzeitinformation 4 Visualisierung der Auswertung Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Beispiel 1: JInsight ( Visualisierung von Ausführungs-Traces Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
10 Vorlesung Software-Reengineering Dynamische Programm-Visualisierung Beispiel 1: JInsight ( Beispiel 1: JInsight ( Visualisierung von Ausführungs-Traces Visualisiert Sequenzdiagramme; jeder vertikale Streifen repräsentiert ein Objekt; die Farbe des Streifens kodiert die Klasse. Die Zeit schreitet von oben nach unten fort. Aufrufe sind durch Kanten zwischen Objekten dargestellt und haben die aufgerufene Methode als Label. Die zeitlichen Bereiche, in denen ein Objekt tatsächlich aktiv sind (d.h. nicht nur eine andere Methode aufrufen, sondern tatsächlich selbst rechnen), sind im Streifen etwas heller dargestellt. JInsight erlaubt es auch, wiederkehrende Aufrufmuster automatisch zu erkennen und darzustellen. Ähnliche, aber leicht unterschiedliche Muster können dabei übereinandergelegt werden, um so die Unterschiede darzustellen. Beispiel 2: Aufrufmatrix für Klassen einfach skaliert reproduzierbar Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
11 Vorlesung Software-Reengineering Dynamische Programm-Visualisierung Beispiel 2: Aufrufmatrix für Klassen Beispiel 2: Aufrufmatrix für Klassen einfach skaliert reproduzierbar Inter-Class Call Matrix: This view provides an overview of the communication between classes. The matrix plots which classes call which other classes. Classes are arranged along both axes in the order they are instantiated. The color of the dots indicate the frequency of that communication. Dynamische SV: Probleme Code-Instrumentierungsproblem Logging, erweiterte Virtual Machines, Method-Wrapping Skalierbarkeitsproblem Fülle der Details Traces werden sehr schnell enorm groß Vollständigkeitsproblem Information gilt nur für betrachtete Szenarien Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
12 Visualisierung von Metriken (Lanza 2003; Lanza und Ducasse 2003) Kombination von Metriken und Software-Visualisierung Graph-Repräsentation Bis zu fünf Metriken bestimmen die Visualisierung der Knoten: Größe (1+2) Farbe (3) Position (4+5) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 System Complexity View Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
13 Method Efficiency Correlation View Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Inheritance Classification View Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
14 Vorlesung Software-Reengineering Visualisierung von Metriken Inheritance Classification View Inheritance Classification View Added: Ganz neue Methoden. Overridden: Ererbt und redefinierte Methoden. Extended: Overridden + Aufruf der gleichen Methode via super (Smalltalk), d.h. Aufruf zur entsprechenden Methode, die überschrieben wurde. Data Storage Class Detection View Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
15 Vorlesung Software-Reengineering Visualisierung von Metriken Data Storage Class Detection View Data Storage Class Detection View Von links nach rechts nach Breite (Number of Methods) geordnet. Dieselbe Metrik (Number of Methods) wird hier auf dreifache Weise dargestellt: Breite, Position innerhalb der Ordnung und Farbe. Dadurch kann ein verstärkender Effekt erzeugt werden. Granularitätsproblem Hübsch... aber was verbirgt sich dahinter? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
16 Klassenblaupause (Ducasse und Lanza 2005) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / Vorlesung Software-Reengineering Klassenblaupause Klassenblaupause (Ducasse und Lanza 2005) Klassenblaupause (Ducasse und Lanza 2005) Die Einteilung hängt etwas von der Ausdruckskraft der Programmiersprache ab, auch von dem, was der Benutzer tatsächlich sehen möchte: aus Sicht der Spezifikation bzw. aus Sicht der tatsächlichen Verhältnisse. Initialization: Kontruktoren (soweit die Programmiersprache sie explizit darstellt, auch: Methoden, die Init und ähnliche Zeichenketten im Namen enthalten oder solche, die einen new-operator für die Klasse enthalten Interface: öffentliche Methoden; auch: solche, die tatsächlich von außerhalb aufgerufen werden (Accessors sind in einer anderen Kategorie; siehe unten) Implementation: versteckte Methoden bzw. solche, die von außerhalb nicht benutzt werden Accessors: Öffentliche Methoden, die nichts weiter tun als ein Attribut zu setzen bzw. zu lesen Attribute: versteckte Attribute
17 Semantische Information Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Kategorisierung von Klassen Basiert auf Klassenblaupausen Zwei Perspektiven: Einzelne Klasse Vererbungskontext Klassenblaupause für jede einzelne Klasse Sind als Baum angeordnet Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
18 Klassenblaupause: Data Storage Viele Attribute Kann viele Zugriffsoperationen haben (Accessors) Harmloses Verhalten Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Klassenblaupause: Wide Interface Viele Methoden in der Schnittstelle Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
19 Klassenblaupause: Large Implementation Geschachtelte Aufrufstruktur Viele Methoden Hohe Komplexität Breite Schnittstelle Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Evolutionäre Aspekte (Lanza 2003) Die Gegenwart ist oft verständlicher, wenn man die Vergangenheit kennt. Betrachtung von Aspekten des Systems über die Zeit. Metrikwerte können besser eingeschätzt werden. Erlaubt, Trends auszumachen. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
20 Evolutionsmatrix Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Kategorisierung von Klassen anhand der Evolutionsmatrix Dargestellte Metriken für Klassen: NOM (number of methods) NOA (number of attributes) Kategorisierung anhand der individuellen Evolution und der System-Evolution : Pulsar Supernova Weißer Zwerg Roter Riese Dornröschen Eintagsfliege Methusalem Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
21 Pulsar & Supernova Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Weißer Zwerg, Roter Riese, Dornröschen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
22 Eintagsfliege & Methusalem Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Fallstudie MooseFinder (38 Versionen) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
23 Spektrograph x-achse: Zeit; y-achse: Softwareeinheit; Farbe: #commits Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / Vorlesung Software-Reengineering Evolutionäre Aspekte Spektrograph Spektrograph x-achse: Zeit; y-achse: Softwareeinheit; Farbe: #commits Courtesy Jingwei Wu, Richard C. Holt, Ahmed Hassan, University of Waterloo, Canada
24 Färbung im Spektrograph linearer Gradient exponentieller Gradient Stufen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Software-Visualisierung (SV) I SV ist unabdingbar im Reengineering-Kontext Match-Mismatch-Hypothese: problem-solving performance depends on whether the structure of a problem is matched by the structure of a notation Gilmore und Green Jede SV betont bestimmte Information und vernachlässigt andere Information. Geeignete SV ist abhängig von der zu lösenden Aufgabe. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
25 Software-Visualisierung (SV) II Alphabetismus der SV Wie drücke ich es aus? Wie interpretiere ich es? Vieles noch in der Forschung, wenig in kommerziellen Werkzeugen Software-Wahrnehmung: Andere menschliche Sinne werden genutzt Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45 Wiederholungs- und Vertiefungsfragen I Wofür eignen sich Tree Maps und wie sind sie zu interpretieren? Welche Probleme gibt es bei der Visualisierung dynamischer Daten? Wie lassen sich Metriken visualisieren? Was ist eine Klassenblaupause? Wie lassen sich damit Klassen charakterisieren? Welche zusätzlichen Aspekte lassen sich durch die Visualisierung evolutionärer Daten gewinnen? Was sagt die Match-Mismatch-Hypothese (Gilmore und Green) aus? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
26 1 Ducasse und Lanza 2005 Ducasse, Stephane ; Lanza, Michele: The Class Blueprint: Visually Supporting the Understanding of Classes. In: IEEE Computer Society Transactions on Software Engineering 31 (2005), Januar, Nr. 1, S Lanza 2003 Lanza, Michele: Object-Oriented Reverse Engineering - Coarse-grained, Fine-grained, and Evolutionary Software Visualization. http: // University of Bern, Dissertation, Lanza und Ducasse 2003 Lanza, Michele ; Ducasse, Stephane: Polymetric Views A Lightweight Visual Approach to Reverse Engineering. In: IEEE Computer Society Transactions on Software Engineering 29 (2003), Nr. 9, S Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2006/ / 45
Vorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 1 Über diese Folien
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2008/09 Überblick I 1 Software-Visualisierung
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 Über diese Folien
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 Über diese Folien
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2010/11 Überblick I Software-Visualisierung
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2012/13 Überblick I Software-Visualisierung
MehrDATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS
DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS Master Seminar Empirical Software Engineering Anuradha Ganapathi Rathnachalam Institut für Informatik Software & Systems Engineering Agenda Introduction
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 Merkmalsuche Merkmalsuche
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 1 Ausgangsszenario
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2010/11 Überblick I Analyse und Restrukturierung
MehrGraph Visualisierung und Navigation. PG478 Open Graph Drawing Framework Martin Gronemann
Graph Visualisierung und Navigation PG478 Open Graph Drawing Framework Martin Gronemann Übersicht 1. Anwendungsgebiete 2. Layouttechniken 3. Klassische Werkzeuge der Navigation Zoom & Pan Joint pan-zoom
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 Refactoring Refactorings
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...
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrAutomatisches Layout von Graphen
Fakultät Informatik» Institut für Angewandte Informatik» Professur für Technische Informationssysteme Automatisches Layout von Graphen Mabel Joselin Brun Chaperon Dresden, 10.06.2011 Inhalt Vortragsübersicht:
MehrRequirements Engineering I
Martin Glinz Requirements Engineering I Kapitel 4 Modellierungssprachen Universität Zürich Institut für Informatik 2006 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe sind für den persönlichen,
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 26/07 Überblick I 1 Merkmalsuche Merkmalsuche
MehrÜbungen Softwaretechnik I
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2009 Überblick I 1 Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrProgrammverstehen 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
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 26/07 Überblick I 1 1 Ausgangsszenario für
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2011/12 Überblick I Refactoring Code-Transformationen:
MehrKlassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object
Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen
MehrFACHHOCHSCHULE MANNHEIM
Objektorientierte Programmierung 3. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Wiederholung: Begriffsübersicht Strukturierte vs. objektorientierte Programmierung
MehrObjektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
MehrSlide 1. Visualisierung evolutionärer Zusammenhänge
Slide 1 Visualisierung evolutionärer Zusammenhänge Slide 2 Evolution Enstehung neuerarten: Vererbung Mutation Selektion Horizontaler Gentransfer, Endosymbiose, Hybridisierung Slide 3 2 Beispiele: Slide
MehrSemantik-Visualisierung
Semantik-Visualisierung 2. Potsdamer I-Science Tag Dirk Burkhardt Fraunhofer IGD Abteilung Echtzeitlösungen für Simulation und Visual Analytics Fraunhoferstraße 5 64283 Darmstadt Germany Tel. +49 (0)6151
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrTechniken der Projektentwicklungen
Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. R. Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 Blatt 2 1 Blatt 2 A 2.1:
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2012/13 Überblick I Software-Produktlinien Software-Produktlinien
MehrWeb 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
Mehr1.3 Charakteristische Eigenschaften von objektorientierten Systemen
1.3 Charakteristische Eigenschaften von objektorientierten Systemen Einkapselung (Encapsulation) Geheimhaltungsprinzip (Information / Implementation hiding) Persistenz (State retention) Objektidentität
MehrKapitel 11: Vererbung Ziele von Klassen Einführung in die Informatik für struct Naturwissenschaftler und Ingenieure
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
MehrJPlus Platform Independent Learning with Environmental Information in School
JPlus Platform Independent Learning with Environmental Information in School Mario Härtwig, Pierre Karrasch Salzburg, 7. Juli 2010 Genesis Umweltmonitoring als Beitrag zur Umweltbildung an Schulen. Kulturlandschaftsentwicklung
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++
Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen
MehrSTORYBOARDING ZUR ABLEITUNG VON KONTEXTBASIERTEN INTERACTION-CASES FÜR UBIQUITÄRE SYSTEME
Fakultät Informatik Institut für Software- und Multimediatechnik Juniorprofessur Software Engineering Ubiquitärer STORYBOARDING ZUR ABLEITUNG VON KONTEXTBASIERTEN INTERACTION-CASES FÜR UBIQUITÄRE SYSTEME
MehrDas diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
MehrSemantische Netze Psychologische Plausibilität
Conceptual Graphs Knoten repräsentieren Konzepte oder konzeptuelle Relationen; Kanten haben keine Labels n-stellige konzeptuelle Relation repräsentiert als Knoten mit n Kanten Mächtigkeit der PL1; aber
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
MehrParameterübergabemechanismen für den Methodenaufruf
Methode, griech. der Weg zu etwas, planmäßiges Verfahren -Brockhaus Parameterübergabemechanismen für den Methodenaufruf Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw
MehrEinführung in die Programmierung
Einführung in die Programmierung Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.jku.at http://www.risc.jku.at Wolfgang
MehrObjektorientiertes Programmieren
JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist
MehrVisuelle Kryptographie. Anwendung von Zufallszahlen
Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfung. Einführung Vererbung. Roboter in becker.robots. Filialenbelieferung 4.11.
IT I: Heute Nachbetrachtung Wissensüberprüfung Einführung Vererbung Roboter in becker.robots Filialenbelieferung 4.11.2014 IT I - VO 4 1 Organisatorisches Tutorium am Mi, 12.11. schon um 11 Uhr (bis 12:30).
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrE-CARES-Projekt: Understanding Complex Legacy Telecommunication Systems. E-CARES-Projekt. André Marburger Lehrstuhl für Informatik III, RWTH Aachen
: Understanding Complex Legacy Telecommunication Systems André Marburger Lehrstuhl für Informatik III, RWTH Aachen marand@i3.informatik.rwth-aachen.de Dominikus Herzberg Ericsson Eurolab Deutschland GmbH
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrMapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017
Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden
MehrEntwicklung eines Klassengraphen
Vortrag zur Diplomarbeit von Carsten Stocklöw Fachbereich Biologie und Informatik Johann Wolfgang Goethe - Universität 1/39 Überblick Einleitung UML Stand der Technik Konzept Implementierung Demonstration
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots 7.11.2017 IT I - VO 5 1 Organisatorisches Wissensüberprüfung diese Woche wieder am Rechner Wer die 5. Wissensüberprüfung
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrInformatik 1. Informatik 1. Wolfgang Schreiner Engineering für Computer-basiertes Lernen Fachhochschule Hagenberg
Informatik 1 Wolfgang Schreiner Engineering für Computer-basiertes Lernen Fachhochschule Hagenberg Wolfgang.Schreiner@fhs-hagenberg.ac.at http://cbl.fhs.hagenberg.ac.at/ schreine Wolfgang Schreiner FH
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
MehrService Engineering. IVS Arbeitsgruppe Softwaretechnik. Abschnitt: Einführung zur Vorlesung
Service Engineering IVS Arbeitsgruppe Softwaretechnik Abschnitt: Einführung zur Vorlesung Seite 1 Überblick zur Vorlesung Seite 2 Organisation Die Vorlesungen finden jeweils Donnerstag von 09:00 bis 11:00
MehrInhalt. " DiaGen Historie und Beschreibung. " Architektur eines DiaGen-Editors. " Hypergraphen. " DiaGen-Editoren Komponenten
DIAGEN Sven Goeckels Seminar : Visuelle Sprachen Universität Bremen FB Informatik WS 2001/2002 Inhalt " DiaGen Historie und Beschreibung " " Hypergraphen " DiaGen-Editoren Komponenten? Modeler? Reducer?
MehrKonsolidierung von Software-Varianten in Software-Produktlinien ein Forschungsprogramm
Konsolidierung von Software-Varianten in Software-Produktlinien ein Forschungsprogramm Rainer Koschke Universität Bremen Workshop Software-Reengineering Bad Honnef 5. Mai 2005 Bauhaus Forschungskooperation
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrNoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE
NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE Was bedeutet NoSQL? Ein Sammelbegriff für alternative Datenbanklösungen, die
Mehr13 Abstrakte Datentypen
13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrMapra: C++ Teil 6. Felix Gruber, Michael Rom. 07. Juni 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 6 07.
Mapra: C++ Teil 6 Felix Gruber, Michael Rom IGPM 07. Juni 2016 Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 6 07. Juni 2016 1 / 14 Themen vom letzten Mal Klassen Vererbung Zeiger auf Objekte Initialisierungsliste
MehrGraph-basierte Modellierung in Software-Werkzeugen
Graph-basierte Modellierung in Software-Werkzeugen 1 Inhalt Einleitung Modellierung mit Graphen Modellierung mit Graphklassen (Schemata und Constraints) Implementation von Graphen (Algorithmen und Anfragen)
MehrROOT Tutorial für HEPHY@CERN. D. Liko
ROOT Tutorial für HEPHY@CERN D. Liko Was ist ROOT? Am CERN entwickeltes Tool zur Analyse von Daten Funktionalität in vielen Bereichen Objekte C++ Skriptsprachen Was kann ROOT Verschiedene Aspekte C++ as
MehrEclipse User Interface Guidelines
SS 2009 Softwarequalität 06.05.2009 C. M. Bopda, S. Vaupel {kaymic/vaupel84}@mathematik.uni-marburg.de Motivation (Problem) Motivation (Problem) Eclipse is a universal tool platform - an open, extensible
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
MehrKapitel 15: Von dynamischen zu statischen Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1
Kapitel 15: Von dynamischen zu statischen Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen
Mehr32. Werkzeuge zur Visualisierung
32. Werkzeuge zur Visualisierung Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden http://st.inf.tu-dresden.de
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrWS 2011/2012. Georg Sauthoff November 2011
WS 2011/2012 Georg 1 AG Praktische Informatik 22. November 2011 1 gsauthof@techfak.uni-bielefeld.de Vorstellung der abgaben aus den Tutorien. Sieb-Beispiel Siehe Tafel (Auswertungsbeispiel) Sieb-Beispiel
MehrC++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrWas ist Wartung und welche vier Arten der Wartung unterscheidet die Norm ISO/IEC 12207? Wie lautet die Regel von Boehm? (ein Beispiel ausrechnen)
1.99 Fragen zu: Software-Wartung Was ist Wartung und welche vier Arten der Wartung unterscheidet die Norm ISO/IEC 12207? Welche Qualitätseigenschaften erhöhen (Ihrer Auffassung nach) die Wartbarkeit und
MehrInhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen
...we make the invisible visible... 1 Inhalt Fragestellungen Analysen und deren Anwendung Erfahrungen 2 Projektleiter Hat unsere Software eine klare, verständliche Struktur? Gibt es problematischen Code,
Mehrsoftware visualization NICK MÜLLER, a
software visualization NICK MÜLLER, a1001030 Papers Visualizing Compiled Executables for Malware Analysis. Daniel A. Quist and Lorie M. Liebrock, VizSec 2009. Visualizing Application Behavior on Superscalar
Mehr3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP
3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg ARIS meets RUP Der ARIS Unified Information System Development Process Martin Plümicke Berufsakademie
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrModulliste. für den Masterstudiengang. Data & Knowledge Engineering (alt) an der Otto von Guericke Universität Magdeburg Fakultät für Informatik
Modulliste für den Masterstudiengang Data & Knowledge Engineering (alt) an der Otto von Guericke Universität Magdeburg Fakultät für Informatik vom Sommersemester 2019 Der Masterstudiengang Data & Knowledge
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke 1 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 Refactoring 1 Refactoring
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
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)
MehrKapitel Andere dynamische Datenstrukturen
Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017
MehrInterdisziplinäre fachdidaktische Übung: Formale Sprache Definitionen, Funktionen
Interdisziplinäre fachdidaktische Übung: Formale Sprache Definitionen, en SS 2013: Grossmann, Jenko 1 Definitionen Folgenden Begriffe werden oft synonym verwendet: Formale Sprache Programmiersprache Computersprache
MehrObjektorientierte Datenbanken
OODB 8 Slide 1 Objektorientierte Datenbanken Vorlesung 8 Sebastian Iwanowski FH Wedel OODB 8 Slide 2 Offene Fragen vom letzten Mal: Kann man in einer JDOQL-Anfrage Elemente herausfiltern, deren Attribute
MehrProgrammierkurs. Steffen Müthing. January 18, Interdisciplinary Center for Scientific Computing, Heidelberg University
Programmierkurs Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University January 18, 2019 Konzepte Standard-Konzepte für Code Reuse: Polymorphie/Vererbung Funktionalität
MehrKapitel 15: Von dynamischen zu statischen Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2018/2018. Inhaltsverzeichnis 1
Kapitel 15: Von dynamischen zu statischen Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2018/2018 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen
MehrObject-Oriented Analysis and Design Klausur Wintersemester 2006/2007
Object-Oriented Analysis and Design Klausur Wintersemester 2006/2007 page 1 of 8 Object-Oriented Analysis and Design Klausur Wintersemester 2006/2007 21. Februar 2007 Prof. Dr. Ralf Möller Institut für
MehrVererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
Mehr