Software Engineering. 9. Refactoring und Entwurfsmuster. Franz-Josef Elmer, Universität Basel, HS 2011
|
|
- Liese Esser
- vor 8 Jahren
- Abrufe
Transkript
1 Software Engineering 9. Refactoring und Entwurfsmuster Franz-Josef Elmer, Universität Basel, HS 2011
2 Software Engineering: 9. Refactoring und Entwurfsmuster 2 Refactoring Definition: Verbesserung des Codes ohne Änderung des Verhaltens. Allgemeine Erfahrung: rotten design Code Qualität Code Qualität Zahl der Features Zeit Zahl der Features Refactoring Phasen Zeit
3 Software Engineering: 9. Refactoring und Entwurfsmuster 3 Refactoring Refactoring ist riskant, deshalb Risiko mindern durch gute Unit Test Abdeckung Immer in kleinen Schritten: Ein Refactoring Schritt Testen Nächster Refactoring Schritt Testen usw. Häufiger Wechsel zwischen Implementation eines neuen Features und Refactoring Neue Features Refactoring Zeit
4 Software Engineering: 9. Refactoring und Entwurfsmuster 4 Ziele des Refactoring Lesbarkeit des Codes erhöhen. Refactoring kann parallel zu einem Code Review erfolgen. Design verbessern (sogenannte Bad Smells beseitigen). Code so umbauen, dass es möglich ist, Unit Tests zu schreiben. Code so vorbereiten, dass neue Features implementiert werden können.
5 Software Engineering: 9. Refactoring und Entwurfsmuster 5 Reengineering Bestehende (Alt)Software (engl. legacy software) fit machen für Erweiterungen neue Umgebung Performance Optimierungen etc. Zwei Strategien: Viele kleine Schritte: Refactoring im Grossen. Zwei grosse Schritte: 1.Reverse Engineering: Von der Implementierung zurück zur Abstraktion und dem Design 2.Forward Engineering: Redesign und neue Implementierung
6 Software Engineering: 9. Refactoring und Entwurfsmuster 6 Bad Smell Bad Smells sind Stellen im Code die stinken, d.h. es gibt Probleme wegen Verstoss gegen Design Prinzipien schlecht lesbarem Code. Die wichtigsten Bad Smells: Duplizierter Code Hoher Wartungsaufwand da Änderungen überall nachgeführt werden müssen. Lange Methode Schwierig zu verstehen Schlechte Wiederverwendbarkeit Ursache von Code Duplikationen Grosse Klasse Oft schlechte Wiederverwendbarkeit da die Klasse viele verschiedene Dinge machte Ursache von Code Duplikationen Lange Parameter Liste Schwierig zu lesen Gefahr des Vertauschens bei Parametern des gleichen Typs. Switch Statements bzw. if-else-if Ketten Möglicherweise unflexibel für Erweiterungen Gleichartige Switch Statements: Code Duplikationen
7 Software Engineering: 9. Refactoring und Entwurfsmuster 7 Refactoring Katalog Katalog der verschiedenen möglichen Refactorings. Wichtigster Katalog für objekt-orientiertes Refactoring: Format: Martin Fowler et al.: Refactoring Improving the Design of Existing Code. Addison-Wesley (2000) Name Zusammenfassung: Kurze Problembeschreibung Kurze Lösungsbeschreibung Einfaches Vorher-Nachher Beispiel Motivation: Beschreibung warum und warum nicht. Mechanik: Schritt-für-Schritt Anleitung. Beispiele: Grössere(s) Beispiel(e).
8 Software Engineering: 9. Refactoring und Entwurfsmuster 8 Methode extrahieren (Extract Method) Ein Codefragment kann zusammengefasst werden. Setze das Fragment in eine Methode, deren Name den Zweck bezeichnet. void printowing(double amount) { printbanner(); //print details System.out.println ("name: System.out.println ("amount } " + _name); " + amount); void printowing(double amount) { printbanner(); printdetails(amount); } void printdetails(double amount) { System.out.println ("name: " + _name); System.out.println ("amount " + amount); }
9 Software Engineering: 9. Refactoring und Entwurfsmuster 9 Methode extrahieren (Extract Method) Motivation: Verbesserung der Lesbarkeit. Indiz: Kommentarzeile vor dem Fragment das extrahiert werden kann. Codeduplikation: Verschiedene Codefragmente tun (fast) dasselbe. Name der neuen Methode sollte selbstsprechend sein. Nicht möglich wenn mehr als eine lokale Variable im Fragment geändert wird aber danach noch benötigt wird. Mechanik: 1.Neue Methode erzeugen. 2.Zu extrahierendes Codefragment dort hin kopieren. 3.All lokalen Variablen, die gelesen werden, werden Methodenparameter. 4.Die lokale Variable, die geändert wird, wird der Rückgabewert. 5.Compiler laufen lassen und Fehler beheben. 6.Zu extrahierenden Code entfernen und durch Aufruf der neuen Methode ersetzen. 7.Compiler laufen lassen und Fehler beheben. 8.Unit Test der Klasse (besser alle Unit Tests) ausführen.
10 Software Engineering: 9. Refactoring und Entwurfsmuster 10 Methode extrahieren (Extract Method) Beispiel: void handlearguments(string[] args) { try { _width = Integer.parseInt(args[0]); } catch (Exception e) { _width = DEFAULT_WIDTH; } try { _height = Integer.parseInt(args[1]); } catch (Exception e) { _height = DEFAULT_HEIGHT; } } Refactored: void handlearguments(string[] args) { _width = getintegerargument(args, 0, DEFAULT_WIDTH); _height = getintegerargument(args, 1, DEFAULT_HEIGHT); } int getintegerargument(string[] args, int index, int defaultvalue) { try { return Integer.parseInt(args[index]); } catch (Exception e) { return defaultvalue; } }
11 Software Engineering: 9. Refactoring und Entwurfsmuster 11 Beschreibende Variable einführen (Introduce Explaining Variable) Es gibt einen komplizierten Ausdruck. Setze den Ausdruck (oder Teile) in eine lokale Variable deren Name den Zweck erklärt. if ( (platform.touppercase().indexof("mac") > -1) && (browser.touppercase().indexof("ie") > -1) && wasinitialized() && resize > 0 ) { // do something } final boolean ismacos = platform.touppercase().indexof("mac") > -1; final boolean isiebrowser = browser.touppercase().indexof("ie") > -1; final boolean wasresized = resize > 0; if (ismacos && isiebrowser && wasinitialized() && wasresized) { // do something }
12 Software Engineering: 9. Refactoring und Entwurfsmuster 12 Methode umbenennen (Rename Method) Der Name einer Methode macht ihre Absicht nicht deutlich. Ändere den Name der Methode. Customer +getinvcdlimit() Customer +getinvoicablecreditlimit()
13 Software Engineering: 9. Refactoring und Entwurfsmuster 13 Methode hochziehen (Pull Up Method) Es gibt Methoden mit identischen Ergebnissen in den Unterklassen. Verschiebe die Methoden in die Oberklasse. Superclass Superclass +method() SubclassA +method() SubclassB +method() SubclassA SubclassB
14 Software Engineering: 9. Refactoring und Entwurfsmuster 14 Refactoring in IDEs Viele integerierte Entwicklungsumgebungen (IDEs) unterstützen automatisches Refactoring. Vorteile: Einfach und schnell Zuverlässig High-level source code editing Nachteile: Unzuverlässig Unerwartete Seiteneffekte
15 Software Engineering: 9. Refactoring und Entwurfsmuster 15 Entwurfsmuster (engl. Design Patterns) Gute Lösungen (auf der Basis von Designprinzipien) für immer wieder auftretende Entwurfsprobleme. Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. Christopher Alexander 1977 Bilden ein Vokabular, das Entwickler benutzen, um über Design zu diskutieren (pattern language). Es gibt verschiedene Kataloge von Entwurfsmuster: Allgemeine für objektorientierte Programmierung. Spezielle für bestimmte Fachdomänen. Für Architekturmuster. Für Idiome, die spezifisch für eine Programmiersprache sind. Was Entwurfsmuster nicht sind: Algorithmen Code Kochrezepte um Code zu generieren. Achtung: Falsch eingesetzte Entwurfsmuster schaden!
16 Software Engineering: 9. Refactoring und Entwurfsmuster 16 Gang of Four and POSA Der einflussreichste Musterkatalog ist das Buch der sogenannten Gang of Four (GoF): E. Gamma, R. Helm, R. Johnson, und J. Vlissides: Design Patterns - Elements of Reusable Object-Oriented Software, (Addison-Wesley, 1995) Die GoF Entwurfsmuster sind das Grundvokabular für objektorientiertes Design. Ebenfalls einflussreich ist POSA: F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal: Pattern-Oriented Software Architecture A System of Patterns, (Addison-Wesley, 1996) Der Schwerpunkt bei POSA sind Architekturmuster.
17 Software Engineering: 9. Refactoring und Entwurfsmuster 17 Beschreibungsschema Die Beschreibung eines Entwurfsmuster folgt einem bestimmten Schema. Es gibt verschiedene Varianten dieses Schema. Das GoF Schema: Name des Musters Zweck Alternative Namen Motivation Anwendbarkeit Struktur Beteiligte Klassen Zusammenarbeit Konsequenzen Implementierung Beispielcode Bekannte Beispiele Verwandte Muster
18 Software Engineering: 9. Refactoring und Entwurfsmuster 18 Architekturmuster Layers Pipes and Filters Model-View-Controller
19 Software Engineering: 9. Refactoring und Entwurfsmuster 19 Architekturmuster: Layers The Layers architectural pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction. POSA(31) Layer 4 Layer 3 Layer 2 Layer 1 höchste Abstraktion niedrigste Abstraktion
20 Software Engineering: 9. Refactoring und Entwurfsmuster 20 Layers: Beispiele OSI / ISO Schichtenmodell für Kommunikation: Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Java Applikation: Java Programm Java Virtuelle Maschine Betriebssystem
21 Software Engineering: 9. Refactoring und Entwurfsmuster 21 Layers: Regeln 1. Jede Schicht ist unabhängig von den darüber liegenden Schichten. 2. Jede Schicht ist ein Service für die darüberliegende Schicht. 3. Der Zugriffe auf die darunterliegende Schicht erfolgt über eine Schnittstelle. 4. Strict Layering: Eine Schicht darf nur auf die unmittelbar darunterliegende Schicht zugreifen. 5. Layer Bridging: Eine Schicht darf auf alle niederen Schichten zugreifen. Layer 3 Layer 2 Layer Bridging Layer 1
22 Software Engineering: 9. Refactoring und Entwurfsmuster 22 Dreischichtenarchitektur Grundarchitektur für viele Anwendungen: Präsentationsschicht Fachschicht Datenschicht Präsentationsschicht (Benutzeroberfläche) behandelt Benutzereingaben und präsentiert Daten. Aus- und Eingabe via Konsole oder Graphical User Interface (GUI) als fat client (z.b. mit Java Swing) oder als thin client mit HTML Fachschicht (Business Logic) behandelt fachliche Aspekte. Semantische Validierungen Berechnungen Datenschicht (Infrastrukturschicht, Data Access Layer) behandelt das Laden und Speichern der Daten. Integration Nachrichtensystem Sicherheit
23 Software Engineering: 9. Refactoring und Entwurfsmuster 23 Architekturmuster: Pipes and Filters The Pipes and Filters architectural pattern provides a structure for systems that process a stream of data. Each processing step is encapsulated in a filter component. Data is passed through pipes between adjacent filters. Recombining filters allows you to build families of related systems. POSA(53) Filter 1 Filter 2 Filter 3 Input Pipes Output
24 Software Engineering: 9. Refactoring und Entwurfsmuster 24 Pipes and Filters: Beispiel Unix: Verkettung einfacher Programme (Filter) über die textuelle Ein- und Ausgabe mittels dem Pipe-Symbol ' '. Compiler: Beispiel: Liste alle Java Source Code Dateien eines Verzeichnisses nach der Zahl der Codezeile. wc *.java sort -n awk '/.+java/ {print $1 "\t" $4}' Parser Optimizer Code Generator Source Code Abstract Syntax Tree Binärer Code
25 Software Engineering: 9. Refactoring und Entwurfsmuster 25 Pipes and Filters Jeder Filter ist eine Black-Box mit einer definierten Schnittstelle der Datenübertragung und des Datenformats. Filter sind beliebig kombinierbar und austauschbar, sofern die Schnittstellen und Datenformate zusammenpassen. Einfache Filter sind besser kombinierbar. Filter kann Daten filtern anreichern umwandeln Filter können die Daten am Stück verarbeiten oder häppchenweise (Streaming). Pull Prinzip: Filter holen die Daten aktiv aus der Pipe. Push Prinzip: Pipe schiebt aktiv die Daten in den Filter. Pipes können synchron oder asynchron arbeiten. Im letzteren Fall sind sie oft Warteschlangen.
26 Software Engineering: 9. Refactoring und Entwurfsmuster 26 Pipes and Filters Sequenzdiagramm mit zwei Filter im Pull-Prinzip: Datenquelle Filter1 Pipe Filter2 Datensenke read() read() Daten write() read() Daten Daten write() write() read()
27 Software Engineering: 9. Refactoring und Entwurfsmuster 27 Architekturmuster: MVC The Model-View-Controller architectural pattern (MVC) divides an interactive application into three components. The model contains the core functionality and data. Views display information to the user. Controllers handle user input. Views and controllers together comprise the user interface. A change-propagation mechanism ensures consistency between the user interface and the model. POSA(125) View 1 View 2 Presentation Layer Controller View Model blau = 15 rot = 7 grün = 18 Model
28 Software Engineering: 9. Refactoring und Entwurfsmuster 28 Model View Controller Model: Daten und Business Logik Wichtig: Model ist unabhängig von Controller und View Definiert Schnittstelle für Daten lesen Daten manipulieren und Datenverarbeitung initiieren (synchron oder asynchron) Data Changed Listener an- bzw. abmelden View: Präsentation der Daten (oder eines Teiles davon) als Grafik und/oder Text Datenausgabe Abhängig vom Model: Registriert sich als Data Changed Listener beim Model Liest Daten aus dem Model Spezifisch für ein bestimmtes Model Controller: Steuerung von Model und View durch Benutzerinteraktionen Dateneingabe Abhängig vom Model: Datenmanipulation und -verarbeitung Beeinflusst Zustand der View Oft starke Kopplung zwischen View und Controller
29 Software Engineering: 9. Refactoring und Entwurfsmuster 29 Model View Controller: Beispiel Java Swing Library, z.b. JTree: Model(s): TreeModel, SelectionModel View(s): TreeCellRenderer, TreeCellEditor Controller: TreeUI
30 Software Engineering: 9. Refactoring und Entwurfsmuster 30 Model View Controller: Klassendiagramm Generisches Klassendiagramm: Controller * * View +datachanged() 1 Model -data: Data +getdata():data +manipulate(d:somedata) 1 * «Interface» DataChangedListener +datachanged()
31 Software Engineering: 9. Refactoring und Entwurfsmuster 31 Model View Controller: Push Prinzip :Controller :Model v1:view v2:view user input analyse input manipulate() do some data processing datachanged() DataChangedListener getdata() repaint datachanged() DataChangedListener repaint data getdata() data
32 Software Engineering: 9. Refactoring und Entwurfsmuster 32 Model View Controller: Variationen Keine Trennung zwischen View und Controller. View kennt Controller nicht, aber umgekehrt. View und Controller sind beide voneinander unabhängig. Client-Server System: Fat Client Thin Client Client Controller View ControllerClient ViewClient Server Model ControllerServer Model ViewServer DataChangedListener: Hat meist einen anderen Namen Übermittelt welche Daten geändert wurden Fehlt bei Web Applikationen, da dort Datenübermittlung nach dem Pullund nicht nach dem Push-Prinzip erfolgt.
33 Software Engineering: 9. Refactoring und Entwurfsmuster 33 Links Refactoring Home Page Joel Spolsky: Rub a dub dub (2002) Eine Geschichte von erfolgreichem Refactoring (nicht in Java) James W. Cooper: The Design Patterns Java Companion Portland Pattern Repository Linda Rising - Patterns Almanac Buchtipp: GoF Patterns lernen mit grossem Unterhaltungswert Eric Freeman, Elisabeth Freemna, Kathy Sierra: Head First Design Patterns (2004)
Software Engineering. 10. Entwurfsmuster. Franz-Josef Elmer, Universität Basel, WS 2006/07
Software Engineering 10. Entwurfsmuster Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering: 10. Entwurfsmuster 2 Entwurfsmuster (engl. Design Patterns) Definition: A Bewährte Codevorlagen
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrEINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC
EINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC 10. Informatik-Tag, HTWM Dipl.-Inf. Chris Hübsch, ARC Solutions GmbH Inhalt 1. ARC Solutions 2. REMARC 3. Design Patterns 4. Patterns
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Testing
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Testing Assoziationen / Datentransferobjekte (DTO) Testing Refactoring GUIs Tk toolkit
MehrModel View Controller Pattern
Christian Vogt HAW Hamburg 19. Dezember 2011 Inhaltsverzeichnis 1 Prolog Einleitung Entwurfsmuster andere Muster 2 Model-View-Controller Hintergrund Konzept Umsetzung 3 Beispiele Überblick Beispiel in
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrNeues aus dem 52 North WPS Projekt. Benjamin Proß, FOSSGIS, 20.03.2014
Neues aus dem 52 North WPS Projekt Benjamin Proß, FOSSGIS, 20.03.2014 Überblick Aktuelle Entwicklungen im WPS Testing WPS 2.0 Neues aus dem 52 North WPS Projekt 2 Der 52 North WPS Version 3.2.0 Unterstützt
MehrSecurity Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08
Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrSoftware Engineering. 4. Unit Testing und Refactoring. Franz-Josef Elmer, Universität Basel, HS 2007
Software Engineering 4. Unit Testing und Refactoring Franz-Josef Elmer, Universität Basel, HS 2007 Software Engineering: 4. Unit Testing und Refactoring 2 Unit Testing Unit Test: Automatischer Test welcher
MehrPHP - Projekt Personalverwaltung. Erstellt von James Schüpbach
- Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6
MehrDrucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC
Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC Progwerkstatt Philipp Güttler, Christoph Schied, Nicolai Waniek 01.12.2008 Seite 2 Drucken Drucken ist eigentlich ganz einfach...
MehrMusterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9
Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung
MehrMatrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
MehrDesign Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi
Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster
MehrSession Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de
s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful
MehrObjectBridge Java Edition
ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente
MehrImplementation of a Framework Component for Processing Tasks within Threads on the Application Level
Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation
MehrÜbung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter
Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster
MehrCopyright 2014 Delta Software Technology GmbH. All Rights reserved.
Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für
MehrFragen 2015. Arthur Zaczek. Apr 2015
Arthur Zaczek Apr 2015 1 Ihre Fragen 2015 2 WPF 2.1 Code Behind Mit dem MVVM Pattern haben wir praktisch keinen Nutzen für das Code Behind der WPF Forms, sind diese dann eher für kleinere Applikationen
MehrBekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen
Michael Saecker Bekannte Lösungen für bekannte Probleme benutzen Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen Gemeinsames Vokabular für Designer 2 http://www.clickpix.de/sommer/architektur.jpg
MehrInhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen
...we make the invisible visible... 1 Inhalt Fragestellungen Analysen und deren Anwendung Erfahrungen 2 Projektleiter Hat unsere Software eine klare, verständliche Struktur? Gibt es problematischen Code,
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrUnsere Webapplikation erweitern
Unsere Webapplikation erweitern Um die Webapplikation zu benutzen: 1. Starten Sie den Server, indem Sie das Hauptprogramm in der Klasse ImdbServer starten. 2. Laden Sie im Browser die Seite http://localhost:8080/html/index.html.
MehrNetzwerktechnologie 2 Sommersemester 2004
Netzwerktechnologie 2 Sommersemester 2004 FH-Prof. Dipl.-Ing. Dr. Gerhard Jahn Gerhard.Jahn@fh-hagenberg.at Fachhochschulstudiengänge Software Engineering Software Engineering für Medizin Software Engineering
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrLizenzierung von SharePoint Server 2013
Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
Mehr8 Design Patterns. Events
8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrS7-Hantierungsbausteine für R355, R6000 und R2700
S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über
MehrGATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics - 08.05.2008)
GATE General Architecture for Text Engineering Alexander Hein & Erik Dießler (VL Text Analytics - 08.05.2008) Überblick GATE Die Idee Die Architektur Was noch - JAPE / DIFF / GUK ANNIE Einige Beispiele
MehrStep by Step Softwareverteilung unter Novell. von Christian Bartl
Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen
Mehr-> Dringende Empfehlung: Das Upgrade direkt am TelevisGo vorort vornehmen!
TelevisGO Upgrade Autor: Jörg Oehme Datum: Dez15 Das Wichtigste vorab: -> Dringende Empfehlung: Das Upgrade direkt am TelevisGo vorort vornehmen! Auslieferzustand: = 192.168.1.50
MehrGEONET Anleitung für Web-Autoren
GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden
MehrAnleitung für die Formularbearbeitung
1 Allgemeines Anleitung für die Formularbearbeitung Die hier hinterlegten Formulare sind mit der Version Adobe Acrobat 7.0 erstellt worden und im Adobe-PDF Format angelegt. Damit alle hinterlegten Funktionen
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrDer SAP BW-BPS Web Interface Builder
Der SAP BW-BPS Web Interface Builder Projekt: elearning SAP BPS Auftraggeber: Prof. Dr. Jörg Courant Gruppe 3: Bearbeiter: Diana Krebs Stefan Henneicke Uwe Jänsch Andy Renner Daniel Fraede Uwe Jänsch 1
MehrRefaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs. Verteidigung der Bachelorarbeit von Arndt Tigges
Refaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs Verteidigung der Bachelorarbeit von Arndt Tigges Überblick Einleitung Saros Refaktorisierung Durchführung Analysen Anwendung
MehrEin wichtiges Konzept der Software-Architektur
Ein wichtiges Konzept der Software-Architektur Dr. Peer Kröger, Arthur Zimek Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Programmierpraktikum Wintersemester 2007/08
MehrJava und XML 2. Java und XML
Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrZAHLUNGSAVIS. Im Zahlungsprogrammteil automatisch erstellen
DIBU GS/XP Finanzbuchhaltung Erweiterung ZAHLUNGSAVIS Im Zahlungsprogrammteil automatisch erstellen Seite - 1 - von 8 Seite(n) Stand März 2005-03-28 Technische Hinweise: Geänderte Programme FIZAHL1, FIZAHL2,
MehrDer lokale und verteilte Fall
Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf
MehrJ.6 Programmierung eingebetteter Systeme
Vorteile von C in eingebetteten Systemen: leichter Zugriff auf die Hardware gute Kontrolle über die verwendeten Ressourcen (Speicher, CPU) Probleme mit C: stark eingeschränkte Laufzeitüberprüfungen ISO
Mehr2) Geben Sie in der Anmeldemaske Ihren Zugangsnamen und Ihr Passwort ein
Kurzanleitung für die Nutzung der Bildergalerie Zugangsdaten zur Bildergalerie des Imkervereins Weinsberg Um einen namentlichen Benutzerzugang zur Bildergalerie des Imkervereins Weinsberg zu erhalten (http://bilder.imker-weinsbergertal.de)
MehrDokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser
Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrAdvoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrKonfiguration des Novell GroupWise Connectors
Konfiguration des Novell GroupWise Connectors Installation und Konfiguration Version 2013 Spring Release Status: 09. März 2013 Copyright Mindbreeze Software GmbH, A-4020 Linz, 2013. Alle Rechte vorbehalten.
MehrAutoTexte und AutoKorrektur unter Outlook verwenden
AutoTexte und AutoKorrektur unter Outlook verwenden Die Hilfsmittel "AutoKorrektur" und "AutoTexte", die schon unter Microsoft Word das Arbeiten erleichtern, sind natürlich auch unter Outlook verfügbar.
MehrScala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrMatrix42. Matrix42 Cloud Trial Erste Schritte. Version 1.0.0 03.02.2016 - 1 -
Matrix42 Matrix42 Cloud Trial Erste Schritte Version 1.0.0 03.02.2016-1 - Inhaltsverzeichnis 1Einleitung 3 2Cloud Trial Steuerung 4 2.1 Starten der Cloud-Umgebung 4 2.2 Bedienen der Maschinen in der Cloud
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen
Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig
MehrThemen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services
Themen Web Services und SOA Wer kennt den Begriff Web Services? Was verstehen Sie unter Web Services? Die Idee von Web Services Ausgangspunkt ist eine (evtl. schon bestehende) Software Anwendung oder Anwendungskomponente
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrWiederholung: Beginn
B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben
MehrErweiterung AE WWS Lite Win: AES Security Verschlüsselung
Erweiterung AE WWS Lite Win: AES Security Verschlüsselung Handbuch und Dokumentation Beschreibung ab Vers. 1.13.5 Am Güterbahnhof 15 D-31303 Burgdorf Tel: +49 5136 802421 Fax: +49 5136 9776368 Seite 1
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrSmartDispatch DMR-Dispatcher. Bestellablauf. SmartDispatch-Bestellablauf V1.0
DMR-Dispatcher Bestellablauf SmartDispatch-Bestellablauf V1.0 2012 Hytera Mobilfunk GmbH 31848 Bad Münder, Deutschland Änderungen vorbehalten. Daten ohne Toleranzangabe sind nicht verbindlich. Verschlüsselungseigenschaften
MehrGEVITAS Farben-Reaktionstest
GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl
MehrBarcodedatei importieren
Barcodedatei importieren Inhaltsverzeichnis 1 Schnittstelle Barcodedatei importieren... 2 1.1 Funktion... 2 1.2 Konfiguration... 2 1.2.1 Lizenz... 2 1.2.2 Einstellungen... 2 1.2.3 Vorarbeiten... 3 1.2.3.1
MehrMelde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei
Seite 1 Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei Seite 2 1 Inhalt Melde- und Veröffentlichungsplattform Portal... 1 (MVP Portal)... 1 Hochladen einer XML-Datei...
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrBenutzung der LS-Miniscanner
Benutzung der LS-Miniscanner Seit Januar 2010 ist es möglich für bestimmte Vorgänge (Umlagerungen, Retouren, Inventur) die von LS lieferbaren Miniscanner im Format Autoschlüsselgröße zu benutzen. Diese
MehrWorkshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
MehrSUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER
SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER INHALTSVERZEICHNIS Inhaltsverzeichnis... 2 Symbolverzeichnis... 3 Was ist GPP?... 4 Parameternamen... 4 Parameterformat und -größe... 4 Unterstützte
MehrBenutzerhandbuch - Elterliche Kontrolle
Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü
MehrProgrammieren I. Kapitel 15. Ein und Ausgabe
Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick
MehrFlash Videos einbinden
Flash Videos einbinden Im Kapitel Videos einbinden ( - ) haben Sie gesehen, wie man einfach und ohne Zusatzprogramme kleine Videoclips auf seiner einbinden kann. Ich persönlich würde jedem dieses Verfahren
MehrSpeicher in der Cloud
Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG
MehrDatenmanagement in Android-Apps. 16. Mai 2013
Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer
MehrEJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de
EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.
MehrPraktikum: Einstieg: Arbeitsplatz, JCreator
Modul OPR Praktikum: Einstieg: Arbeitsplatz, JCreator Aufgabe 1 Richten Sie Ihren OPR-Arbeitsplatz ein: Java-Tool JCreator (nur lauffähig machen!) ->Erklärungen kommen später! Wie funktioniert Java? Der
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
MehrATHOS Benutzertreffen
ATHOS Benutzertreffen Report of the Lab Glashütten, 10. November 2010 HighQSoft GmbH, Karst Schaap karst.schaap@highqsoft.de www.highqsoft.de / www.highqsoft.com 10 November 2010-1 Themen Aktueller Stand
MehrA. Ersetzung einer veralteten Govello-ID ( Absenderadresse )
Die Versendung von Eintragungsnachrichten und sonstigen Nachrichten des Gerichts über EGVP an den Notar ist nicht möglich. Was kann der Notar tun, um den Empfang in seinem Postfach zu ermöglichen? In zahlreichen
MehrLizenzierung von SharePoint Server 2013
Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe
MehrThermoguard. Thermoguard CIM Custom Integration Module Version 2.70
Thermoguard Thermoguard CIM Custom Integration Module Version 2.70 Inhalt - Einleitung... 3 - Voraussetzungen... 3 - Aktivierung und Funktion der Schnittstelle... 3 - Parameter... 4 - NLS-Einfluss... 4
MehrKonfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung
Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Inhalt 1. Einleitung:... 2 2. Igel ThinClient Linux OS und Zugriff aus dem LAN... 3
MehrSoftwareentwicklungsprozess im Praktikum. 23. April 2015
Softwareentwicklungsprozess im Praktikum 23. April 2015 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit
MehrTechnical Note 0606 ewon
PCE Deutschland GmbH Im Langel 4 59872 Meschede Telefon: 02903 976 990 E-Mail: info@pce-instruments.com Web: www.pce-instruments.com/deutsch/ Technical Note 0606 ewon M2Web - 1 - Inhaltsverzeichnis 1 Allgemeines...
MehrWie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Einleitung Es kommt vor, dass im Handel Disketten angeboten werden, die Styles und Registrationen
MehrCode wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015
Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum
Mehr