Programmiermethodik Softwareentwicklung SS 2002

Ähnliche Dokumente
1. Übung Softwaretechnik - Planungsphase -

Software Entwicklung 2. Lastenheft / Pflichtenheft

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

Software- und Systementwicklung

IT-Projekt-Management

Pflichtenheft. Software Engineering I WS 2011/2012. Dr.-Ing. Ina Schaefer 1. Software Systems Engineering TU Braunschweig

Software-Engineering

4. Übung zu Software Engineering

Vortrag Iterative Prozessmodelle/SCRUM

Software Engineering

Software-Lebenszyklus

Übungen zur Softwaretechnik

IT-Projektmanagement Teil 2: Der Gegenstand von SW-Projekten Kaiserslautern, WS 2008/2009 Dr. Gerhard Pews

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

Einführung in die Informatik

Analyse und Entwurf objektorientierter Systeme

The Rational Unified Process. Eine Einführung von T. Langer und A. Nitert

Quelle:

Vorlesung Softwaretechnik - Vorgehensmodelle, V-Modell XT -

Objektorientierte Analyse

Ziele und Tätigkeiten von Architekten

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle

Grundlagen des Software Engineering

14 Aktivitäten und Artefakte

Softwaretechnik. Fomuso Ekellem WS 2011/12

Herkömmliche Softwareentwicklungsmodelle vs. Agile Methoden

INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung. Robust und Agil gegeneinander oder miteinander?

Anforderungsanalyse, Requirements Engineering

Was versteht man unter einem Softwareentwicklungsmodell?

Softwareprozessmodelle

Übungsaufgaben zum Software Engineering: Management

Pflichtenheft Inhaltsverzeichnis. 1 Zielbestimmung Musskriterien Wunschkriterien Abgrenzungskriterien...

Lastenheft (Universität Paderborn, Softwaretechnikpraktikum SS2006)

Technologiepark Paderborn Telefon: / XX XX XX Mobil: 01XX / XX XX XX XX XXXXXXX@mail.upb.de

Software Engineering. 3. Analyse und Anforderungsmanagement

2 Geschäftsprozesse realisieren

INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung. Robust und Agil gegeneinander oder miteinander?

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

Lehrplan: Projektmanagement

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

Notationen zur Prozessmodellierung

Softwaretechnik (Allgemeine Informatik) Überblick

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

Software Engineering

Wirtschaftsinformatik I Teil 2. Sommersemester Übung

Pflichtenheft Projekt Yellowstone

Software Engineering

Pflichtenheft Programmanwendung "Syntax Tool"

3. Vorgehensmodelle Software Engineering. Prof. Dr. Bernhard Humm Hochschule Darmstadt, 23. Oktober 2006

1 Objektorientierte Software-Entwicklung

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

Die Softwareentwicklungsphasen!

Software- Projektmanagement. Dokument V Oliver Lietz - Projektmanagement. Projektmodelle im Vergleich. Agil Extreme Programming /

Software-Entwicklung

Bausteine eines Prozessmodells für Security-Engineering

Der Rational Unified Process

Einführung in die SWE

Was versteht man unter Softwaredokumentation?

Softwarearchitekturen I Softwareentwicklung mit Komponenten

Praxis der Softwareentwicklung WS 2016/17

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing.

Softwarepraktikum SS 2005 Inhalt - VL 10. Softwaretechnik. Softwareentwicklungszyklus (2) Wasserfallmodell. Softwareentwicklungszyklus

Moderne Strukturierte Analyse

App-Model Canvas - Ausgangslage -

SmartOffer. Eine werkzeugbasierte Methode zur Vorbereitung von Software Projekten. Universität Trier. Axel Kalenborn & Sebastian Adam

6. Programmentwicklung

Block R (Rahmen): SE Aktivitäten Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

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

Testdokument (Universität Paderborn, Softwaretechnikpraktikum SS2006)

Prozess-Modelle für die Softwareentwicklung

Softwareentwicklungsprozesse. 18. Oktober 2012

