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 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

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

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

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

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

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

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

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

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

Grundbegriffe der Objektorientierung

Grundbegriffe der Objektorientierung Grundbegriffe der Objektorientierung Objekt Merkmale Zustand Verhalten Lebenszyklus Beziehungen zwischen Objekten Kategorisierung von Objekten Grundbegriffe der Objektorientierung Objekt Merkmale Zustand

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

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

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

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

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

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

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

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

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

SWE5 Slide 1. Software-Engineering. Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel

SWE5 Slide 1. Software-Engineering. Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel SWE5 Slide 1 Software-Engineering Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel SWE5 Slide 2 Software-Engineering Vorlesungsthemen: 1. Überblick über das Thema und die Vorlesung 2. Grundlegende

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

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

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

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

Softwaretechnik. Fomuso Ekellem

Softwaretechnik. Fomuso Ekellem WS 2011/12 Inhalt Entwurfsphase Systementwurf Software Architektur Entwurf Software Komponenten Entwurf Struktur Verhalten OO Entwurf (OOD) 2 Entwurfsphase 3 Entwurfsphase Lernziele Aufgaben der Entwurfsphase

Mehr

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Weiteren Verlauf der Vorlesung 31.10.2011(2 Std) OO Vorgehensmodelle, UML, Teamarbeit, Gruppenbildung,. 07.11.2011(2,5Std) Projektvorstellung, Planungsphase 14.11.2011(2 Std) Angebotspräsentation,

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

Techniken der Projektentwicklung

Techniken der Projektentwicklung diagramme Termin 6 Denken in Schnittstellen Was nun? Einführung Bisher kennengelernt: Modellierung auf Konzeptlevel Usecase-Diagramme Domänenmodelle Jetzt: Übergang zu Spezifikation und Implementierung!

Mehr

Software Engineering und Projektmanagement

Software Engineering und Projektmanagement Software Engineering und Projektmanagement Motivation! Fachliche Sicht trifft auf technische Realisierung Entwurf 2009W - 5. November 2009 Andreas Mauczka Email: andreas.mauczka@inso.tuwien.ac.at Web:

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

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

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

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 3 Einführung in das objektorientierte Programmier-Paradigma 3 Einführung in das objektorientierte Programmier-Paradigma 3.1.1 Top-down structured design 3.1.2 Data-driven design 3.1.3 Object-oriented design

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

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

Methodische objektorientierte Softwareentwicklung

Methodische objektorientierte Softwareentwicklung Methodische objektorientierte Softwareentwicklung Eine Integration klassischer und moderner Entwicklungskonzepte von Mario Winter 1. Auflage Methodische objektorientierte Softwareentwicklung Winter schnell

Mehr

Grundlagen der Programm- und Systementwicklung

Grundlagen der Programm- und Systementwicklung Grundlagen der Programm- und Systementwicklung Technische Universität München Institut für Informatik Software & Systems Engineering Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. Maria Spichkova

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

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

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Inhalt Wiederholung Weitere Begriffe Programmierung im Großem (Programmierung von Software als Ganzes) Prozess-Modelle 2 Wiederholung: Prozesse Prozesse sind hierarchische Gruppierungen von

Mehr

Vorlesung Programmieren

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

Mehr

Softwarepraktikum: Enigma

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

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Software- und Systementwicklung

Software- und Systementwicklung Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg Inhalt Vorgehensmodelle Wasserfallmodell V-Modell Phasen (Pflichtenheft) UML Klassendiagramm Sequenzdiagramm

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

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

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

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

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

Modulare Programmierung und Bibliotheken

Modulare Programmierung und Bibliotheken Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung

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

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

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

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

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

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

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches... Inhaltsverzeichnis Vorwort...XIII Aufbau des Buches............................................... XV 1 Von der Idee zur Software..................................... 1 1.1 Beispielanwendung... 1 1.2 Schritte

Mehr

Software Engineering Analyse und Analysemuster

Software Engineering Analyse und Analysemuster Software Engineering Analyse und Analysemuster Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassendiagramme in der Analyse Im Rahmen der Anforderungsanalyse

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/15 1 / 26 Allgemeines Progammiersprachen Objektorientierte Programmierung Grundlegende Eigenschaften

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

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

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

Objektorientierte Programmierung. 1. Einführung. Dresden, 10. April 2008

Objektorientierte Programmierung. 1. Einführung. Dresden, 10. April 2008 Fakultät Informatik, Studienrichtung Lehramt Informatik Objektorientierte Programmierung 1. Einführung Dresden, 10. April 2008 Dr. Michael Unger Gymnasium Coswig Schülerrechenzentrum der TU Dresden (mu2@inf.tu-dresden.de)

