Softwareproduktlinien Ain t Nobody Got Time For That? Stephan Seifermann (FZI Karlsruhe) Karlsruher Entwicklertag 2016,
|
|
- Ina Maus
- vor 5 Jahren
- Abrufe
Transkript
1 Softwareproduktlinien Ain t Nobody Got Time For That? Stephan Seifermann (FZI Karlsruhe) Karlsruher Entwicklertag 2016,
2 Agenda Kundenspezifische Anpassung von Produkten Konsolidierung von Produktkopien Konsolidierungsschritte Ansätze Live-Demo Zusammenfassung Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 2
3 Profil Stephan Seifermann Wissenschaftlicher Mitarbeiter Schwerpunkte Modellgetriebene Software-Entwicklung Software-Architekturen FZI Forschungszentrum Informatik Anwendungsforschung Informatik Forschungstransfer für KMUs Trainings/Schulungen Enge Partnerschaft mit KIT Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 3
4 E-Commerce Integration als Beispielprodukt Kunde Online-Shop Produktdatenbank Daten laden Suchen Enterprise Resource Planing (ERP) - Warenbestand - Preise - Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 4
5 Individualisierung durch Kopieren Kunde 2 PD2 & ERP2 Online-Shop Kunde 1 PD1 & ERP1 Produktdatenbank Daten laden Suchen Produktdatenbank Daten laden Online-Shop Suchen Zeitdruck Enterprise Resource Planing (ERP) - Warenbestand - Preise - Enterprise Resource Planing (ERP) - Warenbestand - Preise - Kunde 3 PD3 & ERP3 Online-Shop Produktdatenbank Daten laden Suchen Enterprise Resource Planing (ERP) - Warenbestand - Preise - Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 5
6 Kopieren von Produkten Unschön aber individuelle Kopien sind nicht immer vermeidbar Produktdatenbank Kunde 1 PD1 & ERP1 Daten laden Enterprise Resource Planing (ERP) - Warenbestand - Preise - Online-Shop Suchen Zeitdruck Produktdatenbank Kunde 2 PD2 & ERP2 Daten laden Enterprise Resource Planing (ERP) - Warenbestand - Preise - Kunde 3 PD3 & ERP3 Online-Shop Suchen Online-Shop Produktdatenbank Daten laden Suchen Enterprise Resource Planing (ERP) - Warenbestand - Preise - Typische Gründe Zeit- und Kosten Flexibilität Unbekannte Evolutionsszenarien Organisatorisches Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 6
7 Vor- und Nachteile durch Kopieren Vorteilhaft, wenn kundenspezifische Anpassungen schnell und kostengünstig vorgenommen werden müssen Nachteilig, wenn Wartungsaufwand mehrfach entsteht kundenspezifische Anpassungen zunehmen Anpassungen kombiniert werden sollen Synergieeffekte nicht ausgenutzt werden Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 7
8 Softwareproduktlinie Produktlinie Kern Feature Variabilitätsmanagement Erzeugung verschiedener Varianten Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 8
9 Wie komme ich zu einer Produktlinie? Reaktiv Produktlinie Feature Feature Proaktiv Extraktiv Kopie 1 Produktlinie Original Produktlinie Kopie 2 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 9
10 Kopie 1 Original Produktlinie Kopie 2 PRODUKTLINIENKONSOLIDIERUNG Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 10
11 Schritte bei der Produktlinienkonsolidierung Kopie 1 Differenz - analyse 1 Variabilitäts - analyse 2 Original Kopie 2 Differenzen Beziehungen 5 Refactoring 4 0 Variabilitäts - design 3 Produktlinie Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 11
12 Kopie 1 Differenz - analyse 1 Original Kopie 2 Differenzen DIFFERENZANALYSE Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 12
13 Unterschiede Erkennen - Zielgerichtet : Method : VPM : Method : Statement : VariationPoint : Statement : Statement : VariationPoint : Statement : Statement : VariationPoint : Statement public String sqrt(string value1){ Double x = Double.valueOf(value1); Double sqrt = Math.sqrt(x); return sqrt.tostring(); } public String sqrt(string value1){ FloatingPoint x = FloatingPoint.valueOf(value1); FloatingPoint sqrt = x.sqrt(); return sqrt.tostring(); } Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 13
14 Variabilitätsanalyse 2 Beziehungen VARIABILITÄTSANALYSEN Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 14
15 Wozu Variabilitätsanalyse? = geänderter Quelltext Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 15
16 Wozu Variabilitätsanalyse? = in Beziehung stehende Änderungen = geänderter Quelltext Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 16
17 Analysen auf dem Variationspunktmodell restriktiv Abhängigkeit Programmabhängigkeit Datenabhängigkeit int n = 10; calcfibonacci(n); Ähnlichkeit Ähnliches Vokabular Ähnlicher Ort void parsefibonaccicommand() {} int calcfibonacci(int n) {} Gleichheit suggestiv Gleicher Zeitpunkt Gleiches Ticket [Klatt 2014] Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 17
18 Live-DEMO Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 18
19 Verfügbare Variabilitätsanalysen Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 19
20 Einstellungen für Ähnlichkeit nach Begriffen Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 20
21 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 21
22 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 22
23 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 23
24 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 24
25 Beziehungen 0 Variabilitäts - design 3 VARIABILITÄTSDESIGN Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 25
26 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 26
27 Refactoring 4 0 Variabilitäts - design 3 REFACTORING Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 27
28 Vorgehen beim Refactoring Generell Varianten in ausgewähltes Basisprodukt integrieren Kopie 2 Kopie 3 Variabilitätsmechanismus nutzen, der Variabilitätsmechanismus im Unternehmen akzeptiert ist zu definierter Charakteristik passt auf Code-Element anwendbar ist Kopie 1 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 28
29 Mechanismen aus der Literatur [Clements et al. 2001] Parameterisierung Delegation in Strategie- Muster Dependency Injection Bedingte Ausführung Konfiguration Modulzusammensetzung Austausch von Bibliotheken Konfiguration von Produkten in Eclipse Generierung Konfigurationen aus DSL-Artefakt generieren Glue-Code aus DSL- Artefakt generieren Navigationsgerät navigierezu(ziel) 1 <<interface>> RoutingAlgorithmus berechneroute(start, ziel) Dijkstra berechneroute(start, ziel) Bellmann-Ford berechneroute(start, ziel) HOST_LOCALEDEF_CONF_OPT += \ --prefix=/usr \ --with-glibc=./eglibc Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 29
30 Mechanismen aus der Literatur [Clements et al. 2001] Erweiterungen Eclipse Extension Points Java Service Provider Spezifikation Auswahl während Übersetzung Präprozessor- Anweisungen Bedingte Ausführung mit statischer Konfiguration Vererbung Überladen, Überschreiben, Attribute, Bestandteil anderer Mechanismen //#if defined(logging) import org.apache.log4j.logger; //#endif Konfiguration Basiert auf Feature-Modell Startparameter Lizenzmechanismen Nutzereinstellungen Konstantenklasse Build-Flags Konfigurationsdateien Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 30
31 Live-DEMO Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 31
32 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 32
33 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 33
34 Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 34
35 Zusammenfassung Produktkopien nicht immer vermeidbar Kunde 2 PD2 & ERP2 Online-Shop Kunde 1 PD1 & ERP1 Produktdatenbank Daten laden Suchen Produktdatenbank Daten laden Enterprise Resource Planing (ERP) - Warenbestand - Preise - Online-Shop Suchen Zeitdruck Enterprise Resource Planing (ERP) - Warenbestand - Preise - Kunde 3 PD3 & ERP3 Online-Shop Produktdatenbank Daten laden Suchen Enterprise Resource Planing (ERP) - Warenbestand - Preise - Konsolidierungstechnologie Refactorings Original Kopie 1 Kopie 2 2 Variabilitätsanalyse Differenzen Beziehungen Differenzanalyse 1 KoPL Werkzeugkette Unternehmensweiten Katalog für Variabilitätsmechanismen erstellen Aus allgemeinen Techniken spezifische Mechanismen ableiten Passend nach Charakteristik wählen 5 Refaktorisierung 4 0 Variabilitätsdesign 3 Produktlinie Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 35
36 KoPL Werkzeug zur Produktlinienkonsolidierung Projektinformationen Code / Doku github.com/kopl/splevo/wiki Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 36
37 Referenzen Literatur [Clements et al. 2002] Paul Clements, Linda Northrop. Software Product Lines Practices and Patterns. Addison-Wesley, [Klatt 2014] Benjamin Klatt. Consolidation of Customized Product Copies into Software Product Lines. Dissertation, Karlsruher Insititut für Technology (KIT), Karlsruhe, Deutschland, Oktober 2014 Grafiken Die Grafiken sind aus Einzelgrafiken zusammengesetzt und bestehen aus Grafik-Sammlung des KoPL-Projekts Font Awesome (Dave Gandy, SIL OFL 1.1, Stephan Seifermann: Softwareproduktlinien - Ain t Nobody Got Time For That? 37
Softwaretechnik. 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
MehrModellierung CORBA-basierter Anwendungssysteme mit der UML
Verteidigung der Diplomarbeit über das Thema: Modellierung CORBA-basierter Anwendungssysteme mit der UML Andreas Mucha Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl
MehrSoftware-Engineering im Sommersemester 2014
Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrMotivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen
Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Soll ich Modellieren oder Programmieren? sowohl als auch!!! Produktivitäts-Steigerung
MehrEclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt
Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt Sören Bühler buso1011 36811 Julia Haßlinger haju1013 37141 Anja Heinzberger hean1017 36622 Agenda Allgemeines Historie
MehrSoftware-Refactoring. 29. Mai 2013
Software-Refactoring 29. Mai 2013 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie
MehrIndigo vs. Juno. Was ist neu für Eclipse 4.x RCP Entwickler? Hauptseminar 2012
Fakultät Informatik, Institut für Angewandte Informatik, Professur für Technische Informationssysteme Indigo vs. Juno Was ist neu für Eclipse 4.x RCP Entwickler? Hauptseminar 2012 Thomas Pischulski (Thomas.Pischulski@mailbox.zih.tu-dresden.de)
MehrDesign Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff
Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:
MehrCodegenerierung mit Xtend. 21. Januar 2015
Codegenerierung mit Xtend 21. Januar 2015 Überblick Xtend bietet einen Template-basierten Ansatz zur Codegenerierung Xtend enthält eine spezielle Template-Sprache. Das Modell kann beliebig benutzt werden,
MehrComparing Software Factories and Software Product Lines
Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich
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 Software-Produktlinien Software-Produktlinien:
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2006 Überblick I 1 Software-Produktlinien Software-Produktlinien:
MehrFormale Spezifikation mit Java Modeling Language
Formale Spezifikation mit Java Modeling Language Daniel Bruns Praxis der Software-Entwicklung, 25 November 2010 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales
MehrEinführung in die Modelltransformation mit Xtend
Einführung in die Modelltransformation mit Xtend 12. Dezember 2012 Taentzer Modellgetriebene Softwareentwicklung 297 Überblick Xtend: Eine statisch getypte Sprache, die zur Modellzu-Text-Transformation
MehrTDD. mit JUnit & Mockito. Tobias Trelle, codecentric
TDD mit JUnit & Mockito Tobias Trelle, codecentric AG @tobiastrelle 1 Tobias Trelle Software Architekt @ codecentric AG Twitter: @tobiastrelle Slideshare: http://de.slideshare.net/tobiastrelle/ GitHub:
MehrVerteidigung Großer Beleg
Verteidigung Großer Beleg Die GoF-Entwurfsmuster in Java Corinna Herrmann ch17@inf.tu-dresden.de Gliederung 1. Aufgabenstellung 2. Entwurfsmuster 3. Verwandte Arbeiten 4. Beispiele: 4.1. Adapter 4.2. Flyweight
MehrDynamisches EMF und Codegenerierung mit JET. 14. November 2012
Dynamisches EMF und Codegenerierung mit JET 14. November 2012 Überblick Wie kann eine Modell-zu-Text-Transformation entwickelt werden? Referenzanwendung(en) möglichst generell schreiben und analysieren
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrSoftwareproduktlinien Teil 12: Analyse von Produktlinien
Softwareproduktlinien Teil 12: Analyse von Produktlinien Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) inkl. Folien von Das Problem Database
MehrProgrammierwerkstatt. Objektorientierung und Korrektheit von Programmen
Programmierwerkstatt Objektorientierung und Korrektheit von Programmen Zum Inhalt Wir wollen Euch: das Wesentliche vermitteln Fehlerquellen verdeutlichen Verständnis ist uns wichtig programming by coincidence
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrHead First Design Patterns. FALLBEISPIEL: SimUDuck
Head First Design Patterns FALLBEISPIEL: SimUDuck 1 SimUDuck Fallbeispiel aus Head First Design Patterns [1] SimUDuck: Simulationsspiel wo verschiedenen Entenarten (Stockente, Rotschopfente, Schnatterente
MehrProgrammieren II. Exkurs: Apache Maven. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Programmieren II Exkurs: Apache Maven KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Agenda Einführung in Apache Maven Was ist Apache Maven? Verwendung Einbindung in IDE APACHE
MehrFeature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Feature Modelle und ihre Anwendung Feature Modelle und ihre Anwendungen 22.07.2010 1 Software-Produktlinien Zusammenfassung mehrerer verwandter Softwaresysteme zu einer Domäne (Anwendungsgebiet) Softwaresysteme
MehrIntegration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components
Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components
MehrVerbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin
Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin 03.02.2011 Inhalt der Präsentation 1.Arbeit und Vortrag 1 2.Aktuelle Saros-Architektur
MehrProgrammieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
MehrVorkurs Informatik WiSe 16/17
Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12 bis 14.10.2016 Technische Universität Braunschweig, IPS Überblick Warum OOP? OOP
MehrInformatik II Übung 05. Benjamin Hepp 3 April 2017
Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige
MehrRefactoring Transformationen. Martin Freund Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn
Refactoring Transformationen Martin Freund bbl@upb.de Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn Gliederung 1. Transformationen-Übersicht 2. Beispiel: Methode
MehrDas Kommunikations-Problem Architekten, Entwickler und die Code-Basis Zusammenfassung
Das Kommunikations-Problem Architekten, Entwickler und die Code-Basis Zusammenfassung Miteinander, Nebeneinander, Durcheinander Kommunikation und Koordination in Softwareprojekten Kommunikation Übertragung
MehrProjektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi
Projektgruppe Thomas Kühne Komponentenbasiertes Software Engineering mit OSGi Anforderungen der PG IDSE an ein Komponenten- Client Nativer Client Web Client Alternativen IDSE Nutzer Szenario Pipe IDSE
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2007
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Sommersemester Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
MehrFeature-Komposition auf Bytecode-Ebene
Feature-Komposition auf Bytecode-Ebene Claus Hunsen Sergiy Kolesnikov Sven Apel FOSD-Treffen 2012 Feature-Komposition Quellcode-Komposition Feature-Module (Quellcode) ➊ Komposition Variante (Quellcode)
MehrErstellung eines mockbasierten Testframeworks für Saros. Philipp Cordes Masterarbeit
Erstellung eines mockbasierten Testframeworks für Saros Unit-Tests Integrationstests Akzeptanztests @Test public void test() { } assertequals(15, Math.multiply(3, 5)); über 80.000 Zeilen Code Know-how
MehrPraxisbuch Objektorientierung
Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und
MehrOO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle
OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
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
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2006 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
MehrStrategy & Decorator Pattern
Strategy & Decorator Pattern Design Patterns Nutzen Wouldn t it be dreamy if only there were a way to build software so that when we need to change it, we could do so with the least possible impact on
MehrRefactoring. Uschi Beck
Refactoring Uschi Beck uschibeck@web.de Gliederung Was ist Refactoring Definition, Einordnung in das Seminar Motivation Testen Code-Smells Katalog von Refactorings Aufbau, Beispiele Design Patterns als
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
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Mehr10. OLAPLINE-Anwendertreffen
10. OLAPLINE-Anwendertreffen 26. und 27. April 2017 Schloss Garath Düsseldorf Zwei Tage Weiterbildung und Networking integriert: Vorträge, Workshops und Erfahrungsaustausch rund um TM1 JAVA EXTENSIONS
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
MehrAspektorientierte Programmierung mit.net
Aspektorientierte Programmierung mit.net David Hahn & Viktor Steinwand 1 1. 2. 3. 4. 5. Vorgehen beim AOP 6. 7. durch AOP 8. 9. 10. 2 1. AOP ist ein mächtiges Werkzeug für den Entwickler-Werkzeugkoffer
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen Prof. Dr.-Ing. H. Ney, G. Leusch, C. Plahl, D. Stein dsal06@i6.informatik.rwth-aachen.de Einführungsveranstaltungen Informatik Sommersemester 2006 Human Language Technology
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
Mehr7. Zusammenfassung (1)
Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung
MehrAutomatisierter Java EE Entwicklungs-Lifecycle mit WebLogic Server 12c. Robin Müller-Bady Systemberater, Oracle Deutschland
Automatisierter Java EE Entwicklungs-Lifecycle mit WebLogic Server 12c Robin Müller-Bady Systemberater, Oracle Deutschland The following is intended to outline our general product direction. It is intended
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrProgrammieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
MehrAuf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...
Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung
MehrVorkurs Informatik WiSe 17/18
Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 11. bis 13.10.2017 Technische Universität Braunschweig, IPS Warum OOP? OOP mit Java
MehrThema 3 Das UML- Metamodell
SE Vertiefung Beuth-Hochschule Berlin Thema 3 Das UML- Metamodell Ecore passte auf eine Seite (c) schmiedecke 11 SE3-3-UML-Superstructure 2 http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecorel
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)
MehrModel Driven Development im Überblick
Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,
MehrModel Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften
Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Proseminarvortrag Werkzeugunterstützung für sichere Software Jens Knipper Fakultät für Informatik Technische Universität Dortmund 31.
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrEinführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.4 Felder Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.4 Felder (Vektoren, "array"s) 2.5 Verschachtelte Schleifen 2.6 "if" Anweisungen 2.7
MehrVorkurs Informatik WiSe 16/17
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrAutomatisierte Architekturanalyse unter Einsatz von UML 2.0 Modellen
Automatisierte Architekturanalyse unter Einsatz von UML 2.0 Modellen Vorstellung: Thorben Pergande Bisheriges Studium: B.Sc. Angewandte Informatik an der HAW Professoren an dieser Ausarbeitung beteiligt:
MehrTesten von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht
Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools - ein Erfahrungsbericht Martin Mühlemann CSA Engineering AG, CH-4500 Solothurn Ausgangslage Embedded-Firmware testen für ein
MehrKleine Refactoring-Muster
Diplomarbeitsvortrag Kleine Refactoring-Muster Marko Schulz ms@datenreisender.de http://datenreisender.de/da/ Überblick 0 Wieso? (davor) Fragen Muster Was sind Muster? Muster in der Softwaretechnik Refactorings
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
MehrSensIDL Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL
SensIDL Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL C. Rathfelder - Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL 1 Bildrechte: Sayda Pischinger, Creative Commons
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
MehrModellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg
Modellgetriebene Softwareentwicklung Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter: Gabriele Taentzer, Daniel Strüber Kontakt:
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
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
MehrSoftware Product Lines
Software Product Lines Concepts, Analysis and Implementation Programmier-Paradigmen für Software-Produktlinien (3/3) ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Verschiedene Exceptions Mehrere catch-anweisungen Der finally-block WS
MehrCode Beispiel: /* path element */ var el = rc.path("m l 0-50 l l 0-50 l l 0 50 l l 0 50 z");
SVG in APEX: Best Practices an Live Beispielen Tobias Arnhold Tobias Arnhold IT Consulting Heppenheim Schlüsselworte APEX, Raphaël, RaphaelJS, Visualisierung, Javascript, HTML5, SVG, UX, Design, APEX-AT-WORK
MehrBeispiel: die Klasse Brüche
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -138 Beispiel: die Klasse Brüche class Fraction { int num; Int denom; // numerator // denominator Fraction (int n, int d) { num =
MehrVorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrWerkzeugunterstützung für UML Profiles. Verteidigung des Großen Belegs Andreas Pleuß
Werkzeugunterstützung für UML Profiles Verteidigung des Großen Belegs Andreas Pleuß Aufgabenstellung Sammlung der Anforderungen an UML Profiles Untersuchung bestehender UML-CASE-Tool Unterstützung Untersuchung
MehrVisual Studio 2010 Jetzt auch für Architekten
TeamConf 2010 Visual Studio 2010 Jetzt auch für Architekten 06. Mai 2010 München Thomas Hemmer Chief Technology Officer thomas.hemmer@conplement.de Daniel Meixner Consultant daniel.meixner@conplement.de
MehrOlaf Seng Thomas Genßler Benedikt Schulz. Forschungszentrum Informatik, Karlsruhe
Olaf Seng Thomas Genßler Benedikt Schulz Einführung Grundlagen Vorgehensweise Beispiel Zusammenfassung Übersicht 2 Einführung Szenario & Probleme Hinzufügen einer neuen Funktion zu einer Komponente Erfordert
MehrThread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
MehrModellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015
Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 11. Februar 2015 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion
MehrListe MI / Liste I Programmieren in C++
Liste MI / Liste I Programmieren in C++ Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Medieninformatik WS 2007/2008 Kapitel 1-4 1 Ziele Kennenlernen einer weiteren objektorientierten
MehrSIMATIC PCS 7 V8.2 SIMIT V9. Clever kombiniert: Testen und Trainieren von Automatisierungsprojekten
SIMATIC PCS 7 V8.2 SIMIT V9 Clever kombiniert: Testen und Trainieren von Automatisierungsprojekten Frei Verwendbar Siemens AG 2016 siemens.com/process-automation Simulation Verwendung Virtuelle Inbetriebnahme:
MehrJava und Eclipse Installation, erstes Beispielprogramm
Java und Eclipse Installation, erstes Beispielprogramm Bernfried Geiger, Intellisys GmbH, Sindelfingen www.intellisys.de Jens-B. Augustiny, LIGONET GmbH, Lobsigen bei Bern www.ligonet.ch Agenda Ziele /
MehrVariablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15
MehrUniversität Hamburg, Fachbereich Informatik Übungsblatt 11 zum Praktikum. E. Betke, N. Hübbe, M. Kuhn, J. Lüttgau, J. Squar im WiSe 2018/2019
Universität Hamburg, Fachbereich Informatik Übungsblatt 11 zum Praktikum Arbeitsbereich Wissenschaftliches Rechnen C-Programmierung E. Betke, N. Hübbe, M. Kuhn, J. Lüttgau, J. Squar im WiSe 2018/2019 Einleitung
Mehrebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1
ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) 14.03.2017 Prof. Dr. Andreas Schmietendorf 1 Aufgabenstellung 14.03.2017 Prof. Dr. Andreas Schmietendorf 2 Ziele der Übung Spezifikation
MehrDeklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse
Innere Klassen in Java Java 1.0: nur top-level Klassen Seit Java Version 1.1: Innere Klassen Deklaration einer Klasse innerhalb einer anderen Klasse Illustration Eigenschaften Vorteile Anwendungsmöglichkeiten
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
Mehr