Änderungsmanagement bei iterativer SW-Entwicklung

ÜBUNG. Einführung in das IT-Projektmanagement Dr. The Anh Vuong WS 2016/17. Thema... 2 Projekt Struktur... 3 AUFGABEN... 5

Gliederung. Wozu braucht man Anforderungsmanagement? Motivation AM. Was umfasst Anforderungsmanagement? Definition AM

Das Softwaresystem BASEMENT

Pflichtenheft: Wettervorhersagen via Webservice

Universität Karlsruhe (TH)

Projekt: Requirements Engineering Sommersemester Anforderungsspezifikation im X-Treme Programming

Projektmanagement. Projektmanagement

Grundlagen Software Engineering

Objektorientierte Analyse (OOA) Inhaltsübersicht

Agilität trifft Funktionale Sicherheit

Teil III der Vorlesung Objektorientierte Analyse (OOA) 30) Überblick über die OOA

Zustandsdiagrammeditor Pflichtenheft, Version 3.0

Softwaretechnik. Fomuso Ekellem WS 2011/12

Einführung in die Softwaretechnik 9. Softwareprozesse

17 Architekturentwurf Vorgehen und Dokumentation

15 Verwaltung von Anforderungen (Requirements Management)

2 Vorgehensmodelle in der Softwareentwicklung

Team Foundation Server & Ranorex Workshop

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Klausurvorbereitung Software Engineering TFH Berlin

Markus Heckner Lehrstuhl für Medieninformatik Institut für Information und Medien, Sprache und Kultur Fakultät für Sprach-, Literatur- und

Projektmanagement. Dokument V 1.2. Oliver Lietz - Projektmanagement. Probleme bei Projekten

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Phasen. Gliederung. Rational Unified Process

Qualitätssicherung im Lebenszyklus des itcs. Anspruch und Wirklichkeit.

Transkript:

Programmiermethodik Softwareentwicklung SS 2002 Thomas Kühne kuehne@informatik.tu-darmstadt.de http://www.informatik.uni-mannheim.de/informatik/softwaretechnik Warum Entwicklungsmethodik? Realisierung soll termingerecht und kostengünstig erreicht werden» Bei großen kostenspieligen Entwicklungen ist es unabdingbar Aufwandsabschätzungen durchzuführen und Lösungsstrategien durchzuspielen Qualitätsansprüche, z.b., Ausbaufähigkeit» Eine Realisierung, die gerade so funktioniert aber z.b., nicht mehr an veränderte Wünsche / Bedingungen angepaßt werden kann, hat ihre Bestimmung verfehlt 1

Wartung Software befindet sich zu 60%-80% der Lebenszeit in der Wartung Definition Prozeßmodell Allgemeiner Entwicklungsplan, der das generelle Vorgehen beim Entwickeln eines Software-Produkts festlegt Festlegung, welche Aktivitäten in welcher Reihenfolge von welchen Personen erledigt und welche Ergebnisse (Artefakte) dabei entstehen und wie diese überprüft werden 2

SE-Teilmodelle Projektmanagement Terminplanung» (wann welche Phasen) Personalplanung» (Rollenzuteilung, Teambildung) Kostenplanung» (Aufwand, Leistungsfähigkeit der Teams) Planung der Qualitätssicherung» (welche Tests, wann) 3

Qualitätssicherung Korrektheit Robustheit Bedienbarkeit Effizienz Wartbarkeit Testbarkeit Erwartungen erfüllen "Streß"-Situationen bestehen intuitiver, effizienter Umgang Geschwindigkeit & Kompaktheit kostengünstige Änderungen Validierungsmöglichkeiten Wiederverwendbarkeit Anwendung in anderen Kontexten Portierbarkeit Platformunabhängigkeit später mehr... Prozeßmodell Durchführen einer Aktivität 4

