Objektorientiertes Software-Engineering

Ähnliche Dokumente
10. Programmierungs-Phase: Objektorientierung Software Engineering

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

Objektorientierte Softwareentwicklung

Exkurs 1: Hintergrund zu Java und UML

Lehrstuhl für Wirtschaftsinformatik Prof. Dr. Roland Gabriel

Einführung in die objektorientierte Programmierung

Konzept und Umsetzung

Workload: 150 h ECTS Punkte: 5

Funktions- versus Objektorientierter Entwurf

Objektorientierte Modellierung (1)

UML (Unified Modelling Language) von Christian Bartl

3. Objektorientierte Analyse

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

1.3 Charakteristische Eigenschaften von objektorientierten Systemen

Kapitel

Analyse und Design mituml2

Software-Engineering

Requirements Engineering I

Die Unified Modeling Language UML

Stand: Semester: Dauer: Modulnummer: Minimaldauer 1 Semester IOBP. Regulär angeboten im: Modultyp: Pflicht WS, SS

Analyse und Design mit U ML 2.3

Analyse und Modellierung von Informationssystemen

Vorlesung Programmieren

Analyse und Design mituml2.1

Aufbau betrieblicher Informationssyteme

III.1 Prinzipien der funktionalen Programmierung - 1 -

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Objektorientiertes Programmieren

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

FACHHOCHSCHULE MANNHEIM

1.3 Entwicklungsmethoden: Systematischer Überblick

Analyse und Entwurf von Softwaresystemen mit der UML

Requirements Engineering I

1.3 Geschichte der Programmiersprachen

Java-Programmierung mit NetBeans

1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -

Objektorientierte Programmierung (OOP)

Realität zu modellieren eine

1.3 Entwicklungsmethoden: Systematischer Überblick

Inhalt. 1 Einführungsveranstaltung. 2 Pflichtenheft ANFORDERUNGSSPEZIFIKATION - GROBPLANUNG ANFORDERUNGSSPEZIFIKATION - SOLLKONZEPT

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

C.7 Objektorientierte Software-Entwicklung

Vorlesung Programmieren

Informatik I - Programmierung Globalübung Objektorientierung. Objektorientierung Konzepte & Notationen

Einführung in die Objektorientierung (OO)

Modellierung und Programmierung 1

Inhalte des Moduls Programmieren 1

Software Engineering

Softwaretechnik (Medieninformatik) Überblick

Geoinformation I Datenmodellierung

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Klassen- und Objektmodelle

5.2 Entity-Relationship-Modell

Unified Modelling Language

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

Einführung in die Objektorientierte Programmierung Vorlesung 2: Mikroskopisches und Makroskopisches Computational Thinking.

Einführung in die objektorientierte Programmierung. mit Squeak

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

2. Einführung. Informatik II für Verkehrsingenieure

Praxisbuch Objektorientierung

Objektorientierte Programmierung

Objektorientierte Analyse und Design

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Requirements Engineering I

Objektorientierte Systementwicklung

Das UML Benutzerhandbuch

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

4. Mentorium. UML-Modellierung (Lösungshinweise)

Requirements Engineering I. Objektorientierte Spezifikation

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

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Analyse und Modellierung von Informationssystemen

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Die Unified Modeling Language (UML)

Objektorientierte Systeme

SWE6 Slide 1. Software-Engineering. Vorlesung 6 vom Sebastian Iwanowski FH Wedel

Das UML Benutzerhandbuch

Geschäftsprozessmodellierung und implementierung am Beispiel SAP R/3 Sommersemester 2007

Software-Engineering

Transkript:

Objektorientiertes Software-Engineering TIT99BPE/TIT99CPE BA Mannheim WS 2001/2 F. Schönleber

Organisatorisches Kurs 1: TIT99BPE 6.Studienhalbjahr Termin Mo. 13.00 14.30 Raum: 037B Kurs 1: TIT99CPE 6.Studienhalbjahr Termin Mo. 15.00 16.30 Raum: 038B Klausur Termin Folie 2

Ziel der Vorlesung Objektorientierte Ansätze verstehen und umsetzen Problemstellungen mit OO-Entwurfsmethoden lösen Vorgehensmodelle erkennen Vorgehensweise Vorstellung von formalen Aspekten der OOSE Schwerpunkt UML Begleitendes praktisches Beispiel mit einem OO-Tool (Rational Rose) Geschäftsprozess Runners Inc. Softwaretechnische Beispiele in C++ oder Java Folie 3

Beispiel Runners Inc. Projekt Geschäftsprozess modellieren Runners Inc. Verkauft Schuhe an Jogger Bestellungen werden per Telefon angenommen Lieferung erfolgt per Post Es gibt zwei Sorten von Schuhen Trotter und Sprinter Jedes Paar Schuhe gibt es in unterschiedlichen Grössen Bisher wurde alles auf Papier bearbeitet Jetzt soll automatisiert werden Folie 4

