How To Design Software

Größe: px
Ab Seite anzeigen:

Download "How To Design Software"

Transkript

1 Bad Designs und ihre Konsequenzen Seminar Software-Entwurf B.Sc. Sebastian Intas WS 2004/05

2 Gliederung Motivation Einordnung Hauptursachen AntiPatterns AntiPatterns vs. Patterns AntiPattern-Schablone Perspektiven Ausgewählte AntiPatterns Literatur Zusammenfassung 2

3 Motivation Was ist Software-Design? (wesentliche) Die Struktur einer Software (entwickeln) Schwierig zu beantworten! Was ist Bad Design? Wird erst durch Probleme sichtbar? Beispiel: Transition Netscape 4.x Mozilla 1998: Code base von Netscape Communicator als Open Source Durch Browserwar mit Microsoft code base sehr aufgebläht Viele Bugs, keine einheitliche Entwicklung für verschiedene OS Mozilla-Entwickler entschieden sich alles neu zu schreiben Mozilla 1.0 wurde 2002 veröffentlicht 3

4 Motivation Software wird immer komplexer Probleme Wartung, Testbarkeit, Skalierbarkeit Studie von J. Johnson Creating Chaos (1995) Untersuchung hunderter Software-Projekte 5/6 aller Projekte sind als Misserfolg zu betrachten 1/3 aller Software-Projekte werden gestoppt Rest: doppeltes Budget oder längere Entwicklungszeit Komplexität erfordert neue Software-Methoden Früher: höhere Programmiersprachen, strukt. Programmierung Heute: OO-Sprachen, OOA, OOD Neuer Trend: Wiederverwendung Expertenwissen Entwicklung von Patterns und Pattern-Sprachen 4

5 Einordnung AntiPatterns Lösen bestehende Probleme 5

6 Hauptursachen Basieren auf: sieben Todsünden [Bates 96] Hast Desinteresse Engstirnigkeit Faulheit Habsucht Ignoranz Stolz Ich habe Pass wirklich auf-wiederverwenden? nicht die Zeit, das alles zu lesen Bereinige den Code, Wer wird diesen Schreib mir doch eine kurze Morgen ist Ich Abgabe!!! muss verdammten das nicht Code wissen jemals Gut Das Zusammenfassung, sieht sehr vielleicht wiederverwenden? kompliziert aus! Unsere eine Kunden Seite und Ich will das NIEMAND! werden ganz begeistert sein! nicht wissen Gut gemacht, Meier! Dummy 6

7 Was sind AntiPatterns? Probleme von Patterns in der Praxis Anwendbarkeit oft schwierig zu entscheiden, da sehr abstrakt Unangemessener und falscher Einsatz Ein AntiPattern ist eine typisch negative Lösung aus der Praxis, die mehr Probleme verursacht, als sie löst! Was bringen AntiPatterns? Wissen zum Verhindern von negativen Lösungen Hilfestellung zum Beseitigen oder Mindern von Missständen Praxiserprobte Lösungsvorschläge Löschen einer bestehenden Software-Brandstelle 7

8 Patterns vs. AntiPatterns Design Patterns AntiPatterns Problem Kontext & Ursachen Kontext & Vorgaben Lösung Zeitverlauf Vorteile AntiPattern- Lösung Konsequenzen Refactoring der Lösung Vorteile Konsequenzen Vorteile Konsequenzen 8

9 AntiPattern-Schablone Name Eindeutig, oft abwertend Hauptursachen Die oben Erläuterten Allgemeine Form Hintergrundinformationen Symptome und Konsequenzen Gegliederte Aufführung Typische Ursachen Zur Ergänzung der Hauptursachen Refactoring Eine Lösung, aber nicht die einzige! 9

10 Perspektiven 10

11 Aufteilung von AntiPatterns Software-Entwicklung Behandeln Fehler während der Programmierung Beispiele: Spaghetti-Code, Cut-and-Paste-Programmierung, Mushroom-Management, Golden-Hammer, Lava-Flow, Heute: The Blob Software-Architektur Behandeln Fehler in der Struktur von Systemen Beispiele: Vendor Lock-In, Swiss Army Knife, Reinvent the Wheel, Heute: Design by Committee Software-Projektmanagement Behandeln Probleme organisatorischer Natur Beispiele: Analysis-Paralysis, Death by Planning, Project Mismanagement, Heute: Corncob 11