Prozeßmodell Artefakt» Ein greifbares Stück Information, das durch Mitarbeiter erzeugt, geändert und benutzt wird, wenn sie Aktivitäten ausführen» Kann ein Modell, ein Modellelement oder ein Dokument sein Beispiele: Dokument, z.b. Lastenheft, Modell, z.b. objektorientiertes Analysemodell, Quellcode, z.b. Java Programm. Prozeßmodell Software-Produkt» Definierte Menge von Artefakten, insbesondere Realisierung (Code) Rolle» Beschreibt die notwendigen Erfahrungen, Kenntnisse und Fähigkeiten, über die ein Mitarbeiter verfügen muss, um eine bestimmte Aktivität durchzuführen. 5

Rollenverteilung (Beispiel) 1 Systemarchitekt» Organisation des Teams» Entwurfsarchitektur» Betreuung» Überwachung 1 Dokumentierer» Spezifikationen erstellen und verwalten» Programmdokumentation» Benutzerhandbuch n Programmierer» Feinentwurf» Programmierung der Module 1 Qualitätssicherer» Code Inspektion» Testfälle erstellen» Tests durchführen und dokumentieren "Pair Programming" Programmieren in Zweiergruppen Unerfahrene lernen von Erfahrenen» jedoch nicht "einer tut, der andere sieht zu"!» gemeinsamer Dialog über Lösungen Gegenseitige Kontrolle» Korrekturen durch den "inaktiven" Partner» Rollenverteilung "Taktik" & "Strategie" Kommunikation des Entwurfs» wechselnde Paarkombinationen 6

Phasen (unvollständig) Planungsphase Prozeßmodell Produkte» Zielvorstellung Lastenheft Analyse» Verstehen des Problems Domänenmodell Entwurf» Konstruktion der Lösung Lösungsarchitektur Implementierung» Realisierung laufendes System Phasendefinition Notwendige Aktivitäten, um das Produkt weiterzuentwickeln Festlegungen pro Phase:» Ziele der Phase» Durchzuführende Aktivitäten» Aktivitäten/Rollenzuordnung» Zu erstellende Artefakte» Zu beachtende Methoden, Richtlinien,Checklisten» Meilenstein(e)» Einzusetzende Werkzeuge und Sprachen. 7

Aufgabe Planungsphase Definition des Auftrags Machbarkeitsstudie Relevante Artefakte Use Case Diagramme» Anwendungsfälle Meilenstein Grobes Pflichtenheft Lastenheft, Projektkalkulation und -plan Projektentscheidung Durchführung, wenn... Technisch realisierbar Erforderliches Know-How zur Realisierung beim Auftragnehmer vorhanden Organisatorisch beim Auftragnehmer realisierbar (Personal verfügbar) Kosten/Nutzen-Analyse positiv Rechtlich zulässig (z.b. Datenschutz beachtet) Keine ethisch/moralischen Bedenken durch Auftragnehmer/Entwickler 8

Planungsphase: Artefakte Lastenheft Aufgabe» Zusammenfassung aller fachlichen Basisanforderungen; erstes Dokument, das Anforderungen beschreibt Umfang» wenige Seiten; gut lesbar gegliedert Inhalt» "was", nicht "wie"; verbale und grafische Spezifikationen auf angepaßtem Abstraktionsniveau 9

Pflichtenheft 1. Zielbestimmung 1.1 Musskriterien 1.2 Wunschkriterien 1.3 Abgrenzungskriterien (was nicht erforderlich ist) 2. Produkt-Einsatz 2.1 Anwendungsbereiche 2.2 Zielgruppen 2.3 Betriebsbedingungen Juristisches Dokument: Vertrag zwischen Auftraggeber und Auftragnehmer Pflichtenheft 3. Produkt-Umgebung 3.1 Software 3.2 Hardware 3.3 Orgware 3.4 Produkt-Schnittstellen 4. Produkt-Funktionen Je Funktion ein Unterkapitel. Funktionen aus Benutzersicht beschreiben (WAS geleistet wird und nicht WIE) 10

