ALLG. METHODEN DES SOFTWAREEINGINEERING

Größe: px
Ab Seite anzeigen:

Download "ALLG. METHODEN DES SOFTWAREEINGINEERING"

Transkript

1 Grundlagen und Prinzipien des Software-Entwurfs ALLG. METHODEN DES SOFTWAREEINGINEERING

2 Ziele der Veranstaltung (I) Grundlagen und Begrifflichkeiten Prinzipien des Architekturentwurfs Modulare Dekomposition Objektorientierte vs. Funktionsorientierte Zerlegung 2

3 Ziele der Veranstaltung (II) Einführung in die Objektorientierte Modellierung Klassen und Objekte Assoziation, Aggregation, Komposition, Vererbung Modellierung von Klassendiagrammen mit UML Empfehlungen beim Arbeiten mit UML Ermittlung von Klassen und Attributen Ermittlung von Assoziationen und Spezialisierungen 3

4 Entwurf Übersicht Entwurf basiert auf dem Pflichtenheft/Spezifikation und ist eine Arbeitsvorlage für den Entwicklungsprozess Entwurf berücksichtigt die technischen Gegebenheiten und beschreibt das grobe WIE Entwurf wird schon mit Blick auf die nachher bei der Implementierung verfügbaren Möglichkeiten durchgeführt werden Entwurf legt die Architektur, Komponenten, Schnittstellen und anderer Merkmale der Zielsoftware fest 4

5 Entwurf Ziele des Entwurfs Gliederung des Systems in überschaubare Einheiten Komplexität verringern Definition der Systemkomponenten Festlegung der Lösungsarchitektur Erarbeitung einer geeigneten Architektur Festlegung der Schnittstellen/Abhängigkeiten Hierarchische Gliederung Arbeitsteiliges Entwickeln vorbereiten 5

6 Ein guter Entwurf braucht Klare, strukturierte und iterative Vorgehensweise Wissen über die fachlichen Anforderungen Wissen über die Gegebenheiten (Technik, Menschen, Prozesse) Skills Fähigkeiten zur Abstraktion und Dekomposition Wissen über die Einsatztechnologie, min. Imperative Programmierung Beherrschen von Entwurfmustern (Patterns) Beherrschung von Notationen wie UML, ER, PAP, 6

7 Entwurf Systematische und iterative Vorgehensweise Bildung dynamischer und statischer Komponenten Festlegung der Hierarchie Und der Kommunikation/ Interaktion Zerlegung Revision Änderung Des Vorschlags Verfeinerung der Zerlegung Überprüfung Anhand von aktuellen Anforderungen 7

8 Bedienoberfläche Begrifflichkeiten im Entwurf Die Entwicklungsrichtung Aufgabe, Problem top-down outside-in bottom-up inside-out System-Software, -Hardware 8

9 Die Entwicklungsrichtung Top-down: vom Abstrakten zum Konkreten Bottom-up: vom Konkretem zum Abstrakten Outside-in: Modellierung der Umwelt > Modellierung der Systeminterna Inside-out: Modellierung der Systeminterna > Modellierung der Schnittstellen zur Umwelt 9

10 Die Entwicklungsrichtung Vor- und Nachteile Top-down + Konzentration auf das Wesentliche möglich + Strukturierte Zusammenhänge werden leichter erkannt - Es wird hohes Abstraktionsvermögen benötigt - Vage Entscheidungen werden an tiefere Ebenen weitergereicht Bottom-up + Es ist eine konkrete Ausgangsbasis vorhanden + Eine Begrenzung auf konkrete Teilgebiete ist möglich - Es muss eine breite Basis gelegt werden, um das Ziel sicher zu erreichen 10

11 Die Entwicklungsrichtung Vor- und Nachteile Outside-In + Konzentration auf die Umwelt + Beziehungen zur Außenwelt werden nicht übersehen - Die Außenwelt lenkt von internen Problem ab - Die Wiederverwendbarkeit wird erschwert Inside-out + Strukturierungen stehen im Mittelpunkt - Gefahr, dass Anforderungen der Umwelt übersehen oder zu spät erkannt werden 11

12 Begrifflichkeiten im Entwurf System und Systemelemente Ein System ist ein Ausschnitt aus der realen gedanklichen Welt, bestehend aus Systemkomponenten bzw.. Subsystemen, die untereinander in verschiedenen Beziehungen stehen Balzert, H. (2009) Systemteile bzw.. Bausteine, die nicht zerlegbar sind oder zerlegt werden sollten, werden als Systemelemente bezeichnet 12