12 Software-Entwicklung: The Blob Name: The Blob Hauptursachen: Faulheit, Hast Allgemeine Form Diese Klasse ist das Herzstück unserer Architektur Eine Klasse monopolisiert die Verantwortung Andere Klassen nur zum Daten einkapseln Design eher prozedural Tritt oft bei GUI-zentrierter Programmierung auf 12

13 Software-Entwicklung: The Blob Symptome und Konsequenzen Klasse mit vielen Attributen und/oder Operationen Eine einzige Controller-Klasse mit assoziierten einfachen Datenobjektklassen Fehlen eines objektorientierten Designs Beeinträchtigt die Vorteile objektorientierten Designs Zu komplex für Wiederverwendung und Tests Hoher Verbrauch von Ressourcen Typische Ursachen Keine (objektorientierte) Architektur Mangelnde Umsetzung der Architektur Zu geringe Bereitschaft zur Erweiterung 13

14 Software-Entwicklung: The Blob Refactoring 14

15 Software-Entwicklung: The Blob Refactoring Identifizieren oder kategorisieren von ähnlichen Attributen und Operationen 15

16 Software-Entwicklung: The Blob Refactoring Eigenheime für Vertragspartner finden und diese umsiedeln 16

17 Software-Entwicklung: The Blob Refactoring Entfernen von Fernverbindungen Zusammengefasste Gruppen verschieben 17

18 Software-Architektur: Design by Committee Name: Design by Committee Hauptursachen: Stolz, Habgier Allgemeine Form Sehr komplexes Design als Ergebnis eines Komitee-Prozesses Volle Umsetzung bzw. Test in angemessener Zeit nicht machbar Fehlende konzeptionelle Linie Symptome und Konsequenzen Designdokumentation zu komplex Ineffektive Entscheidungsfindung Design wird unterschiedlich interpretiert Designentwicklung übersteigt Budget/Zeit 18

19 Software-Architektur: Design by Committee Typische Ursachen Kein designierter Projektleiter Ineffizienter und veralteter Software-Entwicklungsprozess Schlechte Meetings Versuch jeden glücklich zu machen und zu berücksichtigen Keine Trennung von Bereichen Refactoring Effektivere Nutzung der Zeit Sichtbare Darstellung der Meetingziele Warum sind wir hier? Was soll bei dem Meeting herauskommen? Rollenzuweisung: Moderator, Architekt, Entwickler, 19

20 Software-Projektmanagement: Corncob Name: Corncob Hauptursachen: Habgier, Stolz, Engstirnigkeit Allgemeine Form Quertreiber verursacht Probleme Durchsetzung von Interessen ist Machtspiel Symptome und Konsequenzen Projekt macht keine Fortschritte Ständige Einwände Projekt reagiert anstatt zu agieren Schon vorhandene Probleme werden verschärft Typische Ursachen Management unterstützt destruktives Verhalten Quertreiber verfolgt eigene Ziele 20

21 Software-Projektmanagement: Corncob Refactoring Taktische Lösung: Übertragung von Verantwortung Isolierung des Problems Fragen in Frage stellen Operative Lösung: Einzelgespräch Freundliche Kündigung Strategische Lösung: Selbsthilfegruppe Das leere Büro Aus dem Team werfen 21

22 Zusammenfassung Name AntiPattern-Lösung Refactoring The Blob Design by Committee Corncob Ein Objekt mit zahlreichen Verantwortlichkeiten Übrige Objekt nehmen nur Daten auf Design zu komplex Fehlende architektonische Vision Schwierige Mitarbeiter behindern Software- Entwicklungsprozess Verantwortlichkeiten einheitlicher verteilen Auswirkungen von Änderungen beschränken Verbesserte Meetings mit klarer Aufgabenverteilung Verhalten durch taktische, operative und strategische Maßnahmen unterbinden 22

23 Literatur Brown, Malveau, McCormick, Mowbray AntiPatterns: Entwurfsfehler erkennen und vermeiden 23

24 Zusammenfassung AntiPatterns sind eine verständlichere Form von Patterns Vielen Dank für die Aufmerksamkeit! Jedes AntiPattern enthält ein Lösungspaar Lösung erzeugt hauptsächlich negative Konsequenzen Überarbeitete Lösung erzeugt positiven Nutzen Und ein schönes AntiPatterns sind nützlich um Vorhandenes zu verbessern Weihnachtsfest! 24