Mehr

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog 10.Klasse: Themenschwerpunkt I: Datenbanken Datenbanken o Einsatzbereiche von Datenbanken o Verwaltung von großen Datenmengen o Probleme aus dem Alltag in Datenbanken abbilden o Relationale Datenbanksysteme

Mehr

Objektorientierte Programmiersprachen

Objektorientierte Programmiersprachen Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht

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

Objektorientierte Analyse und Entwurf

Objektorientierte Analyse und Entwurf Objektorientierte Analyse und Entwurf Thomas Röfer Funktionale Dekomposition Objektorientierter Ansatz Objekte und Klassen Objektbeziehungen Beispiel Rückblick Datenorganisation und Datenstrukturen Zeichensätze

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

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014 Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme 11. November 2014 Überblick Was ist die Unified Modeling Language (UML)? die Standardmodellierungssprache für Softwaresysteme

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

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Ostfalia Hochschule für angewandte Wissenschaften Fakultät Elektrotechnik

Ostfalia Hochschule für angewandte Wissenschaften Fakultät Elektrotechnik Ostfalia Hochschule für angewandte Wissenschaften Fakultät Elektrotechnik Prof. Dr.-Ing. D. Meyer Software Engineering SS 2013 Bearbeitungszeit Kurzfragenteil: 30 Minuten Hilfsmittel: keine Name Vorname

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation zwischen

Mehr

Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering

Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering Helmut Balzert Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering 3. Auflage Unter Mitwirkung von Heide Balzert Rainer Koschke Uwe Lämmel Peter Liggesmeyer Jochen Quante Spektrum

Mehr

Technische Universität München WS 2011/12 Fakultät für Informatik Lösungsvorschläge zu Blatt 2 Dr. C. Herzog, M. Maalej 31.

Technische Universität München WS 2011/12 Fakultät für Informatik Lösungsvorschläge zu Blatt 2 Dr. C. Herzog, M. Maalej 31. 2/ Technische Universität München WS 20/2 Fakultät für Informatik Lösungsvorschläge zu Blatt 2 Dr. C. Herzog, M. Maalej 3. Oktober 20 Übungen zu Grundlagen der Programmierung Aufgabe 4 (Lösungsvorschlag)

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

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

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2011 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester

Mehr

Software-Entwicklung: Konzepte der Objektorientierung

Software-Entwicklung: Konzepte der Objektorientierung Software-Entwicklung: Konzepte der Objektorientierung 1 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 2

Mehr

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering mit Übungen Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering 2 Organisation Ort: Seminarraum 05.002, Spiegelgasse 5 Ablauf: 15:15 Vorlesung Prüfung: Schriftlich,

Mehr

Software Engineering Software Entwurf

Software Engineering Software Entwurf Software Engineering Software Entwurf Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Entwurfsprinzipien KISS Keep it simple and stupid Möglichst einfache und klare

Mehr

Code-Erzeugung aus UML-Klassendiagrammen

Code-Erzeugung aus UML-Klassendiagrammen Dominik 09.03.2009 Universität Ulm Gessenharter Inst. f. Programmiermethodik und Compilerbau Code-Erzeugung aus UML-Klassendiagrammen Theorie und Praxis Seite 2 REConf 2009 München Dominik Gessenharter

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

Vom dem was Autos und Software GEMEINSAM haben. Diskussionsbeitrag zur Software-Industralisierung. Guido Brune

Vom dem was Autos und Software GEMEINSAM haben. Diskussionsbeitrag zur Software-Industralisierung. Guido Brune Vom dem was Autos und Software GEMEINSAM haben Diskussionsbeitrag zur Software-Industralisierung Guido Brune Gesellschaft für Informatik e. V. Regionalgruppe Dortmund 14. März 2011 Gliederung E I N L E

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

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0 Für den Einsatz in der Praxis Seite 2 Überblick 1. Ziele 2. Warum das alles? 3. Was ist UML 4. Diagrammarten 5. Umfeld Seite 3 1. Ziele 1. Ziele dieses

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

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

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

1 Objektorientierte Software-Entwicklung

1 Objektorientierte Software-Entwicklung 1 Objektmodellierung 1 Objektorientierte Software-Entwicklung Prof. Dr. Heide Balzert Fachbereich Informatik Fachhochschule Dortmund Heide Balzert 2000 2 Lernziele Wissen, was unter objektorientierter

Mehr

Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11. vii. Inhaltsverzeichnis

Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11. vii. Inhaltsverzeichnis Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11 vii 1 Einführung 1 1.1 Motivation.................................... 1 1.2 Vorteile der neuen Techniken...................... 3 1.3 Aufbau des

Mehr