Softwarearchitektur-Management
|
|
- Wolfgang Schmitz
- vor 6 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
...we make the invisible visible...
...we make the invisible visible... 1 Inhalt Qualitätsbegriff Fragestellungen im Zusammenhang mit innerer Softwarequalität Analysen und deren Anwendung Erfahrungen 2 Ausfallsicherheit Datensicherheit Zuverlässigkeit
MehrWerkzeugunterstü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
MehrDi 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
MehrLanglebige Softwarearchitekturen
Langlebige Softwarearchitekturen Dr. Carola Lilienthal Carola.Lilienthal@wps.de www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Die zwei Architekturziele für diesen Vortrag Architekturziel 1:
MehrThomas 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)
Mehr...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
MehrZiele 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)
MehrContinuous 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
MehrContinuous 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
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,
MehrKeine 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 -
MehrBundling auf Softwaremärkten Eine technische Sicht
Bundling auf Softwaremärkten Eine technische Sicht Michael Goedicke Institute for Computer Science and Business Information Systems University of Duisburg-Essen Campus Essen Technische Softwarenentwickler
MehrNachhaltigkeit 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,
MehrValidierung 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 Carola.Lilienthal@workplace-solutions.de www.workplace-solutions.de //// Hans-Henny-Jahnn-Weg 29 //// 22085
MehrLehrstuhl 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
MehrApplication 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
Mehr15 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
MehrUniversitä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
Mehr11. 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
MehrVgl. Oestereich Kap 2.4 Seiten
Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß
MehrAnwendungsentwicklung 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,
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
MehrUML (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...
MehrKontinuierliche 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
Mehr3-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
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
MehrSoftwaretest 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
MehrErfahrungen 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,
MehrObjektorientierte 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
MehrFH 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
MehrSoftware-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
MehrVorlesung 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)
Mehrvii 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
MehrReengineering 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?
MehrSoftwarequalitä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
Mehr16 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
MehrInhaltsverzeichnis.
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
MehrAgilitä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
MehrSoftwaretechnik 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
MehrLehrstuhl 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
MehrSoftwarearchitekten. 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
MehrSotographie 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.
MehrSystematisches 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
MehrProgrammieren 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
MehrInhaltsverzeichnis. 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
MehrInnere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.
Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste
MehrSelbstbestimmtes 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:
MehrDas 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
MehrModel-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
MehrDie Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen
Die Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen Havenbedrijf Rotterdam N.V. Wilhelminakade 909 3072AP Rotterdam Niederlande für das Softwareprodukt HaMIS,
MehrLanglebige 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
MehrAbschlussvortrag 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
MehrJava 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
MehrEinstieg 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
MehrObjektorientierte 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
MehrISIS. beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag
ISIS beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag Inhalt Was ist Softwarequalität Was ist ISIS Die Philosophie dahinter Die Innovation Werkzeuge Projektlogbuch Sotograph
MehrArchitektur 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
MehrDesign 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
MehrCOPE 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
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
MehrEin 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
MehrEinfü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
MehrInnere 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
MehrQuasar. 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
MehrLehrbuch 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
MehrCARL 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
MehrÜ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
MehrDas 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
MehrC++ - Variablen: Gültigkeit - Sichtbarkeit
C++ - Variablen: Gültigkeit - Sichtbarkeit Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Attribute von Variablen und Funktionen Attribute von Variablen sind Name (name), Typ (type), Wert (value) Attribute von
MehrKonzept / 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»
Mehr1.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
MehrSoftware 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
MehrClient/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
MehrJ. 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
MehrInformationswirtschaft 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
MehrInformationswirtschaft 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
MehrDie 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
MehrRefactoring in kleinen und großen Projekten
Refactoring in kleinen und großen Projekten Dipl.-Informatiker Martin Lippert Senior IT-Berater martin.lippert@it-agile.de Dipl.-Informatiker Andreas Havenstein Softwareentwickler andreas.havenstein@it-agile.de
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)
MehrMit 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??
MehrQuantitä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
MehrSoftwarearchitekturen 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
MehrModellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH
Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen
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
MehrCloud 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
MehrSoftwarequalitä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
MehrDurchgä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
MehrManagement 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
MehrDo 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
MehrKapitel 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
MehrInformatik II Übung 6 Gruppe 7
Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch 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,
MehrStatische 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 isabell.fuell@googlemail.com Amselweg 3 24222 Schwentinental
MehrInhaltsverzeichnis. 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
MehrAnforderungsmanagement 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
MehrJavakurs 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
MehrMISRA 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
MehrDie 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
MehrEnterprise 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.
MehrDie 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
Mehr