C.7 Objektorientierte Software-Entwicklung

Ähnliche Dokumente
C.7 Objektorientierte Software-Entwicklung

C.7 Objektorientierte Software-Entwicklung

C.8 Object-oriented Software Development

Softwaretechnik 2015/2016

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

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

3.4 Unified Process Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

Einführung in die objektorientierte Programmierung

UML (Unified Modelling Language) von Christian Bartl

Objektorientierte Analyse

Objektorientierte Softwareentwicklung

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

Objektorientiertes Software-Engineering

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

Analyse und Modellierung von Informationssystemen

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

Übungen Softwaretechnik I

Analyse und Design mit U ML 2.3

Grundlagen Software Engineering

Der Design-Workflow im Software-Entwicklungs-Prozess

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

Software-Engineering

Objektorientiertes Programmieren

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

Die Unified Modeling Language UML

2. Der Software-Entwicklungszyklus

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP

Funktions- versus Objektorientierter Entwurf

Vorlesung Programmieren

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Oracle JDeveloper 10 g

Requirements Engineering I

Objektorientierte Systementwicklung

Orientierte Modellierung mit der Unified Modeling Language

Requirements Engineering I

Unified Modeling Language (UML )

Phasen. Gliederung. Rational Unified Process

Gliederung. Einführung Phasen Ten Essentials Werkzeugunterstützung Aktivitäten, Rollen, Artefakte Werkzeug zur patternorientierten Softwareentwicklung

Management von Anforderungen im Rational Unified Process (RUP)

SOFTWAREPROJEKT (WI) Anforderungsanalyse. Projektveranstaltung im Wintersemester 2012/13 FG System- und Softwareengineering Dr.-Ing.

Entwicklungsmethoden

Objektorientierte Analyse

Unified Modelling Language

Der Unified Process ist ein generischer Prozeß zur objektorientierten Software- Erstellung

IT-Projekt-Management

OOD. Objektorientiertes Design. Peter Coad und Edward Yourdon. Prentice Hall Verlag

Unified Modeling Language (UML)

Obligatorische Literatur. Teil III der Vorlesung Objektorientierte Analyse (OOA) 30) Überblick über die OOA

Realität zu modellieren eine

Ausarbeitung Iteration I

Teil III der Vorlesung Objektorientierte Analyse (OOA) 30) Überblick über die OOA

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

SWE1 - Übung 1 Projektbeschreibung: Chat

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

Inhaltsverzeichnis. Literatur. 4 Rational Unified Process [JBR98, Kru03] und UML [BRJ02, FS00, Bal01]

FACHHOCHSCHULE MANNHEIM

Objektorientierte Analyse (OOA) Inhaltsübersicht

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

Objektorientierte Modellierung (1)

Techniken der Projektentwicklungen

Software- und Systementwicklung

Objektorientierte Programmierung mit Java

Gliederung des Vortrages

Requirements Engineering I

9 Die Unified Modelling Language UML und der Rational Unified Process RUP / Objectory

10. Programmierungs-Phase: Objektorientierung Software Engineering

Softwarearchitektur, UML, Design Patterns und Unit Tests

NACHRICHTENTECHNISCHER SYSTEME

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Rückblick: Entity-Relationship-Modell

The Rational Unified Process. Eine Einführung von T. Langer und A. Nitert

Java Einführung Objektorientierte Grundkonzepte

Konzept und Umsetzung

Tamagotchi-Spezifikation in UML

Informationssystemanalyse Use Cases 11 1

J.2 Objektorientiertes Modellieren mit UML

Notationen zur Prozessmodellierung

Objektorientierte Analyse am Beispiel Silent Kitchen Company

Objektorientiertes Design

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing.

Kapitel 2: Der Software-Entwicklungsprozess

Software-Engineering

FACHHOCHSCHULE MANNHEIM

INSPIRE - Modellierung

FACHHOCHSCHULE MANNHEIM

Unified Modeling Language 2

Systemdenken und Gestaltungsmethodik System-Modellierung

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

Vorlesung Programmieren

Der Rational Unified Process

UML. Weiteres Vorgehen im Projekt

Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur

