19. Software-Lebenszyklus und Anforderungsanalyse

Slides:



Advertisements
Ähnliche Präsentationen
eAQUA Workshop Einführung Software Engineering
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Das V - Modell - Überblick
Vorgehensmodell & Wasserfallmodell in der Programmierung
Vorgehensmodell - Wasserfallmodell
Dokumentation von Software Architekturen unter Berücksichtigung von IEEE 1471 Vortrag an der FH Regensburg © Dr. Ulrich Margull, 2004 Dr. Ulrich.
Datenbanken Einführung.
Die Softwarelebenszyklen
Objektorientierte Datenbanken
Die Planungsphase -Anforderungsanalyse-
Produktmodelle im Service Engineering
Das Entity-Relationship-Modell
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Inhaltsverzeichnis Einleitung zum Thema Was ist ein Lastenheft?
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Konzeption und prototypische Implementierung eines zentralen Informationssystems für Systemmanagement Motivation Oft wird es schwierig, die benötigten.
Requirements Engineering
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme System- und Abnahmetests Inhalt Testen des Systems unter Mitwirkung des Auftraggebers.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
RUP-Elemente (Schlüsselkonzepte)
DOM (Document Object Model)
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
Rational Unified Process (RUP) - Definitionen
Vortrag 11: Reengineering - Refactoring
– Team 2 Aktueller Projektleiter: Christian Krapp
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
Datenbankentwurfsprozess
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
UML Begleitdokumentation des Projekts
Kontrollfragen zu Kapitel 1
Visualisierung objektrelationaler Datenbanken
Entwicklung verteilter eingebetteter Systeme - Einführung
Anpassung des RUP an ein konkretes Projekt - 1
Simulation komplexer technischer Anlagen
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Spezifikation von Anforderungen
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Die Planungsphase Durchführbarkeitsuntersuchung: fachlich, personell und wirtschaftlich Lastenheft (grobes Pflichtenheft) Glossar Projektkalkulation Projektplan.
Mit 3 Schichte zum Erfolg
LVA , SS021 Im Mittelpunkt aller Bemühungen steht der Kunde und die Steigerung des Kundennutzens. Deswegen: Wer alles reinlässt kann nicht.
Strukturierter Entwurf (und Realisierung)
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
Wasserfallmodell und Einzelbegriffe
HFWI System Development Teil B Der Softwareentwicklungsprozess
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
Boga Abschlusspräsentation
GIS Design: A Hermeneutic View (Michael D. Gould)
SWT-Übung WS 11/ SA-SA/RT.
Klassen und Klassenstruktur
Software Engineering Grundlagen
Software Engineering Strukturierte Analyse
Einführung Dateisystem <-> Datenbanksystem
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Seminar: Software-Architektur Einführender Vortrag
Interoperabilität in Digitalen
4) Kaufmännische Realisierung
Ferienakademie Tutzing 2009 Forum Six Sigma Sandra Beecken Design for Six Sigma.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
 Präsentation transkript:

19. Software-Lebenszyklus und Anforderungsanalyse Der Software-Entwicklungsprozeß Anforderungs-analyse Spezifikation Entwurf (Design) Implementierung (Programmierung) Verifikation (Test) abschließender Schritt: Wartung der erstellten Software Wahl der Programmiersprache beeinflußt auch frühere Phasen Integration

Der Software-Entwicklungsprozeß (2) SYSTEM- SPEZIFIKATION Der Software-Entwicklungsprozeß (2) FORDERUNGS- ANALYSE ARCHITEKTUR DETAILLIERTER ENTWURF QUELLTEXT SCHREIBEN UND FEHLER SUCHEN TESTEN DES MODULS TESTEN DES SYSTEMS Entwurf: 40 % Implementierung: 20 % Testen und Dokumentation: 40 % WARTUNG / PFLEGE

Planen eines Produkts Voruntersuchung des Produkts Ist-Analyse, falls ein Vorgänger- Produkt bereits vorhanden ist Festlegen der Hauptanforderungen Festlegen der Hauptfunktionen Festlegen der Hauptdaten Festlegen der Hauptleistungen Festlegen der wichtigsten Aspekte der Benutzungsschnittstelle Festlegen der wichtigsten Qualitätsmerkmale