13 Begrifflichkeiten im Entwurf Software-Architektur Softwarearchitektur wird als eigenständige Ebene betrachtet, die verschiedene Sichten auf ein Programmsystem beschreibt die äußere Ausgestaltung den inneren Aufbau Äußere Architektur Verbindung mit Komponenten des Basissystems Bindung an Bibliotheken und Rahmenwerke Innere Architektur Die statische Sicht als Zerlegung in Entwurfseinheiten Die dynamische Sicht als Interaktion von Komponenten 13

14 Software-Architektur Architektur hängt von Gegebenheiten ab Gibt es eine allgemeine Anwendungsarchitektur die als Schablone dienen kann? Welcher architektonischer Typ oder welche Typen sind für das System geeignet? Wie lautet der grundlegende Ansatz zur Strukturierung des Systems? Wie werden die strukturellen Einheiten im System in Module zerlegt? Wie soll die Systemarchitektur dokumentiert werden? und natürlich die Anforderungen an das System 14

15 Software-Architektur wird durch mehrere Modelle beschrieben (Auszug) Ein statisches Strukturmodell Ein dynamischen Prozessmodell Ein Schichtenmodell Diverse Beziehungsmodelle Ein Verteilungsmodell 15

16 Begrifflichkeiten im Entwurf Architekturmuster Dokumentation und Wiederverwendung von bewährten Mustern auf einer sehr hohen Abstraktionsebene Programmiersprachen- und Technologie-neutral Abhängig von den Gegebenheiten und vorhanden Werkzeugen Beispiele: Drei-Schichten-Architektur, Model-View-Controller- Architektur 16

17 Begrifflichkeiten im Entwurf Entwurfsmuster Lösungen für gängige Entwurfsprobleme Werden auf der Ebene des Feinentwurfs von Komponenten eingesetzt Unabhängig von einer Programmiersprache Meistens objektorientierte Konzepte als Grundlage Beispiel: Beobachter, Singleton (Implementierung später) 17

18 Prinzipien des Architekturentwurfs Prinzip der Abstraktion Abstraktion /Abstrahieren Verallgemeinerung und Loslösen vom Dinglichen Absehen vom Konkreten, Besonderen und Einzelnen Herausgeben des Wesentlichen aus dem Zufälligen Erkennen gleicher Merkmale Erstellen eines Modells der realen Welt Beispiel: Klaus Mustermann besitzt ein Giro-Konto und ein Sparbuch-Konto

19 Prinzipien des Architekturentwurfs Prinzip der modularen Dekomposition Modulare Dekomposition beschreibt die Zerlegung des System in logische / physikalische Einzelteile (~7) Klassifikation in Funktionale Module Bsp.: Funktionsbibliotheken wie Math > math.pow() Datenobjektmodule Bsp.: Datenbanken Datentypmodule Bsp.: Datentypen wie Kunde, Artikel 19

20 Modulare Dekomposition Generelle Vor- und Nachteile Vorteile Kapselung des Subsystems (Sichtbarkeit) Keine Schwierigkeiten bei internen Änderungen Nachteile Erhöhte Rechenzeit Hohe Anforderungen an die Doku/ Konfiguration durch hohe Modularisierung 20

21 Modulare Dekomposition Objektorientierte Zerlegung Aufteilung des Systems in Module mit eigenem Zustand und Operationen System besteht aus lose gekoppelten Objekten mit genau definierten Schnittstellen Objekte repräsentieren real existierende Gegenstände Objekte benutzen die Dienste anderer Objekte 21

22 Modulare Dekomposition Funktionsorientierte Zerlegung Funktionale Transformationen von Daten: Eingangsdaten > Transformation > Ausgangsdaten Mehrere Funktionen/Prozesse verarbeiten sequentiell oder parallel Informationen 22

23 Modulare Dekomposition Vorteile Objektorientierte Zerlegung Teile und Herrsche -Prinzip Kapselung von Daten bzw.. Wissen Funktionsorientierte Zerlegung Intuitiv, da Reihenfolge von Verarbeitungen Transformationen können hinzugefügt bzw. entfernt werden 23