Workflows: Anforderungserhebung und analyse

Transkript:

C.7 Objektorientierte Software-Entwicklung C.7 Objektorientierte Software-Entwicklung Objektorientiertes Software -Engineering Phasen der Software-Entwicklung Anforderungsanalye Objektorientierte Analyse Objektorientierter Entwurf Implementierung Test UML: The Unified Modeling Language ein kurzer Abriss Use-Case Diagramme Klassendiagramme Interaktionsdiagramme C.7 Objektorientierte Software-Entwicklung Objektorientiertes Software-Engineering 980-990: Entwicklung von OO Programmiersprachen Smalltalk C++ Eiffel LOOPS, Flavors ab 990: Verbreitung von objektorientierten Software-Engineering Methoden Sally Shlaer & Steve Mellor Peter Coad & Ed Yourdon Grady Booch Jim Rumbaugh et al. (OMT: Object Modeling Technique) Ivar Jacobson (OOSE, Objectory) 995: Booch, Rumbaugh und Jacobsen beginnen die Entwicklung der UML C.47 C.48

C.7 Objektorientierte Software-Entwicklung 2 Warum objektorientiertes Software-Engineering? C.7 Objektorientierte Software-Entwicklung 2 Warum objektorientiertes Software-Engineering? (2) Optimaler Einsatz des objektorientierten Paradigmas Übergang auf OO Programmiersprachen ist einfach Das Problem ist der Paradigmen-Wechsel Vorteile der Objektorientierung hängen davon ab, wie ein Problem angegangen wird sonst Gefahr, dass OO Konzepte falsch eingesetzt werden C++ Objektorientierte Software-Engineering-Methoden helfen, objektorientierte Konzepte richtig anzuwenden richtige Bestimmung der Klassen richtiger Einsatz von Vererbung Software häufig zu komplex um als Ganzes überblickbar zu sein Modelle um von Details des Systems zu abstrahieren verschiedene Blickrichtungen z. B. Spezifikationssicht Entwurfssicht verschiedene Abstraktionsebenen Abstraktionen für Systemteile verschiedene Aspekte des Systems Anforderungen statische Aspekte Struktur dynamische Aspekte Verhalten C.49 C.50

C.7 Objektorientierte Software-Entwicklung 2 Warum objektorientiertes Software-Engineering? (3) 3 Phasen der Software-Entwicklung C.7 Objektorientierte Software-Entwicklung Kontrolle des Entwicklungs-Prozesses Traditionell: Wasserfall-Ansatz Unkontrollierte Entwicklung führt zu nicht ausreichender Analyse der Anforderungen Entwicklung stimmt nicht mit den Anforderungen des Auftraggebers überein Anforderungs- Spezifikation Analyse zu früher Start der Implementierung Analyse und Entwurf sind noch nicht ausgereift Fehler in Analyse und Entwurf werden erst später entdeckt hohe Kosten für die daraus folgenden Änderungen Design Implementation & Testen Software-Engineering-Methoden geben Anleitungen Komplexität heutiger Software zu beherrschen Software wirtschaftlich zu entwickeln die Software-Entwicklung zu einem kontrollierten, kontrollierbaren und kalkulierbaren Prozess zu machen Problem: Pflege = neue Anforderungs-Spezifikation Analyse Design neue Implementation Integration Pfelge C.5 C.52

C.7 Objektorientierte Software-Entwicklung 3 Phasen der Software-Entwicklung (2) Besser: Spiral-Modell C.7 Objektorientierte Software-Entwicklung 3 Phasen der Software-Entwicklung (3) Weiter verbessert: Iterativer Ansatz Analyse Vier Lebenszyklus-Phasen Inception Elaboration Construction Transition Design Anforderungs- Spezifikation time Implementation & Tests Version fertig Version2 fertig Version3 fertig Vision Baseline Architecture Initial Capability Product Release Start (Inception): definiere Umfang des Systems, entwerfe Geschäftsplan Ausarbeitung (Elaboration): plane Projekt, spezifiziere Eigenschaften, lege Grundlinien der Architektur fest Integration Konstruktion: Transition: baue das Produkt übergebe das Produkt an seine Anwender C.53 C.54

