Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Strategien der Softwareentwicklung

No description
by

Lydia Schubert

on 15 February 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Strategien der Softwareentwicklung

Strategien der Softwareentwicklung
Softwareentwicklung bzw. technik
-engl. Software engineering
-beschäftigt sich mit:
der Herstellung von Software
der Organisation und Modellierung zugehöriger Datenstrukturen
dem Betrieb von Softwaresystemen
Vorgehensmodelle
Gliederung
1. Softwareentwicklung/-technik
2. Teilgebiete
3. Vorgehensmodelle
3.1 Wasserfallmodell
3.2 Spiralmodell
3.3 V-Modell
4. Quellen
Spiralmodell
V-Modell
Helmut Balzert: „Zielorientierte Bereitstellung
und systematische Verwendung von Prinzipien,
Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen.“


Teilgebiete der
Softwareentwicklung

-Softwaretechnik umfasst eine Vielzahl von Prozessen
-aufgrund des hohen Aufwandes zur Erstellung und Wartung komplexer Software erfolgt die Entwicklung anhand eines strukturierten Projekt-Planes (Vorgehensmodell)
->dieser unterteilt den Entwicklungsprozess in überschaubare, zeitlich und inhaltlich begrenzte Phasen/Prozesse
-Vorgehensweisen bei Projektentwicklung = vielfältig -> von sehr strukturierten Herangehensweisen (z.B. Wasserfallmodell), über verschiedene Mischformen bis hin zu flexiblen, offenen Methoden (z.B. Agilen Softwareentwicklung)
->Entsprechend wird auch zwischen Top-Down- und Bottom-Up-Ansätzen unterschieden
Wasserfallmodell
Merkmale
=lineares Vorgehensmodell, das in Phasen organisiert wird (orientiert sich am sogenannten Top-down-Verfahren)

-wird allgemein dort vorteilhaft angewendet, wo sich Anforderungen, Leistungen und Abläufe in der Planungsphase relativ präzise beschreiben lassen
-Phasenergebnisse gehen als bindende Vorgaben für die nächsttiefere Phase ein (wie ein Wasserfall)
-jede Phase besitzt vordefinierte Start- und Endpunkte mit eindeutig definierten Ergebnissen
-am Ende jeder Aktivität steht ein fertiggestelltes Dokument


Vorteile
Nachteile
einfach und verständlich
klare Abgrenzung der Phasen
einfache Möglichkeiten der Planung und Kontrolle
bei stabilen Anforderungen und klarer Abschätzung von Kosten und Umfang sehr effizientes Modell
• Abgrenzungsproblem: Klar voneinander abgegrenzte Phasen sind häufig unrealistisch
• Abfolgeproblem: Einzelne Phasen laufen in Theorie nacheinander ab -> in Praxis sind Rückschritte oft unvermeidlich
• Unflexibel (Phasen müssen sequenziell abgearbeitet werden)
• frühes Festschreiben der Anforderungen = oft problematisch
• Fehler werden unter Umständen spät erkannt (Big Bang) und müssen mit erheblichem Aufwand entfernt werden


Wegen der teilweise gravierenden Nachteile des Wasserfallmodells mit teilweise erheblichen wirtschaftlichen Konsequenzen hat die IT-Industrie eine Vielfalt alternativer oder ergänzender Vorgehensweisen, Softwaretechnologien, Vorschläge und Hilfsmittel entwickelt.

Z.B. : das Spiralmodell
Merkmale
Merkmale
Quellen
Softwaretechnik & Softwareentwicklung wird im Sprachgebrauch oft gleich verwendet -> im sprachlich engeren Sinn gibt es jedoch einen Unterschied:
Softwareentwicklung = die Tätigkeiten, die innerhalb der Disziplin Softwaretechnik ausgeführt werden
Softwaretechnik = neben dem Entwickeln – auch das Betreiben von Software unter Nutzung der Informationstechnik und technischer Geräte
Kernprozesse
1. Planung
Anforderungserhebung
Lastenheft (Anforderungsdefinition)
Pflichtenheft
Aufwandsschätzung
Vorgehensmodell

2. Analyse
Auswertung
Mock-up
Prozessanalyse / Prozessmodell
Systemanalyse
Strukturierte Analyse (SA)
Objektorientierte Analyse (OOA)

3. Entwurf
Softwarearchitektur
Strukturiertes Design (SD)
Objektorientiertes Design (OOD)
Fundamental Modeling Concepts (FMC)

4. Programmierung
Normierte Programmierung
Strukturierte Programmierung
Objektorientierte Programmierung (OOP)
Funktionale Programmierung

