Software-Engineering Grundlagen des Software-Engineering 2 Planungsphase (Requirements Phase)



Ähnliche Dokumente
Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase)

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software Engineering

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Electronic Systems GmbH & Co. KG

Jetzt neu: Online Reporting Schritt für Schritt durch das Online Reporting (OLR) Online Liedmeldung

Content Management System mit INTREXX 2002.

14 Aktivitäten und Artefakte

Software-Engineering Grundlagen des Software-Engineering

Berechnung der Erhöhung der Durchschnittsprämien

Software-Engineering

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn Inhaltsverzeichnis.

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Der Projektzeitenplan

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Installation OMNIKEY 3121 USB

Informationsblatt Induktionsbeweis

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

MuP-Arbeitshilfen. Kreativität organisieren Der innovative Prozess. Problem-Phase

Softwareentwicklungspraktikum Sommersemester Grobentwurf

I P A S M M D Innovative Software zur Prozessoptimierung. Prozessoptimierung durch Mensch-Maschine-Diagramm

Erfahrungen mit Hartz IV- Empfängern

Projektmanagement in der Spieleentwicklung

OEM Von der Idee zum Serienprodukt

Grundlagen des Software Engineering

ÜBUNG. Einführung in das IT- Projektmanagement WS 2012/13. Dr. The Anh Vuong

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Gruppe: swp Gruppenleiter: U. Seiler Aufgabenstellung 3. Lastenheft

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Namibiakids e.v./ Schule, Rehoboth, Namibia

Die Größe von Flächen vergleichen

Konzentration auf das. Wesentliche.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

dspace bildet aus! Ausbildung zum Fachinformatiker Anwendungsentwicklung (w/m)

Thema: Personenkonstellation

Reporting Services und SharePoint 2010 Teil 1

Software-Engineering Grundlagen des Software-Engineering

Umgang mit Schaubildern am Beispiel Deutschland surft

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich:

Wir machen neue Politik für Baden-Württemberg

Checkliste: Projektphasen

Lastenheft. Inhaltsverzeichnis. Gruppe: swp09-5. Projektleiterin: Anne Vogler am: 28. April Zielbestimmungen 2. 2 Produkteinsatz 2

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung II / Software Engineering II Modulnummer

Anwendungshinweise zur Anwendung der Soziometrie

Modellbildungssysteme: Pädagogische und didaktische Ziele

Einführung in die Modellierung

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Anleitung über den Umgang mit Schildern

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Dokumentation Schedulingverfahren

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Terminabgleich mit Mobiltelefonen

micura Pflegedienste München/Dachau GmbH

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

3D-Konstruktion Brückenpfeiler für WinTrack (H0)

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Auswertung JAM! Fragebogen: Deine Meinung ist uns wichtig!

Software-Engineering Grundlagen des Software-Engineering 1 Einführung - Was ist Software-Engineering?

Approximation durch Taylorpolynome

Achtung! In Abhängigkeit Ihrer Lohnlizenz können einzelne Felder evtl. nicht angezeigt werden (z.b. Pfänd.summe, PV-frei, UV-frei).

Erstellen eigener HTML Seiten auf ewon

8. Berechnung der kalkulatorischen Zinsen

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Fünf einfache Schritte

GEVITAS Farben-Reaktionstest

Ausgangslage, Rolle und Auftrag

Primzahlen und RSA-Verschlüsselung

So gehts Schritt-für-Schritt-Anleitung

Was ist das Budget für Arbeit?

Der Vortrag besteht aus 27 Seiten! Ich habe 15 Minuten. + 1 Minute Diskussion Passt!

Pflichtenheft Software-Projekt: AutoEdit Add On

Installationsanleitung für Update SC-Line

Wie Sie mit Mastern arbeiten

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Abbildung 8.1: Problem mit dem Zertifikat. 2. Melden Sie sich am imanager als admin an. Die Anmeldung erfolgt ohne Eingabe des Kontextes: 8-2

Einführungsstrategien komplexer IT-Lösungen

Migration von statischen HTML Seiten

Die Softwareentwicklungsphasen!

IINFO Storyboard

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

gallestro BPM - weit mehr als malen...

Wichtiges Thema: Ihre private Rente und der viel zu wenig beachtete - Rentenfaktor

Softwaretechnik. Fomuso Ekellem WS 2011/12

Formung einer Brustzugabe

Professionelle Seminare im Bereich MS-Office

Internet Explorer Version 6

Transkript:

Software-Engineering Grundlagen des Software-Engineering 2 Planungsphase (Requirements Phase) Prof. Dr. Rolf Dornberger Software-Engineering: 2 Planungsphase (Requirements Phase) 05.04.2006 1