Die 7 Todsünden der Softwareentwicklung Sascha Kohlmann 7 Todsünden der Softwareentwicklung

Die 7 Todsünden der Softwareentwicklung Sascha Kohlmann 7 Todsünden der Softwareentwicklung Die 7 Todsünden der Softwareentwicklung Die christlichen Todsünden Die christlichen 7 Todsünden gehen auf Evagrius Ponticus zurück Mönch im 4. Jahrhundert n. Chr. Ursprung 8 Dämonen: Völlerei, Unkeuschheit,

Mehr

Anti-Patterns. Zuverlässige Software SS2009 Friedrich Gensicke

Anti-Patterns. Zuverlässige Software SS2009 Friedrich Gensicke Anti-Patterns Zuverlässige Software SS2009 Friedrich Gensicke Gliederung 1. Einführung Was sind Anti Patterns? Unterschiede Design Pattern Anti Pattern Grundursachen Klassifizierung 2. Anti Patterns in

Mehr

- Antipatterns - der Softwareentwicklung. Tanja Brockmeier

- Antipatterns - der Softwareentwicklung. Tanja Brockmeier - Antipatterns - der Softwareentwicklung Tanja Brockmeier Antipatterns Definition Antipatterns: sind eine häufige wiederkehrende Lösungen, die fehlerhaft sind und Merkmale mit sich bringen, die unerwünscht

Mehr

7. Zusammenfassung (1)

7. Zusammenfassung (1) Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung

Mehr

Model-View-Controller

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

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Architekturrefactorings

Architekturrefactorings Architekturrefactorings Henrik Holle Universität Bremen holle@tzi.de Abstract Architekturrefactorings sind semantikerhaltende Transformationen, welche die Architektur der Software verbessern. Im Gegensatz

Mehr

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik Entwurfsmuster - Design Patterns HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik 27. November 2009 Gliederung 1 Einführung 2 Strategie-Muster 3 Beobachter-Muster

Mehr

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur

Mehr

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

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

Mehr

Softwaretechnik 2015/2016

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

Mehr

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

Mehr

Nicolai Josuttis. SOA in der Praxis. System-Design für verteilte Geschäftsprozesse. dpunkt.verlag

Nicolai Josuttis. SOA in der Praxis. System-Design für verteilte Geschäftsprozesse. dpunkt.verlag Nicolai Josuttis SOA in der Praxis System-Design für verteilte Geschäftsprozesse dpunkt.verlag Vorwort ix 1 Motivation 1 1.1 Kennzeichen großer Systeme 3 1.2 Das Märchen vom»magischen Bus«5 1.3 Was man

Mehr

Model-View-Controller

Model-View-Controller Model-View-Controller Seminar Software-Entwurf Leif Singer Gliederung Einordnung Überblick & Geschichte Aufgabenverteilung & Beispiel Model View Controller Zusammenspiel Web Anwendungen

Mehr

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

Effizientes Programmieren

Effizientes Programmieren Effizientes Programmieren Heutiges Thema: Refactorings Michaela Rindt (mrindt@informatik.uni-siege.de) Refactoring - Entwicklungsmethode - Bild-Quelle: http://www.goldbachinteractive.com/aktuell/kurzbeitraege/next-step-of-evolution

Mehr

Design Patterns (dt. Entwurfsmuster)

Design Patterns (dt. Entwurfsmuster) Design Patterns (dt. Entwurfsmuster) Michael Svoboda 25. Mai 2007 Ein fortgeschrittener bzw. erfahrener Softwareentwickler hat oftmals während der Analyse eines Problems bei der Erstellung eines Entwurfs

Mehr

10. Programmierungs-Phase: Objektorientierung Software Engineering

10. Programmierungs-Phase: Objektorientierung Software Engineering 10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext

Mehr

Einleitung. Wozu benötigen wir Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster?

Einleitung. Wozu benötigen wir Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Einleitung This book is meant to be played, rather than to be read in an armchair. Jerry Coker et. al: Patterns for Jazz, Studio P/R, 1970 Wozu benötigen wir

Mehr

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Entwurfsmuster Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Information über Entwurfsmuster Die heutige Vorlesung: Einführung in die Thematik Die Vorlesung am 12.01:

Mehr

