Softwareentwicklungsprozesse. 18. Oktober 2012



Ähnliche Dokumente
Softwareentwicklungsprozess im Praktikum. 23. April 2015

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Softwarequalität: Einführung. 15. April 2015

Einführung in die Softwaretechnik 9. Softwareprozesse

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

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

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

Grundlagen Software Engineering

Kapitel 2: Der Software-Entwicklungsprozess

Software-Entwicklung

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Software Systems Engineering

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

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Agile Softwareentwicklung mit Scrum

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

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

Agile Software Development

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Testen im Software- Entwicklungsprozess

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

FUTURE NETWORK REQUIREMENTS ENGINEERING

SWE12 Übungen Software-Engineering

Qualitätssicherung. Was ist Qualität?

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

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


Prozess-Modelle für die Softwareentwicklung

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

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Fragebogen zur Anforderungsanalyse

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Zukunftsorientierte Bürgerportale agil entwickeln

IT-Basics 2. DI Gerhard Fließ. Vorgehensmodelle

Abschnitt 16: Objektorientiertes Design

Am Beispiel Pair-Programming

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Einführungsstrategien komplexer IT-Lösungen

SDD System Design Document

Konzentration auf das. Wesentliche.

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Der Unified Process ist ein generischer Prozeß zur objektorientierten Software- Erstellung

Business Process Management. AristaFlow GmbH Ulm

16 Architekturentwurf Einführung und Überblick

Informationssystemanalyse Grundlagen 1 1

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

Agile Management Einführung in agiles Management

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Die Softwareentwicklungsphasen!

Andrea Grass & Dr. Marcus Winteroll oose Innovative Informatik GmbH. Geschäftsprozessmanagement und Agilität geht das zusammen?

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

IT-Projekt-Management

Lösungen zum Test objektorientierter Software

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Was versteht man unter Softwaredokumentation?

Fragebogen ISONORM 9241/110-S

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

12 Nicht-funktionale Anforderungen

Hilfe, mein SCRUM-Team ist nicht agil!

Testen in KMU Projekten Bern, November 2013

Inhaltsverzeichnis. Inhaltsverzeichnis... I. 1 Problemstellung V-Modell Allgemeines Anwendung des V-Modells...

Agile Softwareentwicklung

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Softwaretechnik. Fomuso Ekellem WS 2011/12

GRS SIGNUM Product-Lifecycle-Management

Studieren- Erklärungen und Tipps

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Das Leitbild vom Verein WIR

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

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

Data Mining-Projekte

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

FRONT CRAFT.

Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams

Klausur Software Engineering für WI (EuI)

Ablauf Vorstellungsgespräch

Use Cases. Use Cases

Gelebtes Scrum. Weg vom Management hin zur Führung

Übungen Workflow Management. Blatt 2

Unified Modeling Language (UML)

Qualität 1. 1 Qualität

WSR Softwarewartung und Prozessmodelle in Theorie und Praxis. Urs Kuhlmann Andreas Winter

Validierung von Software-Werkzeugen. Matthias Hölzer-Klüpfel

Software Engineering. Dokumentation! Kapitel 21

Mindestanforderungen an. Inland ECDIS Geräte im Informationsmodus und vergleichbare Kartenanzeigegeräte. zur Nutzung von Inland AIS Daten

3.2,,Eichung von Function Points (Berichtigte Angabe)

Requirements-Traceability in der industriellen Praxis Ziele und Einsatz

Neue Funktionen in Innovator 11 R5

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Dr. Klaus Körmeier BlueBridge Technologies AG

Transkript:

Softwareentwicklungsprozesse 18. Oktober 2012

Überblick Was soll ein Softwareentwicklungsprozess leisten? Überblick über Softwareentwicklungsprozesse Welche gibt es? Warum gibt es mehrere? Diskussion: Die Rolle des Modellierens in der bisherigen Softwareentwicklung Taentzer Modellgetriebene Softwareentwicklung 21

Softwareentwicklungsprozesse Wasserfallmodell Spiralmodell V-Modell Iterativer Entwicklungsprozess Unified Process Agile Softwareentwicklung Extreme Programming SCRUM Anforderungsanalyse Entwurf Implementierung Inbetriebnahme Testen Taentzer Modellgetriebene Softwareentwicklung 22

