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

Ähnliche Dokumente
Software-Engineering

Software-Engineering

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

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

Software- und Systementwicklung

Unified Modeling Language (UML )

Kurzeinführung in UML

Objektorientierte Analyse (OOA) Inhaltsübersicht

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

Unified Modeling Language (UML)

Objektorientierte Softwareentwicklung

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

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

Oracle JDeveloper 10 g

Objektorientierte Modellierung (1)

J.2 Objektorientiertes Modellieren mit UML

Klausur Software-Engineering SS 2005 Iwanowski

Java Einführung Objektorientierte Grundkonzepte

UML. Weiteres Vorgehen im Projekt

Grundlagen der UML-Modellierung. Modellierung. Elena Paslaru Seminar Praktische Modellierung SS

Gliederung des Vortrages

SWE8 Slide 1. Software-Engineering. Vorlesung 8 vom Sebastian Iwanowski FH Wedel

Erzeugung von UML-Diagrammen

Themen. Unified Modelling Language (UML) Assoziation. Aggregation. Komposition

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

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

Methodische objektorientierte Softwareentwicklung

UML 2.0 Das umfassende Handbuch

4. Übung zu Software Engineering

Einführung in UML. Überblick. 1. Was ist UML??? 2. Diagrammtypen. 3. UML Software. Was ist ein Modell??? UML Geschichte,...

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller

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

4.Grundsätzliche Programmentwicklungsmethoden

Requirements Engineering I

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

Arbeitsblätter zu Teil I des Praktikums

Abschnitt 15: Unified Modeling Language (UML)

Erfahrungsbericht: Einsatz objektorientierter Methoden in Flugkörper-Software

Objektorientiertes Software-Engineering

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Softwaretechnik (Allgemeine Informatik) Überblick

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

Programmieren in Java

7. Analyse-Phase: Datenmodellierung Software Engineering

Design mit CASE-Tools

Vorlesung "Software-Engineering"

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

PRÜFUNG. Grundlagen der Softwaretechnik

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

Vorlesung Programmieren

VBA-Programmierung: Zusammenfassung

Software-Engineering

Analyse und Modellierung von Informationssystemen

Objektorientierte und Funktionale Programmierung SS 2014

Von der UML nach C++

Von UML 1.x nach UML 2.0

Informationssystemanalyse Use Cases 11 1

Software Engineering in der Praxis

Softwarepraktikum: Enigma

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11

Übersicht der UML Diagramme

Software Engineering in der Praxis Praktische Übungen

Software Engineering Analyse und Analysemuster

Software Engineering in der Praxis

Kapitel 2: Der Software-Entwicklungsprozess

Dr. Beatrice Amrhein. April 13

Klausur "OOAD" im SS Name, Vorname: Matrikel-Nr:

4. Übung zu Software Engineering

Visual C# 2008 Grundlagen und Profiwissen

VS2 Slide 1. Verteilte Systeme. Vorlesung 2 vom Dr. Sebastian Iwanowski FH Wedel

Die abstrakte Syntax der Unified Modeling Language

Praktikum Software Engineering

(BABOK-v3-Technik 10.47)

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 4: Modellierung von betrieblichen Informationssystemen

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

UML - Tutorial. Hubert Baumgartner.

UML mit Enterprise Architect

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

Software-Entwicklung: Konzepte der Objektorientierung

PRÜFUNG. Grundlagen der Softwaretechnik

Systemanalyse. - Seminar für AI/DM 3 im Wintersemester 2004/05 -

WhiteStarUML Tutorial

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

Inhalt. Einleitung Liebe Leserin, lieber Leser, Wer dieses Buch aus welchem Grund lesen sollte Ihre Meinung ist uns sehr wichtig.

SWE5 Übungen zu Software-Engineering

Objektorientierte Analyse

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

KBE-TECHNOLOGIE. Rainer Hochgeladen Prachi Vyas Senden

4. AuD Tafelübung T-C3

Einführung in die Unified Modeling Language (UML)

Orientierte Modellierung mit der Unified Modeling Language

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

Funktions- versus Objektorientierter Entwurf

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

Grundlagen des Software Engineering

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

Ministerium für Kultus, Jugend und Sport Baden-Württemberg

Java, OO und UML Fortsetzung

Klassendiagramm. (class diagram)

Transkript:

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