2 Planungsphase 2 Planungsphase 2.1 Einführung und Überblick 2.1.1 Allgemeines zu Phasen im Software-Engineering 2.1.2 Aktivitäten in der Planungsphase 2.2 Lastenheft und Glossar 2.3 Aufwandschätzmethoden 2.4 Requirements Engineering 05.04.2006 2

2.1 Einführung und Überblick 2 Planungsphase 2.1 Einführung und Überblick 2.1.1 Allgemeines zu Phasen im Software-Engineering 2.1.2 Aktivitäten in der Planungsphase 2.2 Lastenheft und Glossar 2.3 Aufwandschätzmethoden 2.4 Requirements Analysis 05.04.2006 3

2.1.1 Allgemeines zu Phasen im Software-Engineering Im Software-Engineering gibt es verschiedene Phasen. In jeder Phase finden bestimmte Tätigkeiten und Aktivitäten statt, die für diese Phase charakteristisch sind. Ziel der einzelnen Phasen ist, ausgehend von einer "Idee" am Ende ein Software-Produkt zu entwickeln. Im Software-Engineering werden Prozessmodelle eingesetzt. Prozessmodelle beschreiben den Ablauf der einzelnen Phasen, definieren die Inputs für jede Phase, die beteiligten Personen und ihre Rollen sowie die Ergebnisse jeder Phase (oft Artefakte genannt). Das Software-Management stellt die plangemäße Durchführung der Prozessmodelle sicher. Das Software-Qualitätsmanagement garantiert die Qualität der Durchführung der Prozessmodelle. 05.04.2006 4

2.1.1 Allgemeines zu Phasen im Software-Engineering Kompetenzhaus der Software-Technik bzw. des Software- Engineering nach Balzert [Helmut Balzert; Lehrbuch der Software- Technik: Software-Entwicklung; Band 1, 2. Auflage; Spektrum Akademischer Verlag, Heidelberg 2001.] 1 Grundlagen II SW-Management 1Grundlagen LE 1 LE 24 Ei n f üh r u n g u nd Üb er bl i ck LE 1 V Un ternehm ensm od ellierung ISW-Entwicklung 1DiePlanungsphase LE 2 3 2 Objektorientierte Unternehm ensm odellierung LE 25 2LE II I SW -Q u al i tät s - man agem ent 1 Grundlagen LE 9 In der Software- Entwicklung gibt es die Phasen Planung, Definition, Entwurf, Implementierung, Abnahme und Einführung, Wartung und Pflege. 2Planung 3Organisation 4Personal 5Leitung 6Kontrolle LE 2 LE 3 4 LE 5 LE 6 7 LE 8 8LE 2 Die Definitionsphase 3 Die Entwurfsphase 4 Die Implementierungsphase 5 Die Abnahme- und Einführungsphase LE 4 22 LE 23 32 6DieWartungs-& Pflegephase LE 33 LE 34 LE 34 33 LE 2 Qualitätssicherung 3 M anue lle Prüfmethoden LE 11 4 Prozeßqualität LE 10 LE 12 1 3 5 Produktqualität Komponenten LE 14 17 6 Produktqualität System e LE 18 19 11 LE Planungsphase ist erste Phase in der Software- Entwicklung. 1 Prinzipien & Methoden LE 20 Legend e : 2 IV Qu ersch nitt e un d A usblick e 3 Wiederverwendung LE 21 LE 22 = Übergabe von Teilprodukten = Informationsaustausch = Unterstützung = Einfluß LE = Lehreinheit 4 Sanierung LE 23 4LE 05.04.2006 5

2.1.1 Allgemeines zu Phasen im Software-Engineering Software-Entwicklung: In verschiedenen Phasen wird schrittweise die SW entwickelt (idealer Fall). blauf eines oftwarengineeringrojekts Planungsphase Definitionsphase Entwurfsphase Implementierungsphase Abnahme- und Einführungsphase Pflege- und Wartungsphase Lastenheft Pflichtenheft Dokumentation Dokumentation fertige SW Dokumentation installierte SW Dokumentation Software Idee SWE-Konzepte: strukturierte und klassische Konzepte: Datenfluss, Struktogramm, Automaten, SA, Funktionenbaum, Regeln... OO Konzepte: Klassen, Objekte, OOA, UML... Technische Umsetzung: - c/s Anwendungen - verteilte Anwendungen -Web -DBs... Programmiersprachen: Java, C, C++, C#... Skriptsprachen: XML, HTML... Datenbanksprachen: SQL...... Testen Software installieren Software von Kunden abnehmen lassen... Testen Software Produkt Software-Management: Ein entsprechendes SW-Projekt kontrolliert die einzelnen Schritte der SW-Entwicklung. SW-Entwicklungsprojekt Software-Qualitätsmanagement: Entsprechende Prozesse garantieren die Qualität der gesamten SW-Entwicklung. Qualitätskontrolle der SW-Entwicklungsprozesse und des SW-Produktes 05.04.2006 6