Unified Process (Anfang) (Vertiefung ) (Konstruktion) (Inbetriebnahme) (Geschäftsprozessmodellierung) (Softwareverteilung) Kern- Arbeitsschritte Unterstützende Arbeitsschritte Quelle: IBM - Rational Taentzer Modellgetriebene Softwareentwicklung 23

Prozessphasen 1. Anfang (inception): grundlegender Umfang des Projekts ist bekannt, endet mit der Zusage des Auftraggebenden 2. Vertiefung (elaboration): Endet mit Grundlegender Systemarchitektur Konstruktionsplan Identifizierten Risiken 3. Konstruktion (construction): iterativ, endet mit Beta-Release 4. Inbetriebnahme (transition): Einführung des Systems beim Anwender Taentzer Modellgetriebene Softwareentwicklung 24

Unified Process ( UP ) Jede Iteration führt zu einem ausführbaren Gesamtsystem. Neue Anforderungen können nach einer Iterationsstufe noch berücksichtigt werden. Die Phasen sind zeitlich geordnet. Die Iterationen beschreiben verschiedene Abschnitte innerhalb einer Phase. Die Disziplinen beschreiben die Aktivitäten im Prozess. Der Prozess ist anwendungsfallgetrieben. Wichtige Anwendungsfälle werden zuerst behandelt. Parallel zur UML von Ivar Jacobson, Grady Booch und James Rumbaugh entwickelt Rational UP als Implementierung (aktuell: Ver. 9) Taentzer Modellgetriebene Softwareentwicklung 25

Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit der Beteiligten effektiv und effizient zu gestalten. Menschen und Kooperationen bzw. Interaktionen sind wichtiger als Werkzeuge und starre Prozesse. Funktionsfähige Software ist wichtiger als eine ausführliche Dokumentation. Die stetige Zusammenarbeit mit den Auftraggebern ist wichtiger als bürokratische Vertragsverhandlungen. Offenheit für neue Erkenntnisse und damit die Bereitschaft zu dynamischen Veränderungen sind wichtiger als das strikte Festhalten an einem festgelegten Plan....flexibler und schlanker als der Unified Process Taentzer Modellgetriebene Softwareentwicklung 26

Agile Praktiken iterative Entwicklung (getrieben durch neue oder geänderte Anforderungen) testgetriebene Entwicklung ständige Refaktorisierungen Paarprogrammierung: Softwareartefakte (Code, Modelle, Dokumentationen) werden immer von zwei Entwicklern/innen gleichzeitig entwickelt. Schnelle und häufige Code-Reviews Taentzer Modellgetriebene Softwareentwicklung 27

Extremes Programmieren eine Form der agilen Entwicklung möglichst simples Design schnelle testbare Resultate permanentes Testen Entwicklung von Testfällen schon in frühen Phasen Test-First-Ansatz Testen von kleinen Einheiten, nicht nur Systemtests Refactoring: ständiges Überarbeiten der Implementierung ohne Änderung der Funktionalität Taentzer Modellgetriebene Softwareentwicklung 28

Extremes Programmieren (2) gemeinsame Verantwortung für den Code: Jede(r) kann jedes Dokument jederzeit ändern. häufige Integration von Teilen gemeinsame Kodierungsrichtlinien Z.B. SUN Code Conventions for Java Taentzer Modellgetriebene Softwareentwicklung 29

SCRUM Neue Variante der agilen Softwareentwicklung Iterationen heißen hier Sprints. Ein Sprint ist 1-4 Wochen lang. Das Team organisiert die Sprints selbst. Typisch: Daily Scrum ein maximal 15-minütiges Treffen des Teams Welche Aufgaben wurden fertiggestellt? Welche Aufgaben sind als nächste zu bearbeiten? Welche Probleme gibt es dabei? www.scrum.org Taentzer Modellgetriebene Softwareentwicklung 30

