27
Qualitätskriterien und Agilität in der Softwareentwicklung

Agilität und Qualitätskriterien in der Softwareentwicklung

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien und Agilität

in der Softwareentwicklung

Page 2: Agilität und Qualitätskriterien in der Softwareentwicklung

Rico Fritzsche

• Studium M.A. Philosophie und Germanistik

• Seit 1996 in IT Branche tätig (Freelancer)

• 2006 Gründung VISUAL WORLD

• Tätigkeitsfelder: Software Architektur und Development; Technologie Consulting

• Freier Autor und Publizist (z.B. dotnet Magazin,

Visual Studio One)

Page 3: Agilität und Qualitätskriterien in der Softwareentwicklung

Visual World

• Individuelle, kundenspezifische Softwarelösungen

• Konzeption und Umsetzung von Softwareprojekten

• Technologie Consulting

• Schwerpunkt: Entwicklung von verteilten, datengetriebene Anwendungen unter Verwendung von Microsofttechnologien (.NET Framework, WCF, etc.)

Page 4: Agilität und Qualitätskriterien in der Softwareentwicklung

Visual World

• Z.B.: Webportale, HR-Systeme…

• Datengetriebene 2-Tier/ Multi-Tier Anwendungen

• Kunden: Public Sector, Internationale (agierende) Organisationen; z.B.: Zentrum für Internationale Friedenseinsätze Berlin, NRC Norwegen, … aber auch Energieversorger, z.B.: EON Thüringen, Thüringer Netkom GmbH

Page 5: Agilität und Qualitätskriterien in der Softwareentwicklung

Agenda

• Voraussetzungen für Projektrealisierung

• Qualitätskriterien

• Was bedeutet „Agil“?

• Das Agile Manifest

Page 6: Agilität und Qualitätskriterien in der Softwareentwicklung

Problemstellung

Was ist notwendig, um ein Softwareentwicklungsprojekt

erfolgreich umzusetzen?

Page 7: Agilität und Qualitätskriterien in der Softwareentwicklung

• Fachliche Analyse/ Auseinandersetzung mit Thematik/ Anforderungen des Kunden

• Problematik bzw. Prozesse fachlich verstehen

• Geeignete Technologien finden

• Implementierungsstrategie erstellen

• Softwarearchitektur/ Software-Design

• Team zusammenstellen/ Verantwortlichkeiten festlegen

• Qualitätssicherung

Page 8: Agilität und Qualitätskriterien in der Softwareentwicklung

Die Motivation

Warum muss man sich über den Entwicklungsprozess, Architektur

und die Softwarequalität im Vorfeld Gedanken machen?

Page 9: Agilität und Qualitätskriterien in der Softwareentwicklung

Die Motivation

• Beherrschung von Komplexität

• Änderungen der Normalfall und nicht die Ausnahme

• Fokus auf Wartbarkeit und Erweiterbarkeit

Page 10: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

Page 11: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• KorrektheitErfüllt die Software die in der Spezifikation beschriebenen Anforderungen?

Zu beachten: Gibt die Spezifikation nicht die Anforderungen korrekt wieder, leistet auch die Software nicht das Gewünschte!

Page 12: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• ZuverlässigkeitFehler sollten nur selten auftreten und nur geringe Auswirkungen haben.

Page 13: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• RobustheitSinnvolle Fehlerbehandlungen;

Reaktion auf Fehler aus der Umgebung

(z.B. Bedienungsfehler, Fehler von verknüpften System etc.).

Page 14: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• Usability (Benutzerfreundlichkeit)Intuitive Bedienung und leichte Erlernbarkeit. Verständliche Hinweise und Fehlermeldungen.

Page 15: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• WartbarkeitStandardisierte Entwicklung

(Design Patterns, Richtlinien)

Beherrschung der Komplexität

Verständlicher Code, Entkoppelung

Page 16: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• Effizienz (Performance)Angemessenes Laufzeitverhalten und Speicherplatzbedarf

Page 17: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• DokumentationSowohl für den Benutzer (Handbücher) als auch für den (Weiter-)Entwickler

(Dokumentation der einzelnen Entwicklungsschritte, der Implementierung, von Testplänen, ...).

Page 18: Agilität und Qualitätskriterien in der Softwareentwicklung

Qualitätskriterien

• Portabilitätz.B. Übertragbarkeit der Software auf andere Rechner.

Page 19: Agilität und Qualitätskriterien in der Softwareentwicklung

Wichtigstes Ziel: Wartbarkeit

Zu erreichen durch OOP

(Objektorientierte Programmierung) und DDD (Domain Driven Design)

Page 20: Agilität und Qualitätskriterien in der Softwareentwicklung

Programmierstile

• Prozedurale Programmierung– Einfaches „runterprogrammieren“ der

Anforderung am Stück

– Dadurch: Vermischung Data Access, Business Logic und Presentation

– Wiederverwendung ist nicht möglich

– Wartbarkeit: schlecht (viel doppelter oder ähnlicher Quellcode an mehreren Stellen)

Page 21: Agilität und Qualitätskriterien in der Softwareentwicklung

Programmierstile

• Objektorientierte Programmierung (OOP)– Entwicklung auf Basis von OO-Grundsätzen, -

Praktiken und Design Patterns

– Setzt Design voraus (OOD)

– Wiederverwendung und Wartbarkeit

Page 22: Agilität und Qualitätskriterien in der Softwareentwicklung

Programmierstile

Verhältnis Aufwand zu Komplexität nach Martin Fowler

Page 23: Agilität und Qualitätskriterien in der Softwareentwicklung

Agilität in der Umsetzung

• Agil = lat. agilis “flink, beweglich“

• Ziel: Softwareentwicklung schlanker und flexibler zu machen

• Fundament für agile Softwareentwicklung:

Manifesto for Agile Software Development (2001)

(17 Autoren, u.a. Kent Beck, Martin Fowler, Robert C. Martin…)

Page 24: Agilität und Qualitätskriterien in der Softwareentwicklung

Die Prinzipien des Agilen Manifests

Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge. - Zwar sind wohldefinierte Entwicklungsprozesse und Entwicklungswerkzeuge wichtig, wesentlicher sind jedoch die Qualifikation der Mitarbeitenden und eine effiziente Kommunikation zwischen ihnen.

Page 25: Agilität und Qualitätskriterien in der Softwareentwicklung

Die Prinzipien des Agilen Manifests

Funktionierende Programme sind wichtiger als ausführliche Dokumentation. - Gut geschriebene und ausführliche Dokumentation kann zwar hilfreich sein, das eigentliche Ziel der Entwicklung ist jedoch die fertige Software.

Page 26: Agilität und Qualitätskriterien in der Softwareentwicklung

Die Prinzipien des Agilen Manifests

Die stetige Abstimmung mit dem Kunden ist wichtiger als die ursprüngliche Leistungsbeschreibung in Verträgen. - Statt sich an ursprünglich formulierten und mittlerweile veralteten Leistungsbeschreibungen in Verträgen festzuhalten, steht vielmehr die fortwährende konstruktive und vertrauensvolle Abstimmung mit dem Kunden im Mittelpunkt.

Page 27: Agilität und Qualitätskriterien in der Softwareentwicklung

Die Prinzipien des Agilen Manifests

Der Mut und die Offenheit für Änderungen stehen über dem Befolgen eines festgelegten Plans. - Im Verlauf eines Entwicklungsprojektes ändern sich viele Anforderungen und Randbedingungen ebenso wie das Verständnis des Problemfeldes. Das Team muss darauf schnell reagieren können.