2.1.1 Allgemeines zu Phasen im Software-Engineering Jede Phase zeichnet sich durch folgende Punkte aus: Ziele der Phase Durchzuführende Aktivitäten Aktivitäten/Rollenzuordnung Zu erstellende Artefakte Zu verwendende Artefakt-Muster Zu beachtende Methoden, Richtlinien, Konventionen und Checklisten Einzusetzende Werkzeuge und Sprachen Grafische Darstellung des Ablaufs der einzelnen Aktivitäten in einer Phase im Software-Engineering sieht wie folgt aus: Gegebene Artefakte Methoden Richtlinien Konventionen Checklisten Muster Wer k z eu ge Geändertes oder neues Artefakt Legende: Aktivität Rolle Mitarbeiter Modell (Artefakt) Dokument (Artefakt) Mitarbeiter Y Rolle X [Helmut Balzert; Lehrbuch der Software-Technik: Software-Entwicklung; Band 1, 2. Auflage; Spektrum Akademischer Verlag, Heidelberg 2001.] 05.04.2006 7

2.1.2 Aktivitäten in der Planungsphase Die Planungsphase dient dazu, Voruntersuchungen bzw. Durchführbarkeitsstudien (Machbarkeitsstudie, feasibility study) durchzuführen. Ziel der Planungsphase ist, die fachliche, ökonomische und personelle Durchführbarkeit der Software-Entwicklung zu überprüfen. Folgende Aktivitäten werden dazu in der Planungsphase durchgeführt: Requirements Analysis: Ermittlung der (Benutzer-)Ansprüche bzw. Hauptanforderungen an ein Software-Produkt Ist-Analyse: Analyse bereits eingesetzter Software-Produkte, falls vorhanden Analyse möglicher Produktkategorien: Eigenentwicklung oder Standard-Software, Customizing notwendig, Durchführbarkeitsstudie: softwaretechnische Realisierbarkeit sowohl technologisch als auch ressourcenbedingt Erste Abschätzungen des Aufwandes, der benötigten Zeit und des Budgets (Wirtschaftlichkeitsrechnung) 05.04.2006 8

2.1.2 Aktivitäten in der Planungsphase Die Ergebnisse der Durchführbarkeitsstudie sind: Lastenheft (grobes Pflichtenheft) Projektkalkulation Projektplan Der Abschluss der Planungsphase besteht aus dem Entscheid, mit dem Projekt fortzufahren oder hier abzubrechen. (go oder no-go/stop) 05.04.2006 9

2.1.2 Aktivitäten in der Planungsphase Lastenheft Glossar Methoden Out si de-in -Methode für Lastenheft Akteure & Geschäft sp roz esse Schnittstellen & Dat enflü sse Artefakt- Verwaltungssystem Textsystem Durchführbarkeitsstudie Lastenheft (Grobes Pflichtenheft) Gl ossar Vorg aben des Auftraggebers Planen des Produkts Projektkalkulation Projektplan Pr ojekt - leiter Auftraggeber Anwendungssp ezi ali st Legende: Ak ti vit ät Ro ll e Dok ument (Ar tef ak t) [Helmut Balzert; Lehrbuch der Software-Technik: Software-Entwicklung; Band 1, 2. Auflage; Spektrum Akademischer Verlag, Heidelberg 2001.] 05.04.2006 10

2.2 Lastenheft und Glossar 2 Planungsphase 2.1 Einführung und Überblick 2.1.1 Allgemeines zu Phasen im Software-Engineering 2.1.2 Aktivitäten in der Planungsphase 2.2 Lastenheft und Glossar 2.3 Aufwandschätzmethoden 2.4 Requirements Engineering 05.04.2006 11

2.2 Lastenheft und Glossar Die Aufgabe eines Lastenheftes ist es, dem Kunden ein möglichst klares Bild über das zu erstellende Software-Produkt zu liefern. Das Glossar erklärt dabei nicht allgemein bekannte Begriffe. Mögliches Gliederungsschema eines Lastenheftes (nach Balzert): 1 Zielbestimmung 2 Produkteinsatz 3 Produktübersicht 4 Produktfunktionen /LF10/ Geschäftsprozess, Akteur, Beschreibung... 5 Produktdaten /LD10/... 6 Produktleistungen /LL10/... 7 Qualitätsanforderungen Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit, Übertragbarkeit 8 Ergänzungen 05.04.2006 12

2.3 Aufwandschätzmethoden 2 Planungsphase 2.1 Einführung und Überblick 2.1.1 Allgemeines zu Phasen im Software-Engineering 2.1.2 Aktivitäten in der Planungsphase 2.2 Lastenheft und Glossar 2.3 Aufwandschätzmethoden 2.4 Requirements Engineering 05.04.2006 13

