software engineering 3. analyse und...

32
3. Analyse und Anforderungsmanagement Software Engineering

Upload: lamkhuong

Post on 27-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

3. Analyse und Anforderungsmanagement

Software Engineering

Gliederung Vorlesung

� Einführung� V-Modell XT� Analyse und Anforderungsmanagement� Benutzungsoberflächen� Architektur� Entwurf� Entwurfsmuster� Persistenz� Implementierung� Konfigurationsmanagement� Testen� Abnahme, Einführung, Wartung und Pflege

Allweyer: Software Engineering

Allweyer: Software Engineering

Pflichtenheft: Muster für Grob-Gliederung

1. Zielbestimmung− Muss-, Wunsch- und Abgrenzungskriterien

2. Produkteinsatz− Anwendungsbereiche, Zielgruppen, Betriebsbedingungen

3. Produktübersicht4. Produktfunktionen

− Inkl. Use Case Diagramm + Beschreibungen

5. Produktdaten− Inkl. Mengengerüste

6. Benutzungsoberfläche − z. B. Style Guides, Zugriffsrechte

7. Nichtfunktionale Anforderungen 8. Rahmenbedingungen9. Entwicklungs- und Produktionsanforderungen10. Produktumgebung

− Software, Hardware, Schnittstellen, Organisatorischer Rahmen

11. Ergänzungen

Arten von Anforderungen

� Funktional● Geben Antwort auf die Frage "Was soll das System machen?"

� Nichtfunktional● Beschreiben Bedingungen, beziehen sich oft auf funktionale

Anforderungen

● Werden häufig vernachlässigt

● Sind nur schwer zu spezifizieren und nachzuweisen

● Sind aber wesentlich für den Erfolg der Systementwicklung

● Die verschiedenen Arten von nichtfunktionalen Anforderungen tauchen in den meisten Projekten auf− Können übernommen und angepasst werden

Allweyer: Software Engineering

Qualitätsmerkmale für SW (ISO 9126)

Allweyer: Software Engineering

Arten nichtfunktionaler Anforderungen

Allweyer: Software Engineering

Quelle:Sommerville,Software Engineering

Metriken für nichtfunktionale Anforderungen

Allweyer: Software Engineering

Aufgaben des Anforderungsmanagements

� Anforderungen● Ermitteln

● Dokumentieren

● Validieren und Verifizieren

● Verwalten

Allweyer: Software Engineering

Anforderungen ändern sich

� Pro Monat zwischen Beginn Systemanalyse und Einsatz des Systems ändern sich 3% aller Anforderungen

● Nach einem Jahr sind 1/3 aller Anforderungen überholt!

� Bei großen Projekten sollte auch die Detail-Analyse inkrementell durchgeführt werden

� Änderungsmanagement erforderlich

Allweyer: Software Engineering

Allweyer: Software Engineering

Der Spezifikationsprozess

� Ziele:● Gewinnung von Anforderungen

● Darstellung von Anforderungen

● Prüfung der Anforderungen

� Vorgehensweise:● iterativ

● ständiger und enger Kontakt mit dem Auftraggeber

Allweyer: Software Engineering

Der Spezifikationsprozess

Allweyer: Software Engineering

Gewinnung von Anforderungen

� Probleme● Unterschiedliche Vertreter des Kunden haben unterschiedliche

Vorstellungen

● Uneinheitliche Begriffsbildung

● Kunde kann seine Vorstellung nicht formulieren

● Kunde weiß überhaupt nicht so genau, was er will

Dokumentationstechniken

Allweyer: Software Engineering

Allweyer: Software Engineering

Spezifikation von Anforderungen

� Merkmale einer guten formulierten Anforderung● Inhaltlich korrekt und angemessen

● Vollständigkeit

● Verständlichkeit− Auch für Entwickler, die nicht bei der Anforderungsermittlung dabei

waren

● Widerspruchsfreiheit

● Eindeutigkeit, kein Interpretationsspielraum

● Prüfbarkeit

● Kundenorientierung

● Umsetzbar− Zeitlich und von den Kosten her

Formulierung von Anforderungen

� Kurze Sätze� Sätze im Aktiv formulieren� Anforderungen in Hauptsätze formulieren

● Nebensätze nur zur Vervollständigung

� Pro Einzelanforderung ein Satz● Vermeidung von "und" und "oder"● Nicht mehrere Anforderungen in eine Anforderung packen

� Einfaches Vokabular● Insbesondere bei internationalen Projekten

� Eindeutig definierte Begriffe verwenden● Aus Projekt-Glossar

� Nummerierung● damit man in anderen Dokumenten darauf verweisen kann

� Messbare Kennzahlen� Es muss später überprüft werden können, ob die Anforderung erfüllt wurde

