Software Engineering
Theoriezusammenfassung Skript
Theoriezusammenfassung Skript
-
- 1 / 26
-
Flashcards
Was ist Software? (1)
Was versteht man unter folgenden Begriffen: Produkt, Software-Produkt, System, Systemkomponente, Systemelemente?
- Produkt: - ein in sich abgeschlossenes Ergebnis, das für einen Auftraggeber im Rahmen eines Herstellungsprozesses erstellt wurde
- Software-Produkt: - ein Produkt, das aus Software besteht
- System: - Ausschnitt der realen oder gedanklichen Welt mit den enthaltenen Gegenständen und Beziehungen zwischen diesen (zB Maschinen, Person)
- Systemkomponente: - die Teil eines Systems werden als, ggf. weiter zerlegbare, Systemkomponenten bezeichnet
- Systemelemente: - nicht weiter zerlegbare Komponente
Was ist Software? (1)
Was versteht man unter folgenden Begriffen: Anwender, Benutzer?
- Anwender: - alle Mitglieder einer Organisation, die ein (Software-) system einsetzen
- Benutzer: - Anwender, die das System tatsächlich einsetzen und bedienen
Was ist Software? (1)
Charakteristika von Software
- immaterielles Produkt
- nicht auf Umsetzung physikalischer Gesetze beschränkt
- verschleißfrei
- einer Alterung ausgesetzt
- leichter und schneller änderbar als ein materielles Produkt
- schwer vermessbar
- Begriff des Ersatzteils ist im Software-Kontext nicht sinnvoll
- sehr komplex
- autonomer Betrieb
- werkstoffarmes Produkt
- Werkstoffe implizieren keine problemadäquate Struktur
- spiegelt die Realität wider
Was ist Software Engineering?
- umfasst sämtliche Prozesse und Produkte, die im Rahmen des Lebenslaufs von Software relevant sind
- jede Aktivität, bei der es um die Erstellung oder Veränderung von Software geht, soweit mit der Software Ziele verfolgt werden, die über die Software selbst hinaus gehen
Eigenschaften des Software Engineering (1)
- mehr Handwerk als Kunst (tech. know how steht im Vordergrund)
- wirkt auf ein globales Optimum hin (Zusammenhänge zwischen Methoden, Aufgaben, Modulen etc. müssen erforscht werden
- wirkt defensiv (soll Schaden vermeiden)
- bringt eine Vielzahl von Problemen (Interdependenzen)
- verändert das Verhalten (neue Erkenntnisse lassen sich nur bedingt durch Werkzeuge transportieren- Schulung von Entwickler)
- als "Großes Gescäft"
Welche besonderen Bedeutungen haben Modelle im Software Engineering?
- Softwareprozessmodell ist ein Modell
- Pflichtenheft
Diagramm
- Programm
Modeltheorie (1)
Deskriptive Modelle
- beschreibend "Was ist?"
- Bsp. Fotografie
Präskriptive Modelle
- vorschreibend "Was soll sein?"
- Bsp. Bauplan, nach dem ein Haus errichtet werden soll
Modelltheorie (2)
- präterierte Attribute: Attribute, die bei der Abbildung des Originals auf das Modell verloren gehen
- abundante Attribute: Oft werden modellseitig zusätzlich Attribute eingeführt, die im Original nicht vorhanden sind
Modellmerkmale
1. Abbildungsmerkmal (existiert ein vorhandenes, fiktives, geplantes Original
2. Verkürzungsmerkmal (Attribute gehen verloren oder werden zusätzlich aufgenommen)
3. Pragmatisches Merkmal
Entwicklung und Validierung von Modellen
1. Entwurf des Modells (basiert auf Beobachtungen, Intuitionen oder Analogieschlüsse)
2. Validierung des Modells (nur anhand von Resultaten von Beobachtungen möglich
Welche Skalentypen gibt es?
- Nominalskala: - ungeordnete Menge von Namen, auf die Objekte der realität abgebildet werden Bsp.: Menge aller Familiennamen in Deutschland; - Nachteil: geringer Nutzen, keine Ordnung zwischen den Elementen definiert ist
- Ordinalskalen: - geordnete Menge von Namen, auf die Objekte der realität abgebildet werden; Reihemfolge angegeben, jedoch keine Abstände (Bsp. 1,2,3 bei einem Marathon)
- Intervallskalen: - ermöglicht das Rechnen mit ihren Elementen Bsp: Kalender
- Rationalskalen: - ist eine Intervallskala, die zusätzlich einen Nullpunkt einführt; Nullpunkt ist also ein ausgewiesenes Referenzelement Bsp: Distanz, zwischen Sonne und den einzelnen Planeten
- Absolutskalen: - ist eine Rationalskala, die Merkmalsausprägungen in Zahlenform festlegt Bsp: Anzahl der Studiengänge
(Auflistung der Skalentypen von schwach zu stark)
Nutzen&Kosten von Software
Definition von Software-Nutzen
Software-Nutzen ist der durch Anwendung von Software erzielbare Vorteil.
Dieser wird bestimmt durch
- Grad der Übereinstimmung der Produkteigenschaften mit den tatsächlichen Anforderungen
- weitere Leistungen, Komfort und Flexibilität
Definition von Software-Kosten
Sind sämtliche Software-spezifischen, betriebswirtschaftlich relevanten Aufwände, die im Laufe des Lebens einer Software auftreten
- Herstellungskosten
- Betriebskosten
Der Software-Lebenslauf lässt sich als was Beschreiben?
-Projekt
-kontinuierlicher Prozess
Software Development Process (2)
Unterscheidung zwischen Prozessinstanz und Prozessmodell
Prozessinstanz
- das Objekt sozusagen
- ein einzelnes Projekt, in dem reale Handlungen stattfinden und das ein greifbares Ergebnis liefern soll
Prozessmodell
- die Klasse sozusagen
- Eine Schablone für eine Menge von Projekten, die alle nach dem gleichen Schema ablaufen sollen
Prozessmodelle Klasse (6.1)
Spiralmodell
- ein generisches Vorgehensmodell ( generisch: ist die Eigenschaft, nicht auf Spezifisches, also auf Unterscheidende Eigenschaften Bezug zu nehmen, sondern im Gegenteil sich auf eine Klasse, Gattung oder Menge anwenden zu lassen) und daher offen für bereits existierende Vorgehensmodelle
- basiert auf risikogetriebenem Verhalten, d.h. Wiederholung des Projektes bis es erfolgreich abgeschlossen ist oder gescheitert
-Vorteil: Probleme werden schnell erkannt, nach Behebung der Probleme, stabilisiert sich das Projekt sehr schnell
Was versteht man unter Tailoring?
Ergänzung eines generischen (Prozess-)Modells durch Projekttyp-spezifische Elemente. Ziel: Gezoelte Prozessausprägung