24 Modulare Dekomposition Nachteile Objektorientierte Zerlegung Funktionsorientierte Zerlegung Abstrakt, da keine Reihenfolge Anforderungen an die Schnittstellen (Doku) Verteilung des Objektwissens auf mehrere Funktionen Kann sehr unüberschaubar werden Überlappende Teilfunktionen 24

25 Prinzipien des Architekturentwurfs Kopplung Kopplung beschreibt die Abhängigkeit zwischen Modulen, z.b. durch Ablaufsteuerung oder gemeinsam benutzte Daten Ziel beim Entwurf: die Kopplung zwischen Modulen möglichst gering zu gestalten -> lose Kopplung Die Kopplung zwischen den Modulen soll über die parametrisierte Operation erfolgen zustandsändernde Prozeduren wertliefernde Operationen 25

26 Prinzipien des Architekturentwurfs Geheimnisprinzip - Information hiding Eine Technik zur Modularisierung von Software-Systemen Verfolgt den Need-to-know-Prinzip, Informationen, die nicht verwendet werden dürfen, werden nicht zugänglich gemacht Zugriff auf die Informationen über Operationen Das Modul entscheidet selbst wer auf seine Attribute lesend und schreibend zugreifen darf wie lesend und schreibend zugegriffen werden darf. 26

27 Information Hiding Beispiel: Klasse Konto in Java class Konto { private int kontonr; private double kontostand; public Konto(int nr) { kontonr = nr; } public void abheben(double betrag) {... } } public double kontostandabfragen() {... } 27

28 Prinzipien des Architekturentwurfs Trennung von Zuständigkeiten Konzentration von Komponenten auf bestimmte Aufgabenbereiche Ziel: keine Komponenten, die in mehreren Bereichen agieren Kriterien zur Trennung bzw. Zusammenlegung von Modulen Zusammengehörende Daten und Operationen (Klassen) Funktionale Aspekte (Features) Trennung von Funktionalität und Interaktionen (MVC) 28

29 Prinzipien des Architekturentwurfs Trennung von Funktion und Interaktion GUI-intensiven Programmteile können Interaktions- und funktionalen Anweisungen beinhalten Schlechte Lesbarkeit des Programmcodes Sehr hoher Wartungsaufwand bei kleinen Änderungen Keine direkte Wiederverwendung von Geschäftslogiken in anderen Darstellungskonzepten Ziel: Trennung der Darstellung inkl. der Interaktion von der Anwendungs-/Geschäftslogik Werkzeug: Model-View-Controller-Pattern 29

30 Entwurf Wo fange ich an? 30

31 31

32 Was ist Objektorientierung? Objektorientierung ist ein Paradigma, eine Sichtweise auf komplexe Systeme (nicht neu, seit 60er Jahren) Ziel: Verringerung der Komplexität, bessere Handhabung folgende Merkmale aufweist Unterstützung von Vererbungsmechanismen Unterstützung von Datenkapselung Unterstützung von Polymorphie Objektorientierten Sprachen (Auszug): Java, C#, Smalltalk 32

33 Objektorientierung Vorteile Realitätsnahe Modellierung und Modellbasierte Entwicklung Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Kapsellung des Wissens in der Klassen bzw. im Objekt Steigerung der Wartbarkeit und Wiederverwendbarkeit des Codes 33

34 Objektorientierung Nachteile Die Nachteile sind vorhanden, spielen aber heute keine bedeutende Rollen mehr Großer Speicherbedarf und Verarbeitungsaufwand Speicherverwaltung erforderlich (dynamische Bindung) Anwendung / Portierung des Paradigma auf andere Problembereiche 34

35 Elemente objektorientierter Architektur Übersicht Statik Klasse und Objekt Beziehungen zwischen Klassen bzw. Objekten Merkmale Verhalten Zustand Lebenszyklus 35

36 Elemente objektorientierter Architektur Klassen Eine Klasse = eine abstrakte Beschreibung bzw. Schablone von Gegenständen und Sachverhalten Klassen sind Baupläne für Objekte / reale Gegenstände Klassen definieren Eigenschaften und Methoden von Objekten Zu einer Klasse können beliebig viele Objekte erzeugt werden 36

37 Elemente objektorientierter Architektur Objekte Ein Objekt ist eine konkrete Ausprägung einer Klasse (Instanz der Klasse), ein Objekt wird instanziiert Objekte enthalten Eigenschaften und Methoden von Klassen Ein Objekt besitzt eine Identität! Ein Objekt besitzt Zustände und einen Lebenszyklus Beispiel: Bauplan > Haus (hier kann man wohnen) 37