● Anforderungsdefinition dient als Grundlage für die Definition von Testfällen● Definition von Abnahmekriterien

Allweyer: Software Engineering

Allweyer: Software Engineering

Prüfung von Anforderungen

� Inhalt● Feststellen der Abweichungen

● Klären von− Fehlern

− Lücken

− Unklarheiten

− Mehrdeutigkeiten

● Validierung: Prüfung auf Adäquatheit, Vollständigkeit, Widerspruchsfreiheit (s.o.)

� Beteiligte● Entwickler

● Vertreter des Kunden

Allweyer: Software Engineering

Prüfung von Anforderungen

� Zeitpunkt● nach Fertigstellung einer ersten Version

● Zwischenprüfungen bei komplexen Spezifikationen

� Verfahren● Reviews

● Simulation

● Prototypen

Management von Anforderungen

� Änderungsmanagement zur Verfolgung von Anforderungsänderungen

� Anforderungsdokumente unterliegen dem Konfigurationsmanagement

� Traceability● Wichtig für Änderungen und die Verfolgung von Anforderungen

● Verbindungen zwischen Anforderungen – welche Anforderungen haben welche anderen (Teil-)Anforderungen zur Folge?

● In welchen weiteren Dokumenten/Modellen/Systemkomponenten wurde die Anforderung umgesetzt?

Allweyer: Software Engineering

� Dokumentation von Anforderungen mit Klassendiagrammen:

Analysemuster

Allweyer: Software Engineering

Allweyer: Software Engineering

Analysemuster

� Muster (Patterns) beschreiben wiederkehrende Problemstellungen und ihre Lösungen

� Unterstützen Wiederverwendung

� Sammlungen von OO-Mustern existieren hauptsächlich für Entwurfs-Modelle, aber auch für Analyse sinnvoll

� Ein Analysemuster umfasst eine Gruppe von Klassen mit fest stehenden Verantwortlichkeiten und Interaktionen

� Typen von Analysemustern:● Anwendungsspezifische (z. B. für Finanzsystemen)

● Allgemeine

� Im folgenden werden einige allgemeine Muster vorgestellt (entnommen aus Heide Balzert: Lehrbuch der Objektmodellierung, teilweise modifiziert)

Allweyer: Software Engineering

Muster Liste

Allweyer: Software Engineering

Muster Exemplartyp

Allweyer: Software Engineering

Muster Baugruppe

Verwendung derAggregation, dakeine Existenzabhängigkeit

Allweyer: Software Engineering

Muster Stückliste (1)

EinzelneExemplare

Mit dieser Darstellung kann z. B. der konkrete Aufbau eines bestimmten PCs incl. Grafikkarte, Festplatte usw. jeweils mit Seriennummern abgebildet werden (Betrachtung von Exemplaren).

Allweyer: Software Engineering

Muster Stückliste (2)

MaterialnrBezeichnung

Komponententyp

0..1

*

Wert

Menge

Komponenten-Typ,nicht die einzelnen Exemplare

Mit dieser Darstellung kann z. B. beschrieben werden, aus welchen Bestandteilen sich ein bestimmter PC-Typ zusammensetzt (als Vorschrift für den Aufbau konkreter PCs)

Allweyer: Software Engineering

Muster Stückliste (3)

Verwendung der Komposition, da Existenzabhängigkeit: Wird das Verzeichnis gelöscht, wird auch der Inhalt gelöscht.

Allweyer: Software Engineering

Muster Koordinator

Koordinator, hat meist nur wenige Attribute aberviele Assoziationen - merkt sich, wer wen kennt.

Die beiden Darstellungen sind streng genommen nicht gleichwertig. Im rechten Fall könnten mehrere Teilnahmen für die gleiche Kombination von Prüfung, Student und Professor angelegt werden.

Allweyer: Software Engineering

Muster Rollen

{ Zuhörer ≠ Vortragender }

Allweyer: Software Engineering

Muster Wechselnde Rollen

Abstrakte Rolle -Zu unterschiedlichen Zeiten nimmt der Arzt unterschiedliche Rollen ein.

Konkrete Rolle -Mit verschiedenen Attributen,daher Spezialisierung.

Allweyer: Software Engineering

Historie

Augenblickliche TätigkeitBei einem Wechsel der Tätigkeit geht die Information über frühere Tätigkeiten verloren

{ Zu jedem Zeitpunkt darf einem Angestellten nur eineTätigkeit zugeordnet sein }

Allweyer: Software Engineering

Muster Gruppe

Allweyer: Software Engineering

Muster Gruppenhistorie

{ Zu jedem Zeitpunkt darf ein Angestellter nur einer Abteilung angehören }