Kurs:Wirtschaftsinformatik SS09/SE1/Lernskript/SW-Sichten
Produktionssicht
[Bearbeiten]In der Produktionssicht wird die Entwicklung von Software aus der gleichen Sicht, wie der der Entwicklung von Massengütern betrachtet. Die Entwicklung der Software wird in die Vorentwicklung (kreativer Anteil) und in den Produktionsprozess unterteilt. Die Kosten für die Software richten sich wie bei Massengütern nach den Produktionsmitteln und Personalkosten. Spätere Anpassungsmöglichkeiten an die Software werden fest definiert (als Parameter).
SE ähnelt der Entwicklung von Massengütern (Software Factory): Entwurf ist der kreative Anteil, anschließend beginnt der Produktionsprozess (welcher strikt arbeitsteilig organisiert wird), Kosten werden durch Produktionsmittel und Personalkosten bestimmt, Anpassung der Produkte nur über fest definierte Parameter
- ähnelt Massengüterproduktion
- Teilung in Planungs- und Produktionsphase
- Kosten durch Personal und Produktionsmittel
- Spätere Anpassung fest definiert (Parametrisierung)
Vorteile | Nachteile |
Spezialisten für Tätigkeiten | Wissenstransfer unvollständig |
Trennung Planung & Produktion | Fehlendes Anwendungswissen führt später zu Fehlentscheidungen |
Fortschrittkontrolle | |
Anwendungswissen nur zu Beginn |
Ingenieurssicht
[Bearbeiten]Softwareentwicklung wird mit dem Bau von Brücken gleich gesetzt. Planung und Produktion werden nicht so stark wie bei der Produktionssicht getrennt. Zur Entwicklung werden (Konstruktions-)Prinzipien bzw. Patterns verwendet, die allgemein gültig sind. Nach dem Entwurf ist es nicht mehr möglich Anpassungen vorzunehmen.
SE ähnelt dem Bau von Brücken: Weniger strikte Trennung von Planung und Produktion (auch während des Baus noch (stark eingeschränkte) Entwurfsanpassungen möglich), Ver- wendung von allgemein akzeptierten Prinzipien, so gut wie keine Anpassungsmöglichkeiten nach Fertigstellung des Entwurfs.
- ähnelt Bau von Brücken
- schwache Trennung von Planungs- und Produktionsphase
- Verwendung bewährter Konstruktionsprinzipien (Patterns)
- Keine späteren Anpassungsmöglichkeiten
Vorteile | Nachteile |
Handhabbarkeit | Abstraktionen fehlen |
Eingeschränkte Flexibilität | Keine Massenproduktion |
Kosten vorhersehbar |
Juristensicht
[Bearbeiten]Softwareentwicklung wird über Verträge geregelt, was bedeutet, dass die Aufgaben in möglichst kleine Teilaufgaben unterteilt werden und spätere Erkenntnisse nicht mehr verarbeitet werden.
SE ist so handzuhaben, dass sie auf Grund von Verträgen kontrollierbar ist: Aufteilung in klar überprüfbare Teilaufgaben, Verzug muss bewertbar sein und Konsequenzen nach sich ziehen, späte Anforderungen werden ausgeklammert.
- Verträge
- Aufteilung in Teilaufgaben
- Spätere Anforderungen nicht berücksichtigt
Vorteile | Nachteile |
Juristische Eindeutigkeit | Kein Erkenntnisgewinn während Entwicklung |
Produkt muss vollständig geplant sein führt nicht zu nützlicher Software |
Kreativsicht
[Bearbeiten]Software wird wie ein Kunstwerk gesehen, bei dem keine Trennung zwischen Planung und Produktion vorgenommen wird, dafür aber eine sehr breite Kommunikation zwischen den Beteiligten stattfindet da diese in ihrer eignen Kreativität handeln und die Software weiterentwickeln.
Die Organisation eines Software – Prozesses braucht alle vier Sichten erfordert. So müssen die Verträge (J – Sicht) den Fertigstellungstermin eines Software – Projektes festlegen, die grundlegenden Entwurfsentscheidungen müssen zwischen allen Beteiligten diskutiert werden (K – Sicht), das Produkt muss ingenieurmäßig (I – Sicht) entworfen werden und letztendlich mit Berücksichtigung weniger Variabilität anhand des Entwurfs stur programmiert werden. Eine zweite Schlussfolgerung ist, dass die einzelnen Aspekte in verschiedenen Projekten unterschiedlich stark vertreten sein können, so ist z.B. die K – Sicht in einem Studentenprojekt (wie z.B. dem SEP) wichtiger als z.B. bei der Entwicklung einer Anlagenbuchhaltung für einen Kunden. Eine letzte Schlussfolgerung ist, dass für jedes Projekt entschieden werden muss, wie wichtig welche Sicht ist, um zu entscheiden, welche Maßnahmen getroffen werden müssen, um ein Projekt erfolgreich abzuschließen.
Software als gemeinschaftliches Kunstwerk: keine Trennung zwischen Planung und Produk- tion, Kreativität muss in allen Phasen berücksichtigt werden, Kommunikation soll so wenig wie möglich reglementiert werden und muss beliebig breit möglich sein
- ähnelt Kunstwerk
- keine Trennung von Planungs- und Produktionsphase
- Kommunikation
- Kreativität
Vorteile | Nachteile |
Kommunikation verhindert Missverständnisse | Unvorhersehbarkeit |
Jeder hat Chance Lösung einzubringen | Unplanbarkeit |
Unwirtschaftlichkeit | |
Kaum Wartung möglich |
Schlussfolgerung aus Sichten:
[Bearbeiten]- Berücksichtigung von Aspekten aus allen vier Sichten; Festlegung, welche Sicht welchen Stellenwert besitzt und welche Maßnahmen erforderlich sind, um diese Sicht im Projekt ausreichend zu berücksichtigen
- Verträge müssen die Eckdaten (z.B. Kosten für die nächsten Phasen) festlegen, sie müssen
Termine und Formate von Ergebnisdokumenten sowie die Mitwirkungspflicht des Anwenders definieren (J-Sicht, Juristen)
- Grundlegende Entwurfsentscheidungen (spartenübergreifende Anwendung oder Spezialisierung) müssen zwischen allen Beteiligten abgestimmt werden (K-Sicht, Workshops und informale Kommunikationskanäle)
- das Produkt muss ingenieurmäßig entworfen werden, z.B. kann nach Festlegung von Objekttypen die Datenbankzugriffsschicht an ein DB-Team weitergeleitet werden (I-Sicht, Software-Ingenieure und Domänenexperten)
- Software muss anhand von Vorgaben stur programmiert und systematisch getestet werden (P-Sicht, Produktmanager und Marktstrategie)
- Rollenbasierte Software-Entwicklung: Monokausale Begründungen für die Probleme bei der
Entwicklung von Software reichen nicht aus, deshalb Unterstützung der Einzeltätigkeiten durch passende Methoden, Werkzeuge und Sprachen unter Berücksichtigung von Organisation, Technologie, Psychologie und des Kontextes, in dem Einzeltätigkeiten stattfinden.
- Entwicklung von Software durch enge Interaktion von Personen mit unterschiedlichen Aufgaben und Zielsetzungen, Beziehungen zwischen diesen Personen und die Wechselwirkungen zwischen den Aufgaben sind vielfältig und tragen maßgeblich zum Erfolg/Misserfolg einer Software Entwicklung bei. Zielkonflikte zwischen den Aufgaben beteiligter Personen (Projektkaufmann ¨ Projektleiter, Projektleiter ¨ Software-Entwickler, QS-Verantwortlicher ¨ Projektkaufmann)
- Grundannahme: Projekte funktionieren, wenn die richtigen Leute unter Verwendung der geeigneten Methoden, Sprachen und Werkzeuge vernünftig miteinander arbeiten. Die Sicherstellung dieser Rahmenbedingung ist eine wesentliche Aufgabe in der Software Entwicklung.
- Rolle: beschreibt eine Menge von zusammengehörigen Aufgaben und Befugnissen/Qualifikationen, eine Rolle wird von Personen wahrgenommen (n-m-Beziehung), es treten in einer Software Entwicklung nicht immer alle Rollen auf
- Alle Sichten müssen berücksichtigt werden (J – Sicht = Verträge, K – Sicht = Entwurfsentscheidungen, I – Sicht = ingenieurmäßiger Entwurf, P – Sicht = Vorgaben stur programmieren)
- Einzelaspekte spielen je nach Art des Projektes einer mehr oder weniger wichtige Rolle
- Für jedes Projekt muss entschieden werden welche Rolle wie wichtig ist und welche Maßnahmen erforderlich sind
Wichtig für Klausur, für jede Projektart ein Beispiel zurecht legen