38 Elemente objektorientierter Architektur Zustände und Verhalten Der Zustände eines Objekt wird über die Attribute ausgedrückt Das Verhalten eines Objekts wird über seine Operationen beschrieben 38

39 Fragen bei der objektorientierten Modellierung Welche Objekte benötigen wir? Welche Merkmale besitzen diese Objekte? Wie lassen sich diese Objekte klassifizieren? Welche Assoziationen bestehen zwischen den Klassen? Wie wirken die Objekte global zusammen? In welchen Zuständen befinden sich die Objekte? 39

40 Unified Modeling Language (UML) hilft beim Beantworten der Fragen Standard der Object Management Group UML ist keine Methode, sondern definiert eine Notation und Semantik zur Visualisierung, Konstruktion und Dokumentation von Modellen Konzipiert für die Geschäftsprozessmodellierung und für die objektorientierte Softwareentwicklung 40

41 UML Ein Produkt der Evolution M. Jeckle: UML 2.0. Modellierung 2004, Marburg 41

42 Objektorientierte Modellierung mit UML Diagrammtypen (Auszug) Anforderungen an das System Use-Case-Diagramm Logischer Aufbau des Systems (Statische Sicht) Klassendiagramm Kollaborationsdiagramm Interaktionen und Abläufe (Dynamische Sicht) Aktivitätsdiagramm Sequenzdiagramm Zustandsdiagramm 42

43 Objektorientierte Modellierung mit UML Werkzeugunterstützung 43

44 Klassendiagramm Übersicht Grafische Darstellung / Modellierung von Klassen, Schnittstellen und deren Beziehungen Zusammenstellung deklarativ-statischer Modellelemente (Klassen, Typen, ihre Inhalte und Beziehungen) Zwei wesentliche Elemente: Klasse und Objekt Ersetzt oftmals das klassische Datenmodell (Entity Relationship) 44

45 Klassendiagramm Aufbau Klassenname Attribute/ Eigenschaften Parameter Operationen/ Methoden Rückgabewert 45

46 Klassendiagramm Aufbau Rolle bzw. Eigenschaft Beziehungsname Operationen-Bereich Multiziplität Attributen-Bereich 46

47 Klassendiagramm Beispiel 47

48 Aufbau Klassendiagramm Sichtbarkeit von Attributen und Operationen Der Sichtbarkeitsbereich für Attribute und Dienste + public sichtbar für alle Systemteilnehmer - private sichtbar nur innerhalb der Klasse # protected sichtbar nur innerhalb der Klasse und für alle Unterklassen ~ package sichtbar nur innerhalb des Packet. Grundsätzlich sollten Variablen immer auf private gesetzt werden > Zugriff soll über Methoden erfolgen 48

49 Konkrete Implementierung Beispiel: Klasse Konto in Java class Konto { private int kontonr; private double kontostand; public Konto(int nr) { kontonr = nr; } public void abheben(double betrag) {... } } public double kontostandabfragen() {... } 49

50 Konkrete Implementierung Beispiel: Instanziieren der Objekte in Java public static void main(string[] args) { Konto konto1 = new Konto(123456); konto1.abheben(1000.0); } Konto konto2 = new Konto(234567); konto2.abheben(2000.0); 50

51 Beziehungen Assoziation Assoziation = semantische Beziehung zweier Klassen Zwei Klassen/Objekte sind assoziiert, wenn das eine Methoden von dem anderen aufruft. Eine Klasse/Objekt nutzt die Dienste einer anderen Klasse/Objekt Beziehung von zwei unabhängigen Objekten, um ein gemeinsames Ziel zu erreichen Objekte bestehen weiterhin unabhängig voneinander fort auch nach dem Erreichen des Ziels Beschreibbar über: "benutzt ein/e", "ist zugeordnet zu" und "hat eine Beziehung zu 51

52 Assoziationen Beispiel: Eine Person benutzt ein Computer Assoziationsname Assoziation 52

53 Assoziationen Beispiel: Kunde und Auto stehen im Mietverhältnis 53

54 Assoziationen Navigierbarkeit Assoziationen können nicht gerichtet und gerichtet sein Keine Aussage zur Navigierbarkeit zwischen der Klasse Person und Konto Person Konto Navigieren von Person nach Konto verboten Person Konto Navigieren von Person nach Konto erlaubt Person Konto In der Praxis wird typischerweise unidirektionale Navigierbarkeit unterstützt 54