Inhalt 1. Einführung in objektorientierte Methoden Geschichtliche Entwicklung Grundbegriffe der OOSE, Objekt, Klasse, Polymorphie, Einkapselung, Vererbung OOA OOD 2. Unified Modeling Language (UML) Geschichtliche Entwicklung Einführung Klassenmodelle Verhaltensmodelle 3. Analysemuster 4. Entwurfsmuster 5. Heuristiken 6. OO-Test 7. Vorgehensmodelle XP vs RUP vs V-Modell 8. Komponenten COM vs Java Beans vs CORBA Microsofts.net Strategie Folie 5

Folie 6

1 Einführung in die Objektorientierung 1.1 Historische Entwicklung Softwareentwicklung seit den 60er Jahren: Prozedurale Programmiersprachen (z.b.: FORTRAN, COBOL, Pascal, C) Zerlegung der Aufgaben nach Funktionen Daten werden getrennt von den Funktionen betrachtet Prozeßmodelle, die diese Vorgehensweise unterstützen: SADT (Structured Analysis and Design Technique) SA/SD (Structured Analysis and Structured Design) System Daten Funktionen Folie 7

Probleme bei dieser Vorgehensweise: Änderungen der Datenstrukturen führten zu Änderungen an vielen davon abhängigen Funktionen Änderungen meist nicht lokal, sondern über das gesamte System verstreut Softwareprojekte wurden immer größer und komplexer Beobachtung: Änderung der Funktionalität häufiger als Änderung der Anwendungsobjekte Da Systeme mit Funktionalität im Mittelpunkt entworfen wurden: Häufige Änderung des Gesamtsystems Folie 8

Idee: Strukturierung von Software nicht nach Funktionen, sondern nach Objekten (Objektorientierte) Objekte enthalten Daten und Funktionen (die mit diesen Daten arbeiten) Zwischenstufe: Programmiersprachen, die die Idee der Datenabstraktion unterstützten z.b.: Modula, Ada, CLU System Objekt Daten Funktionen Folie 9

In den 80er Jahren: Aufkommen von objektorientierten Programmiersprachen Smalltalk-80 verschiedene Lisp-Dialekte: Flavors, Loops, CLOS Objective-C C++ Eiffel schon 1967: Simula Nach 1990 JAVA (Visual Basic, nicht echt objektorientiert) Folie 10

Zunächst vorherrschende Meinung: Diese Sprachen bieten genügend Abstraktion, so daß Zwischenstufen im Entwicklungsprozeß (wie Analyse, Design) unnötig sind. Nach einiger Erfahrung (u. a. auch mit größeren Projekten): Auch beim objektorientierten Programmieren sind auf diese Vorgehensweise ausgerichtete Prozeßmodelle notwendig. Ab Ende der 80er bis Mitte der 90er Jahre entstanden eine Vielzahl (mehr als 50) von objektorientierten Prozeßmodellen Objektorientierte Analyse und Design nach Booch Object Modeling Technique (OMT) nach Rumbaugh et al. OOSE nach Jacobson Folie 11

1.2 Grundbegriffe der objektorientierten Softwareentwicklung 1.2.1 Objekt A thing presented to or capable of being presented to the senses Kann nahezu alles sein! Ein Objekt besteht aus Eigenschaften Fähigkeiten Beispiel: ein Apfel, Hund, der Student Martin Müller, ein Kochrezept Objekte besitzen eine Identität und sind klar unterscheidbar Im engeren, softwaretechnischen Sinne: ein Objekt besteht aus: Attributen mit zugehörigen Attributwerten sowie Methoden, die auf dem Objekt ausgeführt werden können Folie 12

Beispiel für ein Objekt (Objekt) Student Paula Geburtsdatum: 17.11.77 Einkommen: Stipendium Semester: 3. lernen feiern Folie 13

1.2.2 Klasse Eine Klasse beschreibt eine Gruppe von Objekten mit gleichen Eigenschaften (Attributen) gemeinsamem Verhalten (Operationen) gemeinsamen Beziehungen zu anderen Objekten gemeinsamer Semantik Beispiel Klasse: Student Objekte der Klasse Student: der Student Martin Müller, die Studentin Anne Mayer Ein Objekt ist eine Instanz einer Klasse Eine Klasse ist eine Schablone für ihre Objekte, die bestimmt, welche Struktur diese Objekte haben (Stempelmetapher) Folie 14

Beispiel Modellierung einer Klasse Klasse Student Student Geburtsdatum Einkommen Semester lernen feiern Folie 15

1.2.3 Objektorientierte Sichtweise (nach Heeg) z.b: Student Begriff [1:1] Klasse z.b.: Student Geburtsdatum Einkommen Semester feiern lernen [N:1] Erkennen Phänomen z.b: Welt [1:1] Objekt Exemplar [1:N] z.b. Laufzeitvariable Folie 16