Objektorientierte Softwareentwicklung

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Blue J.
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
Objektorientierung Auffassung der Software als eine Sammlung
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
IT-Projektmanagement
Warum Objektorientierung?
Objektorientierter Entwurf
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Manfred Thaller, Universität zu Köln Köln 28. Januar 2008
Manfred Thaller, Universität zu Köln Köln 7. Januar 2010
Visualisierung des Rechts mit UML
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Objektorientierter Entwurf (OOD) Übersicht
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Entwicklung der Programmiersprachen
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Modellierung komplexer Realität mit Objekten
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
UML Unified Modelling Language Dipl. -Inform
Objektorientierte Programmierung am Beispiel von Java
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
OO Analyse und Entwurf für Anwender
OO Analyse und Entwurf für Anwender
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Rational Rose und UML: Erstellung einer Kontoverwaltung
UML Begleitdokumentation des Projekts
Unified Modeling Language Einführung zu UML Was ist „UML“?
Visualisierung objektrelationaler Datenbanken
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 12. Sitzung WS 02/03.
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
Unified Modeling Language Repetition / Einführung zu UML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Konzepte der objektorientierten Programmierung
Auslegung eines Vorschubantriebes
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
UML-Kurzüberblick Peter Brusten.
Unified Modeling Language
Innovator Die Komponenten.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Vom Geschäftsprozess zum Quellcode
Informatik und Programmieren 3
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Parameterübergabemechanismen für den Methodenaufruf
1 Ausgangslage Vorgehensweise: Informell, pragmatisch, stark graphisch orientiert. Systemanalytischer Ausgangspunkt: Klassischer Systembegriff als Ansammlung.
Objektorientierung.
Objektorientierte Modellierung mit UML
Die Unified Modeling Language UML
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Unified Modeling Language UML
Kurze Rekapitulation aus der Einführungsvorlesung Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 20. Oktober 2011.
Einführung in die Programmierung mit Java
Sichtbarkeit einschränken
1 Objektorientierter Entwurf E-R-Modellierung: Ausschließlich strukturelle Aspekte Verhaltensaspekte noch unberücksichtigt:  Interaktionen zwischen Objekten.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Objektorientierte (OO) Programmierung
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
UML – Unified Modeling Language
Systemanalyse BA Heidenheim 2002.
 Präsentation transkript:

Objektorientierte Softwareentwicklung Xinxin Li Haibin Hu 28.11.03

Einführung Die Historie der Objektorientierung UML (Unified Modeling Language)

Objekt Ein Objekt ist eine zur Ausführungszeit vorhandene und für ihre Instanzvariablen Speicher allokierende Instanz, die sich entsprechend dem Protokoll ihrer Klasse verhält. Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.

Realität Fahrrad Mensch Modell Buch besitzt liest Alle in der realen Welt vorkommenden Gegenstaende koennen als Objekte angesehen werden. Ein Fahrrad ist enbenso ein Objekt wie ein Mensch,ein Buch und etwas anderes. Und diese Objekte setzen sich wiederum aus anderen Objekten zusammen, naemlich ein Fahrrad aus Schrauben,Raedern,ein Mesch aus Kopf,Haende, ein Buch aus Autor,Verlagsdatum und so weiter. Fahrrad besitzt Mensch liest Modell Buch

Klassen & Objekte & Instanzen Eine Klasse ist die Definition der Attribute, Operationen und der Semantik für eine Menge von Objekten. Objekte Ein Objekt ist eine konkret vorhandene und agierende Einheit mit eigener Identität und definierten Grenzen das Zustand und Verhalten kapselt. Instanzen Für den Hausgebrauch können Instanz, Objekt und Exemplar synonym berachtet werden.