SWE6 Slide 2 Software-Engineering Vorlesungsthemen: 1. Überblick über das Thema und die Vorlesung 2. Grundlegende Prinzipien 3. Softwareplanung 4. Systemanalyse 5. Softwareentwurf 6. CASE-Tools 7. Aufwandsabschätzung 8. Qualitätsmanagement 9. Projektmanagement

SWE6 Slide 3 Softwareentwurf: Vorgehensrichtung Entwurfsebene 1: Softwaremodul bottom-up top-down Entwurfsebene 2:

SWE6 Slide 4 Software-Module Der Begriff des Moduls (nach Goos / Dennis 1973): Ein Modul ist die Zusammenfassung von Operationen und Daten zur Realisierung einer in sich geschlossenen Aufgabe. Die Kommunikation eines Moduls mit der Außenwelt darf nur über eine eindeutig spezifizierte Schnittstelle erfolgen. Zur Integration eines Moduls in ein Programmsystem muss die Kenntnis des inneren Aufbaus entbehrlich sein. Zum Nachweis der Korrektheit eines Moduls muss die Kenntnis der Einbettung des Moduls in das Softwaresystem entbehrlich sein.

SWE6 Slide 5 Leitlinien für die Modularisierung Die Aspekte bei der Modularisierung: Modulbindung Modulkopplung Schnittstellen Modulgröße Interferenzeigenschaften Importzahl Verwendungszahl

SWE6 Slide 6 Leitlinien für die Modularisierung Modulbindung Grad des Zusammenhangs zwischen den einzelnen Daten und Operationen desselben Moduls eng lose Modulkopplung Grad des Zusammenhangs zwischen verschiedenen Modulen eng lose Schnittstellen Datenaustauschstellen zwischen Modul und dem umgebenden System viele wenige

SWE6 Slide 7 Leitlinien für die Modularisierung Modulgröße Anzahl der verwendeten Daten bzw. Operationen in einem Modul groß klein Interferenzeigenschaften Grad der Beeinflussung anderer Module durch Seiteneffekte hoch niedrig Importzahl Anzahl der in diesem Modul verwendeten Module viele wenige Verwendungszahl Anzahl der Module, die diesen Modul verwenden viele wenige

SWE6 Slide 8 Leitlinien für die Modularisierung Folgende Kompromisse sollten geschlossen werden: Ausgewogenes Verhältnis zwischen Modulbindung und Modulkopplung Minimale Schnittstellen (Ausnahme: wenn sonst das Modul zu groß wird) Modulgröße maximal so groß, dass eine Person das Modul in einem überschaubaren Zeitraum bearbeitet Mittlere Import- und Verwendungszahlen

SWE6 Slide 9 1. Bsp. für eine Modulart: Bibliotheksmodule Bereitstellung einer Sammlung von Algorithmen / Funktionalitäten zu einem Aufgabenbereich Besonderheiten: Umfangreiche Schnittstelle (eine weitere Ausnahme) Kein interner Zustand (Modul erfüllt keine Gesamtfunktionalität) Beispiele: Module mit mathematischen Funktionen Module für Hilfsfunktionen, die nicht problemspezifisch sind (z.b. Modul Util mit Umwandlungsfunktionen, Datumsfunktionen, etc.)

SWE6 Slide 10 Zweck: 2. Bsp. für eine Modulart: Datenkapselung Verhinderung des direkten Zugriffs auf Daten von anderen Programmteilen aus Aufbau: Die Datenkapsel besteht aus abstrakten Datenstrukturen/-typen und zugehörigen Zugriffsfunktionen. Abstrakt heißt: Der konkrete Aufbau der Datenstrukturen/-typen ist außerhalb des Moduls unbekannt. Bsp.: Wörterbuchproblem (Dictionary) Abstrakter Datentyp: Zugriffsfunktionen: Dictionary getdictionary() insert(dict, key, value) delete(dict, key) search(dict, key)

SWE6 Slide 11 Softwareentwurf hier noch nicht angesprochen: Entwurf von Bedienungsoberflächen Thema der Vorlesung Software-Ergonomie

SWE6 Slide 12 Software-Engineering Vorlesungsthemen: 1. Überblick über das Thema und die Vorlesung 2. Grundlegende Prinzipien 3. Softwareplanung 4. Systemanalyse 5. Softwareentwurf 6. CASE-Tools 7. Aufwandsabschätzung 8. Qualitätsmanagement 9. Projektmanagement