3-Tier-Architecture und J2EE

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

Mehr

Refactoring. Uschi Beck

Refactoring. Uschi Beck Refactoring Uschi Beck uschibeck@web.de Gliederung Was ist Refactoring Definition, Einordnung in das Seminar Motivation Testen Code-Smells Katalog von Refactorings Aufbau, Beispiele Design Patterns als

Mehr

Inhaltsverzeichnis. Teil I Grundlagen 1

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

Mehr

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

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 Inhalt: Anforderungen an ein Schema Design eines Schemas Schrittweises Vorgehen Strukturierung und Design der Daten in DOORS Voraussetzung für

Mehr

Completing SDN The Northbound API

Completing SDN The Northbound API Lehrstuhl Netzarchitekturen und Netzdienste Institut für Informatik Technische Universität München Completing SDN The Northbound API Patrick Holl Seminar Innovative Internettechnologien und Mobilkommunikation

Mehr

Open Source als Internet-Basisinfrastruktur

Open Source als Internet-Basisinfrastruktur Open Source als Internet-Basisinfrastruktur Beitrag zu großen Projekten am Beispiel OpenStack 18.12.2018 Josephine Seifert Gliederung Internet-Basisinfrastruktur Was ist das? Die Cloud OpenStack Beitrag

Mehr

Einführung in Software Engineering

Einführung in Software Engineering Einführung in Software Engineering Die Katze auf der Terrasse Mit Python-Objekten ist es wie mir der Katze, die du irgendwann schlafend auf deiner Terrasse vorfindest. Ganz wie ein Python-Objekten kann

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 3. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Wiederholung: Begriffsübersicht Strukturierte vs. objektorientierte Programmierung

Mehr

Aspektorientierte Programmierung mit.net

Aspektorientierte Programmierung mit.net Aspektorientierte Programmierung mit.net David Hahn & Viktor Steinwand 1 1. 2. 3. 4. 5. Vorgehen beim AOP 6. 7. durch AOP 8. 9. 10. 2 1. AOP ist ein mächtiges Werkzeug für den Entwickler-Werkzeugkoffer

Mehr

Software Engineering

Software Engineering Jochen Ludewig Horst Lichter Software Engineering Grundlagen, Menschen, Prozesse, Techniken 3., korrigierte Auflage dpunkt.verlag Teil i Grundlagen 1 1 Modelle und Modellierung 3 1.1 Modelle, die uns umgeben

Mehr

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung

Mehr

Seminare Softwaretechnik - Einführungsveranstaltung

Seminare Softwaretechnik - Einführungsveranstaltung Seminare Softwaretechnik - Einführungsveranstaltung Stefan Malich Sommersemester 2005 Version 1.0 Lehrstuhl für Wirtschaftsinformatik und Softwaretechnik Prof. Dr. Stefan Eicker 1 Agenda Einführung und

Mehr

Entwurfsmuster. Marc Monecke

Entwurfsmuster. Marc Monecke Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen

Mehr

Ein 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 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++,

Mehr

Einführung in die objektorientierte Programmierung

Einführung in die objektorientierte Programmierung Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.

Mehr

Tränen lügen nicht Dashboards schon!

Tränen lügen nicht Dashboards schon! Tränen lügen nicht Dashboards schon! HARM GNOYKE, EMBARC JavaLand, Phantasialand Brühl 08.03.2016 0 Tränen lügen nicht Dashboards schon! "Und dann war da noch der Mann, der beim Durchqueren eines im Durchschnitt