Objekt-Klassen-Beziehung: Instance of Klasse Objekt z.B Xinxin Instance of Die in der realen Welt vorkommenden Gegenstaende besitzen nicht nur ihre wichtigsten Eigenschaften, ausserdem werden es auch gleichartige Objekte zusammengefasst. Fuer gleichartige Objekte verwendet man den Begriff “Klasse”. In der Objektorientierung werden aehnliche Objekte zu Gruppierungen zusammengefasst. Die Eigenschaften der Objekte werden also in den Gruppierungen gesammelt und daher fuer eine Erzeugung von realen Objekten verwendet. Die Beschreibung von Struktur und Verhalten fuer konkrete Objekte nennt man “Klasse”. Die Objekte duerfen nicht unabhaengig existieren,sondern immer zu einer Klasse gehoeren und von der erzeugt werden. Die Objekte kann man auch “Instanzen” dieser Klassen nennen. “Objekte” und “Instanzen” beziehen sich auf den gleichen Begriff. Z.B. in diesem Diagramm kann man sagen… Studenten Haibin Instance of

Attribute & Methode Attribute Methode (Operation) die Struktur der Objekte: ihre Bestandteile und die in ihnen enthaltenen Informationen bzw. Daten. Methode (Operation) In der UML wird eine Methode als Implementierung einer Operation definiert. Für die Praxis ist es unkritisch, Methode und Operation synonym zu verwenden.

Kreis einKreis:Kreis Klassenname radius Mittelpunkt: Point = (10,10) anzeigen() entfernen() setPosition(pos:Piont) setRadius(neuerRadius) Attributname Attribut-Typ Methoden Objektname einKreis:Kreis radius = 25 mittelpunkt = (10,10) Klassenname Die Objekte bestehen aus zwei Bestandteile,die Attribute bzw. Eigenschaften und die Methoden. Attribute sind die Bestandteile von der Struktur der Objekte und die in ihnen enthaltenen Informationen bzw. Daten. Man kann sagen,dass Attribute die einzelnen Dinge sind, durch welche sich ein Objekt von einem anderen unterscheidet. Methoden sind das Verhalten der Objekte. Sie realisieren die Funktionalitaet der Objekte-wie Objekte miteinander kommunizieren oder ihre Attribute bzw. Daten manipulieren koennen.Aber die Implementierung der Funktionalitaet erfolgt in den Klassen. Klassen bzw. Objekte sind also Einheiten aus Attributen und Methoden. Nur ueber diese Methoden koennen die Daten der Objekte gelesen oder veraendert werden. z.B… Attributname Attributwerte

Vererbung Oberklasse GeomFigur Dreieck Kreis Rechteck Unterklassen

Die Geschichte der Programmiersprache ist eine kontinuierliche Steigerung der Abstaktionen: Low-level Sprache Machinensprache (Bitmuster,Machinenabhaengig…) Assemblersprache (Zeichen statt Bitfolge…) 1. Formula (Fortran) Die erste high-level Sprache Fortran, geeignet fuer nummerische und wesenschaftliche Anwendungen 2. Kontrolle (Cobol) fuer einfach Berechnung von grossen menge Daten in Bereich Business 3. Procedure (Pascal) 4. Objekteorientierung (C++,Java…) High-level Sprache Die Geschite der Programmiersprache ist eine kontinuierliche Steigerung der Abstaktionen,vom Bitmuster ueber Makrobefehle,Prozeduren,abstrakte Datentypen zu Objekten,Rahmenwerken usw. Im Machinenprogramm werden die Befehle durch Bitmuster dargestellt Assembler unterscheidet sich von Machinensprache dadurch,dass in einem Assemblerprogramm erfolgt nicht die direkte Adressierung sondern eine symbolische Adressierung. Die erste high-level Sprache Fortran, geeignet fuer nummerische und wesenschaftliche Anwendungen. Commen business oriented Language,breit angewandt fuer einfach Berechnung von grossen menge Daten in Bereich Business. Designed fuer Vereinfachung von der Komplexitaet der ALGO,und geeignet sich fuer das Lehren.

