Vorlesung Software-Reengineering
|
|
- Alexandra Bergmann
- vor 5 Jahren
- Abrufe
Transkript
1 Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 26/07 Überblick I 1
2 1 Ausgangsszenario für Statische Analyse Dynamische Analyse Probleme der dynamischen Analyse Statische und dynamische Analysen Fallstudien Inkrementelle Analyse Szenarien, Merkmale, Routinen Bewertung Wiederholungsfragen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 3 / 37 Lernziele Ausnutzung aller verfügbarer Information (statisch und dynamisch) Suche nach Merkmalen (statt Programmmustern) Kontext Weitere Anwung der Begriffsanalyse Unterstützung der Lokalisierung beim Programmverstehen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 4 / 37
3 Szenario für Ihre Aufgabe ist es, für ein System mit mehr als 10,0 Routinen ein Merkmal hinzuzufügen, zu korrigieren oder zu ändern oder einfach die Implementierung eines Merkmals zu verstehen. Wo beginnen Sie? : welche Komponenten eines Systems implementieren ein einzelnes Merkmal bzw. eine Menge von Merkmalen? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 5 / 37 Merkmale und Komponenten Ein Merkmal ist eine realisierte funktionale oder nicht-funktionale Eigenschaft des Systems. Eine Komponente ist eine ausführbare Einheit, z.b.: eine einzelne Anweisung oder ein Ausdruck, eine Routine (Funktion, Prozedur), ein Modul, ein Subsystem, eine Task, ein Thread oder Prozess. Im Folgen: Merkmal = von außen anstoßbares und beobachtbares Verhalten des Systems, das auf Komponenten abgebildet werden kann. Komponente = Routine. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 6 / 37
4 Statische Analyse nach Chen und Rajlich (20) source code call graph extractor call graph call graph traversal Probleme: Wo beginnen? Wo fortfahren? Wo aufhören? Präzision der statischen Extraktion? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 7 / 37 Zwei dynamische Ausführungs-Traces nach Wilde u. a. (1992) source code compiler executable invoke with feature invoke w/o feature trace trace profiler profiler invoking input set excluding input set difference starting set for static analysis Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 8 / 37
5 Dynamische Analyse Dynamischer Aufrufgraph unter Verwung des Merkmals Dynamischer Aufrufgraph ohne Verwung des Merkmals Resultat Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 9 / 37 Probleme der dynamischen Analyse Invoking-Input-Set Excluding-Input-Set kann immer noch sehr viele nicht-merkmalspezifische Routinen sowie nicht wirklich merkmalspezifische Routinen enthalten. Resultate hängen von der Eingabe ab; d.h. Resultate bilden nur einen Startpunkt für weitere statische Analysen. Wo soll mit der statischen Analyse begonnen werden? Das Resultat differenziert die identifizierten Routinen nicht weiter. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 10 / 37
6 Statisch und dynamisch nach Eisenbarth u. a. (23) invoke feature f1 invoke feature f2 invoke feature fn trace trace trace profiler profiler profiler routines (f1) routines (f2) ,... routines (fn) invocation table compiler executable concept analysis source code call graph extractor call graph call graph traversal concept lattice Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 / 37 Begriffsanalyse I Merkmal f1 Merkmal f2 Merkmal f3 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 12 / 37
7 Begriffsanalyse II main r1 r2 r3 r5 r7 r8 r9 r r12 r14 r15 r16 r17 r18 f3 f2 f1 main r1 r3 r5 r7 r8 main r1 r3 r5 r7 r8 main r1 r3 r5 r7 r17 r9 r14 r15 r16 r17 r2 r18 r r12 f2 f3 main r1 r3 r5 r7 r8 r17 f1 f2 f3 main r1 r3 r5 r7 Begriffsverband Kontext: Routinen Objekte Merkmale Attribute r wird aufgerufen für m Relation Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 13 / Vorlesung Software-Reengineering Statische und dynamische Analysen Begriffsanalyse Begriffsanalyse II f3 f2 f1 main r1 r3 r5 r7 r8 r17 r9 r14 r15 r16 f2 f3 main r1 r2 r3 r5 r7 r8 r9 r r12 r14 r15 r16 r17 r18 main r1 r3 r5 r7 r8 r17 main r1 r3 r5 r7 r8 r17 r2 r18 f1 f2 f3 main r1 r3 r5 r7 Begriffsverband main r1 r3 r5 r7 r r12 Kontext: Routinen Objekte Merkmale Attribute r wird aufgerufen für m Relation Die Darstellung der Relation in Form einer Aufruftabelle erfolgt im Kontext der aus Platzgründen konsequent transponiert, da wir es stets mit mehr Routinen als Merkmalen zu tun haben werden.
8 Kombination Aufrufgraphen ohne Information des Begriffsverbands Aufrufgraph mit Information des Begriffsverbands Top-down / Bottom-up-Traversierung anhand der Merkmalspezifizität der Nachbarn. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 14 / 37 Fallstudie zweier Web-Browser Kombination statischer und dynamischer Information angewandt auf zwei Web-Browser: Mosaic (51 KLOC C-Code, ohne Bibliotheken) Chimera (38 KLOC C-Code; ohne Bibliotheken) Zwei Experimente: Partielle Architektur der Browser-History Merkmale: Browsing, Back-Button, Forward-Button Partielle Architektur der Bookmarks Merkmale: Öffnen/Schließen des Bookmark-Fensters, Bookmark hinzufügen/löschen/selektieren Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 15 / 37
9 Reduktion des Suchraumes Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 16 / 37 Fallstudie: Architektur der Firmware eines Chiptesters applications firmware semaphor shared memory message queue YACC parser command constructor response executor executor executor data flow control flow utility functions firmware hardware Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 18 / 37
10 Begriffsverband für die Firmware Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 19 / 37 Inkrementelle Begriffsanalyse I A1 A2 A3 A4 A5 O1 X X O2 X X X O3 X X O4 X X O5 X X Sei K = (O, A, I) ein Kontext, O O, und A A. Dann ist K = (O, A, I (O A )) ein Subkontext von K und K ist ein Superkontext von K. Annahme: Wir fügen nur Zeilen dazu (für Spalten ist es analog). Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 20 / 37
11 Inkrementelle Begriffsanalyse II A1 A2 A3 A4 A5 O1 X X O2 X X X O3 X X O4 X X O5 X X Satz. Sei K = (O, A, I) und K = (O, A, I ), wobei O O und I = (I (O A)). Dann ist jeder Inhalt von K ein Inhalt von K. Beweis. Siehe Ganter und Wille (1996). Folgerung. Gemäß dieses Satzes erscheint jeder Intent des Subkontexts im Superkontext. Daraus resultiert die folge Abbildung: (O, A) (σ(a), A) Beweis. Siehe Ganter und Wille (1996). Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 21 / 37 Inkrementelle Begriffsanalyse III Die Abbildung ist eine -erhalte Einbettung, d.h. die partielle Ordnung bleibt vollständig erhalten. Folglich ist der Superkontext eine Verfeinerung des Subkontexts. Mit Hilfe der Abbildung lassen sich alle Begriffe des Subkontexts im Superkontexts wiederfinden. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 22 / 37
12 Vorlesung Software-Reengineering Inkrementelle Analyse Inkrementelle Begriffsanalyse Inkrementelle Begriffsanalyse III Die Abbildung ist eine -erhalte Einbettung, d.h. die partielle Ordnung bleibt vollständig erhalten. Folglich ist der Superkontext eine Verfeinerung des Subkontexts. Mit Hilfe der Abbildung lassen sich alle Begriffe des Subkontexts im Superkontexts wiederfinden. Wir erinnern uns, dass Routinen von uns als Objekte betrachtet werden und Merkmale als Attribute und dass die hier gewählte Darstellung der Aufruftabelle der transponierten Relation entspricht. Insofern fügen wir bei der inkrementellen Analyse im Kontext der, bei der wir weitere Merkmale betrachten, tatsächlich nur Zeilen hinzu. Szenarien für ein Zeichenprogramm Em Km Rm Tm Ev Kl Kv Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 23 / 37
13 Aufruftabelle start draw set center e Em Km Rm Tm x Ev Kl Kv y set right upper set left lower set text set font set size load move circle move ellipse Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 24 / 37 Begriffsverband für den oberen Teil der Tabelle set size set font set text 1 set center e x y set right upper set left lower 0 start draw Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 25 / 37
14 Begriffsverband für die ganze Tabelle set size set font set text 1 set right upper set left lower move ellipse set center e x y move circle load draw 0 start Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 26 / 37 Szenarien versus Merkmale Ein Szenario kann mehrere Merkmale ausnutzen. Ein Merkmal kann in mehreren Szenarien ausgenutzt werden. Modellierung: Szenario ist eine Menge von Merkmalen Bsp.: Km = {K, m} und Kl = {K, l} und Em = {E, m} Modellierung abstrahiert von Reihenfolge Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 27 / 37
15 Szenarien S elliptisch Merkmale S M infrastruktur laden malen verschieben start draw Routinen S R Em Km Rm Tm Ev Kl Kv load move circle move ellipse Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 28 / 37 Formaler Kontext K SM = (M, S, S M) mit Begriffsverband B SM : elliptisch malen verschieben 5 laden 0 infrastruktur Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 29 / 37
16 set size set font set text 1 set right upper set left lower move ellipse set center e x y move circle load draw 0 start Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 30 / 37 Begriffsverband für (M R, S, (M S) (R S)) set size set font set text 1 set right upper set left lower move ellipse set center e x y malen draw elliptisch 9 infrastruktur start move circle verschieben laden load Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 31 / 37
17 set size set font set text 1 set right upper set left lower move ellipse set center e x y Malen malen draw 10 0 elliptisch 12 9 move circle verschieben laden load infrastruktur start bedingt spezifisch spezifisch geteilt relevant irrelevant Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 32 / Vorlesung Software-Reengineering Szenarien, Merkmale, Routinen set size set font set text set center e x 0 1 y 0 1 move circle verschieben elliptisch 10 9 laden load Malen malen draw 0 infrastruktur start bedingt spezifisch spezifisch geteilt relevant irrelevant 1 set right upper set left lower move ellipse spezifischer Begriff. Ein Begriff b aus dem Verband B SR (K SR ) ist für ein Merkmal m genau dann spezifisch, wenn die Szenarien, die das Merkmal m haben, genau den Szenarien entsprechen, die im Inhalt des Begriffes b enthalten sind. Formal entspricht dies σ SM (m) = Inhalt SR (b) relevanter Begriff. Ein Begriff b ist für ein Merkmal m genau dann relevant, wenn der Begriff mehr Szenarien enthält als die, die Merkmal m haben. Im Sinne der Begriffsanalyse heißt das σ SM (m) Inhalt SR (b) bedingt spezifischer Begriff. Ein Begriff b ist von einem Merkmal m genau dann bedingt spezifisch, wenn der Begriff b alle Szenarien enthält, die Merkmal m aufweisen, darüberhinaus aber auch solche, die Merkmal m nicht aufweisen. Formal ist das der Fall, wenn σ SM (m) Inhalt SR (b)
18 Vorlesung Software-Reengineering Szenarien, Merkmale, Routinen set size set font set text set right upper set left lower move ellipse set center e x 0 1 y 0 1 move circle verschieben elliptisch 10 9 laden load Malen malen draw 0 infrastruktur start bedingt spezifisch spezifisch geteilt relevant irrelevant geteilter Begriff. Ein Begriff b ist für ein Merkmal m genau dann geteilt, wenn der Begriff b Szenarien enthält, die das Merkmal m aufweisen, desweiteren aber auch noch andere Szenarien, dies das Merkmal m nicht haben. In formaler Schreibweise ausgedrückt ist das der Fall, wenn σ SM (m) Inhalt SR (b) aber weder σ SM (m) Inhalt SR (b) noch σ SM (m) Inhalt SR (b) irrelevanter Begriff. Ein Begriff b ist für Merkmal m genau dann irrelevant, wenn keine Szenarien, die das Merkmal m aufweisen, im Begriff b zu finden sind. σ SM (m) Inhalt SR (b) = set size set font set text 1 set right upper set left lower move ellipse set center e x y Elliptisch malen draw elliptisch 7 move circle verschieben laden load infrastruktur start bedingt spezifisch spezifisch geteilt relevant irrelevant Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 33 / 37
19 set center e x y Laden 2 8 set size set font set text malen draw set right upper set left lower elliptisch move ellipse 12 9 move circle verschieben laden load infrastruktur start bedingt spezifisch spezifisch geteilt relevant irrelevant Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 34 / 37 Bewertung Kombination statischer und dynamischer Information und Begriffsanalyse reduziert den Suchraum drastisch. Begriffsverband unterstützt die Navigation bei statischer Suche. Die Relation für Begriffsanalyse ist tatsächlich eine Relation zwischen Routinen und Eingabedaten für Programmläufe Über Relation zwischen Szenarien und Merkmalen ist Verfeinerung möglich Begriffsverbände können unübersichtlich groß werden, wenn viele Merkmale betrachtet werden. Inkrementelle Kombination von Teilverbänden ist notwig (und möglich). Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 35 / 37
20 Wiederholungs- und Vertiefungsfragen I Wie kann man bei der Lokalisierung von Merkmalen prinzipiell vorgehen, d.h. welche Verfahren kommen in Frage? Wie könnnen Merkmale mit Hilfe der Begriffsanalyse identifiziert werden? Was ist der formale Kontext hierfür? Welche Rolle spielt der Begriffsverband? Wie lässt er sich interpretieren? Welche Rolle spielt die statische Analyse? Warum ist sie notwig? Wie funktioniert die inkrementelle Begriffsanalyse? Und wie kann dies für die ausgenutzt werden? Wie findet man Merkmale, wenn es keine Ein-zu-eins-Beziehung zwischen Merkmalen und Szenarien existiert? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 36 / 37 1 Chen und Rajlich 20 Chen, Kunrong ; Rajlich, Václav: Case Study of Feature Location Using Depence Graph. In: Proceedings of the 8th International Workshop on Program Comprehension. Limerick, Irland : IEEE Computer Society Press, Juni 20, S Eisenbarth u. a. 23 Eisenbarth, Thomas ; Koschke, Rainer ; Simon, Daniel: Locating Features in Source Code. In: IEEE Computer Society Transactions on Software Engineering 29 (23), März, Nr. 3, S Ganter und Wille 1996 Ganter, Bernhard ; Wille, Rudolf: Formale Begriffsanalyse: mathematische Grundlagen. Springer Verlag, Wilde u. a Wilde, Norman ; Gomez, Juan A. ; Gust, Thomas ; Strasburg, Douglas: Locating User Functionality in Old Code. In: Proceedings of the International Conference on Software Maintenance. Orlando, FL, USA : IEEE Computer Society Press, November 1992, S Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 26/27 37 / 37
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 Ausgangsszenario
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
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
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
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
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 4: Abstrakte Daten-Typen Übungen 3 Passe die vorhergehende Spezifikation von Stacks (LIFO, Last-In First-Out
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
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 1 Das tägliche Brot
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:
MehrEinleitung. Komplexe Anfragen. Suche ist teuer. VA-File Verfeinerungen. A0-Algo. GeVAS. Schluß. Folie 2. Einleitung. Suche ist teuer.
Anwendung Input: Query-Bild, Ergebnis: Menge ähnlicher Bilder. Kapitel 8: Ähnlichkeitsanfragen und ihre effiziente Evaluierung Wie zu finden? Corbis, NASA: EOS Bilddatenbank Folie Folie 2 Ähnlichkeitssuche
MehrFormale Begriffsanalyse
Formale Begriffsanalyse Eine Einführung Ronny Brendel Betreuer: Uwe Ryssel Institut für angewandte Informatik, TU Dresden, Gliederung Motivation Geschichte Ermitteln eines Begriffsverbands Anwendung Funktionen
MehrNotationen für Transformationsregeln
Notationen für Transformationsregeln Seminar Transformationen Dennis Gerke 20.01.06 Fragestellung Wie werden die Transformationsregeln in den einzelnen Systemen angegeben? Welche theoretischen Grundlagen
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 Über diese Folien
MehrSystemtheorie 1. Einführung Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.4
Einführung intro 1 Grobklassifizierung r Methoden in der Informatik intro 2 Systemtheorie 1 Systeme 1 #342234 http://fmv.jku.at/fs1 WS 2006/2007 Johannes Kepler Universität Linz, Österreich Univ. Prof.
MehrSystemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich
Einführung 1 Systemtheorie 1 Formale Systeme 1 #342234 http://fmv.jku.at/fs1 WS 2006/2007 Johannes Kepler Universität Linz, Österreich Univ. Prof. Dr. Armin Biere Institut für Formale Modelle und Verifikation
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
MehrExkurs: Elementare Verbandstheorie. Exkurs: Elementare Verbandstheorie Sommersemester / 20
Exkurs: Elementare Verbandstheorie Exkurs: Elementare Verbandstheorie Sommersemester 2008 1 / 20 Halbordnungen Definition Eine binäre Relation auf einer Menge M heisst Halbordnung, wenn sie reflexiv, transitiv
MehrVorlesung Software Reengineering
Vorlesung Software Reengineering Rainer Koschke Institut für Informatik, Universität Stuttgart Requirements Design Code reengineering forward engineer- forward engireverse engineer- reverse engineer- restructuring
MehrErkennung von Race Conditions mit Bauhaus
Erkennung von Race Conditions mit Bauhaus Steffen Keul steffen.keul@informatik.uni-stuttgart.de Abteilung Programmiersprachen Institut für Softwaretechnologie http://www.iste.uni-stuttgart.de/ps Stand
MehrMathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept
Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java Software-Architektur basierend auf dem Plug-in-Konzept Aufteilung: Probleme mit normaler/alter Software Ziele des Software Engineerings Die
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
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
MehrSymphony und das Hierarchische Reflexion Modell
Symphony und das Hierarchische Reflexion Modell Rainer Koschke und Universität Stuttgart Institut für Softwaretechnologie Abt. Programmiersprachen und Compilerbau WSR 2004 Symphony Designebene data flow
MehrInformatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany
Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2007/08 Literatur Herbert Klaeren, Michael Sperber. Die Macht der Abstraktion. Teubner Verlag,
MehrSchulinterner Lehrplan zum Kernlehrplan für die gymnasiale Oberstufe. Informatik Q2. Stand: 02/2016 Status: Gültig
Schulinterner Lehrplan zum Kernlehrplan für die gymnasiale Oberstufe Informatik Q2 Stand: 02/2016 Status: Gültig Unterrichtsvorhaben: Modellierung und Implementierung von Anwendungen mit dynamischen, nichtlinearen
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
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
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
MehrFormale Begriffsanalyse (B. Ganter, R. Wille) Teil 1
Formale Begriffsanalyse (B. Ganter, R. Wille) Teil 1 Einleitung und Definitionen formale Begriffsanalyse 1 Definition von formalen Kontexten K:=(G,M,I) : formaler Kontext G : Menge der Gegenstände M :
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)
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
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
MehrContext-Awareness: aktuelle Projekte. Wintersemester 2007/2008 HAW-Hamburg Jaroslaw Urich
Context-Awareness: aktuelle Projekte Wintersemester 2007/2008 HAW-Hamburg Jaroslaw Urich Agenda Einleitung Context-Awareness Aktuelle Projekte (am Beispiel von CAMUS) Fazit und Ausblick Quellen 04.12.2007
MehrAT module Specifications
AT module Specifications The rear panel includes the following connectors: Folgende Anschlüsse befinden sich auf der Rückseite: LTC input and output LTC-Eingang und Ausgang RS485/422/232 interface, Time
MehrOrdnungen und Verbände
Ordnungen und Verbände Diskrete Strukturen Uta Priss ZeLL, Ostfalia Sommersemester 2016 Diskrete Strukturen Ordnungen und Verbände Slide 1/28 Agenda Klausur Hausaufgaben Ordnungsrelation Baum-Ordnung Verbände
MehrElementare Verbandstheorie. Elementare Verbandstheorie Sommersemester / 1
Elementare Verbandstheorie Elementare Verbandstheorie Sommersemester 2009 1 / 1 Halbordnungen Definition Eine binäre Relation auf einer Menge M heisst Halbordnung, wenn sie reflexiv, transitiv und antisymmetrisch
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
Mehr1 EINLEITUNG MESSKONZEPTE UND IHRE EIGENSCHAFTEN... 7
Property-Based Measurement Inhaltsverzeichnis 1 EINLEITUNG... 3 2 GRUNDLEGENDE DEFINITIONEN... 4 2.1 SYSTEME UND MODULE... 4 2.2 MODULARE SYSTEME...6 3 MESSKONZEPTE UND IHRE EIGENSCHAFTEN... 7 3.1 GRÖSSE...
MehrFormale Begriffsanalyse
Formale Begriffsanalyse Formale Begriffsanalyse ist um 1980 in Darmstadt entstanden als mathematische Theorie, die eine Formalisierung des Begriffs vom Begriff liefert. FBA hat seitdem zunehmend Verbreitung
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:
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
MehrAbschnitt 3: Mathematische Grundlagen
Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Ausdrücke 3 Mathematische Grundlagen Einf. Progr. (WS 08/09) 102 Überblick 3.
MehrEchtzeit-Multitasking
Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme
MehrEchtzeit-Multitasking
Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme
MehrKapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 2 Mathematische Grundlagen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität
MehrPraktikumsaufgabe Software Engineering
6. Praktikum Software-Qualität Praktikumsaufgabe Software Engineering Im 6. Praktikum analysieren Sie Ihre in C++ geschriebenen Anwendung mit dem Test- und Analysetool Logiscope der Firma Kalimetrix. Mit
MehrFD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen
FD Informatik Mauch SSDL (WHRS) Reutlingen Algorithmen Überblick Definition Notwendigkeit Realisierung Grundkonzepte Umsetzung im Unterricht Algorithmus? Ein Algorithmus ist eine Verwaltungsvorschrift,
MehrGrundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen
Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für
MehrInhalte des Moduls Programmieren 1
Inhalte des Moduls Programmieren 1 Einführung: Algorithmus und Programm, Programmiersprache Erste Schritte in Java Grundlagen der Sprache: Datentypen, Ausdrücke und Anweisungen, imperative Programmierung
MehrDetecting Near Duplicates for Web Crawling
Detecting Near Duplicates for Web Crawling Gurmeet Singh Manku et al., WWW 2007* * 16th international conference on World Wide Web Detecting Near Duplicates for Web Crawling Finde near duplicates in großen
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2006/07 Ü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
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 Statistik bei kontrollierten Experimenten
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
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Relationen)
WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
MehrKapitel 2 - Die Definitionsphase
Kapitel 2 - Die Definitionsphase SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,
Mehr3. Grundlagen relationaler Datenbanksysteme
3. Grundlagen relationaler Datenbanksysteme Hier nur kurze Rekapitulation, bei Bedarf nachlesen 3.1 Basiskonzepte des Relationenmodells 1 Darstellung der Miniwelt in Tabellenform (DB = Menge von Relationen
MehrGrundlagen der Wirtschafts informatik
Andreas Fink Gabriele Schneidereit Stefan Voß Grundlagen der Wirtschafts informatik Zweite, überarbeitete Auflage mit 78 Abbildungen und 16 Tabellen Physica-Verlag Ein Unternehmen von Springer Vorwort
MehrThemen für Bakkalaureus-Arbeiten
Themen für Bakkalaureus-Arbeiten Alle angegebenen Themen eignen sich auch für Master- bzw. Diplom-Arbeiten, wenn die Themenstellungen entsprechend weit gefaßt werden. 1. Die Ontologie der binären Relationen
MehrThe rear panel includes the following connectors: Time Code zero value, additional failure Signal(s), etc. RUBIDIUM H1 XT module front view
XT module Specifications The rear panel includes the following connectors: Folgende Anschlüsse befinden sich auf der Rückseite: LTC reader and generator LTC-Leser- und Generator RS485/422/232 interface,
MehrResidue Number System und Modulararithmetik
Residue Number System und Modulararithmetik Patrick Russell Dresden, 18. Juni 2015 Zahlendarstellung RNS Systeme Anwendungsbeispiele Literatur TU Dresden, 18.06.15 Folie 2 von 30 01 Zahlendarstellung Darstellung
MehrHyperrekonfigurierbare Hardware - Modelle, Partitionierungsprobleme und Schedulingstrategien
Hyperrekonfigurierbare Hardware - Modelle, Partitionierungsprobleme und Schedulingstrategien Sebastian Lange Martin Middendorf Parallelverarbeitung und Komplexe Systeme Inhalt Einführung Hyperrekonfiguration
MehrTube Analyzer LogViewer 2.3
Tube Analyzer LogViewer 2.3 User Manual Stand: 25.9.2015 Seite 1 von 11 Name Company Date Designed by WKS 28.02.2013 1 st Checker 2 nd Checker Version history Version Author Changes Date 1.0 Created 19.06.2015
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrDiskrete Strukturen. Chair for Foundations of Software Reliability and Theoretical Computer Science Technische Universität München
Diskrete Strukturen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science Technische Universität München Montag 16 Oktober, 2017 p.2 Was
MehrÜbungen zur Vorlesung Mathematik für Informatiker 1 Wintersemester 2013/14 Übungsblatt 8
Prof. Dr. Bernhard Steffen Dipl.Inf. Malte Isberner Dr. Oliver Rüthing Dipl.Inf. Melanie Schmidt Dr. Hubert Wagner Übungen zur Vorlesung Mathematik für Informatiker 1 Wintersemester 2013/14 Übungsblatt
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrModellierung verteilter Systeme Grundlagen der Programm und Systementwicklung
Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Sommersemester 2012 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. M. Spichkova, J. Mund, P. Neubeck Lehrstuhl Software
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
MehrHuman-Computer-Interaction und Psychologie: Aufgaben-, Kontext, Konkurrenzanalyse
Human-Computer-Interaction und Psychologie: Aufgaben-, Kontext, Konkurrenzanalyse Analyse der Aufgaben Beachte: nur ein System, mit dem die Benutzer erfolgreich ihre Aufgaben erfüllen können, wird verkauft
MehrKapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren
Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel 2 Die Definitionsphase Prof. Walter F. Tichy Wo sind wir gerade? Planung Lastenheft (funktionales Modell) Definition (Analyse) Pflichtenheft
MehrUnterstützung des HW/SW-Codesign durch Modellierung
Unterstützung des HW/SW-Codesign durch Modellierung München, Oktober 2017 SOPHIST GmbH Vordere Cramergasse 13 Fon: +49 (0)911 40 900-0 www.sophist.de 90478 Nürnberg, Deutschland Fax: +49 (0)911 40 900-99
MehrDank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung
Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität
MehrSpiele. Programmierpraktikum WS04/05 Lange/Matthes 106
Spiele Programmierpraktikum WS04/05 Lange/Matthes 106 Theorie eines Spiels mathematisch: k-spieler Spiel ist Graph G = (V, E) wobei V partitioniert in V 1,..., V k Knoten v V heissen Konfigurationen oft
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrComputeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software
Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme
MehrBenchmark: Sicherheitslücken & Compliance-
Peter Werner TITEL bearbeiten Dr. Markus Schumacher Benchmark: Sicherheitslücken & Compliance- Risiken Click to im edit ABAP-Code Master text styles von SAP-Anwendungen 2011 2012 Virtual Forge GmbH www.virtualforge.com
MehrPraxis der Softwareentwicklung WS 2015/16
Praxis der Softwareentwicklung WS 2015/16 Prof. Dr. Gregor Snelting LEHRSTUHL PROGRAMMIERPARADIGMEN 0 KIT 28. Universität Oktober des 2015- Landes Praxis Baden-Württemberg der Softwareentwicklung und WS
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
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrProgramming for Engineers
Programming for Engineers Winter 2015 Andreas Zeller, Saarland University A Computer Device that processes data according to an algorithm. Computers are everywhere Your Computer Arduino Physical-Computing-Platform
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
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
MehrAngewandte Mathematik am Rechner 1
Angewandte Mathematik am Rechner 1 SOMMERSEMESTER 2017 Kapitel 3 [Bildquellen: Wikipedia User David Madore, Inductiveload ] Grundlagen 2: Funktionen, Berechenbarkeit und emergente Komplexität Michael Wand
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
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
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
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. R. Koschke 1 D. Simon 2 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen 2 Institut für Software Technologie Fakultät
MehrStefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie
Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann
MehrMathematische Grundlagen
Mathematische Grundlagen für Wirtschaftsinformatiker Prof. Dr. Peter Becker Fachbereich Informatik Hochschule Bonn-Rhein-Sieg Wintersemester 2016/17 Peter Becker (H-BRS) Mathematische Grundlagen Wintersemester
MehrDiskrete Mathematik I Wintersemester 2007 A. May
Diskrete Mathematik I Wintersemester 2007 A. May Literatur Vorlesung richtet sich nach A. Steger: Diskrete Strukturen Band 1: Kombinatorik-Graphentheorie- Algebra Springer Verlag T. Schickinger, A. Steger:
Mehr