Mehr

Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2013

Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2013 Vorlesung des Software-Engineering im Sommersemester 2013 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV Teil 2.9: Werkzeugunterstützung v. 13.05.2013 1 [mit freundlicher Genehmigung

Mehr

Das Kommunikations-Problem Architekten, Entwickler und die Code-Basis Zusammenfassung

Das Kommunikations-Problem Architekten, Entwickler und die Code-Basis Zusammenfassung Das Kommunikations-Problem Architekten, Entwickler und die Code-Basis Zusammenfassung Miteinander, Nebeneinander, Durcheinander Kommunikation und Koordination in Softwareprojekten Kommunikation Übertragung

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

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

Mehr

Refactorings in großen Softwareprojekten

Refactorings in großen Softwareprojekten Refactorings in großen Softwareprojekten (C) 2004 Martin Lippert lippert@acm.org Stefan Roock stefan@stefanroock.de Was ist Refactoring? A change made to the internal structure of software to make it easier

Mehr

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen Dr. Carola Lilienthal, cl@wps.de, @cairolali www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG 1 Business-Software

Mehr

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

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java Software-Architektur basierend auf dem Plug-in-Konzept Aufteilung: Probleme mit normaler/alter Software Ziele des Software Engineerings Die

Mehr

Agile Methoden. David Tanzer. Oliver Szymanski

Agile Methoden. David Tanzer. Oliver Szymanski Agile Methoden David Tanzer Oliver Szymanski Ziel von Softwareentwicklung Anforderungen zuverlässig und effizient in lauffähige Software verwandeln. Ziel von Softwareentwicklung Bedürfnisse des Kunden

Mehr

Technische Schulden in Architekturen erkennen und beseitigen

Technische Schulden in Architekturen erkennen und beseitigen Technische Schulden in Architekturen erkennen und beseitigen Dr. Carola Lilienthal Carola.Lilienthal@wps.de, @cairolali www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Business-Software, die

Mehr

Softwareentwicklung in der Wissenschaft Steffen Göttsch

Softwareentwicklung in der Wissenschaft Steffen Göttsch Softwareentwicklung in der Wissenschaft 9.12.2010 Steffen Göttsch Gliederung Motivation Prinzipien guter Softwareentwicklung Praxis in der SiW Programmiermethoden Zusammenarbeit SE und Wissenschaft Open

Mehr

Seminar zu Ursachen und Vermeidung von Fehlern in der Software-Entwicklung

Seminar zu Ursachen und Vermeidung von Fehlern in der Software-Entwicklung Seminar zu Ursachen und Vermeidung von Fehlern in der Software-Entwicklung Semantische Validierung der objektorientierten Analyse Berlin, 4. April 2006 Inhalt Einleitung Psychologische und objektorientierte

Mehr

Refactoring Transformationen. Martin Freund Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn

Refactoring Transformationen. Martin Freund Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn Refactoring Transformationen Martin Freund bbl@upb.de Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn Gliederung 1. Transformationen-Übersicht 2. Beispiel: Methode

Mehr

Softwaretests mit Junit

Softwaretests mit Junit Softwaretests mit Junit Techniken der testgetriebenen Entwicklung Bearbeitet von Johannes Link überarbeitet 2005. Taschenbuch. XVI, 416 S. Paperback ISBN 978 3 89864 325 2 Format (B x L): 16,5 x 24 cm

Mehr

Jochen Ludewig Horst Lichter. Software Engineering. Grundlagen, Menschen, Prozesse, Techniken. dpunkt.verlag

Jochen Ludewig Horst Lichter. Software Engineering. Grundlagen, Menschen, Prozesse, Techniken. dpunkt.verlag Jochen Ludewig Horst Lichter Software Engineering Grundlagen, Menschen, Prozesse, Techniken dpunkt.verlag Inhaltsverzeichnis 1 Modelle und Modellierung 1.1 Modelle, die uns umgeben 1.2 Modelltheorie 1.3

Mehr

IT-Projekt-Management

IT-Projekt-Management IT-Projekt-Management email: av@dr-vuong.de http: www.dr-vuong.de Datum 13.10.2005 2005 by, Bielefeld Seite 1 Projekt-Ablauf und - Organisation Datum 13.10.2005 2005 by, Bielefeld Seite 2 IT-Projekte:

Mehr

» Wege zu einer besseren Projekt- und Arbeitsorganisation «

» Wege zu einer besseren Projekt- und Arbeitsorganisation « Agile Methoden» Wege zu einer besseren Projekt- und Arbeitsorganisation «Berlin, im April 2016 Kirchner + Robrecht GmbH management consultants info@kirchner-robrecht.de www.kirchner-robrecht.de Büro Berlin:

Mehr

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

Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin 03.02.2011 Inhalt der Präsentation 1.Arbeit und Vortrag 1 2.Aktuelle Saros-Architektur

Mehr

Visualisierung von Softwaremetriken

Visualisierung von Softwaremetriken Visualisierung von Softwaremetriken Georgi Georgiev Seminar Softwarevisualisierung TU Kaiserslautern SS 2006 Betreuer: Dr. A. Kerren 21.07.2006 Inhalt 1. Softwaremetriken 2. Vorgehensweise 3. Ikonevisualisierung

Mehr

MVC-Architektur am Beispiel von OLAT

MVC-Architektur am Beispiel von OLAT MVC-Architektur am Beispiel von OLAT Marvin Frommhold 12. Januar 2009 Gliederung Begriffe Entwurfsmuster Umsetzung in OLAT Aufbau des Brasato-Frameworks Quellen Begriffe I MVC bezeichnet ein Architekturmuster

Mehr

Quantifizierung nicht-funktionaler Anforderungen JURISTISCHES IT-PROJEKTMANAGEMENT WS1617 DOZENT: DR. FRANK SARRE LMU MÜ NCHEN ZHENHAO LI

Quantifizierung nicht-funktionaler Anforderungen JURISTISCHES IT-PROJEKTMANAGEMENT WS1617 DOZENT: DR. FRANK SARRE LMU MÜ NCHEN ZHENHAO LI Quantifizierung nicht-funktionaler Anforderungen JURISTISCHES IT-PROJEKTMANAGEMENT WS1617 DOZENT: DR. FRANK SARRE LMU MÜ NCHEN ZHENHAO LI Agenda Einordnung des Themas Motivation Quantifizierung Nicht-funktionale

Mehr

Warum sind Kunden in Softwareprojekten so schwierig? Jürgen Ahting, Ameco, Stefan Roock, akquinet AG,

Warum sind Kunden in Softwareprojekten so schwierig? Jürgen Ahting, Ameco, Stefan Roock, akquinet AG, Warum sind Kunden in Softwareprojekten so schwierig? Jürgen Ahting, Ameco, ameco@ahting.org Stefan Roock, akquinet AG, stefan.roock@akquinet.de Ich bin der Kunde Ich bin der Entwickler 1 Ich bin glücklich,

Mehr

Wechselwirkungen zwischen der Projektmanagementmethode PRINCE2 und den typischen juristischen Rahmenbedingungen im IT-Projekt

Wechselwirkungen zwischen der Projektmanagementmethode PRINCE2 und den typischen juristischen Rahmenbedingungen im IT-Projekt Wechselwirkungen zwischen der Projektmanagementmethode PRINCE2 und den typischen juristischen Rahmenbedingungen im IT-Projekt Vortrag im Kurs Juristisches IT-Projektmanagement Nicola Greth, 10. Januar

Mehr

Schichtenarchitekturen und ihre Auswirkungen auf die objektorientierte Modellierung

Schichtenarchitekturen und ihre Auswirkungen auf die objektorientierte Modellierung TKeasy Schichtenarchitekturen und ihre Auswirkungen auf die objektorientierte Modellierung Software Engineering 2007, 27.-30.3.2007, Hamburg Ralf Degner, Frank Griffel Überblick Das Projekt TKeasy Technische

Mehr

Zeitmanagement: 4. Zeitdiebe

Zeitmanagement: 4. Zeitdiebe Zeitmanagement: 4. Zeitdiebe Was Sie heute lernen 1. Erkennen Sie Ihre Zeitfresser! 2. Reduzieren Sie Störungen! 1. Bekämpfen Sie die Aufschieberitis! 1. Erkennen Sie Ihre Zeitfresser Um zu identifizieren,

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Agil lernen. 4. Projektmanagement Day Georg Götz

Agil lernen. 4. Projektmanagement Day Georg Götz Agil lernen 4. Projektmanagement Day 09.10.2012 Georg Götz Agil lernen? Release 1: Vordiplom Inf formatikstudium Sprint Review z.b. Algorithmik I Release 2: Diplom Product Owner: Professor Scrum Master:?

Mehr

Einführung in die Objektorientierung (OO)

Einführung in die Objektorientierung (OO) Einführung in die Objektorientierung (OO) I) Warum OO? II) Grundbegriffe der OO III) IV) Darstellung von Klassen und Objekten Kapselung I) Warum OO? 1) Früher: Prozedurale / strukturierte Programmierung

