Software- und...

31
Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg

Transcript of Software- und...

Page 1: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Software- und Systementwicklung

Seminar: Designing for Privacy11.11.2009

Moritz Vossenberg

Page 2: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Inhalt

• Vorgehensmodelle– Wasserfallmodell– V-Modell– Phasen (Pflichtenheft)

• UML– Klassendiagramm– Sequenzdiagramm– Use Case (Anwendungsfalldiagramm)– UML Erweitern

• Quellen

2

Page 3: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

VORGEHENSMODELLE

3

Page 4: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Vorgehensmodelle (1)

• Definition:

– „Festlegung, welche Aktivitäten in welcher Reihenfolge von welchen Personen in welchen Rollen erledigt und welche Ergebnisse dabei entstehen und wie diese überprüft werden.“

4

Page 5: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Vorgehensmodelle (2)

• Wesentlich für …

– Projektorganisation

• Systematische Herangehensweise, …

– Analyse von Projekten

• Schwachstellen, …

– Zeit- und Aufwandsplanung

• Aufwandsabschätzung, …

– Qualitative Bewertung von Software(-firmen)

• ISO 9000, …

5

Page 6: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Wasserfallmodell

Analyse und Definition

Entwurf

Implementation

Test

Einsatz und Wartung

Inkrementelles Wasserfallmodell

Erste Version: DoD, 1970• Verbindlich zum Standard erklärt

6

Page 7: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Wasserfallmodell

• Probleme

– Strenge Reihenfolge

– Nur zurück zur letzten Stufe

– Keine Parallelarbeit

– Keine inkrementelle Arbeit

• Grundlage der meisten anderen Modelle

7

Page 8: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

V-Model

• Erweitertes Wasserfallmodell– Qualitätssicherung / Tests in allen Phasen

• Standard für gesamten öffentlichen Bereich

Anforderung-definition

Grobentwurf

Feinentwurf

Modul-implementation

Abnahmetest

Systemtest

Integrationstest

Modultest

Anwendungsszenarien

Testfälle

Testfälle

Testfälle

8

Page 9: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Die Phasen (Wasserfall)

• Analyse und Definition– Analyse des Problems und Definition der

Anforderungen

• Entwurf (Design)– Struktur, UML

• Implementation– Programmierung

• Test– Komponenten-, System-, Integrationstest, …

9

Page 10: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Dokumente der Phasen

• Analyse und Definition

– Durchführbarkeitsstudie

• Glossar, Lastenheft, Aufwandsabschätzung, Projektplan

– Produktdefinition

• Pflichtenheft, Produktmodell, Benutzeroberfläche, Benutzerhandbuch

Analyse und Definition

10

Page 11: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Das Pflichtenheft

• Funktionale Anforderungen– Funktionalität, Daten (logische Sicht), Benutzeroberfläche

• Anforderungen an die Einsatzumgebung– Einsatzsituation, Anwenderprofil

• Technische Anforderungen– Programmiersprache, Betriebssystem, Hardware

• Leistungsanforderungen– Effizienz, Datenumfang

• Validitätsanforderungen– Vorbereitung von Tests, Spezifikation von Testfällen

• Qualitätsanforderungen– Benutzerfreundlichkeit, Zuverlässigkeit

• Realisierungsanforderungen– Vorgehensmodell, Dokumentation, Vorschriften, Termine, Kosten, Entwickler

11

Page 12: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

UML

12

Page 13: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

UML - Einführung

• UML entstand in den 1990ern aus dem Bedürfnis nach Standardisierung in der Methodik des Softwareentwurfs

• 1994 wird UML als Standard vorgeschlagen

• UML ist keine Methode, sondern Modellierungssprache

• Beitrag/Ziel der UML– Integration

• Gemeinsame Infrastruktur der Teilsprachen (UML-Metamodell)

– Kanonisierung• Palette von bewährten, aufeinander abgestimmten Konzepten

– Standardisierung• Modelle und Wissen über Modelle können ausgetauscht werden

• Kann in allen Phasen des Softwareentwurfs benutzt werden

13

Page 14: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Klassendiagramm

• Darstellung von Strukturen (im Ggs. zu Verhalten)• Wichtige fachliche Konzepte werden als Klasse

dargestellt• Phasen im Software-Lebenszyklus

