Software Development Principles Stefan Lieser Web:http://lieser-online.dehttp://lieser-online.de.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

der Universität Oldenburg
Integrations- und Funktionstests im Rahmen des V-Modelles
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
On the Criteria to Be Used in Decomposing Systems into Modules
1 low:=low-Q 2 high:=high-Q 2 low:=low-Q 1 high:=high-Q 1.
Basis-Architekturen für Web-Anwendungen
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
„Such-Algorithmen“ Zusammenfassung des Kapitels 11
Datenstrukturen Look-Up Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Grundlagen der Sprache
Strategy Pattern Richard Göbel.
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Java Server Pages Implementierung eines Web-Service-Clients Pea 13: Maik Opitz, Martin Melle, Philipp Hake.
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
Zusammenfassung Vorwoche
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Die Methode public Knoten einfuegenVor (Datenelement dNeu, Datenelement dVergleich) public Knoten einfuegenVor(Datenelement dNeu, Datenelement dVergleich){
HERA und Changemanagement Scenario. HERA und Changemanagement2 Ausgangssituation Bob erstellt während der Anforderungserhebung mit HERA ein Use Case Projekt.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Modulare Programmierung
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
Entwurfsmuster EDV Entwurfsmuster.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Abstrakte Klassen, Interface
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Struktogramme IF-ELSE FOR – Schleife
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Bitrix Intranet Version 11.5.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Emergent Architecture Architektur in einer agilen Welt
NDepend - Kurzvorstellung Stefan Lieser Web:
Unterprogramme in JAVA
Aufruf einer Methode eines Objektes vom Typ „Bruch“
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
EPROG Tutorium #6 Philipp Effenberger
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
TDD mit MSTest Stefan Lieser Web:
TDD mit MSTest Stefan Lieser
Stefan Lieser Web:
Stefan Lieser Web:
Objektorientierung.
TDD mit MSTest Stefan Lieser Web:
2 Datenabstraktion Geheimnisprinzip:
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Unterprogramme / Methoden
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Objektorientierte (OO) Programmierung
Ein Textadventure AIP Aufgabe Fabian Bergfeld Patrick Boeckhoven Christian Haberland Benjamin Jochheim Liem Nguyen.
Oracle IFS Die Brücke zwischen Content Management System und einer Produktpräsentation im Internet.
Aufgaben zu Rückgabewerten
Felder in Java.
Löschen im Suchbaum.
Kara: act()-Methode.
 Präsentation transkript:

Software Development Principles Stefan Lieser Web:

SRPSingle Responsibility Principle OCPOpen Closed Principle LSPLiskov Substitution Principle DIPDependency Inversion Principle ISPInterface Segregation Principle Software Development Principles

Single Responsibility Principle

Single Responsibility Principle Eine Klasse sollte nur einen Grund für Änderungen haben. Auch als Cohesion bezeichnet Zusammenhang Kohäsion Hat eine Klasse mehr als einen Verantwortungsbereich, dann gibt es mehrere Gründe für Änderungen, sind diese Verantwortungsbereiche gekoppelt.

Single Responsibility Principle

Open Closed Principle

Open Closed Principle

Open-Closed Principle Klassen sollen offen für Erweiterungen sein aber geschlossen für Modifikationen. Beispiel Preisberechnung Preisberechnung in die Klasse integriert: Klasse muss geändert werden um neue Variante der Preisberechnung zu integrieren. Berechnung extern (Strategy Pattern): Klasse ist offen für Erweiterungen ohne dass sie selbst modifiziert werden muss.

Replace Conditional With Strategy public double Preis(){ if (...) return... else if (...) return... else if (...) return... else return... } public double Preis(){ return preisRechner.Preis(); }

Replace Conditional With Strategy Vorteile Testbarkeit wird verbessert Die Strategy Klassen können einzeln getestet werden. Andernfalls müssen Testdaten erzeugt werden um jedes Conditional auszuführen. Erweiterbarkeit wird verbessert Folge des Open-Closed Principle Wiederverwendbarkeit wird verbessert Die Strategy Klassen können auch an anderer Stelle verwendet werden.

Substitution Principle Liskov

Normteile

Liskov Substitution Principle Subtypes müssen sich so verhalten wie ihr Basetype. Der Subtype darf den Basetype nicht einschränken sondern nur erweitern. Beispiel: F(A) B : A Wenn B eine Exception auslöst obwohl A dies nicht macht entsteht in F ein Problem.

Dependency Inversion Principle

Dependency Inversion Principle High level Klassen sollten nicht von low level Klassen abhängig sein. Beide sollten von Interfaces abhängig sein. Interfaces sollten nicht von Details abhängen sondern Details von Interfaces.

Dependency Inversion Principle

InterfaceSegregation Principle

Interface Segregation Principle Clients sollten nicht gezwungen werden von Methoden abhängig zu sein die sie nicht benötigen. Segregation = Abtrennung

Interface Segregation Principle

Links und Infos Robert C. Martin Agile Software Development ISBN