5. Produkt-Daten Pflichtenheft 6. Produkt-Leistungen 7. Benutzeroberfläche Bildschirmlayout, Drucklayout, Tastaturbelegung, Dialogstruktur, Ton 8. Qualitäts-Zielbestimmung 9. Globale Testszenarien Pflichtenheft 10. Entwicklungs-Umgebung 10.1 Software 10.2 Hardware 10.3 Orgware 10.4 Entwicklungs-Schnittstellen 11. Ergänzungen/Sonstiges 11

Glossar Definiert eine einheitliche Terminologie Beispiel:» Kundensachbearbeiter Verantwortlich für die Kommunikation mit Kunden und Firmen einschließlich der Auskunftserteilung und Buchung Verwendung von branchenüblichen Begriffen, die für den Produkt-Benutzer verständlich sind Die Glossarbegriffe werden sowohl für die Benutzungsoberfläche als auch für die Online-Hilfe und das Benutzerhandbuch verwendet. Benutzerhandbuch Aufgabe» Handhabung des Softwareprodukts beschreiben Adressaten» Endbenutzer Gibt es verschiedene Klassen von Endbenutzern (z. B. Anwender, Systemverwalter), so sollten getrennte Benutzerhandbücher geschrieben werden. Stile» User Guide» Reference Card» Tutorial» Online-Hilfe 12

Planungsphase (Übersicht) Analyse Aufgabe Verstehen der Problemdomäne Relevante Artefakte z.b., Klassendiagramme» Fachkonzepte Meilenstein Spezifikation des Problems / Analysemodell 13

Entwurf Aufgabe Lösungsfindung (Architektur & Details) Relevante Artefakte z.b., Klassen & Interaktionsdiagramme,» generelle Architektur (grob-granular)» detaillierte Entscheidungen (fein-granular) Meilenstein Spezifikation der Lösung Struktur Dynamik Analyse versus Entwurf Less than 10% of the code has to do with the purpose of the system; the rest deals with input, output, data validation, and other housekeeping. Mary Shaw 14

Entwurfsaspekte Entwurfsaspekte 15

Implementierung Aufgabe Umsetzung der Spezifikation in Code Relevante Artefakte z.b., Javaklassen Benutzerhandbuch Meilenstein lauffähiges System Phasenmodelle Systematisches Vorgehen zur Entwicklung des eigentlichen Softwareprodukts Verschiedene Modelle kommen zum Einsatz, z.b.,» Wasserfallmodell» Spiralmodell» Versionsmodell» Iteratives Phasenmodell» Prototypenmodell 16

Wasserfallmodell Problem sequentielle und vollständige Durchführung nicht immer sinnvoll spät entdeckte Fehler sind sehr teuer Spiralmodell Von innen nach außen gewinnt das Produkt an an Funktionalität und Komplexität tät Vorteil Frühe Rückmeldung aus späteren Phasen 17

Versionsmodell Vorteil Auftraggeber erhält jeweils einsatzfähige Produkte Nachteil Gefahr der Komplettüberarbeitung Iteratives Phasenmodell Vorteil Reduktion von Wartezeiten zwischen abhängigen Aktivitäten Nachteil Hoher Planungs- und Personalaufwand - Prototyp - OOA OOD OOP - Alpha Release - OOA OOD OOP - Beta Release - Integration u. Test OOA OOD OOP Integration u. Test Integration u. Test 18

Rational Unified Process Prototypenmodell Mit geeigneter Sprache & Umgebung, z.b., LISP, Smalltalk Zusammen mit Auftraggeber Hier nur als Beispiel; im im Prinzip orthogonal zur Vorgehensweise 19

Wiederverwendung Lösungsunabhängig! Entwiclungszyklus OOA OOD OOP Integration u. Test Betrieb u. Wartung Verfügbare, allgemeine Komponenten werden bereits im im Entwuf mitberücksichtig Einplanung Verwendung Klassenbibliothek (implementierte Klassen) Bereitstellung Bereits auf Allgemeinheit achten! "Planning for Change" In preparing for battle I have always found that plans are useless, but planning is indispensable. General Eisenhower 20