55 Assoziationen Multiplizität Ausdruck wie viele Objekte ein Objekt halten kann Intervall von nicht-negativen, ganzen Zahlen Untergrenze >= anzahl <= Obergrenze * ^= unendlich Multiplizität 55

56 Assoziationen Mini-Übung 56

57 Beziehungen Vererbung, Generalisierung und Spezialisierung Modellierung der realen Welt in ihren Strukturen Vorteile Hierarchische Begriffsklassifizierung Wiederverwendung von bereits vorhandenem Wissen Wiederverwendung von existierendem Code Einfachere Wartung Beschreibbar über: "ist ein/e" 57

58 Vererbung Beispiel Kraftfahrzeug PKW Van LKW Coupé Cabrio Kombi 58

59 Vererbung Generalisierung und Spezialisierung Basisklasse Superklasse Person erbt von = Spezialisierung Kunde Mitarbeiter Diskriminator Vertragsverhältnis Privat Kunde Praktikant Angestellter Subklasse Leitender Angestellter 59

60 Vererbung Weitere Beispiele 60

61 Vererbung Weitere Beispiele 61

62 Vererbung Beispiel: Java-Programm ohne Vererbung class Angestellter { private String name; private double gehalt; private Date geburtsdatum; } public String liefereangaben() {... } class Abteilungsleiter { private String name; private double gehalt; private Date geburtsdatum; private String abteilung; public String liefereangaben() {... } public void befördern(angestellter a){... }; } 62

63 Vererbung Beispiel: Java-Programm mit Vererbung 63

64 Vererbung Beispiel: Java-Programm mit Vererbung class Angestellter { private String name; private double gehalt; private Date geburtsdatum; public String liefereangaben() {... } } class Abteilungsleiter extends Angestellter { } private String abteilung; public void befördern { }... (Angestellter a) 64

65 Beziehungen Aggregation Aggregation beschriebt eine Abhängigkeit Physische Aggregation: Das Analyseobjekt besteht aus Teilen. Der Motor ist Teil eines Autos (Komposition) Logische Aggregation: Begriffliche Objekte werden als ein Teil angesehen. Die Adresse gehört zu einer Person. 65

66 Aggregation Beispiel: Der Motor ist Teil eines Autos 66

67 Aggregation Beispiel Ein Bus befördert Fahrgäste 67

68 Beziehungen Komposition Eine Komposition stellt eine strengere Beziehung als eine Assoziation dar Bei einer Komposition enthält ein Ganzes-Objekt ein Teil-Objekt. Bei einer Komposition enthält ein Objekt ein anderes. Für das enthaltene Objekt macht eine selbständige Existenz keinen Sinn. Beschreibbar über: "hat ein/e" bzw. "besteht aus" Beispiel: Ein Beispiel für eine Komposition wäre ein Bleistift und seine Mine 68

69 Komposition Beispiele 69

70 Aggregation und Komposition Mini-Übung 70

71 Modellierung von Klassendiagrammen Methodik Finde Klassen Identifiziere Klassen über die Substantivmethode Identifiziere Substantive Identifiziere Synonyme, Akronyme und Fachbegriffe Identifiziere Homonyme Kategorisiere und filtriere die Substantive Wähle aussagefähige und verbindliche Klassennamen Dokumentiere jede Klasse in einem Satz 71

72 Modellierung von Klassendiagrammen Methodik Finde Attribute Identifiziere Attribute im Anschluss an die Substantivmethode Fasse Adjektive zu Attributen zusammen Überprüfe den Attributnamen (Substantiv, konkret, kein Homonym) Definiere den Typ der Attribute (int, double, Konto,..) Überprüfe die Attribute auf fachliche bzw. technische Lücken Füge Informationen hinzu, die vom System ermittelt werden können Füge Informationen hinzu, die für spätere Verarbeitung verwendet werden können 72

73 Modellierung von Klassendiagrammen Methodik Finde Assoziationen Identifiziere mögliche Assoziationen zwischen Objekten (Verben und prozessbeschreibende Substantive) Ermittle die Abhängigkeit zwischen den Klassen nur Assoziation? Aggregation? Komposition? Bestimme die Kardinalität jeder Rolle jeder Assoziation Muss-Beziehung -> 1.. Kann-Beziehung -> 0... Ober/Untergrenzen -> n...m 73

