Softwarearchitektur-Management
|
|
|
- Wolfgang Schmitz
- vor 8 Jahren
- Abrufe
Transkript
1 Kontrolle über Architekturerosion durch Softwarearchitektur-Management Thomas Schoen hello2morrow GmbH, Software-Tomography GmbH 1
2 Innere (technische, strukturelle) Softwarequalität Wie gut ist die Software gebaut? zur Sicherstellung von Verstehbarkeit Änderbarkeit Erweiterbarkeit Wiederverwendbarkeit Testbarkeit Software-Architektur 2
3 Innere (technische, strukturelle) Softwarequalität Wie gut ist die Software gebaut? Die Antwort steht im Sourcecode! 3
4 Softwarearchitektur Stimmt der Architekturentwurf (Soll-Architektur) mit den Strukturen der implementierten Software (IST-Architektur) überein? 4
5 Was bedeutet "Softwarearchitektur"? Eine Softwarearchitektur definiert die grundlegenden Komponenten und deren Zusammenspiel innerhalb eines Softwaresystems. Diese Komponenten bilden eine Zerlegung des Gesamtsystems. Jedes Code-Artefakt (z.b. Datei) ist einer Architekturkomponente eindeutig zugeordnet. Der Architekturentwurf ist eine wesentliche (kritische und wichtige) Softwaredesign- Entscheidung. Sie wird in einem sehr frühen Projektstadium getroffen und ist später nur mit hohem Aufwand änderbar. Beim Architekturentwurf sind Kriterien entscheidend wie Erweiterbarkeit, Wartbarkeit, Wiederverwendbarkeit aber auch Stabilität, Fehlertoleranz, Performanz. 5
6 Architektur-Erosion Die IST-Struktur/Architektur des Projektcodes stimmt immer weniger mit der geplanten Architektur (SOLL-Architektur) überein Softwaresysteme erodieren zunehmend über die Projektlebensdauer Ein automatischer Prozess Gründe für Architektur-Erosion Zeitdruck führt zu Abkürzungen, die später nie durch saubere Lösungen ersetzt werden Verständnis/Wissen über das System und Projekterfahrung sind nicht überall im Team in gleicher Weise vorhanden. Verschärftes Problem -> Outsourcing Hacks: Architekturelle Vorgaben werden beim Implementieren ignoriert oder umgangen. Architekturverletzende Abhängigkeiten entstehen oft unbemerkt und bleiben dies auch für längere Zeit. Kopplungsgrad und Komplexität wachsen im Projekt oft schneller als man erwartet. Wenn man es bemerkt und den Überblick verliert, gibt es oft keinen Weg zurück. Dem Projektmanagement ist die innere Softwarequalität oft nicht wichtig: Black Box; wirkt sich erst mit Verzögerung aus; Zusammenhang oft unklar Es ist nicht möglich, alle Architekturverletzungen in einem Softwaresystem manuell zu erkennen. 6
7 Architektur-Erosion Symptome Symptome Hoher Kopplungsgrad Viele Zyklen 7
8 Technisch Architektur-Erosion Wieso ist das ein Problem? Systeme werden immer schwerer zu warten Verstehbarkeit Testbarkeit Seiteneffekte bei Änderungen/Erweiterungen Ökonomisch Es wird immer teurer Systeme zu warten, bis es ökonomisch nicht mehr sinnvoll ist. Forderung nach Redesign -> Neuimplementierung Ein Hauptgrund für überzogene Projekt- und Wartungsbudgets 8
9 Kosten durch Architektur-Erosion Kosten einer Erweiterungsmassnahme Steigen in architekturkonformen Systemen während des Lebenszyklus nur geringfügig. Steigen in erodierten Systemen mit Lebensdauer (und Fortschritt des Erosionsprozesses) kontinuierlich und deutlich an. Erodierte Systeme sind schwerer verstehbar und verursachen viele Seiteneffekte Dadurch dauert die Implementierung einer Erweiterung länger und wird teurer. Dadurch werden bei der Implementierung mehr Fehler eingeschleppt. Diese verursachen zusätzliche Kosten. Die Kosten unterscheiden sich häufig um mehr als den Faktor 2. Kosten für Erweiterung Erweiterungsmassnahme erodiertes System Erweiterungsmassnahme architekturkonformes System 0 Projekt-Lebensdauer 9
10 Softwarearchitektur-Management Definition SOLL-Architektur Analyse IST-Architektur Abgleich von SOLL / IST- Architektur Anpassung / Erweiterung Architekturentwurf Planung der Code-Restrukturierung Regelmässig: Architekturmonitoring Werkzeugunterstützung Architekturverifikation am Entwicklerarbeitsplatz Implementierung 10
11 Statische Codeanalyse Welche Informationen kann ein Werkzeug aus dem Code herauslesen? Duplizierte Codeblöcke Verstöße gegen Codierungsregeln Verletzung von Namenskonventionen Entartete Objekte (zu große/kleine Methoden, Klassen, Packages) Besonders komplexe Objekte (zyklomatische Komplexität) Stark gekoppelte Objekte Ungenutzte Codesegmente Verstöße gegen OO-Prinzipien (entartete Vererbung, direkter Class- Member-Zugriff) Zyklische Abhängigkeiten auf Klassen-/Package-/Architekturebene Verletzung von Komponenten-Schnittstellen Architekturverletzungen (Verstöße gegen eine vorgegebene Softwarearchitektur) 11
12 Strukturanalyse des Quellcodes Werkzeuggestützte Statische Codeanalyse Im Code identifizierbare Artefakte Typen (Klassen, Interface-Klassen, Structs, Unions) Methoden, Attribute Funktionen, Variabeln Source Dateien, Directories Java Packages, C# Namespaces Code Referenzen 12
13 Abhängigkeiten / Benutzungsbeziehungen Abhängigkeiten zwischen beliebigen Artefakten: Vererbungsbeziehungen Call-Referenzen (Aufrufbeziehungen); auch polymorphe Lesezugriff auf Attribute/Variabeln Schreibzugriff auf Attribute/Variabeln Typverwendung bei der Definition von Attributen Beliebige andere Benutzung von Typen/Klassen 13
14 Aggregation auf höhere Abstraktionsebnen: Analyse auf Symbolebene LOC Symbole 14
15 Aggregation auf höhere Abstraktionsebnen: Analyse auf Klassen/Dateiebene Klassen 15
16 Aggregation auf höhere Abstraktionsebnen: Analyse auf Paket/Verzeichnisebene 250 Packages 16
17 Aggregation auf höhere Abstraktionsebnen: Analyse auf Subsystemebene 20 Subsysteme 17
18 Aggregation auf höhere Abstraktionsebnen: Subsystemschnittstellen 18
19 Definition einer Softwarearchitektur Beispiel Schichtenmodell Strikte Schichtung durchbrochen (optional) Fachebene 2 Fachebene 1 Allgemeine Funktionen Aufwärtsreferenz zwischen vertikalen Schnitten Oberfläche Verletzung von Schnittstellen Schnittstelle Fachlogik Aufwärtsreferenz Datenhaltung Illegale Benutzungsbeziehungen: 19
20 Verfolgung illegaler Beziehungen: Zoomen bis in den Code Aufwärts-Referenzen Referenzen zwischen Schichten zwischen Subsystemen zwischen Packages zwischen Klassen/Dateien Bis zum Sprung an die entsprechende Quellcode-Stelle 20
21 Zyklische Strukturen LEVEL Element A 3 Element A Element B 2 Element B Element C 1 Element C cyclic acyclic 21
22 Nachteil zyklischer Strukturen LEVEL Element A 3 Element A Element B 2 Element B Element C 1 Element C cyclic acyclic Verstehbarkeit der Funktionalität/Rolle einer einzelnen Komponenten Testbarkeit einzelner Komponenten Wiederverwendbarkeit eingeschränkt Eine Impact Analyse ist problematisch und unsicher Isolierte Fehlerbehebung in einer Komponente nicht möglich 22
23 Praxisbeispiel: zyklische Struktur Erfahrung in grossen Projekten zeigt dass Zyklen die Wartbarkeit deutlich verschlechtern. erodierte Systeme durch das systematische Aufbrechen von Zyklen wieder wartbar gemacht werden können. 23
24 Vermeidung von zyklischen Strukturen Large-Scale C++ Software Design, John Lakos,1996: Cyclic physical dependencies in large, low-level subsystems have the greatest capacity to increase the overall cost of maintaining a system Cyclic physical dependencies among components inhibit understanding, testing and reuse Agile Software Development, Robert C. Martin, 2003: The dependencies between packages must not form cycles. Forderung für Software-Architekturmanagement Keine zyklischen Strukturen im Architekturentwurf Zyklen auf Packageebene möglichst vermeiden insbesondere über Subsystemgrenzen hinweg 24
25 Erfolgsfaktoren für Software-Architekturmanagement Unterstützung durch das Management Einen/mehrere Verantwortliche im Projekt Entwurf einer vollständigen, zyklenfreien Softwarearchitektur vor der Implementierungsphase Konsistenz zwischen Architektur- und physischer Codeebene: Package/Namespace-Strukturen, Namensschema Vernünftige Granularität der Codeeinheiten: Z.B. Packagegrösse Einsatz leistungsfähiger Werkzeuge zur Architekturanalyse Regelmässiges Monitoring der aktuellen Architektur Trendvergleich: Übersicht der Entwicklung der Architekturtreue über verschiedene Versionsstände hinweg Kontinuierliche Reparatur von Architekturverletzungen: Stoppen der Architekturerosion 25
26 26
Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen
...we make the invisible visible... Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen 1 Inhalt Qualitätsbegriff und Qualitätsmodelle Abstraktion Analysen und deren Anwendung Erfahrungen
Di 5.2. Kontrolle über Architekturerosion und Codequalität bei 40 Mio Java LOC. Harald Doderer Thomas Schoen
Di 5.2 January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich Kontrolle über Architekturerosion und Codequalität bei 40 Mio Java LOC Harald Doderer Thomas Schoen Kontrolle über
Langlebige Softwarearchitekturen
Langlebige Softwarearchitekturen Dr. Carola Lilienthal [email protected] www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Die zwei Architekturziele für diesen Vortrag Architekturziel 1:
Thomas Schoen hello2morrow GmbH. Six-Sigma für Software Architekten
Thomas Schoen hello2morrow GmbH Six-Sigma für Software Architekten Komplexität kann leicht außer Kontrolle geraten 2010 hello2morrow GmbH 2 Was ist technische Softwarequalität? Technische (interne, strukturelle)
...we make the invisible visible... Qualitätsanalyse, Code Comprehension und Reengineering
...we make the invisible visible... Qualitätsanalyse, Code Comprehension und Reengineering 1 Statische Software Analyse From Wikipedia, the free encyclopedia Static analysis is the analysis of computer
Ziele und Tätigkeiten von Architekten
Ziele und Tätigkeiten von Architekten Definition Software Architektur o A software architecture provides a model of a whole software system that is composed of internal behavioral units (i.e. components)
Continuous Architecture Management
Continuous Architecture Management Erkennen und Verhindern von struktureller Erosion Ingmar Kellner hello2morrow GmbH Mai 2012 Agenda Motivation des Software Architekten Ursachen und Folgen struktureller
Continuous Architecture Management
Continuous Architecture Management Erkennen und Verhindern von struktureller Erosion Ingmar Kellner hello2morrow GmbH April 2012 How to draw the architecture of your system http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef016764fffd81970b-pi
Inhalt. 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,
Keine technischen Schulden mehr!
News- Client Produkte- Client Frontend... Frontend Produkte News Topthemen Produkte Bestellungen Abo-Daten tägl. Kunden Bestellungen Produkte Browser tägl. http Such-Ergebnisse Login, Abo-Daten idesk -
Nachhaltigkeit durch regelmäßige Architekturprüfung Software-Architekturen überprüfen und erhalten
Nachhaltigkeit durch regelmäßige Architekturprüfung Software-Architekturen überprüfen und erhalten Dr. Carola Lilienthal, Henning Schwentner {cl,hs}@c1-wps.de OOP 2012, ICM International Congress Center,
Validierung von SW-Architekturen - Erfahrungen beim Einsatz des Sotographen Dr. Carola Lilienthal Carola.Lilienthal@workplace-solutions.
Validierung von SW-Architekturen - Erfahrungen beim Einsatz des Sotographen Dr. Carola Lilienthal [email protected] www.workplace-solutions.de //// Hans-Henny-Jahnn-Weg 29 //// 22085
Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++
Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen
Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen
I " t3ildungsmedien Informatik Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen Hansruedi Tremp und Markus Ruggiero Application
15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595
Überblick 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML und Java 15.8 Zusammenfassung 15 Unified
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
11. Komponenten Grundlagen der Programmierung 1 (Java)
11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung
Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
Creational 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
UML (Unified Modelling Language) von Christian Bartl
UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...
Kontinuierliche Architekturanalyse. in 3D
Kontinuierliche Architekturanalyse in 3D Stefan Rinderle Bachelor an der HS Karlsruhe Master "Software Engineering" in München / Augsburg Seit 2013 bei Payback 2 Software-Visualisierung Visualisierung
3-Tier-Architecture und J2EE
3-Tier-Architecture und J2EE Oliver Müller Seminar Software-Entwurf WS 2004/05 3-Tier, was war das noch gleich? NEIN, das nicht!!! 2 Die Lage - Applikationen laufen
Software-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
Softwaretest von verteilten Echtzeitsystemen im Automobil anhand von Kundenspezifikationen
Softwaretest von verteilten Echtzeitsystemen im Automobil anhand von Kundenspezifikationen S. Jovalekic 1), G. Martinek 1), Th. Okrusch 2) 1), 73458 Albstadt 2) Robert Bosch GmbH, Abstatt Gliederung Einleitung
Erfahrungen mit kontinuierlichem Architektur- und Qualitätsmonitoring in einer großen Anwendungsfamilie im Bankenumfeld
Di 11 Erfahrungen mit kontinuierlichem Architektur- und Qualitätsmonitoring in einer großen Anwendungsfamilie im Bankenumfeld Joachim Baumann Walter Bischofberger Organized by: Lindlaustr. 2c, 53842 Troisdorf,
Objektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum
FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Software-Refactoring. 27. Mai 2015
Software-Refactoring 27. Mai 2015 Ü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
Vorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 9. Schichtenarchtitektur: Teil 1 (Datenhaltung)
vii Inhaltsverzeichnis 1 Einleitung 1
vii 1 Einleitung 1 1.1 Softwarearchitektur als Disziplin im Software Engineering........ 2 1.2 isaqb International Software Architecture Qualification Board.......... 4 1.3 Certified Professional for Software
Reengineering und Refactoring von Softwarearchitekturen
Methodische und Praktische Grundlagen der Informatik 3 Reengineering und Refactoring von Softwarearchitekturen Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik WS 2008/2009 Lernziele?
Softwarequalität: Einführung. 15. April 2015
Softwarequalität: Einführung 15. April 2015 Überblick Warum ist Softwarequalität wichtig? Was ist Softwarequalität? Wie erreicht man Softwarequalität? Taentzer Softwarequalität 2015 8 Berühmte Software-Fehler
16 Architekturentwurf Einführung und Überblick
Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software
Inhaltsverzeichnis.
Wegweiser durch das Buch 1 1 Problembereich und Lösungsbereich 10 1.1.Unterschiede zwischen Problembereich und Lösungsbereich 10 1.2 Paradigmen der Softwareentwicklung 12 1.3 Methoden für die verschiedenen
Agilität trifft Funktionale Sicherheit
Agilität trifft Funktionale Sicherheit Wie agil können FuSi Projekte sein? Dipl.-Ing. (FH) Martin Heininger HEICON Global Engineering Agiles Manifest 12 Prinzipien hinter dem Agilen Manifest FuSi Softwareentwicklung
Softwaretechnik 2015/2016
Softwaretechnik 2015/2016 PST Lehrstuhl Prof. Dr. Matthias Hölzl HAUPT-/ BACHELOR- SEMINAR ADAPTIVE SYSTEME PST Joschka PROF. DR. Rinke WIRSING 14. JUNI 2009 VORNAME NAME AGENDA Übung 11: 14.01.2016 Schon
Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung
Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen
Softwarearchitekten. Basiswissen für. dpunkt.verlag. Foundation Level
Mahbouba Gharbi Arne Koschel Andreas Rausch Gernot Starke Basiswissen für Softwarearchitekten Aus- und Weiterbildung nach isaqb-standard zum Certified Professional for Software Architecture - Foundation
Sotographie Code-basierte Analyse, Bewertung und Sanierung komplexer ABAP-Systeme
Sotographie Code-basierte Analyse, Bewertung und Sanierung komplexer ABAP-Systeme Autoren: Clemens Heppner Dipl.-Inform. Jörn Koch Dipl.-Inform Dr. Carola Lilienthal Dipl.-Inform. Dr. Guido Gryczan Prof.
Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015
Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von
Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
Inhaltsverzeichnis. Teil I Grundlagen 1
xv Teil I Grundlagen 1 1 Modelle und Modellierung 3 1.1 Modelle, die uns umgeben.................................. 3 1.2 Modelltheorie........................................... 5 1.3 Ziele beim Einsatz
Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords
4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:
Das Softwaresystem BASEMENT
Numerische Modellierung von Naturgefahren mit dem Softwaresystem BASEMENT Workshop vom 6. Oktober 2006 an der VAW ETH Zürich Das Softwaresystem BASEMENT David Vetsch Inhalt 1. Motivation und Entstehungsgeschichte
Model-View-Controller
Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung
Langlebige Software-Architekturen
Langlebige Software-Architekturen Technische Schulden analysieren, begrenzen und abbauen Bearbeitet von Carola Lilienthal 1. Auflage 2015. Taschenbuch. XII, 276 S. Paperback ISBN 978 3 86490 292 5 Format
Abschlussvortrag Masterarbeit: Operationalizing Architecture in an agile Software Projec
Abschlussvortrag Masterarbeit: Operationalizing in an agile Software Projec Freie Universität Berlin, Institut für Informatik February 2, 2015 Übersicht 2 Was ist Softwarearchitektur? Softwarearchitektur
Java kennt neben Klassen und Objekten auch das Konzept von Schnittstellen. (engl. Interfaces).
Java kennt neben Klassen und Objekten auch das Konzept von Schnittstellen. (engl. Interfaces). Was es mit den Schnittstellen auf sich hat und was der Unterschied zu den Klassen ist, wollen wir uns in diesem
Einstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
Objektorientierte und Funktionale Programmierung SS 2014
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
Architektur und Qualität. Tjard Köbberling
Architektur und Qualität Tjard Köbberling Gliederung Überblick Architektur und Qualität? Architekturentwurf Anforderungsanalyse Strukturierung Architekturbeschreibungen - Sichten Fallbeispiel 2 Architektur
Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe
, Beispiel der Gang of Four Ausführliches Beispiel: Beispiele Wiederverwendung ist etwas Gutes...!!! Wiederverwendung (auch: Verständlichkeit, Änderbarkeit, Portierbarkeit etc.) wird auf Design-Ebene ermöglicht
COPE COuPled Evolution of metamodels and models
COPE COuPled Evolution of metamodels and models Diplomarbeit in Zusammenarbeit mit der BMW Car IT (Betreuer: Elmar Jürgens, Sebastian Benz) Markus Herrmannsdörfer 7. November 2007 Perlen der Informatik
Musterlö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
Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen
Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Tom Krauß Agenda Begriffsdefinition Verfahren Praktische Beispiele Vergleich und Bewertung Begriffsklärung
Einführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
Quasar. Seminar "Beiträge zum Software Engineering" Freie Universität t Berlin. von Tichomir Jabarski
Quasar von Tichomir Jabarski Seminar "Beiträge zum Software Engineering" Freie Universität t Berlin 1 Inhaltsverzeichnis Quasar Schnittstellen Komponenten Softwarekategorien Zusammenfassung 2 1.Quasar
Lehrbuch der Objektmodellierung
Heide Balzert Lehrbuch der Objektmodellierung Analyse und Entwurf mit CD-ROM Technische Universität Darmstadt FACHBEREICH INFORMATIK BIBLIOTHEK Inventar-Nr.: Sachgebiete: Standort: Tt Spektrum Akademischer
CARL HANSER VERLAG. Erika Horn, Thomas Reinke. Softwarearchitektur und Softwarebauelemente Eine Einführung für Softwarearchitekten 3-446-21300-7
CARL HANSER VERLAG Erika Horn, Thomas Reinke Softwarearchitektur und Softwarebauelemente Eine Einführung für Softwarearchitekten 3-446-21300-7 www.hanser.de Inhalt Vorwort...IX 1 Einleitung... 1 1.1 Software
Übungen Softwaretechnik I
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der
Das Entwicklungsteam im agilen Prozess. Aufgaben der Software Architektur. Best Practices & Scrum Integration. Zusammenfassung & Ausblick
Das Entwicklungsteam im agilen Prozess Aufgaben der Software Architektur Best Practices & Scrum Integration Zusammenfassung & Ausblick Das Entwicklungsteam im agilen Prozess Die besten Architekturen, Anforderungen
C++ - Variablen: Gültigkeit - Sichtbarkeit
C++ - Variablen: Gültigkeit - Sichtbarkeit Reiner Nitsch 8417 [email protected] Attribute von Variablen und Funktionen Attribute von Variablen sind Name (name), Typ (type), Wert (value) Attribute von
Konzept / Architektur Diagramme
Architektur-Modell Konzept / Architektur Diagramme Im Übergang Analyse Design wird das System konzipiert und seine Architektur entworfen: Subsystem-Modell (execution view) UML 1.x Package Diagram «subsystem»
1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge
Einführung. Vorbemerkungen und Überblick. Die elektronischen e des Fahrzeugs. Prozesse in der Fahrzeugentwicklung im Überblick,.4 Grundlagen. Steuerungs- und regelungstechnische e (Prof. Schumacher). Diskrete
Software Engineering. Produktivitätsfaktoren! Kapitel 18
Martin Glinz Thomas Fritz Software Engineering Kapitel 18 Produktivitätsfaktoren 2007-2013 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen Gebrauch
Client/Server-Systeme
Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen
J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST
Modellbasierte Generierung von statischen Schedules für sicherheitskritische, eingebettete Systeme mit Multicore Prozessoren und harten Echtzeitanforderungen J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim
Informationswirtschaft II Rational Unified Process (RUP)
Informationswirtschaft II Rational Unified Process (RUP) Wolfgang H. Janko, Michael Hahsler und Stefan Koch Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe Das
Informationswirtschaft II
Rational Unified Process (RUP) Informationswirtschaft II Wolfgang H. Janko, Michael Hahsler und Stefan Koch Seite 1 Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe
Die OSGi Service Plattform
Die OSGi Service Plattform Seminarvortrag Bernhard Cleven Gliederung 1 Einleitung 2 Das Framework 3 Bundles 4 Services 5 Beispiel 6 Fazit Seite 1/ 17 Einleitung Warum OSGi? Durch Modularisierung flexible
Refactoring in kleinen und großen Projekten
Refactoring in kleinen und großen Projekten Dipl.-Informatiker Martin Lippert Senior IT-Berater [email protected] Dipl.-Informatiker Andreas Havenstein Softwareentwickler [email protected]
Vorlesung 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)
Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle
Mit Legacy-Systemen in die Zukunft Dr. Roland Schätzle Der Weg zur Entscheidung 2 Situation Geschäftliche und softwaretechnische Qualität der aktuellen Lösung? Lohnen sich weitere Investitionen? Migration??
Quantität für Qualität
Wie das Vermessen von Software sinnvoll wird HARM GNOYKE, STEFAN ZÖRNER EMBARC Softwarearchitektur Meetup Hamburg Bytro Labs (Astraturm), 29. August 2016 0 Wie das Vermessen von Software sinnvoll wird
Softwarearchitekturen I Softwareentwicklung mit Komponenten
Softwarearchitekturen I Softwareentwicklung mit Komponenten Detlef Streitferdt Technische Universität Ilmenau TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Softwarearchitekturen I 1 Beispiel: Bibliothekssystem
Modellgetriebene 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
Motivation 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
Cloud Architektur Workshop
Cloud Architektur Workshop Ein Angebot von IBM Software Services for Cloud & Smarter Infrastructure Agenda 1. Überblick Cloud Architektur Workshop 2. In 12 Schritten bis zur Cloud 3. Workshop Vorgehensmodell
Softwarequalität und Softwarealterung. Anne Moormann Benedikt Scholz Michael Herbener
Softwarequalität und Softwarealterung Anne Moormann Benedikt Scholz Michael Herbener Präsentationstitel, Referent: Meta Normal-Roman 12 pt 2 Agenda Softwarequalität Softwarealterung Maßnahmen gegen Softwarealterung
Durchgängiger System-/Software- Entwicklungsprozess in der Luftfahrt
urchgängiger System-/Software- Entwicklungsprozess in der Luftfahrt GL F T6.2 und T6.4 Workshop Brücke zwischen Systemdesign und Softwareentwicklung in der Luft- und aumfahrt r. Herbert Klenk, ES eutschland
Management von IT-Architekturen
Gernot Dem Management von IT-Architekturen Informationssysteme im Fokus von Architekturplanung und Entwicklung vieweg Inhaltsverzeichnis Vorwort Inhaltsverzeichnis VII IX 1 Einführung 1 1.1 Inhalte und
Do 8.3. Schwarzweiss. Peter Hruschka. January 21-25, 2008, Munich, Germany ICM - International Congress Centre Munich
Do 8.3 January 21-25, 2008, Munich, Germany ICM - International Congress Centre Munich Schwarzweiss Peter Hruschka schwarzweiß Peter Hruschka Principal of the Atlantic Systems Guild Aachen - London - New
Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
Informatik II Übung 6 Gruppe 7
Informatik II Übung 6 Gruppe 7 Leyna Sadamori [email protected] DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,
Statische Code-Analyse: Software-Metriken Fernstudium Master Wirtschaftsinformatik Formale Methoden
Statische Code-Analyse: Software-Metriken Fernstudium Master Wirtschaftsinformatik Formale Methoden Isabell Füll Grömmsche Koppel 15 24111 Kiel [email protected] Amselweg 3 24222 Schwentinental
Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...
Inhaltsverzeichnis Vorwort...XIII Aufbau des Buches............................................... XV 1 Von der Idee zur Software..................................... 1 1.1 Beispielanwendung... 1 1.2 Schritte
Anforderungsmanagement und modelbasierte Entwicklung
Anforderungsmanagement und modelbasierte Entwicklung Bernhard Schätz, Markus Pister, Alexander Wisspeintner Fakultät für Informatik, TU München GI-Treffen Fachgruppe RE, 7//03-8//03 Werkzeuggestütztes
Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MISRA bzw. Programmierstandards steigern die Softwarequalität! - Ist das überhaupt möglich?
MISRA bzw. Programmierstandards steigern die Softwarequalität! - Ist das überhaupt möglich? Andreas Sczepansky - Geschäftsführer Tel.: + 49 (0) 711 138183-0 www.qasystems.de V-Modell für Softwaretests
Die SOLID-Prinzipien Fünf Grundsätze für bessere Software
ESE Kongress 2014 Vortragsskript: Die SOLID-Prinzipien Fünf Grundsätze für bessere Software Frank Listing, MicroConsult GmbH Die Qualität der Software ist nicht in allen Projekten ideal, und deshalb werden
Enterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.
Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius
Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius Huber @ThomasClaudiusH BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