2.3 Aufwandschätzmethoden Zur Ermittlung der Erstellungskosten eines Software-Produkts werden in der Planungsphase nur einfache Aufwandschätzmethoden angewendet. Das Schätzen des Aufwandes ist jedoch nicht trivial. Man benötigt viel Erfahrung in ähnlichen Projekten und der Software-Entwicklung allgemein, um einigermaßen verlässliche Zahlen zu liefern. Die Wirtschaftlichkeit eines Produktes ist wie folgt definiert: Gewinn = (Preis VariableKosten) * Menge Entwicklungskosten Gewinn: Kann positiv oder negativ sein (also auch Verlust) Preis: Verkaufspreis für ein Exemplar der Software VariableKosten: Kosten zur Anfertigung, Verpackung und Lieferung einer Kopie der Software Menge: Anzahl der Software-Kopien, die verkauft werden können Entwicklungskosten: Einmalige Kosten zur Entwicklung der Software (Personalkosten, Computerausstattung...) 05.04.2006 14

2.3 Aufwandschätzmethoden Oftmals können Preis, VariableKosten und Menge leichter geschätzt werden als Entwicklungskosten. Die Entwicklungskosten bestehen heute zu einem Großteil aus den Personalkosten respektive den direkten Arbeitskosten. Allerdings weiß man oftmals am Anfang eines Software-Projektes nicht, wie viel Arbeitszeit das Projekt in Anspruch nehmen wird. 05.04.2006 15

2.3 Aufwandschätzmethoden Will man nun die Entwicklungskosten abschätzen, kommen oftmals Modelle zum Einsatz, die abschätzen, wie viele Programmzeilen (Anzahl der Programmzeilen, Lines of Code LOC) im Durchschnitt in einer Software-Entwicklung pro Monat bzw. Jahr implementiert werden können. 1 MJ (Mitarbeiterjahr) entspricht 9 MM (Mitarbeitermonate) oder 10 MM (da Urlaub, Fortbildung und administrative Tätigkeiten abgezogen werden). Eine durchschnittliche Software-Entwicklung (von Planung über Implementierung bis Auslieferung) liefert ungefähr 350 Quellcodezeilen (ohne Kommentare) pro Monat. Weiß man, wie viele LOC das fertige SW-Produkt am Ende etwa haben wird, kann man daraus den Aufwand des Projekts abschätzen. 05.04.2006 16

2.3 Aufwandschätzmethoden Der Aufwand ist aber nicht gleich der optimalen Entwicklungszeit, da mehr (oder auch weniger) als eine Person vollzeitlich im Projekt arbeiten können. Ein weiteres (altes, aber brauchbares) Modell berechnet daher die OptimaleEntwicklungsdauer aus dem Aufwand [in MM] unter Berücksichtigung der Komplexität der SW-Entwicklung: OptimaleEntwicklungsdauer = 2,5 * (Aufwand in MM) s [Monate] mit s = 0,38 für sehr komplexe SW s = 0,35 für komplexe SW s = 0,32 für normale SW Die durchschnittliche Größe des Entwicklungsteams (AnzahlMitarbeiter) berechnet sich dann wie folgt: AnzahlMitarbeiter = Dauer / OptimaleEntwicklungsdauer 05.04.2006 17

2.3 Aufwandschätzmethoden Will man den Aufwand genauer schätzen, kommen so genannte Basismethoden der Aufwandschätzung zum Einsatz: Analogiemethode: Vergleicht die zu schätzende SW-Entwicklung mit bereits abgeschlossenen SW- Entwicklungen anhand von Ähnlichkeitskriterien (Anwendungsgebiet, Produktumfang, Komplexität...). Multiplikationsmethode: Die neue zu erstellende SW wird soweit in Teilprodukte zerlegt, bis jedem Teilprodukt ein bereits feststehender Aufwand (LOC, Komplexität) zugeordnet werden kann. Function Point Methode: Zerlegt die SW gedanklich in einzelne bestimmte Funktionskategorien, denen jeweils eine bestimmte Komplexität geordnet werden kann. Anzahl je Funktionskategorie und Komplexität werden mit Gewichtungsfaktoren multipliziert und gewichtet aufsummiert. Das Ergebnis ist ein Function-Point-Wert, der mit firmenspezifischen Tabellen in einen Aufwand umgerechnet werden kann.... 05.04.2006 18

2.3 Aufwandschätzmethoden Weitere Informationen zu Aufwandschätzmethoden in folgenden Folien: SWE02_Aufwandschaetzmethoden.ppt 05.04.2006 19

Lernziele Allgemein den Ablauf der einzelnen Aktivitäten in einer Phase im Software-Engineering erklären können. Die Aktivitäten in der Planungsphase beschreiben und durchführen können. Ein Lastenheft mit Glossar schreiben können. Einfache Methoden der Aufwandschätzung für ein Software-Projekt anwenden können. 05.04.2006 20