74 Literaturquellen Ludewig, J., Lichter, H.: Software Engineering. Grundlagen, Menschen, Prozesse, Techniken Balzert, H.: Lehrbuch der Software-Technik: Basiskonzepte und requirements engineering Pomberger, G., Blasckek, G.: Software Engineering. Prototyping und objektorientierte Software-Entwicklung Sommerville, I.: Software Engineering 74

75 Übung 75

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish UML Klassendiagramm Igor Karlinskiy, Mikhail Gavrish Agenda Wichtigste Eigenschaften Syntaktische Elemente mit entsprechendem C++ Code Analysemodell Designmodell Quellen 2 Klassendiagramm gibt die Möglichkeit,

Mehr

Software Engineering

Software Engineering Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,

Mehr

Abschnitt 16: Objektorientiertes Design

Abschnitt 16: Objektorientiertes Design Abschnitt 16: Objektorientiertes Design 16. Objektorientiertes Design 16 Objektorientiertes Design Informatik 2 (SS 07) 610 Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen

Mehr

OO Softwareentwicklung

OO Softwareentwicklung OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1.. Software Engineering I Musterlösungen zur Klausur vom 3.7.2004 Aufgabe a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. zeigt eine mögliche Lösung. Turnier sportart

Mehr

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Kapitel 2: Der Software-Entwicklungsprozess

Kapitel 2: Der Software-Entwicklungsprozess Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Software-Engineering

Software-Engineering FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 2: Grundbegriffe und Prinzipien FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 2 Grundbegriffe

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

2. Tutorium zu Softwaretechnik I

2. Tutorium zu Softwaretechnik I 2. Tutorium zu Softwaretechnik I Lastenheft, Durchführbarkeitsuntersuchung und Klassendiagramme Michael Hoff 06.05.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes

Mehr

Klassendiagramm. (class diagram)

Klassendiagramm. (class diagram) : Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau

Mehr

Requirements Engineering I

Requirements Engineering I Norbert Seyff Requirements Engineering I UML Unified Modeling Language! 2006-2012 Martin Glinz und Norbert Seyff. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen: Informationssystemanalyse Lebenszyklusmodelle 3 1 Aufgaben von Lebenszyklusmodellen Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen: Definition der Tätigkeiten im Entwicklungsprojekt Zusicherung

Mehr

Software-Engineering

Software-Engineering SWE5 Slide 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 5: Systementwurf SWE5 Slide 2 Systemanalyse vs. Softwareentwurf Systemanalyse beschreibt das System der Anwendung, für das eine Aufgabe

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

BEISPIELKLAUSUR Softwareentwicklung:

BEISPIELKLAUSUR Softwareentwicklung: Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte

Mehr

Softwarepraktikum: Enigma

Softwarepraktikum: Enigma Softwarepraktikum: Enigma Martin Steffen Sommersemester 2003 Abschnitt I Softwareentwurf Bereiche der Softwareentwicklung 1 Softwareentwurf eigentliche Softwareentwicklung Projektmanagement Konfigurationsmanagement

Mehr

SWE5 Übungen zu Software-Engineering

SWE5 Übungen zu Software-Engineering 1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und

Mehr

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie. GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen Teil 1: Einführung: Wissensbasis und Ontologie Was ist eine Wissensbasis? Unterschied zur Datenbank: Datenbank: strukturiert

Mehr

1 Informationelle Systeme begriffliche Abgrenzung

1 Informationelle Systeme begriffliche Abgrenzung 1 Informationelle Systeme begriffliche Abgrenzung Im Titel dieses Buches wurde das Wort Softwaresystem an den Anfang gestellt. Dies ist kein Zufall, denn es soll einen Hinweis darauf geben, dass dieser

Mehr

Software Engineering. 3. Analyse und Anforderungsmanagement

Software Engineering. 3. Analyse und Anforderungsmanagement Software Engineering 3. Analyse und Anforderungsmanagement Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

17 Architekturentwurf Vorgehen und Dokumentation

17 Architekturentwurf Vorgehen und Dokumentation 17 Architekturentwurf Vorgehen und Dokumentation 17.1 Einbettung Aber Erster Schritt der Lösung Wenn Anforderungsspezifikation vorliegt Vorgabe für Codierung Hierarchische Verzahnung von Anforderungen

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Übungsklausur vom 7. Dez. 2007

Übungsklausur vom 7. Dez. 2007 Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Datenbankmodelle 1. Das Entity-Relationship-Modell

