Symphony und das Hierarchische Reflexion Modell
|
|
- Paul Friedrich
- vor 5 Jahren
- Abrufe
Transkript
1 Symphony und das Hierarchische Reflexion Modell Rainer Koschke und Universität Stuttgart Institut für Softwaretechnologie Abt. Programmiersprachen und Compilerbau WSR 2004
2 Symphony Designebene data flow actor in Problem Elicitation Problem Statement Library of Viewpoints Concept Determination Source Viewpoints Mapping Rules Target Viewpoints Source Viewpoints Data Gathering Problem Statement Target Viewpoints Knowledge Inference Information Interpretation Refinement stakeholders process designer reconstructor
3 Problem Elicitation Hierarchisches Reflexion Modell Ziele: Architekturvalidierung von Compilern hypothesengetriebene Architekturrekonstruktion
4 Problem Elicitation Hierarchisches Reflexion Modell Ziele: Architekturvalidierung von Compilern hypothesengetriebene Architekturrekonstruktion Erweiterung Reflexion Modell von Murphy, Notkin, Sullivan, 1995
5 Concept Determination Useful Viewpoints: Modulsicht konzeptuelle Sicht Reflexion Modell Sicht
6 Concept Determination Useful Viewpoints: Modulsicht konzeptuelle Sicht Reflexion Modell Sicht Target Viewpoint: Kombination aus Modul und Reflexion Sicht später: Modul und hierarchische Reflexion Sicht
7 Concept Determination Useful Viewpoints: Modulsicht konzeptuelle Sicht Reflexion Modell Sicht Target Viewpoint: Kombination aus Modul und Reflexion Sicht später: Modul und hierarchische Reflexion Sicht Mapping Rules
8 Concept Determination Useful Viewpoints: Modulsicht konzeptuelle Sicht Reflexion Modell Sicht Target Viewpoint: Kombination aus Modul und Reflexion Sicht später: Modul und hierarchische Reflexion Sicht Mapping Rules Hypothetical Views: high-level Modulsicht
9 Compiler Logisch Symphony Design Symbol Table Quelltext Lexical Analysis Syntactic Analysis Semantic Analysis Optimization Code Generation Code AST Lehrbücher, etwa Wilhelm/Maurer, Übersetzerbau
10 Compiler Grobstruktur Control Initialization references all Global Configuration referenced by all Front End Middle End Back End IL AST AST2IL references (first hypothesis) Common referenced by all Shaw und Garlan, 1993
11 Anwendung des Reflexion Modells 1 hypothetisches Architekturmodell erstellen 2 Quellmodell extrahieren 3 Quellentität auf konzeptuelle Entitäten abbilden 4 Reflexion Modell berechnen 5 Verfeinern/korrigieren hypothetisches Modell Abbildung Quellmodell A B C
12 Anwendung des Reflexion Modells 1 hypothetisches Architekturmodell erstellen 2 Quellmodell extrahieren 3 Quellentität auf konzeptuelle Entitäten abbilden 4 Reflexion Modell berechnen 5 Verfeinern/korrigieren hypothetisches Modell Abbildung Quellmodell A a B C b c1 c2
13 Anwendung des Reflexion Modells 1 hypothetisches Architekturmodell erstellen 2 Quellmodell extrahieren 3 Quellentität auf konzeptuelle Entitäten abbilden 4 Reflexion Modell berechnen 5 Verfeinern/korrigieren hypothetisches Modell Abbildung Quellmodell A B C <<maps to>> <<maps to>> a b c1 c2
14 Anwendung des Reflexion Modells 1 hypothetisches Architekturmodell erstellen 2 Quellmodell extrahieren 3 Quellentität auf konzeptuelle Entitäten abbilden 4 Reflexion Modell berechnen 5 Verfeinern/korrigieren hypothetisches Modell Abbildung Quellmodell A B C <<maps to>> <<maps to>> a b c1 c2
15 Anwendung des Reflexion Modells 1 hypothetisches Architekturmodell erstellen 2 Quellmodell extrahieren 3 Quellentität auf konzeptuelle Entitäten abbilden 4 Reflexion Modell berechnen 5 Verfeinern/korrigieren hypothetisches Modell Abbildung Quellmodell A B C <<maps to>> <<maps to>> a b c1 c2
16 Reflexion Symphony Design Konvergenz A B <<maps to>> a b hypothetische Modul Sicht konkrete Modul Sicht propagated-ref(a, B) (a, b M) : (ref(a, b) maps-to(a) = A maps-to(b) = B) convergence(a, B) ref(a, B) propagated-ref(a, B)
17 Reflexion Symphony Design Konvergenz Abwesenheit A B <<maps to>> a b A B <<maps to>> a b hypothetische Modul Sicht konkrete Modul Sicht absence(a, B) ref(a, B) propagated-ref(a, B)
18 Reflexion Symphony Design Konvergenz Abwesenheit Divergenz A B A B <<maps to>> <<maps to>> a b a b A B <<maps to>> a b hypothetische Modul Sicht konkrete Modul Sicht divergence(a, B) ref(a, B) propagated-ref(a, B)
19 Compiler Grobstruktur Control Initialization references all Global Configuration referenced by all Front End Middle End Back End IL AST AST2IL references (first hypothesis) Common Shaw und Garlan, 1993 referenced by all
20 Compiler Feinstruktur Control Initialization references all Global Configuration referenced by all Front End Middle End Back End Preprocessor Optimizers CFG Target Machine Description Lexer Parser Data Flow Control Flow IL Peephole Optimizer Code Generator Semantic Analysis Symbol Table AST2IL AST references (first hypothesis) references (later refinement) Common Error Handler Utilities referenced by all Ursprüngliches Reflexion Modell hat keine Hierarchien.
21 Hierarchisches Reflexion Modell Konvergenz A B * * maps to(a) maps to(b) Hypothetische Modulsicht a b Konkrete Modulsicht propagated-ref (A, B) (a, b M) : (ref(a, b) partof (maps-to(a), A) partof (maps-to(b), B)) convergence(a, B) ref(a, B) propagated-ref (A, B)
22 Hierarchisches Reflexion Modell Konvergenz A B * * maps to(a) maps to(b) Abwesenheit A B * * maps to(a) maps to(b) Hypothetische Modulsicht a b a b Konkrete Modulsicht absence(a, B) ref(a, B) propagated-ref (A, B)
23 Hierarchisches Reflexion Modell Konvergenz Abwesenheit Divergenz A B A B A B * * * * * * maps to(a) maps to(b) maps to(a) maps to(b) A=maps to(a) B=maps to(b) Hypothetische Modulsicht a b a b a b Konkrete Modulsicht divergence(a, B) (A, B ) : (partof (A, A ) partof (B, B ) ref(a, B )) propagated-ref(a, B)
24 sebene Data Gathering Inference & Interpretation Data Data Gathering Source Views Repository Target Views Architectural Information Views Interpretation Source Views Map Target Views data flow actor in Knowledge Inference reconstructor stakeholders
25 Data Gathering Inference & Interpretation Extraktion der Information mit Bauhaus declared in Directory declared in Module declared in Global Declaration Type Routine direct call indirect call Object based_on internal access Type Routine return, parameter type of_type set, use, take address Object same expression Variable Constant
26 Data Gathering Inference & Interpretation Knowledge Inference & Information Interpretation: Bauhaus GUI
27 Untersuchte Compiler Symphony Design sdcc GNU cc1 sdcc Small Device C Compiler ANSI-C Intel 8051, Zilog Z80, Dallas 80C cc1 Teil der GNU Compiler Collection (ANSI), GNU C viele Plattformen System KLOC C Module Aufwand sdcc h cc h
28 für sdcc Symphony Design sdcc GNU cc1 Abbildung von Dateien auf Module relativ einfach
29 für sdcc Symphony Design sdcc GNU cc1 Abbildung von Dateien auf Module relativ einfach erste Iteration: viele Divergenzen
30 für sdcc Symphony Design sdcc GNU cc1 Abbildung von Dateien auf Module relativ einfach erste Iteration: viele Divergenzen Verfeinerungen (5 weitere Iterationen): 45 globale Deklarationen nicht in passender Übersetzungseinheit die meisten in die Komponente Global Declarations übersehene Abhängigkeiten in hypothetischen Modulsicht
31 für sdcc Symphony Design sdcc GNU cc1 Abbildung von Dateien auf Module relativ einfach erste Iteration: viele Divergenzen Verfeinerungen (5 weitere Iterationen): 45 globale Deklarationen nicht in passender Übersetzungseinheit die meisten in die Komponente Global Declarations übersehene Abhängigkeiten in hypothetischen Modulsicht Architekturverletzungen: Symboltabelle referenziert den Parser declaration block number und line number Backend referenziert den Parser globale Variable für Stackgröße von Aktivierungsblöcken
32 für sdcc Symphony Design sdcc GNU cc1 Abbildung von Dateien auf Module relativ einfach erste Iteration: viele Divergenzen Verfeinerungen (5 weitere Iterationen): 45 globale Deklarationen nicht in passender Übersetzungseinheit die meisten in die Komponente Global Declarations übersehene Abhängigkeiten in hypothetischen Modulsicht Architekturverletzungen: Symboltabelle referenziert den Parser declaration block number und line number Backend referenziert den Parser globale Variable für Stackgröße von Aktivierungsblöcken Architekturmuster: Optimierer referenziert Backend Plattform spezifische Parameter über Funktionszeiger anonyme Abhängigkeit
33 für cc1 Symphony Design sdcc GNU cc1 nur Übersetzungseinheiten abgebildet (keine Verfeinerungen für globale Deklarationen)
34 für cc1 Symphony Design sdcc GNU cc1 nur Übersetzungseinheiten abgebildet (keine Verfeinerungen für globale Deklarationen) Frontend ist gut strukturiert und lose mit Middle- und Backend verbunden
35 für cc1 Symphony Design sdcc GNU cc1 nur Übersetzungseinheiten abgebildet (keine Verfeinerungen für globale Deklarationen) Frontend ist gut strukturiert und lose mit Middle- und Backend verbunden Backend einfach zu finden
36 für cc1 Symphony Design sdcc GNU cc1 nur Übersetzungseinheiten abgebildet (keine Verfeinerungen für globale Deklarationen) Frontend ist gut strukturiert und lose mit Middle- und Backend verbunden Backend einfach zu finden Architekturverletzungen: Middleend referenziert den Präprozessor verwendet Hashtabelle aus Präprozessor (wir haben drei Hashtabellen im cc1 gefunden) viele Divergenzen...
37 für cc1 Symphony Design sdcc GNU cc1 nur Übersetzungseinheiten abgebildet (keine Verfeinerungen für globale Deklarationen) Frontend ist gut strukturiert und lose mit Middle- und Backend verbunden Backend einfach zu finden Architekturverletzungen: Middleend referenziert den Präprozessor verwendet Hashtabelle aus Präprozessor (wir haben drei Hashtabellen im cc1 gefunden) viele Divergenzen... Middleend ist ein großer Klumpen
38 Erfahrungen Reflexion Modell muss hierarchische Architekturen unterstützen Anwendungswissen bei der Erstellung der hypothetischen Architektur wesentlich manuelle Schritte aufwändig, Iterationen üblich Toolunterstützung zur Erstellung der Abbildung dann aber automatisierte Anwendung für Folgeiterationen Abgleich von Soll- gegen Ist-Architektur
Vorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2008/09 Überblick I 1 1 Problemanalyse Sichtenbestimmung
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2010/11 Überblick I Methodik der Architekturrekonstruktion
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 1 Softwarearchitektur
MehrGuile Die Erweiterungssprache des GNU-Projekts
Guile Die Erweiterungssprache des GNU-Projekts Matthias Köppe Otto-von-Guericke-Universität Magdeburg Magdeburger Linux User Group e. V. 19. Mai 2001 Überblick Guile als Erweiterungssprache Guile als Scheme-Implementierung
MehrThomas Sillmann. Swift im Detail HANSER
Thomas Sillmann Swift im Detail HANSER Inhalt 1 Apples neue Programmiersprache: Swift 1 1.1 Willkommen bei Swift! 1 1.2 Warum Swift? 1 1.3 Swift und Objective-C 2 1.4 Voraussetzungen für die Swift-Entwicklung
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
MehrOracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH
Oracle9i Designer Rainer Willems Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH Page 1 1 Agenda 9i Designer & 9i SCM in 9i DS Design Server Generierung &
MehrInformatik II SS Der Kompilationsprozess (-phasen) Schreiben des Programms. Die Organisation eines typischen Compilers
Der Kompilationsprozess (-phasen) Informatik II SS 2004 Teil 6: Sprachen, Compiler und Theorie 7 Prof. Dr. Dieter Hogrefe Dipl.-Inform. Michael Ebner Lehrstuhl für Telematik Institut für Informatik Scanner
MehrÜbersetzerbau Cluj-Napoca, Rumänien 2007
Übersetzerbau Cluj-Napoca, Rumänien 2007 Markus Löberbauer Institut für Systemsoftware Johannes Kepler Universität, 4040 Linz, Österreich Loeberbauer@ssw.jku.at 2007-02-01 Zusammenfassung In dieser Übung
MehrSoftware-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09 Überblick I 1 1 Objektorientierte Modellierung Softwarearchitektur
MehrSoftware-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09 Überblick I 1 Antworten auf gesammelte Fragen im
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
MehrExercise 6. Compound Types and Control Flow. Informatik I für D-MAVT. M. Gross, ETH Zürich, 2017
Exercise 6 Compound Types and Control Flow Daniel Bogado Duffner Slides auf: Informatik I für D-MAVT bodaniel@student.ethz.ch n.ethz.ch/~bodaniel Agenda Recap/Quiz Structures Unions Enumerations Loops
MehrSWM-2015 Dresden, März 2015
SNEED SWM-2015 Dresden, März 2015 Aufwandsschätzung der Software Wartung und Evolution Harry Sneed Universities of Dresden, Szeged & Regensburg Fachhochschulen Hagenberg & Wien Landesamt Burgenland Legacysystemzusammensetzung
MehrETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin
ETL-Industrialisierung mit dem OWB Mapping Generator Irina Gotlibovych Senior System Beraterin MT AG managing technology Daten und Fakten Als innovativer Beratungs- und IT-Dienstleister zählt die MT AG
MehrLLVM$ $EINE$ (KURZE)$ EINFÜHRUNG$
LLVM$ $EINE$ (KURZE)$ EINFÜHRUNG$ oderwieichlernteeinencompilerzubauen MarkusDöring-SteffenWeber-MarcelWiaterek-AlexanderZautke Inhaltsverzeichnis. LLVM Eine(kurze)Einführung...3 Entstehungsgeschichte...3
MehrEinführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26
Einführung (Compiler) Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 15:49 Einführung 1/26 Ein Compiler ist ein Computerprogramm das ein Programm geschrieben in einer Sprache in ein Programm übersetzt
MehrCompiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:
Compiler Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................
MehrCompiler: Einführung
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................
MehrCompilerbau mit Phoenix
Übersicht 2 Was ist ein Compiler? Frontend Analyse Backend Synthese Compiler-Pässe 3 Was ist ein Compiler? Frontend (Eingabesprache) Analyse Backend (Ausgabesprache) Synthese 4 Was ist ein Compiler? Frontend
MehrModellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH
Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen
MehrDefinition Compiler. Bekannte Compiler
Compiler Inhalt: Definition Compiler / bekannte Compiler Klassifikationen von Compilern Analyse-Synthese-Modell der Kompilierung Analyse des Quellprogramms Synthesephase Die Phasen eines Compilers Symboltabellenverwaltung
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
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Sprachen und Übersetzer Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 4. Juni 2015 Sprachen vs. Übersetzer Sprache C11 Übersetzer GNU C
MehrMicrosoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber
Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS
MehrSpezifikation von Kommunikationssystemen
1 / 25 Spezifikation von Kommunikationssystemen 8. Abstrakte Datentypen und Objektorientiertes SDL Prof. Jochen Seitz Fachgebiet Kommunikationsnetze 23. Mai 2018 2 / 25 Übersicht 1 Abstrakte Datentypen
MehrObjekt-relationales Datenbanksystem Oracle
Objekt-relationales Datenbanksystem Oracle 1 Benutzerdefinierte Datentypen 1.1 Unvollständige Typen create-incomplete-type OR 1.2 Kollektionstypen REPLACE TYPE type-name create-varray-type OR TYPE type-name
MehrMulti-Port-Speichermanager für die Java-Plattform SHAP
Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Multi-Port-Speichermanager für die Java-Plattform SHAP DASS 2008 Martin Zabel, Peter
MehrInformatik für den Satellitenbau. Toolchains und Crosscompiler
Informatik für den Satellitenbau Toolchains und Crosscompiler Folie 1 Inhalt GNU-Toolchain Crosscompiler Zusammenfassung Folie 2 GNU Toolchain GNU Make GNU Compiler Collection (GCC) GNU Binutils GNU Debugger
MehrRAMI 4.0 Toolbox: Vom Konzept zum Modell
CMG-AE Tagung Big Data & Industrie 4.0 RAMI 4.0 Toolbox: Vom Konzept zum Modell Christoph Binder Hintergrund Die RAMI Toolbox Modellbasierte entwicklung von Industrie 4.0 Systemen Erweiterung von Enterprise
MehrD-BAUG Informatik I. Exercise session: week 1 HS 2018
1 D-BAUG Informatik I Exercise session: week 1 HS 2018 Java Tutorials 2 Questions? expert.ethz.ch 3 Common questions and issues. expert.ethz.ch 4 Need help with expert? Mixed expressions Type Conversions
MehrAgile Modellierung mit UML Lab
Agile Modellierung mit UML Lab Produktisierung und Vertrieb eines MDSE Tools in der Praxis Dipl.-Inf. Manuel Bork Yatta Solutions GmbH t e +49 (0)561 5743277-21 bork@yatta.de @ManuelBork UNSER GESCHÄFT
MehrOracle Datenbankprogrammierung mit PL/SQL Aufbau
Oracle Datenbankprogrammierung mit PL/SQL Aufbau Seminarunterlage Version: 12.07 Version 12.07 vom 6. Januar 2017 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt-
MehrDescription of the Use Case. 1.1 Name of the Use Case. Use Case Identification Area / ID
Seite 1 von 7 1 Description of the Use Case 1.1 Name of the Use Case Use Case Identification Area / ID Domain(s)/ Name of the Use Case Zone(s) 172 Adaptive Helligkeitsregelung 1.2 Version Management Version
MehrIn diesem Beispiel wird ein ALV-Grid aufgerufen, das jede Sekunde einen anderen Eintrag aus einer Tabelle anzeigt.
ALV-Grid mit Timer In diesem Beispiel wird ein ALV-Grid aufgerufen, das jede Sekunde einen anderen Eintrag aus einer Tabelle anzeigt. Gelesen wird die komplette Ländertabelle. Im ALV-Grid werden dann nacheinander
MehrEclipse Test and Performance Tools Platform (TPTP)
Fakultät Informatik - Institut für Angewandte Informatik, Professur Technische Informationssysteme Eclipse Test and Performance Tools Platform (TPTP) Philipp Schneider s1050347@inf.tu-dresden.de Hauptseminar
MehrMetadaten für die Informationsversorgung von morgen: Kooperativ erstellen - gemeinsam nutzen
Metadaten für die Informationsversorgung von morgen: Kooperativ erstellen - gemeinsam nutzen Was sind Metadaten? Metadaten sind strukturierte Daten über Daten. Sie dienen der Beschreibung von Informationsressourcen.
MehrStruktur des MicroJava-Compilers
Struktur des MicroJava-Compilers Compiler Parser.mj Scanner Code- Generator.obj Symboltabelle UE zu Übersetzerbau Lexikalische Analyse 1 Grammatik ohne Scanner Expr = Term { "+" Term }. Term = Factor {
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
MehrDHBW Stuttgart, Informatik, Advanced SW-Engineering Aug Programmierung
Inhalt Aufbau des Source Codes Dokumentation des Source Codes (Layout) Qualitätskriterien berücksichtigen: Verständlichkeit Namenskonventionen Wartbarkeit: Programmierrichtlinien für erlaubte Konstrukte,
MehrCompilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
MehrInnovator for Business Analysts on Tour, März 2010
BPMN: In wenigen Worten Innovator for Business Analysts on Tour, März 2010 BPMN Basiselemente BPMN & more Der neue Innovator for Business Analysts 2 BPMN Basiselemente Einführungsbeispiel Bearbeitung einer
MehrArchitecture Blueprints
Architecture Blueprints Daniel Liebhart, Peter Welkenbach, Perry Pakull, Mischa Kölliker, Michael Könings, Markus Heinisch, Guido Schmutz Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET,
MehrMigration auf Knopfdruck Macht das überhaupt Sinn?
Beratung Software Lösungen Migration auf Knopfdruck Macht das überhaupt Sinn? Markus Klenke Consultant TEAM GmbH Zahlen und Fakten Unternehmensgruppe Materna: 1.300 Mitarbeiter 160 Mio. Euro Umsatz in
MehrDeployment mit OMB*Plus Carsten Herbe & Oliver Gehlert metafinanz Informationssysteme GmbH
Deployment mit OMB*Plus Carsten Herbe & Oliver Gehlert metafinanz Informationssysteme GmbH Stand: 01.12.2008 Gliederung I. Kurzprofil II. OMB und Experts Über OMB Über Experts Einsatzgebiete von OMB und
MehrOracle Data Integrator Ein Überblick
Oracle Data Integrator Ein Überblick Uwe Barz Christoph Jansen Hamburg, 15.04.2008 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien Agenda Überblick
MehrSWP Übersetzerbau im SS 13 Einführung und Organisatorisches. Till Zoppke Maximilian Konzack Yves Müller Freie Universität Berlin
SWP Übersetzerbau im SS 13 Einführung und Organisatorisches Till Zoppke Maximilian Konzack Yves Müller Freie Universität Berlin Auftaktveranstaltung am 13. April 2013 Übersicht Projektidee Einteilung in
MehrStuPro Visualisierung der Ergebnisse von Programmanalysen
StuPro Visualisierung der Ergebnisse von Programmanalysen Abteilung Programmiersprachen und Compilerbau Daniel Gerlach, Mikhail Prokharau Universität Stuttgart 15. November 2010 Übersicht Vorstellungsrunde
MehrEntwicklung mit mehreren Dateien
Frühjahrsemester 2011 CS104 Programmieren II Teil II: C++ Programmierung Kapitel 9: Entwicklungsprozess in C++ H. Schuldt Entwicklung mit mehreren Dateien In C++ ist es üblich, den Quelltext in mehreren
MehrVeeam und Microsoft. Marco Horstmann System Engineer, Veeam
Veeam und Microsoft Marco Horstmann System Engineer, Veeam Software marco.horstmann@veeam.com @marcohorstmann Windows Server 2016 Support Die vollständige und fortschrittliche Unterstützung von Veeam erschliesst
MehrPraktikum Softwareanalyse und -transformation
Praktikum Softwareanalyse und -transformation Thilo Mende Universität Bremen Fachbereich 3 Mathematik und Informatik Arbeitsgruppe Softwaretechnik http://www.informatik.uni-bremen/st Sommersemester 2009
MehrWEDKEX. Web-based Engineering Design Knowledge EXtraction. Frank Heyen, Janik M. Hager, Steffen M. Schlinger B.Sc. Informatik
WEDKEX Web-based Engineering Design Knowledge EXtraction Frank Heyen, Janik M. Hager, Steffen M. Schlinger B.Sc. Informatik Motivation Suche nach besseren Komponenten für ein vorhandenes System [HW] 2
MehrKapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken
Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen
MehrRainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR
Rainer Stropek cubido Baumschule Expression Trees in C#, CLR und DLR Inhalt Als Anwendungsentwickler kommt man selten mit Expression Trees in Berührung. Sie sind ein Implementierungsdetail von LINQ. Ihre
MehrHaskell for Hackers... or why functional programming matters
... or why functional programming matters Franz Pletz CCC München 27-06-2009 @ GPN8 Fahrplan Ablauf Motivation 1 Ablauf Motivation 2 3 4 Ablauf Ablauf Motivation bei Fragen/Unklarheiten:
Mehr13 Ausblick. Überblick. Ausblick EZS2 Hiwi Studien- und Diplomarbeiten. wosch WS 2007/08 EZS 13-1
Überblick 13 Ausblick Ausblick EZS2 Hiwi Studien- und Diplomarbeiten wosch WS 2007/08 EZS 13-1 13 Ausblick 13.1 EZS2 Echtzeitsysteme (EZS) 2 Integrierte Lehrveranstaltung, 4 SWS Inhalt ein kompletter Entwicklungszyklus
MehrSmallTalk - Eine kurze Einführung
SmallTalk - Eine kurze Einführung Andreas Lochbihler Lehrstuhl Programmierparadigmen Universität Karlsruhe 15. Juni 2009 SmallTalk Entwickelt seit Anfang der 70er bei XEROX PARC Alan Kay, Dan Ingalls,
MehrPraktikum Compilerbau Sitzung 4 Semantik und Typprüfung
Praktikum Compilerbau Sitzung 4 Semantik und Typprüfung Lehrstuhl für Programmierparadigmen Universität Karlsruhe (TH) 13. Mai 2009 (IPD Snelting) Sitzung 4 Semantik 13. Mai 2009 1 / 13 1 Letzte Woche
MehrÜbungsstunde: Informatik 1 D-MAVT
Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 25.04.2018 1 Ablauf Self-Assessment Pointer Iterators
MehrDWH Automation - Steigerung von Qualität, Effektivität und Transparenz in der DWH Implementierung und dem Betrieb. Referent: Raphael Henneke
DWH Automation - Steigerung von Qualität, Effektivität und Transparenz in der DWH Implementierung und dem Betrieb Referent: Raphael Henneke Agenda 10.00 10.30 Begrüßung & aktuelle Entwicklungen bei QUNIS
MehrMaschinencode Dateiformat und Stackframes
Maschinencode Dateiformat und Stackframes Proseminar C-Programmierung - Grundlagen und Konzepte Julian M. Kunkel julian.martin.kunkel@informatik.uni-hamburg.de Wissenschaftliches Rechnen Fachbereich Informatik
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
MehrSeite 1. ProSeminar Compilerbau
Seite 1 ProSeminar Compilerbau Seite 2 Was passiert, wenn ihr javac aufruft? In diesem Seminar lernt ihr, wie ein Werkzeug, das ihr jeden Tag verwendet, eigentlich funktioniert. Seite 3 Aufbau des ProSeminars
MehrInhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen
Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18
MehrArchitekturbeschreibung PSA/BikeShop Version 1.0
Architekturbeschreibung PSA/BikeShop Version 1.0 Rainer Koschke Universität Bremen 4. Februar 2005 1 Einführung 1.1 Zweck Dieses Dokument dient als Vorlage für die Gliederung Ihrer Architekturbeschreibung.
MehrErweiterbare Schemata
Erweiterbare Schemata Überlegungen zur Syntax Abhängigkeiten zwischen Schema und Instanz Abhängigkeitstypen Indirekt sind diese Beziehungen für sämtliche Dokumente mit Quelltext in XML-Dialekten oder Programmiersprachen,
MehrInformatik I (D-ITET)
Die Übungsstunde Informatik I (D-ITET) Übungsstunde 1, 21.9.2008 simonmayer@student.ethz.ch ETH Zürich Administratives Abgabe der Übungen (allein oder zu zweit) Eine Übungsabgabe pro Kopf (Team vermerken)
MehrDPM_flowcharts.doc Page F-1 of 9 Rüdiger Siol :28
Contents F TOOLS TO SUPPORT THE DOCUMENTATION... F-2 F.1 GRAPHIC SYMBOLS AND THEIR APPLICATION (DIN 66 001)... F-2 F.1.1 Flow of control... F-3 F.1.2 Terminators and connectors... F-4 F.1.3 Lines, arrows
MehrHydroinformatik I: Hello World
Hydroinformatik I: Hello World Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 27. Oktober 2017 1/21
MehrFORTRAN77. eine höllische Programmiersprache. Christian Sternecker. Sommersemester TU-München
FORTRAN77 eine höllische Programmiersprache Christian Sternecker TU-München Sommersemester 2010 Aufbau des Vortrags Geschichte Merkmale Höllische Konzepte Typsicherheit Programmstruktur Speicherverwaltung
MehrCross Compiler. Entwickeln von Windows Anwendungen unter Linux (und mehr) Wolfgang Dautermann. Chemnitzer Linuxtage 2011 FH JOANNEUM
Cross Compiler Entwickeln von Windows Anwendungen unter Linux (und mehr) Wolfgang Dautermann FH JOANNEUM Chemnitzer Linuxtage 2011 1 Einleitung 2 Einsatzzwecke 3 Installation des Crosscompilers 4...und
MehrLex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir?
Lex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir? Hagen Paul Pfeifer hagen@jauu.net 29. April 2004 Lex und Yacc Überblick Einführung Lex und Yacc 1 Überblick Einführung Beispiele Lex und Yacc
MehrOracle JD Edwards Kundenevent FSS. Industrie 4.0
Oracle JD Edwards Kundenevent FSS Industrie 4.0 Agenda 2 1. Einführung Industrie 4.0 2. Ziele Industrie 4.0 3. Use cases 4. Oracle JD Edwards IoT Orchestrator 5. Unterschied JSON XML 6. Internet of
MehrIntroduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
MehrGeschachtelte Klassen
Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte
MehrZwei Möglichkeiten die TLB zu aktualisieren
Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt
MehrThe C++ Core Guidelines für sicheren Code. Rainer Grimm Training, Coaching und Technologieberatung
The C++ Core Guidelines für sicheren Code Rainer Grimm Training, Coaching und Technologieberatung www.modernescpp.de Guidelines Best Practices für die Verwendung von C++ Warum benötigen wir Guidelines?
MehrSeminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler
Seminar Ausgewählte Komponenten von Betriebssystemen IDL4 Compiler IDL4 Compiler Hristo Pentchev Überblick CORBA IDL Allgemein IDL4 Compiler Beispiele CORBA Common Objekt Request Broker Architecture Gemeinsame
MehrTestframework für Eckelmann CNC
Reinhold Kroeger Kai Beckmann Marcus Thoss Testframework für Eckelmann RheinMain University of Allpplied Sciences {firstname.lastname} @hs-rm.de http://wwwvs.cs.hs-rm.de Marco Muenchhof Christian Mellert
MehrEINFÜHRUNG. Maschinenmodell. konkrete Maschine. Interpreter. universelle programmierbare Rechenmaschine:
EINFÜHRUNG (ontag, den 28 April 2003) Implementierung von Programmiersprachen aschinenmodell 7 konkrete aschine 8 Interpreter 9 Übersetzer 10 Implementierungssprache 11 Implementierung von Übersetzern
MehrÜber mich. Daniel Bälz. Softwareentwickler (inovex GmbH) github.com/dbaelz
Quo vadis Dart? Über mich Daniel Bälz Softwareentwickler (inovex GmbH) dbaelz.de plus.dbaelz.de github.com/dbaelz Agenda Was Wie Warum Wohin Was ist Dart? Übersicht Einsatzgebiet Client (Browser, CLI)
MehrSOMA Reverse Engineering
SOMA Reverse Engineering Univ.Prof. Dr. Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt Was versteht man unter Reverse Engineering? Techniken/Methoden Probleme VU Software Maintenance
MehrDer C Compiler C - GRUNDLAGEN UND KONZEPTE - COMPILER - FEDERICO ARDILA 1/20
Der C Compiler EINE KLEINE EINFÜHRUNG IN DIE STRUKTUR VON COMPILERS IN ALLGEMEIN, GCC UND CLANG/LLVM C - GRUNDLAGEN UND KONZEPTE - COMPILER - FEDERICO ARDILA 1/20 Überblick Was ist ein Compiler Compilers
MehrPLUS Architektur-Browser
Tobias Kiefer Bachelor-Arbeit Betreuer: Prof. Dr. Antonio Krüger PLUS Architektur-Browser (PAB) Bachelor-Master-Seminar, 09.01.2014 Agenda Was ist abat+? Motivation Related Work Architektur Mein Vorhaben
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:
MehrSeminar Grid Computing
Seminar Grid Computing Thema: Standards von Urs Wedershoven Inhalt: 1. Einleitung 2. PortTypes 3. ServiceData 4. GridService Handler und References 5. LifeCycles 6. Handling von Fehlern 1. Einleitung GridServices
MehrSoftware Reuse Sommer Einfache, aus 3 Komponenten bestehende, Anwendung Was ist eine Komponente?
Rückblick Einfache, aus 3 Komponenten bestehende, Anwendung Was ist eine Komponente? Eine einzelne Klasse? Eine ganze Anwendung? Komponente In sich abgeschlossener Baustein Klar definierte Schnittstelle
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:
MehrC++11. neu in C++11: range-based for. Objektorientierte Programmierung mit C++ Ersetzung durch: 1. Elementares C++ int array[] = { 1, 2, 3, 4, 5 };
neu in C++11: range-based for int array[] = { 1, 2, 3, 4, 5 ; for (int x : array) // value x *= 2; C++11 for (int& x : array) // reference x *= 2; Ersetzung durch: { auto && range = range-init; for ( auto
MehrNATURAL FOR AJAX RESPONSIVE WEB ANWENDUNGEN FÜR MOBILE ENDGERÄTE ROLAND FABICH NOVEMBER 2016
NATURAL FOR AJAX RESPONSIVE WEB ANWENDUNGEN FÜR MOBILE ENDGERÄTE ROLAND FABICH NOVEMBER 2016 2015 Software AG. All rights reserved. For internal use only RESPONSIVE WEB ANWENDUNGEN MIT NJX ÜBERSICHT Live
MehrI-Q SCHACHT & KOLLEGEN QUALITÄTSKONSTRUKTION GMBH ISO 26262:2011. Tabellen mit ASIL Zuordnungen
I-Q SCHACHT & KOLLEGEN QUALITÄTSKONSTRUKTION GMBH ISO 26262:2011 Tabellen mit ASIL Zuordnungen 1. Die Tabellen in der Norm (mit ASIL Zuordnung) Ein wesentlicher Bestandteil der Norm sind die insgesamt
MehrISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage
ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und
MehrHerzlich Willkommen! Die neue Dimension des Bedienungskomforts: Fiori 2.0
Herzlich Willkommen! Die neue Dimension des Bedienungskomforts: Fiori 2.0 1 Fiori Ein Erfolgsgeschichte mit Hürden_ Markteinführung im 2013 25 einfache, transaktional orientierte Fiori Apps Sehr bescheidenes
MehrSoftware Engineering. 5. Architektur
Software Engineering 5. Architektur Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung Konfigurationsmanagement
MehrWas ist ein Compiler?
Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?
MehrMethodik. zur prozessübergreifenden Integration. der Digitalen Fabrik. der Rechts- und Wirtschaftswissenschaftlichen Fakultät
Methodik zur prozessübergreifenden Integration der Digitalen Fabrik in bestehende Unternehmensstrukturen der Rechts- und Wirtschaftswissenschaftlichen Fakultät des Fachbereichs Wirtschaftswissenschaften
MehrOracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz
Oracle 12c: Neuerungen in PL/SQL Roman Pyro DOAG 2014 Konferenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung,
MehrModel-Driven Development in der Praxis. mit objectif. Herzlich willkommen
Model-Driven Development in der Praxis mit objectif Herzlich willkommen Die Themen: microtool stellt sich vor live Model-Driven Development die Grundlagen Model-Driven Development von Web-Anwendungen in
Mehr