PLUS Architektur-Browser

Ähnliche Dokumente
Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

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

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Software- /Systemarchitektur

VisualDependencies Fachhochschule Köln

Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen

Erfolg mit Oracle BI?

Visualisierung feingranularer Abhängigkeiten

Software Engineering. 5. Architektur

Aktuelle Probleme des Software Engineering Ein Insider Bericht

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Graph-basierte Modellierung in Software-Werkzeugen

Technologische Analysen im Umfeld Sozialer Netzwerke

Generischer Modellvergleich mit EMF Compare

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Hochschule Darmstadt Data Warehouse SS 2015 Fachbereich Informatik Praktikumsversuch 5

Institut für Informatik Betriebliche Informationssysteme Graph-basiertes Reengineering

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin

Quest Central for Oracle

MVC-Architektur am Beispiel von OLAT

Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

Visual Studio 2010 Neues für Architekten

Continuous Delivery mit Orcas

PITSS.CON Oracle Forms 11g - Lower your IT Costs

Datenmanagement in Android-Apps. 16. Mai 2013

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS

Was ist neu in. Asta Powerproject? PROFESSIONELLE PROJEKTMANAGEMENT-SOFTWARE. powerproject

Kontinuierliche Architekturanalyse. in 3D

Kap. 5.3: SAP-Datenmodell, Metadatenverwaltung

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

Methodik. zur prozessübergreifenden Integration. der Digitalen Fabrik. der Rechts- und Wirtschaftswissenschaftlichen Fakultät

Code Beispiel: /* path element */ var el = rc.path("m l 0-50 l l 0-50 l l 0 50 l l 0 50 z");

Anforderungsaustausch mit ReqIF (RIF) und Polarion. Polarion User Conference 2014

INSPIRE - Modellierung

Analyse von Sercos Netzwerken mit dem Sercos Monitor

Einführung in Google Web Toolkit

So erstellen Sie wichtige Berichte mit Microsoft Technologie Tipps für PMO und IT

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3

Visualizing multiple Last.fm listening histories

XINFO. HORIZONT Software für Rechenzentren. XINFO-Schnittstellen zum Output-Management. Das IT Informationssystem

Abschlussvortrag Diplomarbeit Point-Based Animation

Layouterstellung im Web und interaktives Arbeiten mit dem BI Publisher

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Das Einsteigerseminar ASP

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

CLICK TO EDIT MASTER TITLE STYLE

WP4-33: Systementwicklung 7.Semester Übung 4: Entwicklung einer Software zur Extraktion von IFC-Daten

Oracle Enterprise Manager 11g: Grid Control Essentials NEU

Sonargraph in 15 Minuten. Andreas Hoyer blog.hello2morrow.com

Data Management mit UNICORE 6

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio

Generelle Planung Generische Entwicklung Planungen (Ausblick 2017/2018)

Transformations. Die API des Oracle Datamodeler. Dr. Gudrun Pabst. Trivadis GmbH Lehrer-Wirth-Straße München.

StuPro Visualisierung der Ergebnisse von Programmanalysen

MyCoRe > V1.0: Technische Weiterentwicklung

SAP BO Web Intelligence auf SQL Server [A4] Üetliberg,

Application Express (APEX) Carsten Czarski Business Unit Database. ORACLE Deutschland B.V. & Co KG

Bestandsaufnahme und Arbeit an einer Alpha-Version des Saros- Plugins für die IntelliJ-Plattform

Digitale Archivierung für SAP mit DocuWare realisieren

Metadatenmanagement in MIRACUM. Dennis Kadioglu KAIROS-Workshop»Meta Data Repository/MDR«

WLGauge: : Web Link Gauge to Measure the Quality of External WWW Links. Andreas Lübcke

CURE Elderly Personas Markus Garschall

Schulinterner Lehrplan zum Kernlehrplan für die gymnasiale Oberstufe. Informatik Q2. Stand: 02/2016 Status: Gültig

Komponente Ersetzen. Version: NX 10 Datum: Ersteller: Christoph K.

Oracle JDeveloper 10 g

Instrumentation von Android Anwendungen mit ExplorViz

GebertSoftware Erfahrung, die Sie nutzen. pitop - Entwickler-Workstation für JIGS-KMS

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Visual Studio 2010 Jetzt auch für Architekten

MacroMilter: Wie ein Admin zum Entwickler wurde. Stephan Traub

Developing SQL Data Models MOC 20768

Visualisierung von Softwaremetriken

Eclipse Modeling Framework

Definition von domänenspezifischen Sprachen mit Xtext: Einführung

Textmasterformat bearbeiten

Programmieren lernen in ASP.NET mit C#

Serena Schulungsplan 2017