In den Bloecken mit rechten Ecken… In den Bloecken mit runden Ecken… LISP Fortran Algo 1960 Cobol PL/1 Simula Smalltalk-72 1970 Prolog Smalltalk-74 Pascal Smalltalk-76 C Smalltalk-78 Loops Smalltalk-80 1980 Ada Objective C C++ CLOS ObjectPascal Smalltalk wird als die echte earste objekteorientierte Programmiersprache angesehen. In den Bloecken mit rechten Ecken… In den Bloecken mit runden Ecken… Fuer die objektorientierte Programmiersprache gibt es 4 haupte Branche,d.h Pascal basierte Sparache(umfasst ObjektPascal,Ada95), Smalltalk basierte(umfasst die 5 Version von Smalltalk), C basierte(umfasst Objektive C,C++,Java) und LISP basierte(umfasst XLISP,Loops,Flavors) Eiffel 1990 Ada 95 ObjectCobol Java Nicht oo. Objektorient.

Eingenschaft der objektorientireten Programmiersprache Strukturierung der Objekten: Everything ist Objekt durch Vererbung strukturiert Nachrichtenaustauch: Programm ist eine Menge von Objekten die durch Nachrichten untereinander kommunizieren Methode in einem Objekt kann von anderen Objekten durch Nachrichten aufgerufen werden

1. OOSE isr mehr als Programieren in einer objektorientierten Sprache! 2. Objektorientierung wird als die Wichtigste Konzepte durch die ganze Softwareentwicklung Verwenden der objektorietierten modellierungskongzepte Abstrahierung von der realen Welt abgeschlossene,autonome Einheiten mit Strukturen und Verhalten ->Klassen bzw. Objekte objektorientiert entwickelte Software ist einfach zu aendern u. erweitern ->Abstrahierung u. Kapslung von Daten

OOA = “Objektorientierte Analyse” OOD = “Objektorientierter Entwurf(Design)” OOP = “Objektorientierte Programmierung” Um die Verwaltung der OOSE zu verbessern,im 1988 stellte Boehm dies Modell. Es enthaltet drei Phasen von Macrosicht,und von Microsicht kann jede Phase etwas iterative Verhaltnisse enthalten. --Boehm,1988

Aufgabe der OOA Objekte und Klassen identifizieren Verantwortlichkeiten identifizieren und den Klassen zuordnen Zusammenarbeit zwischen den Klassen identifizieren Vererbungshierarchie definieren

Aufgabe der OOD Festlegung der Architektur des Systems Ueberarbeiten des in OOA erzeugten OOA-Klassenmodells, z.B Hinzufuegen/Verschmelzen/Aendern von Klassen Aenderungen an der Vererbungsstrukturen Hinzufuegen/Entfernen von Beziehungen

Aufgabe der OOP Umsetzung des in OOD erzeugten OOD-Modells in einer Objektorientierten Programmiersprache Klassentests und schrittweise Integration des Systems

Programmierung ≠ Softwareentwicklung

Konventionelle Entwicklung(Wasserfallmodell) Analyse und Spezifikation Test und Integration Entwurf Implementierung Sequentiell,in einer Richtung Schwerigkeiten fuer Iteration und Veraenderung Wiederverwendbarkeit nicht unterstuetzt http://www.51cmm.com/ExpertEyes/No097.htm?ID=223 Ein stueck Code,ein Muster,ein Rahmenwerk,sogar Entwurf und Prototypen koennen wiederverwandt werden. Dadurch wird mehr Leistungsfaehigkeit erbracht,der Entwicklungszyklus abgekuerzt und Kosten gespart.

objektorientierte Entwicklung d.h das is ein kontrolliertes stetiges Ueberarbeiten,und mit dem Ziel Fehler zu beheben und Entwicklung zu verbessern. Klassen sind wiederverwendbare Einheiten,da es sind abgeschlossen und autonom bzw. abstrakte Datentyp.Wenn eine Klasse den Anforderung nicht vollstaendig genuegt,kann sie z.B durch Vererbung erweitert werden. Ausserdem koennen andere Bestandteile wiederverwandt werden,z.B Ramenwerke, Muster … iterative Entwicklung in jeder Iteration werden die Phasen des Wasserfallmodells durchlaufen Wiederverwendungsproblem geloest

