Software Management - schmiedecke.info · Anforderung ist in Use Case berücksichtigt Anforderung...

Post on 17-Sep-2018

222 views 0 download

Transcript of Software Management - schmiedecke.info · Anforderung ist in Use Case berücksichtigt Anforderung...

SOFTWARE MANAGEMENT

DER BLICK VON AUSSEN: VORGEHENSMODELLE

WERKZEUGE REQUIREMENTS- UND CHANGE-MANAGEMENT

PRODUKTREIFE QUALITÄTSMANAGEMENT

KONFIGURATIONSMANAGEMENT

Die Mission

Software-Entwicklung erfordert Qualifikation und Methodik Vorgehensmodell, Zeitplanung, Leitung Entwicklungswerkzeuge Versionsverwaltung Bugtracker Testplan und –system… (c)schmiedecke 2013 SE2 2

ein starkes Team auf großer Mission

UND…

Anforderungsmanagement

Anforderungsgetriebene Entwicklung Entwicklung ohne Anforderung "Verschwendung"

Anforderungen des Auftraggebers / Product Owners

Anforderungen sind verbal und unsystematisch (z.B. User Stories)

Management-Aktionen: priorisieren, schätzen, einplanen

Anforderungs – und Änderungsmanagement Anforderungen erzeugen Features, Code, Testfälle

Anforderungen ändern sich

Rückbau / Anpassung systematisch erforderlich

Rückverfolgbarkeit (Tracability)

Änderungen werden Anforderungen (priorisieren, schätzen, einplanen)

So wichtig, dass der Begriff "Requirements Engineering" geprägt wurde

(c)schmiedecke 2013 SE2 3

(c) schmiedecke 13 SE2-11-Software-Management 4

Was sind Anforderungen?

Verschiedene Kategorien: funktionale / nicht funktionale Anforderungen

Passwortschutz / Barrierefreiheit

zahlreiche Unterkategorien!

fachliche / technische Anforderungen Einstellbarkeit des Dispolimits / Portabilität

Fließende Grenzen Während des Prozesses Verschiebung in Richtung funktional bzw. technisch

Vor allem sind Anforderungen nicht formal! die differenzierte Ausdrucksfähigkeit der natürlichen Sprache ist essentiell

d.h. wir benötigen einen formalisierten Prozess für nicht formalisierte Artefakte.

Dokumentation von Anforderungen

Teilformalisierte Artefakte Formale Referenz (e.g. Nummer)

Freier Text

Attribute / Tags: Kategorie, Priorität, Historie

Bewertung

Tracing-Informationen

(c) schmiedecke 13 SE2-11-Software-Management 5

Anforderungen an Anforderungen

• Überprüfbar

• Verständlich

• Eindeutig

• Nachverfolgbar

• Gut abgegrenzt

(c) schmiedecke 13 SE2-11-Software-Management 6

"Keine wichtigen Interaktionen ohne Login."

"Die Software weist eine hohe Performance auf."

"Transaktionen werden durch den Benutzer oder durch das System ausgelöst."

(c) schmiedecke 13 SE2-11-Software-Management 7

Anforderungsdynamik: Differenzierung durch Erkenntnis

• Anforderungen ändern sich zwangsläufig!

• Anforderungsmanagement muss die Konsequnezen beherrschen! – Identifizierung / Referenzierung der Anforderungen

– Prozessschritte bei Anforderungsänderungen

– Nachverfolgbarkeits-Strategie

– Werkzeugeinsatz

Erst- Anforderungen

Modifizierte Anforderungen

Erstes Problem- verständnis

Erweitertes Problem- verständnis

(c) schmiedecke 13 SE2-11-Software-Management 8

Anforderungsdynamik: Vernetzung

• Zurückverfolgbarkeit zur Quelle – ursprüngliche Beteiligte bei jeder Änderung konsultieren

• Querbezüge unter Anforderungen – andere Anforderung Ursache der Anforderung?

– andere Anforderung Konsequenz der Anforderung?

– Anforderung abhängig von anderer Anforderung?

– andere Anforderung abhängig von der Anforderung?

– schwächere Beziehung zu anderen Anforderungen

• Nachvollziehbarkeit der Umsetzung – umsetzende Modell- / Entwurfs- / Implementierungsobjekte

– abhängige Modell- / Entwurfs- / Implementierungsobjekte

– (noch) widersprechende Modell- / Entwurfs- / Implementierungsobjekte

Vernetzungskonzepte