5. Validierung und Verifikation
Modultests (Low-Level-Test)
Integrationstests (Low-Level-Test)
Systemtests (High-Level-Test)
Akzeptanztests (High-Level-Test)

Unterstützungprozesse
6. Anforderungsmanagement

7. Projektmanagement
Risikomanagement
Projektplanung
Projektverfolgung und -steuerung
Management von Lieferantenvereinbarungen

8. Qualitätsmanagement
Capability Maturity Model
Spice (Norm) (Software Process Improvement and Capability Determination)
Incident Management
Problem Management
Softwaremetrik (Messung von Softwareeigenschaften)
statische Analyse (Berechnung von Schwachstellen)
Softwareergonomie


9. Konfigurationsmanagement
Versionsverwaltung
Änderungsmanagement / Veränderungsmanagement
Releasemanagement
Application-Management (ITIL)

10. Softwareeinführung

11. Dokumentation
Technische Dokumentation
Softwaredokumentation
Systemdokumentation (Weiterentwicklung und Fehlerbehebung)
Betriebsdokumentation (Betreiber/Service)
Bedienungsanleitung (Anwender)
Geschäftsprozesse (Konzeption der Weiterentwicklung)
Verfahrensdokumentation

=iteratives Vorgehensmodell
-Weiterentwicklung des Wasserfallmodells, in der die Phasen mehrfach spiralförmig durchlaufen werden
-langsame Annäherung an die Ziele
-Risiko eines Scheiterns bei großen Softwareprojekten = entscheidend verringert
-Zyklus in den einzelnen Quadranten enthalten folgende Aktivitäten:
1. Festlegung von Zielen, Identifikation von Alternativen und Beschreibung von Rahmenbedingungen
2. Evaluierung der Alternativen und das Erkennen, Abschätzen und Reduzieren von Risiken, z. B. durch Analysen, Simulationen oder Prototyping
3. Realisierung und Überprüfung des Zwischenprodukts
4. Planung des nächsten Zyklus der Projektfortsetzung.
-wesentlicher Unterschied zu zuvor entwickelten Vorgehensmodellen = Risikobetrachtung

Vorteile
-iterative Entwicklung -> bessere Planung möglich, außerdem Veränderungen der Anforderungen, neue Kundenwünsche usw. können noch während der Entwicklung berücksichtigt werden
-Risikoanalyse -> Risiken lassen sich identifizieren, bewerten und beseitigen
-explizite Orientierung in Richtung Qualitätssicherung -> hochwertige Produkte
Nachteile
-Verantwortliche sind nicht definiert (z.B. Projektleiter)
-hoher Planungs - und Managementaufwand -> höhere Kosten
-berücksichtigt keine parallelen Aktivitäten

-basiert auf dem Wasserfallmodell
-wird in Phasen organisiert
-Phasenergebnisse = bindende Vorgaben für nächsttiefere Projektphase
-der linke Ast zeigt die Spezifizierungsphasen & schließt mit der Realisierungsphase ab
-phasenweise Qualitätssicherung -> Testphasen
(im rechten Ast dargestellt)

Vorteile
- gleiche Vorteile wie die einfachen phasenorientierten Modelle
-> jedoch Verbesserung durch Spezifikation der Teilmodelle Systemerstellung, Qualitätssicherung, Konfigurations- und Projektmanagement
- Probleme des sequentiellen Phasenmodell werden nicht signifikant beseitigt
- Prozessmodell sehr aufwendig und nicht methodenneutral
- geringe Flexibilität
- hoher Verwaltungsaufwand
Nachteile
Kritik
http://de.wikipedia.org/wiki/Softwaretechnik
http://de.wikipedia.org/wiki/Wasserfallmodell
http://de.wikipedia.org/wiki/Spiralmodell
http://de.wikipedia.org/wiki/V-Modell
http://www.madmoses.de/files/webdaten/Fotolia_49959720_XS.jpg

-es existieren mehrere Vorschläge parallel zueinander, ohne dass sich eins der Vorgehensmodelle in der Praxis mit Breitenwirkung durchgesetzt hätte
-Trennung der Analyse von Geschäftsprozessen von EDV-technischer Realisierung
-Leitfaden für Systementwicklung
-projektbegleitende Dokumentation
-frühzeitige Fehlererkennung durch festgeschriebene Testaktivitäten
-Anbieter von Vorgehensmodellen sind voreingenommen (jeder Entwickler berät nach seinem Interesse)
-können dem Parkinsonschen Gesetz für Verwaltung u. Management zur vollen Blüte verhelfen
-steigen des Koordinierungsaufwandes (überproportional)
-Wissen (Software) lässt sich nicht ingenieurmäßig herstellen sondern kreativer Prozess
Full transcript