Analyse und Design mit UML

Was is UML? Unified Modeling Language ist eine Sprache zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen für Softwaresysteme, Geschäftsmodelle und andere Nicht-Softwaresysteme UML ist eine Modellierungssprache,keine Programmiersprache seit 1997 wird die UML in Version 1.1 als Standard angesehen und sie liegt bei der Object Management Group(OMG) zur Standardisierung vor die neueste Version ist UML 1.3

Wer steht hinter der UML? Die UML wurde entwickelt von Grady Boch, Ivar Jacobsen und Jim Rumbaugh von Rational Rose Software. Sie haben die besten Ideen der objektorientierten Entwicklungsmethoden kombiniert. und daraus die UML geschaft. Viele Computerunternehmen(Microsoft,Oracle,..) wirkten aktiv an der Entwicklung mit Und unterstuezen die UML.

Was beinhaltet die UML? Die Elemente der UML werden nach Diagrammtypen gegliedert: Anwendungsfalldiagramm Klassendiagramm Aktivitätsdiagramm Kollaborationsdiagramm Sequenzdiagramm Zustandsdiagramm Komponentendiagramm Einsatzdiagramm

Anwendungsfalldiagramm Ein Anwendungsfalldiagramm besteht aus einer Menge von Anwendungsfällen und Akteuren. Ein Anwendungsfall beschreibt die Art und Weise wie ein Akteur auf das System wirkt. Ein Akteur ist eine Person, Organisation oder wiederum ein System der mit dem Anwendungsfallsystem kommuniziert. Der Akteur befindet sich außerhalb der Systemgrenze, d.h. er ist nicht Teil des Anwendungsfallsystems. Ein Anwendungsfalldiagramm beschreibt die Zusammenhänge zwischen verschiedenen Anwendungsfällen untereinander und zwischen Anwendungsfällen und den beteiligten Akteuren. Es zeigt das äußerlich erkennbare Systemverhalten aus der Sicht eines Benutzers. Systemgrenze

Klassendiagramm(1) Eine Klasse ist eine Zusammenfassung gleichartiger Objekte.Klassen sind Einheiten aus Attributen und Methoden. Hier wird die einzelne Klasse in diesem Diagramm dargestellt. Klassen werden durch Rechtecke dargestellt, die den Namen der Klasse und/oder die Attribute und Operationen der Klasse enthalten. Klassenname, Attribute und Operationen werden durch eine horizontale Linie getrennt. Der Klassenname beginnt mit einem Großbuchstaben. Attribute können näher beschrieben werden, z.B. durch ihren Typ, einen Initialwert und Zusicherungen. Operationen können ebenfalls durch Parameter, Initialwerte, Zusicherungen usw. beschrieben werden.

Klassendiagramm(2) Oberklasse Unterklasse1 Unterklasse2 Unterklasse3 Mehrere Klassen koennen auch durch Vererbung miteinander in Beziehung stehen.

Sequenzdiagramm objekt1 new() objekt2 nachricht() antwort Das Sequenzdiagramm beschreibt die zeitliche Abfolge von Interaktionen zwischen einer Menge von Objekten innerhalb eines zeitlich begrenzten Kontextes. Im Sequenzdiagramm wird der zeitlicher Verlauf vom Nachrichtenaustausch dargestellt. Die Objekte werden durch Rechtecke gezeichnet. Die Lebenslinie laeuft von oben nach unten durch gestrichelte senkrechte Linie. Die Nachrichten werden durch waagerechte Pfeile zwischen den Objektlebenslinien beschrieben. Auf diesen Pfeilen werden die Nachrichtennamen und die antwortlichen Nachrichten geschrieben. Die graue Rechtecke sind die garade auf ihrer Lenbenslinie aktive Objekte. Objekte können während des zeitlichen Ablaufes erzeugt und gelöscht werden. Objekt2 wird mit neu() erzeugt und zerstört indem seine Lebenslinie in einem Kreuz endet. delete()