C.7 Objektorientierte Software-Entwicklung 3 Phasen der Software-Entwicklung (4) Iterationen und Workflows Core Workflows Requirements Analysis Phases Inception Elaboration Construction Transition An iteration in the elaboration phase Was soll mein System tun? Basis: Analyse der "realen Welt" Komponenten, Begriffe, Aufgaben Anforderungen und Einschränkungen Abstraktion von unwichtigen Aspekten und Implementierungsdetails Design Implementation Test Abstraktion von Implementierungsdetails momentan unwichtig: wie implementiere ich Dinge? + zu berücksichtigen: Aspekte der Implementierungsumgebung und Ausführungsplattform welche Mittel habe ich zur Verfügung? Prelim inary Ite ratio n (s) ite r. # ite r. # 2 ite r. # n ite r. #n + ite r. # n +2 iter. # m ite r. #m + Ite ra tio n s C.55 C.56

(2) 2 OOA Anforderungsanalyse Der Prozess Analysiere Anforderungen Beschreibe Use Cases Lege Begriffe des "problem domain" fest Finde Objekte Organisiere Objekte Lege erste interne Strukturen der Objekte fest Beschreibe Intaktionen der Objekte Lege Operationen der Objekte fest Anforderungs- Modell Analyse- Modell Fokus liegt auf dem "problem domain" Lege Ziele und Aufgaben fest Basis für alternative Lösungen Basis für Überprüfungen und Bewertungen Sicht des Kunden Performance-, Benutzer- and Architektur-bezogene Anforderungen Informelle Beschreibung C.57 C.58

3 OOA Beispiele einer Anforderungsanlyse 4 OOA Use Cases Briefsortieranlage Beschreibe Interaktionen zwischen "Benutzern" und System Sorter Control Sorter Letter Recognition OCR-Rechner System Letter Feed Beteiligte: Aktor: Use case: Person oder eine andere Komponente des Systems! in einer bestimmten Rolle "Dialog" zwischen Aktor und System um einen bestimmten Zweck zu erreichen Problem domain: Postleitzahlenerkennung Aufgabe: erkenne PLZ auf einem Brief und melde an Sorter Control die Nummer des Ausgabefachs weitere Festlegung der Anforderungsanalyse erster Schritt zur Modularisierung des Problems Anforderungen: Erkennung darf max. Minute dauern eigene OCR-Rechner für Schrifterkennung Statistiken über PLZ-Häufigkeit und Fehler C.59 C.60

4 OOA Use Cases (2) 5 OOA Objekte finden Briefsortierer Sorter Control fordert Nummer des Ausgabefachs an Benutzer fragt Statistiken ab UML Diagram Letter Recognition System Begriffe des "problem domain" identifizieren nach Substantiven in der Terminology des "problem domain "suchen Sorter Control OCR Letter Camera Sorter System determine output tray OCR System Strategie: Auftraggeber skizziert seine Sicht Systemanalyst schreibt Begriffe mit Ziel: Basis für die weitere Arbeit erstellen NICHT das ganze System beschreiben get statistics Operator C.6 C.62

6 OOA Objekte organisieren 6 OOA Objekte organisieren (2) Schnittstellenobjekte Modell strukturieren Analysemodell verschiedene Kategorien von Objekten Repräsentieren Aktoren der Use Cases Startpukte für Aktivitäten im System Schnittstellen des Systems zur "Aussenwelt" Sorter Control Operator Panel OCR System Schnittstellenobjekte Objekte, die Dinge repräsentieren (Entity objects) Kontrollobjekte EntityObjects Repräsentieren den Systemzustand sind verhältnismäßig langlebig überdauern oft Ausführung eines Use Case Statistics Letter Picture C.63 C.64