Enterprise Architect (Sparx Systems): Anforderungen sind (UML)-Modellobjekte, die andere

referenzieren:

Anforderung besteht aus Teilanforderungen

Anforderung ist aus Anforderung hervorgegangen

Anforderung ist in Use Case berücksichtigt

Anforderung bezieht sich auf Klasse / Paket / Assoziation

(c) schmiedecke 13 SE2-11-Software-Management 9

Vernetzungskonzepte Requisite Pro (Rational Software) Anforderung ist markierter Teil eines Dokuments /

Artefakts (Quelle) Anforderung hat Attribute Anforderung bezieht sich auf andere Anforderungen Anforderung bezieht sich auf Artefakte

(c) schmiedecke 13 SE2-11-Software-Management 10

(c) schmiedecke 13 SE2-11-Software-Management 11

Requirements-Werkzeuge

• Requirements-Werkzeuge

– datenbankgestützte Anwendungen

– Anforderungen können erfasst und miteinander vernetzt werden.

– Abhängigkeitsstrukturen visualisierbar

• Einfache Werkzeuge (Bsp. OSRMT) – Anlegen von Anforderungen verschiedener Typen – Verlinken mit Quelldokumente – Anlegen von Traces zwischen Anforderungen

• Integrierte Werkzeuge (Requisite Pro, In-Step, EA) – gemeinsames Dokumenten-Repository der Werkzeuge – Koopereation mit einem CASE-Tool – Abhängigkeit zu Modellelementen und Artefakten spezifizierbar

Qualitätsmanagement

Qualitätssicherung Systematische Testdatengewinnung

Unit-, modul- und Integrationstests

Testautomatisierung

(c)schmiedecke 2013 SE2 12

Qualitätsmanagement Prozessdefinition, die Qualität des Produkts sicherstellt

Prozessmanagement

Prozessreife nach dem CMM (Capability Maturity Model)

Zertifizierung …

(c) schmiedecke 13 SE2-11-Software-Management 13

Prozessmanagement

Prozessmanagement bedeutet Gestaltung und Kontrolle des Entwicklungsprozesses

nach anerkannten Regeln

Management ist Voraussetzung für Prozessreife z.B. nach CMM (Capability Maturity Model) :

Stufe 1: Initialer Prozess = Ad-hoc-Prozess

Stufe 2: Wiederholbarer Prozess = Intuitiver Prozess

Stufe 3: Definierter Prozess = Qualitativer Prozess

Stufe 4: Gesteuerter Prozess = Quantitativer Prozess

Stufe 5: Optimierender Prozess = Rückgekoppelter Prozess

(c) schmiedecke 13 SE2-11-Software-Management 14

Schritte zur Prozessreife

Vorgehensmodelle Definieren den Prozess in Einzelschritten und deren Interdependenzen

CMM Stufe 3

Schaffen die Voraussetzungen für die Prozesssteuerung

CMM Stufe 4

Metriken Werden für die Steuerung / Quantifizierung benötigt

Sind die Grundlage der Optimierung / Rückkopplung CMM Stufe 5

Metriken typischerweise in "% Zielkonformität"

Pünktlichkeit wichtige Metrik (% Zeitüberschreitung)

ALM – Application Life Cycle Management

A1

A2

(c)schmiedecke 2013 SE2 15

Managementaufgaben der Gesamtmission:

Strategische Produktplanung

Ideen, Visionen, Weiterentwicklungsmöglichkeiten

Marktwert

Kosten

Lebensdauer

Firmenkontext

Produktmanagement

Releases,

Konfigurationen,

Anpassungen

Gesamtcontrolling

Zeit- und Ressourcenplanung und –kontrolle

Preisgestaltung, Absatzkontrolle

(c) schmiedecke 13 SE2-11-Software-Management 16

Konfigurationsmanagement (SCM)

...und im Gegensatz zu Nachwuchs

– existieren verschiedene Entwicklungsstufen desselben Produkts nebeneinander,

– sind nicht alle Teile zusammengewachsen.

Software entwickelt sich...

(c) schmiedecke 13 SE2-11-Software-Management 17

Chaospotential! • Bereits korrigierte Fehler tauchen wieder auf.

• Vermeintlich geänderte Features sind unverändert.

• Es ist unbekannt, ob in der ausgelieferten Version bestimmte Fehler behoben sind oder nicht.

• Es gelingt nicht, eine Version herzustellen, in der alle Änderungen bis zu einem bestimmten Stichdatum enthalten sind, nach dem das System instabil wurde.