Informatik Einführung in das ROS Robot Operating System

Transkript:

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 Visualisierung Zusammenfassung 07.01.14 Tobias Kiefer abat+ GmbH 2

Was ist abat+? IT-Unternehmen mit Sitz in St. Ingbert Software für Produktionssteuerung und Logistik für Automotive- und Zulieferindustrie: PLUS PLUS: Fertigungssteuerung Fertigungsplanung Qualitätsmanagement Implementierung, Rollout und Support des Steuerungssystems 07.01.14 Tobias Kiefer abat+ GmbH 3

Motivation Repository mit Informationen über Abhängigkeitsgraph der Softwarearchitektur IST-Zustand: Momentan keine geeignete Softwarelösung Mühsames nachschlagen von Abhängigkeiten Gute Kenntnis des PLUS-Clients notwendig SOLL-Zustand: Abhängigkeiten schnell und einfach einsehbar Eigenschaften von Komponenten in Echtzeit einsehbar 07.01.14 Tobias Kiefer abat+ GmbH 4

Reverse Engineering Related Work bezeichnet den Vorgang, aus einem bestehenden, fertigen System[ ] durch Untersuchung der Strukturen, Zustände und Verhaltensweisen, die Konstruktionselemente zu extrahieren. Aus dem fertigen Objekt wird somit wieder ein Plan erstellt.[4] bezeichnet den Prozess ein System zu analysieren um 1. einzelne Komponenten und deren Beziehungen untereinander zu identifizieren. 2. eine Repräsentation des Systems auf einem abstrakteren Level zu erschaffen. [1] 07.01.14 Tobias Kiefer abat+ GmbH 5

Related Work Columbus [1] Framework zum Analysieren von großen C++ programmen Ziel: besseres Verstehen von Beziehungen zwischen einzelnen Komponenten in großen Software Systemen Extraktions Prozess: 1. Extraktion von Informationen 2. Beziehung zwischen Komponenten 3. Export/Visualisierung Visualisierung: Graph, welcher die Abhängigkeiten zwischen einzelnen Klassen und Namespaces zeigt 07.01.14 Tobias Kiefer abat+ GmbH 6

Related Work Columbus[1] bietet Erweiterungsmöglichkeit durch selbstgeschriebene Plugins z.b. HTML-Export Filtern: benutzt C++ Elemente Klassen Quellcode Dateien Namespaces Keine Möglichkeit verschiedene Programme/Releases zu parsen und zu vergleichen Keine Erkennung von Dead-Code bzw. Fehlern 07.01.14 Tobias Kiefer abat+ GmbH 7

Related Work Rigi[5] Tool für Software-Analyse und Programm-Verstehen Ziel: Identifizierung von Software Komponenten in einem System und deren Repräsentation auf einem abtrakteren Level Extraktions Prozess: 1. Identifizierung der Komponenten 2. Beziehung zwischen Komponenten 3. Extraktion des abstrahierten Systems sowie der Desgin Informationen Benutzer entscheidet wie detailiert bzw. abstrakt der Extraktionsprozess sein soll 07.01.14 Tobias Kiefer abat+ GmbH 8

Related Work Rigi[5] Visualisierung: Verschiedene Views, z.b: Call Graph Überblicke über einzelne Klassen Filtern: Skript Sprachen, die Benutzern erlaubt zu sagen, was extrahiert und wie es gefiltert werden soll Keine Möglichkeit verschiedene Programme/Releases zu parsen und zu vergleichen Keine Erkennung von Dead-Code bzw. Fehlern 07.01.14 Tobias Kiefer abat+ GmbH 9

Related Work GPLAP[6] Programm zum Entdecken von Software Plagiarismus mit Hilfe von Anhängigkeitsgraph-Analyse (PDG) Ziel: Plagiierte Programmsekmente zu finden, falls vorhanden PDG = graphische Repräsentation von Daten und Steuerungsabhänigkeiten innerhalb eines Programms bzw. einer Prozedur Identifier Renaming,Code Insertions und Control Replacement verändern nicht die eigentliche Struktur des PDG 07.01.14 Tobias Kiefer abat+ GmbH 10

Related Work GPLAP[6] Filtereinstellung gibt an, wie strikt Abhängigkeitsgraphen verglichen werden keine Möglichkeit Filter nach dem Parsen zu modifizieren Gibt zwei PDG-Teilgraphen zurück, in denen Plagiarismus vermutet wird 07.01.14 Tobias Kiefer abat+ GmbH 11

Vergleich Abhängigkeits graph Erkennung von Fehlern/ Deadcode Vergleich von Verschiedenen Releases/ Programmen Möglichkeit zu Filtern Visualisierung Columbus Graph Rigi Graph GPLAP Graph- Paare PAB Tabellen [3] 07.01.14 Tobias Kiefer abat+ GmbH 12