Mehr

Entwurfsmuster Martin Fesser 00IN

Entwurfsmuster Martin Fesser 00IN Entwurfsmuster Martin Fesser 00IN Inhalt Was sind Entwurfsmuster? Vorteile, Nachteile Entwurfsmusterkatalog (nach GoF) Variation von Entwurfsaspekten Wie Entwurfsmuster Entwurfsprobleme lösen Beispiele

Mehr

Iterative Softwareentwicklung. Ullrich Köthe 19. April 2001

Iterative Softwareentwicklung. Ullrich Köthe 19. April 2001 Iterative Softwareentwicklung Ullrich Köthe 19. April 2001 2 Traditionelles Entwicklungsmodell von Geräteentwicklung inspiriert: je später eine Änderung notwendig wird, desto teurer 12000 10000 8000 6000

Mehr

Das Softwaresystem BASEMENT

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

Mehr

Gute Praxis in der sozialen Sicherheit. Gute Praxis umgesetzt ab: 2015

Gute Praxis in der sozialen Sicherheit. Gute Praxis umgesetzt ab: 2015 Gute Praxis in der sozialen Sicherheit Gute Praxis umgesetzt ab: 2015 Automatische Zahlung (E-Payment) von Beihilfen nach elektronischen Zeugnissen über vorübergehende Erwerbsunfähigkeit für Selbstständige