6 OOA Objekte organisieren (3) Kontrollobjekte Problem: eine Aufgabe oder Aktivität kann keinem der Objekte zugeordnet werden Haupt-Fokus liegt auf dem Ablauf solche Abläufe resultieren häufig direkt aus einem Use Case definiere etwas, das für den Ablauf verantwortlich ist erzeuge ein Objekt dafür Aufgabe: führe PLZ-Erkennung durch Bild aufnehmen Adressbereich suchen Auftrag an OCR-Rechner übergeben Ausgabefach an sorter control melden Objekt LetterController 6 OOA Objekte organisieren (4) UML-Notation: Klassendiagramme Klassen mit ihren Attributen (Variablen) und Operationen (Methoden) Beziehungen zwischen Klassen Beispiel: name attributs operations multiplicity Letter letterid zip setpict() setzip() AOI * coordinates address customer_number Qualifier index association composition LetterStatistics recognitiontime errors aggregation C.65 C.66

6 OOA Objekte organisieren (5) 6 OOA Objekte organisieren (6) Briefsortierer Systemüberblick: UML-Diagramm Briefsortierer Brieferkennung (LRS): UML-Diagramm SorterDevice Camera LRS LetterFeed FrameGrabber 0.. LetterController * 0.. Letter LetterStatistics LRS LetterRecognitionSystem +Letter +AOI +LetterStatistics +FrameGrabber +LRS +Picture ControlSystem * creates 0.. Picture * * AOI C.67 C.68

6 OOA Objekte organisieren (7) 6 OOA Objekte organisieren (8) Identifiziere Zustand von Objekten Attribute (werden zu Instanzvariablen) Typen Identifiziere Verhalten Letter: Letter ID ZIP Code Output Tray Briefsortierer Statistik: UML-Diagramm mit Vererbungsbeziehungen ArchivObject Operationen / Methoden Interaktion zwischen Objekten Suche nach Ähnlichkeiten, Gemeinsamkeiten Basis für Vererbungshierarchie StatisticsContainer Statistics 0.. * Suche nach Abhängigkeiten zwischen Objekten Aggregation Komposition Letter "has" a: Picture Statistics object Letter LetterStatistics C.69 C.70

7 OOA Beschreibe Interaktionen 7 OOA Describe Interactions (2) Ausführung von Use Cases Brief bearbeiten Statistiken abfragen Briefsortierer UML Kollaborations-Diagramm :LRS /newletter(letterid) SorterControl Lege Operationen fest 2/create(letterId, lrs) die wesentlichen Methoden der Objekte Sorter Control: Brief in Fach werfen :Letter 4/create(letterId) 5/setPict(picture) :LetterController 3/takePict:picture :FrameGrabber 3./create :Picture C.7 C.72

8 OOA Struktur verfeinern 9 OOA - OOD? Use Cases strukturieren Gemeinsame Abläufe identifizieren Objekte detaillierter dokumentieren Attribute Operationen Rollen und Verantwortlichkeiten beschreiben Wo endet die Analyse und wo fängt das Design an? Analyse nimmt oft über 50% eines Entwicklungszyklus ein! Design beginnt nach 20-30% Übergänge sind sehr fließend irgendwann können Implementierungsaspekte nicht mehr zurückgestellt werden C.73 C.74

C.9 Objektorientiertes Design C.9 Objektorientiertes Design Transformation des Analysemodells zu einem implementierbaren Modell Aspekte der Implementierungsumgebung aufnehmen Strukturelle und strategische Entscheidungen treffen wo brauche ich eigene Threads Verteilung der Anwendung auf mehrere Rechner welche Interprozesskommunikation wird eingesetzt Datenbankschnittstellen Fehlerbehandlung Garbage collection Weitere Verfeinerung der Objektinteraktionen und Schnittstellen Phasen Klassen-Entwurf Finde Software-Klassen für die Klassen des Analysemodells Zerteile Analysemodell-Klassen Entferne unnötige Klassen des Analysemodells C.9 Objektorientiertes Design Füge neue Klassen hinzu (z. B. Listen oder Hashtab. zur Verwaltung)! Objektgrenzen müssen erhalten bleiben! Analyse Design Implementierung (Traceablity) Systementwurf Nicht-problembezogene Aspekte (Verteilung, Nebenläufigkeit, Betriebmittel, Systemschnittstellen, ) Programmentwurf Programmiersprache Fehlerbehandlung (Exceptions, Rückgabewerte) Performance-Aspekte C.75 C.76