Architektur - Übersicht MVVM-Pattern Views: User Interface (C#) Datenvisualisierung View Model: Bindeglied zwischen View und Model (C#) Gekapselter Zugriff auf Model Model: Darzustellenden Daten Business Objekte (C#) Backend: Server (Cobol), Datenbanken 07.01.14 Tobias Kiefer abat+ GmbH 13

Architektur - Business Objekte Business Objekte(BO) bestehen aus vier Klassen 1. BO-Factory zum Erzeugen und Verwalten aller BOs eines bestimmten Typs 2. BO-Key Kapselung aller Schlüsseleigenschaften zur Identifizierung 3. BO-Data Datenfelder mit Zugriffseigenschaften Methoden zum Abgleich zweier Datenobjekte 4. Business Object Wrapper für BO-Key und BO-Data, Schnittstelle für Verwender 07.01.14 Tobias Kiefer abat+ GmbH 14

Mein Vorhaben C# basierendes Reverse-Engineering Tool, bestehend aus zwei Komponenten 1. Parser: Extrahieren von Eigenschaften einzelner Komponenten Ermittlung der Abhängigkeitsgraphen zwischen den verschiedenen Ebenen zwischen Objekten einer Ebene Abstrahieren von Quellcode in Datenbank Erkennen bestimmter Fehler auf Server Seite 07.01.14 Tobias Kiefer abat+ GmbH 15

Mein Vorhaben Vorgehensweise: 1. Rekursives Durchsuchen des Source Codes nach benötigten Dateien 2. Parallelisiertes Parsen dieser Dateien um gewünschte Informationen zu erhalten reguläre Ausdrücke beachten von Ausnahmen 3. Mit Hilfe erlangter Informationen Abhängigkeiten zwischen einzelnen Komponenten erstellen 4. Abstraktion von Informationen und Abhängigkeiten in MSSQLServer Datenbank 07.01.14 Tobias Kiefer abat+ GmbH 16

Mein Vorhaben 2. Visualisierungs-Tool für PLUS-Client: Anzeige der Eigenschaften einzelner Komponenten Visualisierung mittels Tabellen (keinen Graph) Klares Erkennen von Abhängigkeiten zwischen den verschiedenen Ebenen zwischen Objekten einer Ebene Verschiedene Filter-Optionen Vergleich einzelner Releases 07.01.14 Tobias Kiefer abat+ GmbH 17

Visualisierung 07.01.14 Tobias Kiefer abat+ GmbH 18

Visualisierung 07.01.14 Tobias Kiefer abat+ GmbH 19

Visualisierung - Master Unterschiedliche Objekttypen in einzelnen Gruppen dargestellt (BO, Server,...) Lediglich wichtige Spalten zur Identifizierung eines Objekts (ID, Name,...) Gruppen können ein-/ausgeklappt werden 07.01.14 Tobias Kiefer abat+ GmbH 20

Visualisierung - Details Anzeige vollständiger Informationen und Eigenschaften des ausgewählten Objekts. Unterteilung in verschiedene Gruppen möglich (Informationen, Datenfelder,...) 07.01.14 Tobias Kiefer abat+ GmbH 21

Visualisierung - Verknüpfungen Rechter Bereich zeigt alle Verknüpfungen zu anderen Objekten Verknüpfte Objekte sind in entsprechende Gruppen aufgeteilt. Nur die wichtigsten Informationen zur Identifikation der Objekte dargestellt 07.01.14 Tobias Kiefer abat+ GmbH 22

Zusammenfassung 07.01.14 Tobias Kiefer abat+ GmbH 23

Fragen Vielen Dank für Ihre Aufmerksamkeit Fragen? [2] 07.01.14 Tobias Kiefer abat+ GmbH 24

Quellen [1] Ferenc et al. - Columbus - reverse engineering tool and schema for C++ Res. Group on Artificial Intelligence, Univ. of Szeged, Hungary 2002 [2] http://vilacostas.de/eh-content/pages/4347/images/fragezeichen-maennchen.jpg [3] https://www.iconfinder.com/icons/58687/check_ok_icon#size=128 [4] http://de.wikipedia.org/wiki/reverse_engineering [5] Müller at al. - Understanding software systems using reverse engineering technology perspective from the Rigi project University of Victoria, Victoria, BC, Canada 1993 [6] Lui et al. - GPLAG: detection of software plagiarism by program dependence graph analysis University of Illinois-UC, Urbana, IL 2006 07.01.14 Tobias Kiefer abat+ GmbH 25