Durchführbarkeits-Untersuchung - Prüfen der fachlichen Durchführbarkeit (softwaretechnische Realisierbarkeit, Verfügbarkeit geeigneter Entwicklungs- und Zielmaschinen - Prüfen alternativer Lösungsvorschläge (z. B. Kauf und Anpassung von Standardsoftware vs. Individualentwicklung) - Prüfen der personellen Durchführbarkeit (Verfügbarkeit qualifizierter Fachkräfte für die Entwicklung) - Prüfen der Risiken

Prüfen der ökonomischen Durchführbarkeit - Aufwands- und Terminschätzung - Wirtschaftlichkeitsrechnung Die Ergebnisse dieser Tätigkeiten münden in eine Durchführbarkeitsstudie (feasibility study ), die folgende Teildokumente enthält: - Lastenheft (grobes Pflichtenheft) - Projektkalkulation - Projektplan Die Tätigkeiten in der Planungsphase haben das Ziel zu prüfen, ob ein Produkt entwickelt werden soll.

Hinzu kommt, daß die durchzuführenden Tätigkeiten und die involvierten Personengruppen stark von der jeweiligen Firmensituation abhängen: Erstellt die Software-Abteilung Individualsoftware für die eigene Firma, dann erfolgen die Planungen zusammen mit der jeweiligen Fachabteilung. Stellt ein Software-Haus Standard-Software für den anonymen Markt her, dann unterliegen Produktplanungen anderen Randbedingungen (Marketing, Produktfamilie und CI, Kooperationen, Standards, Termine, Kosten, ...)

Aufbau eines Lastenheftes Aufgabe: Das Lastenheft enthält eine Zusammenfassung aller fachlichen Basisanforderungen, die das zu entwickelnde Software-Produkt aus der Sicht des Auftraggebers erfüllen muß. „Basisanforderungen“ bedeutet eine bewußte Konzentration auf die fundamentalen Eigenschaften des Produktes und ihre Beschreibung auf einem hinreichenden Abstraktionsniveau. Adressaten: Auftraggeber (extern oder intern, z. b. Marketing), sowie Auftragnehmer repräsentiert durch den Projektleiter und die Systemanalytiker. Inhalt: Bewußte Konzentration auf die fundamentalen Eigenschaften des Produktes. Beschreibung des „Was“, nicht des „Wie“.

Form: Vorgegebenes, standardisiertes, grobes Gliederungsschemas mit festgelegten Inhalten. Sprache: Beschreibung auf notwendigem und hinreichendem Abstraktionsniveau in verbaler Form. Die einzelnen Anforderungen werden numeriert ( in 10-er Schritten für evtl. Einfügungen), um sich in späteren Phasen darauf beziehen zu können. Didaktik: Das Gliederungsschema ist so aufgebaut, daß das Lastenheft gut lesbar ist. Zeitpunkt:Das Lastenheft ist das erste Dokument, das die Anforderungen an ein neues Produkt grob beschreibt.

Gliederungsschema eines Lastenheftes 1. Zielbestimmung Hier wird beschrieben, welche Ziele durch den Einsatz des Produktes erreicht werden sollen. 2. Produkteinsatz Es wird festgelegt, für welche Anwendungsbereiche und für welche Zielgruppen das Produkt vorgesehen ist. 3. Produktfunktionen Die Hauptfunktionen des Produktes werden aus Auftraggebersicht beschrieben. Es ist darauf zu achten, daß die Kernfunktionen und nicht sekundäre Funktionen beschrieben werden. Auf Detailbeschreibungen ist zu verzichten.

4. Produktdaten Die Hauptdaten des Produktes, die permanent gespeichert werden müssen, werden festgelegt. 5. Produktleistungen Werden an einzelne Hauptfunktionen und Hauptdaten Leistungsanforderungen bzgl. Zeit, Datenumfang oder Genauigkeit gestellt, dann werden sie hier aufgeführt. 6. Qualitätsanforderungen Die wichtigsten Qualitätsanforderungen sollten hier aufgeführt werden, wie gute Zuverlässigkeit, gute Benutzbarkeit, normale Effizienz usw. 7. Ergänzungen Hier werden Ergänzungen oder spezielle Anforderungen beschrieben, z. B. außergewöhnliche Anforderungen an die Benutzerschnittstelle.

Seminaranmeldung Als Teilnehmer zu nachfolgenden Seminaren wird angemeldet: Titel Vorname Name vom bis Anmeldebestätigung und Rechnung erbeten an: Firma Straße / Postfach LKZ ORT PLZ Telefon Veranstaltungs-Nr. Seminarbezeichnung

Produkt-Definition Diese kann sich - je nach gewählter Methodik - aus verschiedenen Teilprodukten zusammensetzen. Meistens ist die Produkt-Definition - oder zumindest Teile davon - auch ein juristisches Dokument. Mit der Unterzeichnung dieses Dokuments durch Auftraggeber und Auftragnehmer sind die Anforderungen verabschiedet. Die Produkt-Definition bildet die Grundlage für den Software-Entwurf. Was muß definiert werden? Modelliert man ein neues System, dann müssen vier verschiedene Sichten und ihre Zusammenhänge beschrieben werden: Daten Funktionen Dynamik Benutzungsoberfläche

Abb. Zu beschreibende Sichten und ihre Konzpte Assoziations-Matrix Daten ER (Entity Relationship) DD (Data Dictionary) DFD (Datenfluß-Diagramm) Masken-Generator SA Funktionen Funktions-Baum DFD (Datenfluß- Diagramm) Benutzer Grafik-Editor Kontroll- Strukturen Regeln System OOA Dynamik Petri-Netz Zustandsautomat Kontroll-Strukturen Interaktions-Strukturen RT-Erweiterung von SA

Begriffe zur Abbildung Benutzer-Oberfläche ER = Entity Relationship DD = Data Dictionary DFD = Datenfluß-Diagramm RT = Real Time Analysis OOA = Object Oriented Analysis SA = Structured Analysis Die Bedeutung der einzelnen Sichten ist nicht bei jeder Anwendung gleich groß. Es gibt Anwendungen, bei denen alle 4 Sichten weitgehend gleich wichtig sind. Es gibt aber auch Anwendungen, bei denen eine oder zwei Sichten dominieren.

Komplexität der Funktionen: Komplexitätsarten Unabhängig von einer konkreten Anwendungklasse lassen sich Anwendungen nach Komplexitätsarten gliedern. Sechs Dimensionen der Software-Komplexität können unterschieden werden: Komplexität der Funktionen: Software-Systeme, die eine Vielzahl von Funktionen enthalten, Textverarbeitungssysteme, DTP-Systeme und integrierte Büroprogramme sind Beispiele dafür. Integrierte Büroprogramme mit Textverarbeitung, Tabellenkalkulation, Bürografik und Datenbank besitzen zwischen 1.000 und 1.500 Funktionen. Ein DTP-System hat einen Funktionsumfang von 700 bis 1.000 Funktionen.

Komplexität der Algorithmen Komplexität der Daten Software-Systeme, die eine Vielzahl von Datenstrukturen oder sehr komplexe Datenstrukturen enthalten. Ein Beispiel hierfür sind Datenbanksysteme. Komplexität der Algorithmen Software-Systeme, die z. B. komplexe numerische Berechnungen durchführen. Komplexität des zeitabhängigen Verhaltens Software-Systeme, die sich durch nebenläufige Prozesse, gegenseitigen Ausschluß, Synchronisation, definierte Zeitbedingungen und ähnliches auszeichnen. Beispiele dafür sind Betriebssysteme, verteilte Systeme, Prozeßsteuerungen.

Komplexität der Systemumgebung Software-Systeme, die in andere Systeme eingebettet sind (embedded systems). Da diese Software-Systeme nur Teilkomponenten des Gesamtsystems sind, kommt es hierbei ganz wesentlich auf das Zusammenwirken von Software-System und Gesamtsystem an. Beispiele hierfür sind Flugzeugsteuerungen, Radaranlagen, Kraftwerkssteuerungen. Komplexität der Benutzungsoberfläche Software-Systeme mit komplexer Interaktion zwischen Benutzer und Computersystem. Beispiele dafür sind CAD- und CASE-Systeme, Büroanwendungen, Grafiksysteme.

Die in den letzten Jahren entwickelten Konzepte zur Beschreibung eines Produktmodells lassen sich in vielen Fällen auf seit längerem bekannte Basiskonzepte zurückführen. Ein Basiskonzept läßt sich durch folgende Eigenschaften charakterisieren: atomares Konzept besagt, daß das Konzept elementar und originär ist. Es ist nicht auf andere Basiskonzepte reduzierbar. Um von einem Basiskonzept zu sprechen, muß die erste Eigenschaft und mindestens eine der anderen Eigenschaften erfüllt sein. konzeptuell langlebig, phasenübergreifend verwendbar, in unterschiedlichen Kontexten einsetzbar.

Überblick über Basiskonzepte, gegliedert nach den Sichten, die sie beschreiben. Funktionale Sicht (Funktionale Hierarchie, Informationsfluß) Datenorientierte Sicht (Datenstrukturen, Entitäten und Beziehungen) Objektorientierte Sicht (Klassenstrukturen) Algorithmische Sicht (Kontrollstrukturen) Regelbasierte Sicht (Wenn- Dann-Strukturen) Zustandsorientierte Sicht (Endlicher Automat, Nebenläufige Strukturen) Scenario-basierte Sicht (Interaktions-Strukturen) Internationale Standardisierung 1984 Der Standard Guide for Software Requirements wurde von der IEEE verabschiedet und 1985 von der ANSI (American National Standard Institute) übernommen.

Aufbau eines Pflichtenheftes Das Ergebnisdokument einer Anforderungsdefinition wird oft als Pflichtenheft bezeichnet. Aufgabe: Das Pflichtenheft enthält eine Zusammenfassung aller fachlichen Anforderungen, die das zu entwickelnde Software-Produkt aus der Sicht des Auftraggebers erfüllen muß. Adressaten: Auftraggeber (extern oder intern, z. B. Fachabteilung), Auftragnehmer repräsentiert durch den Projektleiter und die Systemanalytiker, Entwerfer, Qualitätskontrolle, Benutzerrepräsentant oder ausgewählte potentielle Benutzer.

Inhalt: Fachlicher Funktions-, Daten-, Leistungs- und Qualitätsumfang des Produktes. Beschreibung des Was, nicht des Wie. Das Pflichtenheft muß so abgefaßt sein, daß es als Basis eines juristischen Vertrages dienen kann. Das Pflichtenheft stellt also die vertragliche Beschreibung des Lieferumfanges dar. Anhand des Pflichtenheftes soll das fertige Produkt abgenommen werden können. Die beschriebenen Anforderungen sollen realisierbar sein. Entwurfs- und Implementierungs-Entscheidungen sollen nicht vorweggenommen oder unnötig eingeschränkt werden. Form: Vorgegebenes, standardisiertes, grobes Gliederungsschema mit festgelegten Inhalten, um Pflichtenhefte gut lesen und vergleichen zu können. Sprache: Detaillierte verbale Beschreibung mit Numerierung einzelner Anforderungen.

Kurzfassung: IEEE SRS (Software Requirement Specification) 1 Einleitung (Introduction) Gibt einen Überblick über die Anforderungsdefinition 1.1 Zielsetzung (Purpose) 1.2 Produktziele (Scope) 1.3 Definitionen, Akronyme und Abkürzungen (Definitions, Acronyms and Abbreviations) 1.4 Referenzen (References) 1.5 Überblick (Overview)

2. Allgemeine Beschreibung (General Description) Gibt einen Überblick über das Produkt und die allgemeinen Faktoren, die seine Konzeption beeinflussen 2.1 Produkt-Umgebung (Product Perspective) 2.2 Produkt-Funktionen (Product Functions) 2.3 Benutzer-Eigenschaften (User Characteristics) 2.4 Allgemeine Restriktionen (General Contraints) 2.5 Annahmen und Abhängigkeiten (Assumptions and Dependencies)

3 Spezifische Anforderungen (Specific Requirements) Beschreibung aller Details, die für die Erstellung des System-Entwurfs benötigt werden. Das am besten geeignete Gliederungsschema dieses Kapitels hängt von der Anwendung und der zu spezifizierenden Software ab. Die IEEE-Richtlinie enthält dazu vier Vorschläge: Unabhängig von der Strukturierung sollte das Kapitel folgende Informationen enthalten: Funktionale Anforderungen (Funktional Requirements) Leistungsanforderungen (Performance Requirements) Entwurfsrestriktionen (Design Contraints) Qualitätsmerkmale (Attributes) Externe Schnittstellen-Anforderungen (External Interface Requirements)