Qualitätsmerkmale für Software Funktionalität: Korrektheit, Angemessenheit, Interoperabilität, Ordnungsmäßigkeit, Sicherheit Zuverlässigkeit: Reife, Fehlertoleranz, Wiederherstellbarkeit Benutzbarkeit: Verständlichkeit, Bedienbarkeit, Erlernbarkeit, Robustheit Effizienz: Wirtschaftlichkeit, Zeitverhalten, Verbrauchsverhalten Wartungsfreundlichkeit: Analysierbarkeit, Änderbarkeit, Stabilität, Testbarkeit Übertragbarkeit: Anpassbarkeit, Installierbarkeit, Konformität, Austauschbarkeit Wie unterstützen die Prozesse die Qualitätssicherung? Taentzer Modellgetriebene Softwareentwicklung 31

SW-Qualität - Konfliktzonen mangelndes Qualitätsbewusstsein Alle beteiligten Personen müssen über das Vorhandensein von möglichen Qualitätskriterien informiert sein. unterschiedl. Interessen der entscheidenden Personen z.b. Anwender: Einfachheit des Systems z.b. Entwickler: Verfolgbarkeit der Entwicklung Zeit- und Kostenrahmen Welche Kriterien sind wirklich wichtig? z.b.: Korrektheit kostet Zeit. z.b. Effizienz behindert die Entwicklung und die Wartung. Taentzer Modellgetriebene Softwareentwicklung 32

Die Rolle des Modellierens in bisherigen SW-Entwicklungsprozessen Modellieren ist nur Zeitverschwendung. Haltung vieler Entwickler, die Extreme Programming favorisieren Modellierung ist nötig, um die Anforderungen des Kunden zu erfüllen. Der Kunde interessiert sich nicht sonderlich für Modelle. Aber: Modelle können den Entwicklern helfen, eine bessere Lösung zu finden. Taentzer Modellgetriebene Softwareentwicklung 33

Die Rolle des Modellierens in bisherigen SW-Entwicklungsprozessen Modellieren hilft, die Software richtig zu entwerfen. Man durchdenkt schon im Voraus die auftretenden Probleme. Modellierungs- und Programmiersprachen sind unterschiedlich, das Problem wird auf zwei verschiedene Weisen beschrieben. Grob gesagt: Das Modell beschreibt, was gemacht wird, während das Programm beschreibt, wie es gemacht werden soll. Designmodelle helfen beim Softwareentwurf. Modellieren hilft, die auftretenden Strukturen richtig zu erfassen. Insbesondere strukturelle Aspekte eines Softwaresystems lassen sich gut durch visuelle Modellierungssprachen erfassen. Taentzer Modellgetriebene Softwareentwicklung 34

Die Rolle des Modellierens in bisherigen SW-Entwicklungsprozessen Es ist ein großer Aufwand, Modelle und Code zueinander kohärent zu halten. Das lohnt sich nicht. Die Kohärenz von Modellen und Code wird in Werkzeugen meist nicht genügend unterstützt. Klassenmodelle sind häufig kohärent zum Code, da das unterliegende Modell dasselbe ist. Modelle werden für die Dokumentation eines Softwaresystems gebraucht. Modelle können nur zur Dokumentation verwendet werden, wenn sie aktuell gehalten werden. Taentzer Modellgetriebene Softwareentwicklung 35

Die Rolle des Modellierens in bisherigen SW-Entwicklungsprozessen Wenn in einem SW-Projekt modelliert wird, kann die Programmierung nach Indien ausgelagert werden. Der Kunde muss das Modell verstanden und so abgenommen haben. Wenn ein System sehr ausführlich und detailliert modelliert wurde, kann die Programmierung ausgelagert werden. (Stichwort: Implementierungsmodelle) Taentzer Modellgetriebene Softwareentwicklung 36

Zusammenfassung kontinuierliche Entwicklung des Softwareentwicklungsmodells vom Wasserfallmodell zu iterativer Entwicklung Trend zu...kürzeren Entwicklungszyklen...systematischeren Entwicklungsschritten...systematischerer Qualitätssicherung Die Rolle des Modellierens ist in verschiedenen SW- Entwicklungsprozessen verschieden wichtig. Probleme in der klassischen Modellierung: adäquate Modellierungssprachen für alle Systemaspekte Semantik der Modelle nicht immer klar Kohärenz von Modellen und Code Taentzer Modellgetriebene Softwareentwicklung 37