– Analyse• Klassen als Konzepte der fachlichen Anwendungsdomäne

– Entwurf• Klassen noch fachlich motiviert, mit technischen Aspekten

– Implementation• Klassen als Äquivalente zu Klassen-Konstrukten der

Implementierungssprache

14

Page 15: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Klassendiagramm: Beispiel

• Domäne: Ausschnitt der Realen Welt, welcher von der Anwendung betrachtet wird

15

Page 16: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Klassendiagramm:Assoziation

• Zeiger auf ein zweites Objekt

A

B

0..1

*

C

A B

Multiplizität

Mehrstellige Assoziation

Assoziationsklasse

A

C

B

16

Page 17: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Klassendiagramm:Komposition

• Teil-Ganzes-Beziehung

– Teil-Objekt T ist vollständig in Besitz des Ganzen-Objektes G

– Andere Objekte können T nicht mehr besitzen

– Wird G gelöscht, kann auch T nicht mehr existieren

Kreditkarte (T) Passagier (G)

17

Page 18: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Klassendiagramm:Attribute & Operationen

Person

Vorname: StringNachname: StringGeburtstag: Date

zur_uni_gehen()essen()

Methoden

Attribute(Name: Typ)

18

Page 19: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Klassendiagramm: Beispiel 2

19

Page 20: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Sequenzdiagramm

• Darstellung von Verhalten (im Gegensatz zur Struktur)

• Beschreibt die Zeitliche Abfolge von Interaktionen zwischen Objekten

• Basiskonzept der Szenario orientierten Sicht

• Reihenfolge (Zeitachse)

• Lebensdauer von Objekten

20

Page 21: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Sequenzdiagramm: Syntax (1)

init()

Operation1()

B

A

Zeit

C

Operation2()

Objektlinie:Zeitliche Existenz

des Objektes

Relative Dauer der Aktivität

21

Page 22: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Sequenzdiagramm: Syntax (2)

Operation2()

BA

Zeit

Operation1()

Objekt wird gelöscht

Akteur

22

Page 23: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Use Cases (1)

• Stellt Außenverhalten eines Systems dar

– nur nach außen hin sichtbares Verhalten

• Beschreibt Aktionen, welche es Akteuren ermöglicht, ein fachlich motiviertes Ziel zu erreichen

• Kann/soll in UML das Verhalten beliebiger Modellelemente beschreiben

– Klasse, Komponente, …

23

Page 24: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Use Cases (2)

• Akteure stoßen Verhalten an und/oder sind vom Resultat abhängig

24

Page 25: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

UML Erweiterbarkeit

• UML erweitern bedeutet: Erweiterung des Metamodells– Neue Klassen– Neue Attribute

• Bestehendes kann nicht entfernt werden

• Z.B. verwendet für nichtfunktionale Anforderungen

• Drei Möglichkeiten der Erweiterung…

25

Page 26: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Das UML-Metamodell

26

Page 27: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

UML erweitern (1)

• Stereotyp

– Kennzeichnung spezifischer Elemente eines Modells („Etikett“)

<<artifact>>

Name

Zu stereotypisierendes

Element

Name des Stereotyps

<<laptop>>

<<pc>>

Visuelle Stereotypen

27

Page 28: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

UML erweitern (2)

• Tagged Values

<<artifact>>

Name

name1: value1name2: value2

Tag (Attribut)

Value

28

Page 29: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

UML erweitern (3)

• Profile

– Zusammenfassung von Stereotypen und Tagged Values zu Profilen

29

Page 30: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

FRAGEN?

30

Page 31: Software- und Systementwicklungwaste.informatik.hu-berlin.de/Lehre/ws0910/pet/entwicklung-20091111.pdfNov 11, 2009  · Klassendiagramm •Darstellung von Strukturen (im Ggs. zu Verhalten)

Quellen

• Vorlesung „Software Engineering“, Sommersemester 2009, Prof. Bothe.

• Störrle, Harald: UML 2 für Studenten. Pearson Studium, 2005.

• Wikipedia: Anwendungsfall. URL: http://de.wikipedia.org/wiki/Anwendungsfall, abgerufen am: 11.11.2009

• Wikipedia: Unified Modeling Language. URL: http://de.wikipedia.org/wiki/Unified_Modeling_Language, abgerufen am: 11.11.2009

31