Mehr

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs... Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Übungsbesprechung (Wiederholung) Wie

Mehr

Meetings effizient planen und durchführen

Meetings effizient planen und durchführen Meetings effizient planen und durchführen Am Anfang sollte die Frage stehen "Warum" Sie eine Besprechung durchführen wollen. Gründe wie Informationsweitergabe, Anordnungen bekannt geben oder Entscheidungen

Mehr

Objektorientiertes Software-Engineering

Objektorientiertes Software-Engineering Objektorientiertes Software-Engineering TIT99BPE/TIT99CPE BA Mannheim WS 2001/2 F. Schönleber Organisatorisches Kurs 1: TIT99BPE 6.Studienhalbjahr Termin Mo. 13.00 14.30 Raum: 037B Kurs 1: TIT99CPE 6.Studienhalbjahr

Mehr

Projektplanung. Aktuelle Projektleiterin: Lei Da

Projektplanung. Aktuelle Projektleiterin: Lei Da Team 3 Projektplanung für freizeit-freun.de Aktuelle Projektleiterin: Lei Da Würzburg, den 29.5.2006 1 Gliederung 1. Projektsteckbrief 2. Projektstrukturpläne Objektorientierter PSP Funktionsorientierter

Mehr

Aggregatzustände von Anforderungen erkennen und nutzen

Aggregatzustände von Anforderungen erkennen und nutzen Aggregatzustände von Anforderungen erkennen und nutzen Prof. Dr. Kurt Schneider Kurt.Schneider@Inf.Uni-Hannover.de Fachgebiet Software Engineering Universität Hannover Die Idee der sauberen Spezifikation

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was

Mehr

Warum Sie dieses Buch lesen sollten Autorenverzeichnis Teil 1 Die agile Produktentwicklung - Menschen größer machen

Warum Sie dieses Buch lesen sollten Autorenverzeichnis Teil 1 Die agile Produktentwicklung - Menschen größer machen Inhalt Warum Sie dieses Buch lesen sollten... 6 Autorenverzeichnis...16 Teil 1 Die agile Produktentwicklung - Menschen größer machen 1 Einleitung... 26 1.1 Was ist gute Führung?...27 1.2 Mein bestes Projekt...

Mehr

2 Softwarearchitektur in der Organisationsstruktur 25

2 Softwarearchitektur in der Organisationsstruktur 25 xiii Teil I Grundlagen und Organisation 1 1 Grundlagen 3 1.1 Warum Softwarearchitektur?.............................. 4 1.2 Was ist Softwarearchitektur?.............................. 6 1.2.1 Definition

Mehr

Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014

Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Vorlesung des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV Teil 2.8: Werkzeugunterstützung für Process-Mining v. 09.06.2014 1 für Process-Mining

Mehr

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.21 Themenübersicht Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte

Mehr

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

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung

Mehr

SOLID für.net und JavaScript

SOLID für.net und JavaScript SOLID für.net und JavaScript www.binarygears.de Stefan Dirschnabel Twitter: @StefanDirschnab #dncgn SOFTWARE ENTWICKLUNG BERATUNG SCHULUNG 5 Prinzipien für das Design von Software Wartbarer Code Leicht

Mehr

Orchestrator. IT-Paradigmenwechsel im Zeitalter des Cloud Computing. Mohammad Esad-Djou, Solution Architect OPITZ CONSULTING Deutschland GmbH