• Die ausgelieferte Version läuft nicht, weil dafür alle Komponenten neu übersetzt wurden, in der Testphase dagegen nur die aktuell geänderten.

• Ein Datenverlust erzwingt für die Weiterentwicklung den Rückgriff auf eine ältere Version – und es ist unbekannt, welche bereits behobenen Fehler sie noch enthält.

(c) schmiedecke 13 SE2-11-Software-Management 18

Konfigurationen

• Eine Konfiguration ist ein "Freeze" – Projektzustand zu einem bestimmten Zeitpunkt – freigegeben – mit zugesicherten Eigenschaften

• umfasst Vielzahl von Software-Elementen – Modelle, Spezifikationen, Dokumentationen – Module mit Testfällen – Werkzeuge – Datenbestände

• beschrieben durch ein KID (Konfigurations-Identifizierungs-Dokument).

• Auslieferung umfasst nur einen Teil einer Konfiguration.

(c) schmiedecke 13 SE2-11-Software-Management 19

KID – Konfigurations-Identifizierungs-Dokument

• Elemente sind Dateien

• Identifizierung über den Dateinamen nicht eindeutig: – Namenskonventionen oft nicht projektübergreifend durchsetzbar

(verschiedene Werkzeuge)

– Umbenennungen erschweren Referenzierung

– logische Strukturierung oft anders als technische oder organisatorische

• Eindeutige Bezeichnungskonvention im KID – mit Abbildung auf Dateinamen und Attribute

– kann beliebige Struktur reflektieren

– Mehrfachnennung bedeutet Mehrfachnutzung

• Werkzeuge gehören dazu – auch mit Version!

Datenstruktur des KID (nach Balzert)

Attribut Beispiel

Typ Produktkonfiguration Beta

Version V 1.8.0 Beta

Status abgenommen 23.09.2009 gt/tz

Pflichtenheft SemOrg V.1.4.0

UML-Modell SemOrg25_2

GUI SemOrg25_2_6

Source-Version V 1.8.0 Beta (Subversion SemOrg)

Test-DB SemOrgT Dump1.8.0 (Subversion SemOrg)

Bibliotheken NGUI.jar 2.2.14; truebind.jar 4.0; ……

IDE eclipse 3.7

Java-SDK 1.4.02

DBMS Oracle 10g Deutsch

… (c)schmiedecke 2013 SE2 20

(c) schmiedecke 13 SE2-11-Software-Management 21

Konfiguration, Baseline, Daily Build

• Konfigurationen – sind benannte und freigegebene Projektzustände – mit gesicherten Eigenschaften.

• Baselines:

– Zwischenzustände als Fallback – auch: "Referenzkonfigurationen" genannt – Quasi "Schnappschüsse" – getestet, aber dokumentierte Fehler möglich

• Daily Builds: Tagesstände – kleinmaschige Referenzkonfigurationen – zugesichert: Standardtests laufen durch bzw. scheitern wie

dokumentiert – v.a. in agilen Projekten üblich

• wirken allgemein qualitätssteigernd!

(c) schmiedecke 13 SE2-11-Software-Management 22

Versionen

• Version – Eigenschaft des einzelnen Software-Elements

– typischerweise als Nummer erfasst:

– Release-Nr . Level-Nr 0.4, 0.5, 1.0, 1.1, 1.2, 1.3, 2.0,...

– Verteilung / Vertrieb: Releases als Gesamtauslieferung oder Update, Levels als Patches

• Versionsverwaltung – Automatische Versionierung

– Checkin / Checkout-Modell (exklusiver Schreibzugriff)

– Checkout / Merge-Modell (explizite Konfliktbehandlung)

– Speicherung nach dem Delta-Prinzip

– zumindest zwischen Releases.

(c) schmiedecke 13 SE2-11-Software-Management 23

Varianten – noch mehr Chaosquellen...

(c) schmiedecke 13 SE2-11-Software-Management 24

Varianten

(c) schmiedecke 13 SE2-11-Software-Management 25

Varianten

Baumartige Verzweigungen. Zu jeder Version muss die Ausgangsversion

gespeichert werden.

Gründe für Varianten: Fortentwicklung ausgelieferter Systeme

(Kundenvarianten) Parallelkonfigurationen für verschiedene Plattformen

(Plattformvarianten) Rückbau eines instabilen Zweiges

(Entwicklungsvarianten)

(c) schmiedecke 13 SE2-11-Software-Management 26

Release-Strategie • Releases sind teuer