Datenbankmodelle 1. Das Entity-Relationship-Modell Datenbankmodelle 1 Das Entity-Relationship-Modell Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle ER Modell - 2 Was kann modelliert werden?

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

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

4. Übung zu Software Engineering

4. Übung zu Software Engineering 4. Übung zu Software Engineering WS 2009/2010 Henning Heitkötter Klassendiagramm: Projektmanagement AUFGABE 10 1 OOA-Methode von Heide Balzert 1. Klassen finden 2. Assoziationen und Kompositionen finden

Mehr

Einführung in die Programmierung für NF

Einführung in die Programmierung für NF Einführung in die Programmierung für NF UML Valerie Holmeyer Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wichbg Quiz nach den jeweiligen AbschniGen Jeder kann mitmachen App socra&ve auf Smartphone

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

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

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

16 Architekturentwurf Einführung und Überblick

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

Mehr

Grundlagen der Softwaretechnik

Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Gliederung 1. Generative Programmierung 2. Möglichkeiten und Einsatzgebiet 3. Prozess / Tools 4. Zusammenfassung 19.03.2009 GENERATIVE PROGRAMMIERUNG

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi Das Metamodell der UML und in FUJABA Vortrag von Alexander Geburzi Gliederung Metamodellierung Metamodell der UML Metamodell in FUJABA Metamodellierung - Metamodell der UML - Metamodell in FUJABA 2/20

Mehr

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn 1995. Inhaltsverzeichnis.

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn 1995. Inhaltsverzeichnis. 3 Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn 1995 Inhaltsverzeichnis Vorwort 5 1. Komplexe Software - Projekte - Software-Engineering 7 1.1 Komplexe

Mehr

RUP Analyse und Design: Überblick

RUP Analyse und Design: Überblick Inhaltsverzeichnis Übersicht [, 2, 8] 3. Vorgehensweise............................... 5 2 Planungsmethoden 37 2. Definitionsphase.............................. 6 3 Rational Unified Process [5, 6] und

Mehr

Software Engineering I

Software Engineering I Vorlesung Software Engineering I Dynamische Basiskonzepte 2 Kontrollstrukturen Aktivitätsdiagramme Sequenzdiagramme 1 Basiskonzepte Beschreiben die feste Struktur des Systems, die sich während der Laufzeit

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Grundlagen Software Engineering

Grundlagen Software Engineering Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Smalltalk CLOS Ada 9 C++ Objektorientierte Softwareentwicklung Object Pascal Java Oberon-2 Frage: Die Bibliothek der Fachhochschule

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 1. Vorlesung Prof. Dr. Peter Knauber Email: P.Knauber@fh-mannheim.de FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Objektorientierung Was ist das? Warum

Mehr

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand: 18.09.2011

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand: 18.09.2011 Bezug zu den Leitideen der Bildungsstandards und den Kompetenzen, Inhalte Bemerkungen welche die Schülerinnen und Schüler erwerben Klasse 11 Informatik 4-stündig Einführung in die objektorientierte Modellierung

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

Mehr

Software-Engineering SS03. Zustandsautomat

Software-Engineering SS03. Zustandsautomat Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die

Mehr

1.1 Einführung 11. Grundbegriffe der objektorientierten Softwareentwicklung

1.1 Einführung 11. Grundbegriffe der objektorientierten Softwareentwicklung 1.1 Einführung 11 1 Grundbegriffe der objektorientierten Softwareentwicklung 12 1 Grundbegriffe der objektorientierten Softwareentwicklung 1 Grundbegriffe der objektorientierten Softwareentwicklung 1.1

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

Architekturplanung und IS-Portfolio-

Architekturplanung und IS-Portfolio- Architekturplanung und IS-Portfolio- management Gliederung 1.Einführung 2.Architekturplanung 3.IS-Portfoliomanagement 4.AP und IS-PM 5.Fazit 2 1. Einführung Problem: Verschiedene Software im Unternehmen

Mehr

Einführung in die Modellierung

Einführung in die Modellierung Einführung in die Modellierung Christian Huemer Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna,

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Programmieren in Java

Programmieren in Java FG TECHNISCHE INFORMATIK V JV A00 00 TH 0 Programmieren in Java Anhang A A. Modellierung von OOP-Programmen A.. Klassenkategorien A.2. Klassembeziehungen A.3. Klassendiagramm und Sequenzdiagramm der UML

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 -

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 - Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule

Mehr