HdM WI7 3. Semester (Fach) / Software-Entwicklungsmethoden - Software Engineering (Lektion)
In dieser Lektion befinden sich 61 Karteikarten
Software Engineering, 3. Semester HdM WI7
Diese Lektion wurde von thomasb erstellt.
Diese Lektion ist leider nicht zum lernen freigegeben.
- Wie ist die Charakteristika von Software? Software ist ein immaterielles Produkt Software ist nicht auf die Umsetzung physikalischer Gesetze beschränkt Software ist verschleißfrei Software ist einer Alterung ausgesetzt Software ist im allgemeinen leichter und schneller änderbar als ein materielles Produkt Der Begriff des Ersatzteils ist im Software-Kontext nicht sinnvoll Software kann nur schwer vermessen werden Software-Systeme sind sehr komplex Autonomer Betrieb von Software Software ist ein werkstoffarmes Produkt (immateriell) Werkstoffe implizieren keine problemadäquate Struktur (Entwickler müssen SW explizit Struktur geben) Software spiegelt die Realität wieder
- Was ist Software Engineering? Defintion (Thies):Software Engineering umfasst sämtliche Prozesse und Produkte, die im Rahmen des Lebenslaufs von Software relevant sind.
- Was ist ein Modell? Ein Modell ist ein Bild der Realität Wichtig: Das jeweilige Modell ist weder das einzige Modell noch ist es die Realität selbst!
- Was sind Deskriptive Modelle? deskriptiv = beschreibend"Was ist?"Beispiel: Eine Fotografie
- Was sind Präskriptive Modelle? präskriptive = vorschreibend"Was soll sein?" Beispiel: Der Bauplan, nach dem ein Haus errichtet werden soll.
- Was ist eine Modelltheorie? Definition (Theorie):Eine Theorie ist ein logisches Gerüst aus widerspruchsfreien Aussagen (z.B. physikalische Gesetze, ökonomische Zusammenhänge), welche wiederum für beweisbare Hypothesen stehen. Aus diesem Gerüst lassen sich weitere Aussagen ableiten.
- Anforderungen an eine Theorie? weitestmögliche Allgemeingültigkeit logische Ableitbarkeit der Einzelaussagen zwangsläufig Eintritt der Vorhersagen Bewährung Achtung: Der allg., ugs. Sprachgebrauch des Worts "Theorie" stimmt mit dieser Definition meistens nicht überein! Meistens ist ugs. mit dem Adjektiv "theoretisch" erfahrungsgemäß eher "abstrakt" und "formal" gemeint.
- Jedes Modell hat folgende Merkmale... AbbildungsmerkmalZum Modell existiert ein vorhandenes, fiktives oder geplantes Orginial VerkürzungsmerkmalBei der Abbildung gehen Attribute des Originals verloren (vgl. präterierteAttr.), da das Modell nur einen Ausschnitt/Aspekt des Originals darstellt. Andererseits werden zusätzliche Attribute (vgl. abundante Attr.) in das Modell aufgenommen, die das Original nicht besitzt. Pragmatisches MerkmalModelle können für bestimmte Fragestellungen das Original ersetzen (vgl. z.B. DNA-Proben als Stellvertreter der Täteridentiätfür die juristische Beweisführung).
- Was sind Formale Modelle? Formale Darstellung realer Zustände und Prozesse Ziel: Ableitung von Hypothesen über Realitäten der Vergangenheit, Gegenwart oder Zukunft Beispiel: phys. Formeln
- Was sind Modelle zur Dokumentation? Hilfsmittel, um sich z.B. an Zustände, Prozesse, Personen oder Gegenstände zu erinnern Ziel: Überlieferung, Austausch Beispiele: Fotoalbum, Quittung, Protokoll
- Was sind explorative Modelle? Hilfsmittel, um die Folgen einer Änderung der Realität vorab beurteilen zu können Ziel: Risikominimierung, Effiziensteigerung Beispiel: 3D-Visualisierung eines in Planung befindlichen Gebäudes
- Jedes Modell hat folgende Merkmale AbbildungmerkmalZum Modell existiert ein vorhandenes, fiktives oder geplantes Original. VerkürzungsmerkmalBei der Abbildung gehen Attribute des Originals verloren (vgl. präterierteAttr.), da das Modell nur einen Ausschnitt/Aspekt des Originals darstellt. Andererseits werden zusätzliche Attribute (vgl. abundante Attr.) in das Modell aufgenommen, die das Original nicht besitzt. Pragmatisches MerkmalModelle können für bestimmte Fragestellungen das Original ersetzen (vgl. z.B. DNA-Proben als Stellvertreter der Täteridentiätfür die juristische Beweisführung).
- Einsatz der Modellierung 1. IST-Zustand ==> Modellierung ==> 2. deskriptives Modell (Abbild) ==> Modell-Modifikation ==> 3. präskriptives Modell (Vorbild) ==> Realisierung ==> 4. SOLL-Zustand
- Entwicklung und Validierung von Modellen Feststellung: Forschung hat generell das Ziel, Modelle zu entwickeln. Vorgehensweise (grob): Entwurf des ModellsDer Entwurf basiert auf Beobachtungen, Intuition oder Analogieschlüsse Validierung des ModellsValidierung nur anhand von Resultaten von Beobachtungen und Experimenten seriös möglich!
- Unterschiede zwischen Software-Modelle und Prozessmodelle Software-Modelle (betreffen Arbeitsgegenstände),z.B.: - Klassendiagramm- natürlichsprachl. Spezifikation wie Pflichtenheft Prozessmodelle (betreffen Vorgehensweise), z.B.:- Wasserfallmodell- Scrum- Extreme Programming
- Was ist eine Nominalskala? Eine Nominalskala ist eine ungeordnete Menge von Namen, auf die Objekte der Realität abgebildet werden. Nachteil: sehr geringer Nutzen, da keine Ordnung zwischen den Elementen definiert ist.Daher sind Normalskalen eigentlich keine echten Metriken Beispiele: Menge der Namen sämtlicher Programmiersprachen Menge aller Familiennamen in Deutschland
-
- Was ist eine Ordinalskala? Eine Ordinalskala ist eine geordnete Menge von Namen, auf die Objekte der Realität abgebildet werden Reihenfolge ist vorgegeben, jedoch keine Abstände Charakterisierungen solcher Skalen z.B. durch Median oder andere Perzentile möglich Beispiele: 1., 2., 3. bei einem Marathon Bill Gates ist laut Forbes Liste 2012 der zweitreichste Mensch der Welt. Larry Ellison belegt Rang 6.
- Was ist eine Intervallskala? Eine Intervallskala ermöglicht das Rechnen mit ihren Elementen. Hierzu lässt sich der Abstand der Elemente der Skala paarweise bestimmen. Beispiel: Temperatur in °C Kalender
- Was ist eine Rationalskala? Eine Rationalskala(auch Verhältnisskala genannt) ist eine Intervallskala, die zusätzlich einen Nullpunkt(vgl. Ursprung eines kartesischen Koordinatensystems) einführt. Der Nullpunkt ist also ein ausgewiesenes Referenzelement. Das Verhältnis zwischen dem Nullpunkt und dem jeweiligen Element erhält somit einen Sinn. Beispiele: Distanz z.B. zwischen der Sonne und den einzelnen Planeten unseres Sonnensystems in Kilometern. Implementierungs-aufwand in Personentagen für z.B. Software-Module.
- Was ist eine Absolutskala? Eine Absolutskalaist eine Rationalskala, die Merkmalsausprägungen in Zahlenform(aus ℕ) festlegt. Beispiele: Anzahl der Module eines Studiengangs laut SPO. Programmgröße in KLOC (Kilo Lines ofCode).
- Was ist Software Engineering? Definition Thies: Software Engineering umfasst sämtliche Prozesse und Produkte die im Rahmen des Lebenslaufes von Software relevant sind.
- Was ist ein deskriptives Modell? deskriptiv = beschreibend "Was ist?" Beispiel: Eine Fotografie
- Was ist ein präskriptives Modell? präskriptiv = vorschreibend "Was soll sein?" Beispiel: Bauplan für ein Haus
- Was sind präterierte Attribute? Attribute, die bei der Abbildung des Originals auf das Modell verloren gehen z.B. Körpertemperatur einer fotografierten Person
- Was sind abundante Attribute? Attribute die modellseitig zusätzlich eingeführt werden, die im Original nicht vorhanden sind.
- Welche Merkmale hat jedes Modell? Abbildungsmerkmal: Zum Modell existiert ein vorhandenes, fiktives oder geplantes Original Verkürzungsmerkmal: Attribute gehen verloren, oder kommen hinzu Pragmatisches Merkmal: Modelle können für bestimmte Fragestellungen das Original ersetzen.
- Wie lautet der Kreislauf eines Modells? 1) Ist-Zustand => Modellierung =>2) deskriptives Modell (Abbild)=> Modell-Modifikation =>3) präskriptives Modell (Vorbild)=> Realisierung =>4) Soll-Zustand
- Was sind Software-Modelle? Software Modelle betreffen den Arbeitsgegenstand z.B. Klassendiagramm, natürlichsprachl. Spezifikation wie Pflichtenheft
- Was sind Prozessmodelle? betreffen Vorgehensweise z.B. Wasserfallmodell, Scrum, Extreme Programming
- Was ist eine Nominalskala? Eine Nominalskala ist eine ungeordnete Menge von Namen, auf die Objekte der Realität abgebildet werden. Nachteil: sehr geringer Nutzen, da keine Ordnung zwischen den Elementen definiert ist. Daher sind Nominalskalen eigentlich keine echten Metriken. Beispiel: Menge der Namen sämtlicher Programmiersprachen
- Was ist eine Ordinalskala? Eine Ordinalskala ist eine geordnete Menge von Namen, auf die Objekte der Realität abgebildet werden. Reihenfolge ist vorgegeben, jedoch keine Abstände. Charakterisierung solcher Skalen z.B. durch Median oder andere Perzentile möglich Beispiel: Der Untermedian der Forbes Liste 2012 beträgt 14Mrd. $ Beispiel: 1., 2., 3. bei einem Marathon
- Was ist eine Intervallskala? Eine Intervallskala ermöglicht das Rechnen mit ihren Elementen. Hierzu lässt sich der Abstand der Elemente der Skala paarweise bestimmen. Beispiele: Temperatur in °C oder Kalender
-
- Was ist eine Rationalskala? Eine Rationalskala (auch Verhältnisskala genannt) ist eine Intervallskala, die zusätzlich einen Nullpunkt einführt.)Der Nullpunkt ist also ein ausgewiesenes Referenzelement.Das Verhältnis zwischen dem Nullpunkt und dem jeweiligen Element erhält somit einen Sinn. Beispiele: Distanz zwischen der Sonne und den einzelnen Planeten unseres Sonnensystems in Kilometern. Beispiel: Implementierungsaufwand in Personentagen für Software-Module
- Was ist eine Absolutskala? Eine Absolutskala ist eine Rationalskala, die Merkmalsausprägungen in Zahlenform (aus N festlegt) Beispiel: Anzahl der Module eines Studiengangs laut SPO Programmgröße in KLOC (Kilo Lines of Code)
- Welche Kosten verursachen Software-Kosten? Laufende Kosten:- Gehälter- Management, Marketing- Räume- IT-InfrastrukturProjektbezogene Kosten:- Kosten des Zeitpersonals- Vertragskosten- Spesen- "Rohstoffe" in Form von Hard- und Software
- Kostenverteilung eines Softwareprojekts Codierung: 15-20%Software-Test: >50%Integration: wird häufig vergessenWartung: 2/3 der Gesamtkosten
- Beschreibe die Badewannenkurve Analyse ======> AbnahmetestSpezifikation ====> SystemtestEntwurf ==> IntegrationsstestImplementierung => Modultest
- a) die Software-Kosten bis zum Zeitpunkt der Inbetriebnahme? b) die Software-Kosten ab dem Zeitpunkt der Inbetriebnahme? a) Herstellkostenb) Wartungskosten
- Mit welchem Argument kann man den exponentiellen Anstieg von Fehlerkosten in Abhängigkeit von der Projektlaufzeit unter Zuhilfenahme der nebenstehenden Badewannenkurve plausibel erklären? Fehlerentstehung und Fehlerentdeckung auf gleicher Ebene, d.h. die gesamte kurve nochmal durchlaufen --> hohe kosten!
- Erläutern Sie den Unterschied zwischen den Begriffen „Validation“ und „Verifikation“ Validation = „Are webuildingtherightproduct?“ (Hinterfragt die Eignung eines Produkts bzgl. des Einsatzzwecks)Verifikation = „Are webuildingtheproductright?“ (Übereinstimmung zwischen Software-Produkt und Spezifikation)
- Beschreibe Prozessmodell Klassen (I&II) Klasse I (machen lediglich Aussagen über den Projektablauf):Code & FixWasserfallmodellPrototypingIterative SW-EntwicklungInkrementelle SW-EntwicklungSpiralmodell Klasse II (Personelle Organisation, Gliederung der Dokumentation, Verantwortung für Aktivitäten und Dokumente):V-ModellUnified Process (UP)Rational Unified Process (RUP)Cleanroom DevelopmentAgile ManifestoExtreme Programming (XP)Scrum
- Was ist ein Prototyp? Eine vorläufige Variante, Gestalt oder ein Beispiel eines Systems, das als Vorlage für spätere Stadien oder die abschließende, vollständige Version des Systems dient.
- Erläutern Sie die Unterschiede zwischen einem Labormuster und einem Pilotsystem. Beides sind spezielle Prototypen: Labormuster: fokussiert einen technischen Aspekt des Zielsystemskann Teil des Zielsystems werdenExperimentalsystem der Entwickler für Machbarkeitsstudien Pilotsystem: Funktionsumfang und Qualität mind. für temporären Einsatz ausreichendRealisierung eines abgeschlossenen Teils des Zielsystemkomfortable sichere BedienbarkeitBenutzerdoku vorhandensukzessiver Ausbau => Teil des Zielsystems
- Was ist Code & Fix? Kodieren und Fixen Kodierung und Ad-hoc Tests wechseln sich ab und sind die einzigen explizit ausgewiesenen Tätigkeiten.
- Beschreibe das Wasserfallmodell Geordnete Menge von Aktivitäten, die Projektphasen darstellenErgebnisse der Aktivitäten sind Dokumente, die an nachgelagerte Aktivitäten weitergegeben werden. Stufenweise Systemanalyse => SW-Spezifizikation => Architekturentwurf => Feinentwurf & Kodierung => Integration & Test => Installation & Abnahme => Betrieb & Wartung
- Beschreibe Prototyping Beim Prototyping werden vorläufige Versionen eines Software-Teils zur Unterstützung des Entwicklungsprozesses angefertigt. Vorläufige Versionen sind "Wegwerfprototypen"
- Nenne spezielle Prototypen Demonstrationsprototyp (zeigt prinzipielle Einsatzmöglichkeiten, zeigt mögliche Handhabung) Funktionale Prototypen (Abbildung von Ausschnitten des GUI, sowie Teile der Funktionalität) Labormuster (fokussiert einen technischen Aspekt des Zielsystems) Pilotsystem (Funktionsumfang und Qualität mind. für temporären Einsatz ausreichend, Realisierung eines abgeschlossenen Teils des Zielsystems) Exploratives Prototyping (Klärung von Anforderungen und Eigenschaften des Zielsystems, Diskussion von Alternativen) Experimentelles Prototyping (Feststellung der Aufgabenangemessenheit eines Lösungsansatzes bevor in diesen massive Aufwände investiert werden) Evolutionäres Prototyping (Schrittweise Anpassung eines Systems an sich ändernde Anforderungen, die nicht zuverlässig vorausgesehen werden können)
- Was ist Iterative SW-Entwicklung? Zerlege das Projekt in viele kleine (Teil-)Projekte, den Iterationsschritten In jedem Iterationsschritt werden im Einsatz aufgetretene Mängel korrigiert und das System optimiert Jede Iteration enthält die Aktivitäten, wie wir sie im Wasserfallmodell finden (Analyse, Entwurf, Kodierung, Test)
- Was ist Inkrementelle SW-Entwicklung? Ausgehend vom Kernsystem wird pro neuem Inkrement ein vollständiges Projekt aufgesetzt. In dem Projekt werden neue Funktionen realisiert sowie die alten Systembestandteile überarbeitet. Relativ kurze Entwicklungszeiten pro Inkrement. Bei deren Einsatz entdeckte Fehler lassen sich kostengünstig korrigieren.
- Beschreibe das Spiralmodell Spiralmodell basiert auf risikogetriebenem Verhalten Wiederhole bis Projekt erfolgreich abgeschlossen oder gescheitert:1) Analyse sämtlicher Risiken, die ein Projekt beeinflussen. Finden sich keine Risiken mehr, so gilt das Projekt als erfolgreich abgeschlossen.2) Risikobewertung, um eine Rangfolge der Risiken zu erhalten.3) Es wird versucht, das größte Risiko zu beseitigen. Gelingt dies nicht, so gilt das Projekt als gescheitert.
-