– Alle kleineren Änderungen als Levels einstufen. – für wichtige Levels Patches verteilen.

• Release-Faktoren: – Umfangreiche neue Funktionalität – Technische Qualität:

System weist schwerwiegende oder weitreichende Mängel auf, die viele Nutzer betreffen.

– Plattform-Änderungen: neue Version bei Betriebssystem oder Software-Plattform

– Markt, Wettbewerb Konkurrenz-Produkt ist neu oder in neuer Version erschienen

– Marketing-Forderung Termine wie Messen oder Schulungen

– Kunden-Forderung Kunde hat Erweiterung geordert und bezahlt

(c) schmiedecke 13 SE2-11-Software-Management 27

Konfigurations-DB

• Querbezüge zwischen Konfigurationen müssen ermittelbar sein: – welche Konfigurationen setzen noch auf Java 2 auf?

– welche Konfigurationen benutzen Modul X in Version Y oder kleiner?

– welche Konfigurationen wurden vor dem 1.1.07 erstellt?

– welche Konfigurationen haben eine Version von Modul X, die auf Version Y zurückgeht?

Querbezüge zwischen Konfigurationen müssen ermittelbar sein

• Ohne Werkzeug geht es nicht! – mindestens Konfigurationsdatenbank

– KIDs daraus generierbar

• besser: In IDE oder CASE-Tool integriertes Konfigurationswerkzeug

– ....

(c) schmiedecke 13 SE2-11-Software-Management 28

Konfigurations-DB

Datenmodell (vgl. KID): Konfiguration, Baseline, Build

Software-Elemente Typ, Version, Autor, Vorgängerversion, Änderungsdatum,

Werkzeugreferenz

Testdaten (ggf. DB-Dump)

Abhängigkeiten von anderen Software-Elementen

Software-Werkzeuge Compiler, Laufzeitumgebung, Middleware, Bibliotheken,

Fremdkomponenten jeweils mit Version

IDE, CASE-Tool, Testwerkzeuge, Analysewerkzeuge, ...

Auslieferungsdatei, Installer

(c) schmiedecke 13 SE2-11-Software-Management 29

Wie reagiert man darauf?

• Die Firmenleitung hat beschlossen, ab sofort auch Mac/OS zu unterstützen. Das betreffend Produkt existiert in 2 technologischen und 3 Komfortvarianten.

• Ein Windows-Nutzer hat einen gravierenden Fehler gemeldet, der auf Linux-Systemen nicht reproduzierbar ist. In der Konsequenz kann ein Feature zumindest auf Windows-Systemen nur noch eingeschränkt angeboten werden.

• Das aktuelle Release erweist sich unter Lastbedingungen als instabil. Die Ursache ist nicht erkennbar. Aktuell wird an einem neuen Level gearbeitet, das auf dieses Release aufsetzt.

(c) schmiedecke 13 SE2-11-Software-Management 30

SCM-Werkzeuge

• AccuRev

• ClearCase

• Serena Dimensions

• Perforce

• SpectrumSCM

• Surround SCM

• Sablime

• Smart Bear

• SET-LIBER

• Telelogic Synergy (ehem. Synergy/CM, ehem. CM/Synergy, ehem. CCM)

• Trac

• uvm.

Quelle Wikipedia

(c) schmiedecke 13 SE2-11-Software-Management 31

Zusammenfassung

• SCM dient der Kontrolle des Produkts

– während Entwicklung und Betrieb / Wartung.

• Konfiguration: benannter und freigegebener Projektstand

– interne Zwischenstände bilden Baselines (Referenzkonfigurationen )

– Besonders in agilen Projekten erstellt man täglich Referenzkonfigurationen, Daily Builds.

• Verbindliche Versionszählung für alle Software-Elemente.

– Jede Änderung führt zu einer neuen Version.

– Große Änderungen ergeben ein Release.

– Zwischenstufen heißen Levels.

– Parallele Entwicklungszweige heißen Varianten.

(c) schmiedecke 13 SE2-11-Software-Management 32

Zum Schluss: Father Brown's Meinung

Father Brown laid down his cigar and said carefully:

"It isn't that they can't see the solution. It is that they

can't see the problem."

G.K.Chesterton, The Father Brown Stories.

Cassell & Co, London 1929

Das war's an SE-Theorie, viel Spaß bei der Praxis!

Vielen Dank, dass Sie durchgehalten haben!

Ich wünsche Ihnen, dass Sie mehr davon für nötig befinden, als Sie jetzt

erwarten ....