SWE6 Slide 13 CASE-Tools CASE = Computer Aided Software-Engineering UML: Unified Modelling Language entworfen von James Rumbaugh, Ivar Jacobsen, Grady Booch führt Konzepte zusammen, die ursprünglich unabhängig voneinander entwickelt worden sind wird durch Softwarewerkzeug Rational Rose unterstützt Kern ist die Beschreibung von Systemen (real und Software) mit objektorientierter Terminologie bietet zusätzlich Beschreibungsmöglichkeiten für Prozesse Anspruch: Software wird nach Beschreibung in UML automatisch erstellt Konkurrenzprodukte: Together, etc. (im Wesentlichen gleiche Standards)

SWE6 Slide 14 CASE-Tools CASE = Computer Aided Software-Engineering ARIS entstanden bei der IDS Scheer (Begründer der Wirtschaftsinformatik) geht aus von Beschreibung von Geschäftsprozessen integriert auch die UML-Funktionalität ist integriert in SAP / R3

SWE6 Slide 15 Bestandteile eines UML-Tools Die wichtigsten Funktionalitäten von Rational Rose und ähnlichen Werkzeugen: objektorientierte Systembeschreibung: Klassendiagramme mit Beziehungen und Hierarchien Beschreibung von Anwendungsszenarien (Use Cases) Beschreibung von Prozessabfolgen (Sequenzdiagramme) Beschreibung von Zustandsabfolgen (Zustandsübergangsdiagramme) Aktivitätsdiagramme: spezielle Zustands-Aktivitäts-Beschreibungen

SWE6 Slide 16 UML: Klassendiagramme Anmerkungen zu Assoziationen: Allgemeine Assoziationen beschreiben beliebige Beziehungen. In der Regel werden Beziehungen von einer Klasse A zu den anderen Klassen beschrieben, deren Kenntnis in den Methoden von A benötigt wird. Die spezielle Assoziation Aggregation beschreibt Teilobjekte: Es ist sinnvoll, dass solche Teilobjekte die Werte von Attributen des zusammengesetzten Objektes sind. Die spezielle Assoziation Komposition bedeutet: Ein Wegfall des zusammengesetzten Objekts hat den Wegfall des Teilobjekts zur Folge. Die spezielle Assoziation Generalisierung hat die Vererbung der Attribute und Methoden auf die spezialisierten Klassen zur Folge.

UML: Klassendiagramme Unterschied in UML-Klassendiagrammen zwischen Systemanalyse und Softwareentwurf: Richtungspfeile bei allgemeinen Assoziationen sind erst im Softwareentwurf sinnvoll: Sie entsprechen der Erreichbarkeit eines implementierten Objekts von dem anderen Objekt aus. Eine gerichtete Assoziation wird genau dann benötigt, wenn ein Attribut oder eine Methode die Kenntnis einer anderen Klasse benötigt. Zusammenfassung: In der Systemanalyse sollten grundsätzlich ungerichteten Assoziationen verwendet werden. Im Softwareentwurf sollten grundsätzlich gerichtete Assoziationen (unioder bidirektional) verwendet werden. Bei den Assoziationstypen Aggregation, Komposition und Generalisierung gibt es keine Unterschiede zwischen Systemanalyse und Softwareentwurf SWE6 Slide 17

SWE6 Slide 18 UML: Use-Case-Diagramme zur Beschreibung und Spezifikation von Systemen Beispiel:

SWE6 Slide 19 Erklärung der Symbole: UML: Use-Case-Diagramme Aktor (Strichmännchen): Jemand der mit dem System interagiert (d. h. außerhalb des Systems): muss keine natürliche Person sein Use case (Ellipse): Anwendungsfall : Nach außen sichtbare Teilfunktionalität des Systems Kann in nachfolgenden Beschreibungen hierarchisch verfeinert werden Zwischen zwei Aktoren muss mindestens ein use case sein! System (Rechteck): Unterscheidung von innen und außen

SWE6 Slide 20 UML: Use-Case-Diagramme Ziele einer Use-Case-Beschreibung: Zur hierarchischen Beschreibung eines Systems Grobe Beschreibung einzelner Transaktionen Weitere Beschreibungsmöglichkeiten für Beziehungen zwischen use cases: extends : Beschreibung einer Teilfunktionalität, die aber nicht immer ausgeführt wird (verzweigt sich bei so genannten Extension points des ursprünglichen use cases includes : Teilprozess, der von mehreren use cases benutzt werden kann

Beim nächsten Mal: UML-Funktionalitäten (Fortsetzung) ARIS SWE6 Slide 21