Orchestrator. IT-Paradigmenwechsel im Zeitalter des Cloud Computing. Mohammad Esad-Djou, Solution Architect OPITZ CONSULTING Deutschland GmbH Orchestrator IT-Paradigmenwechsel im Zeitalter des Cloud Computing Mohammad Esad-Djou, Solution Architect OPITZ CONSULTING Deutschland GmbH Mainz, 06. Juni 2013, DOAG 2013 IM Community Summit Agenda Problemstellung

Mehr

Impact of economics on compiler optimization

Impact of economics on compiler optimization Impact of economics on compiler optimization Seminar Zwischen Sprachen und Codegenerierung SS 2005 Dimitar Dimitrov Betreuer: Rubino Geiß Kurzbeschreibung Arch D. Robinson, einer der Entwickler der KAI

Mehr

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung? Kapitelübersicht Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge Was bedeutet Objektorien+erung? ObjektorienCerte Analyse und Design die Objektmodellierung

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

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

Mehr

Liste MI / Liste I Programmieren in C++

Liste MI / Liste I Programmieren in C++ Liste MI / Liste I Programmieren in C++ Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Medieninformatik WS 2007/2008 Kapitel 1-4 1 Ziele Kennenlernen einer weiteren objektorientierten

Mehr

Engineering Aspekte bei der Auswahl von. Automatisierungsplattformen. Wir sind ein unabhängiges Engineering- und Beratungsunternehmen

Engineering Aspekte bei der Auswahl von. Automatisierungsplattformen. Wir sind ein unabhängiges Engineering- und Beratungsunternehmen Engineering Aspekte bei der Auswahl von Automatisierungsplattformen Automation Day 17.10.2011 Dipl.Ing. Felix Rhöse Wer sind wir? Wir sind ein unabhängiges Engineering- und Beratungsunternehmen für den

Mehr

SEQIS 10 things. Herzlich Willkommen! Alexander Weichselberger SEQIS Geschäftsleitung

SEQIS 10 things. Herzlich Willkommen! Alexander Weichselberger SEQIS Geschäftsleitung SEQIS 10 things SEQIS 10 things Herzlich Willkommen! Alexander Weichselberger SEQIS Geschäftsleitung SEQIS 10 things Programm 2014 20.03.14 Business Analyse Einführung in den BABOK Guide 26.06.14 API Testing:

Mehr

Behutsame Modernisierung

Behutsame Modernisierung Software Evolution mit Legacy Systemen Forum Forschungsförderung / ViSEK Trends im Software Engineering Software Evolution mit Legacy Systemen Behutsame Modernisierung Jan Wloka

Mehr

Objektorientierte Entwurfsmuster

Objektorientierte Entwurfsmuster Objektorientierte Entwurfsmuster Claus Lewerentz Brandenburgische Technische Universität Cottbus Fraunhofer FIRST/SWQlab Cottbus Fraunhofer Institut Rechnerarchitektur und Softwaretechnik 12.05.2005, Software-Systemtechnik,

Mehr

IT-Architektur Grundlagen, Konzepte und Umsetzung

IT-Architektur Grundlagen, Konzepte und Umsetzung IT-Architektur Grundlagen, Konzepte und Umsetzung Markus Schönbächler Cuno Pfister MV-WISSENSCHAFT Inhalt 1 Vorwort 15 2 Betriebswirtschaftliche Relevanz der IT-Architektur 19 2.1 Die Informatikorganisation

Mehr

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur 1 Web Modeler Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur W3L AG info@w3l.de 04.2008 2 Inhaltsverzeichnis Motivation Modellierungswerkzeug Techniken Architektur Datenhaltung

Mehr

Blockpraktikum Multimediaprogrammierung

Blockpraktikum Multimediaprogrammierung Blockpraktikum Multimediaprogrammierung 15. September 26. September 2008 Max Maurer Erfahrungsbericht Extreme Programming Kleiner Rückblick zur Vorlesung Prof. Heinrich Hußmann Agile Development for Multimedia

Mehr

DATENBLATT. Multiprojektmanagement

DATENBLATT. Multiprojektmanagement DATENBLATT Multiprojektmanagement Eine Vielzahl an Projekten in einem Unternehmen oder Unternehmensbereich zu überwachen und zu steuern, ist eines der Kernfunktionen eines Management-Information-Systems

Mehr