Klausur Flashcards
Welche Phasen gibt es in der Softwareentwicklung? Was wird in diesen gemacht?
- Planungsphase
- Lastenheft, Glossar
- Aufwandsschätzung
- Definitionsphase
- Pflichtenheft
- OO-Modellierung mit UML
- Entwurfsphase
- Softwarearchitektur
- Komponenten
- Einführung, Betrieb, Wartung
- Abnahme, Installation
- Weiterentwicklung
Was ist Software?
Software ist eine Menge von Programmen und Daten, zusammen mit begleitenden Dokumente, die für ihre Anwendung notwendig oder hilfreich sind.
Was ist Systemsoftware?
- Auch “Basissoftware” genannt
- Speziell für eine Hardware(-familie) entwickelt
- Betriebssytem, Compiler, Datenbanken und Dienstprogramme
Was ist Anwendungssoftware?
- Löst die Aufgaben des Anwenders mithilfe eines Computersystems
- Setzt auf die Systemsoftware und Hardware auf
Was beinhaltet ein Computer-System?
Anwendungssoftware +
Systemsoftware +
Hardware
Was unterscheidet Softwareentwicklung von der Systementwicklung?
Softwareentwicklung:
- Ausschließliche Entwicklung von Software
- Verschieden Sprache je nach eingesetzte Technologie
Systementwicklung:
- Entwicklung eines Systems, das aus Software und Hardware besteht
- Bei der Entwicklung müssen zusätliche Randbedingungen berücksichtigt werden
Nennen Sie Eigenschaften von Software!
- Software ist immateriell
- Software wird nicht gefertigt, nur entwickelt
- Software unterliegt keinem Verschleiß, Wartung erzeugt neuen Zustand (stellt keinen alten wieder her)
- Software ist nicht durch physikalische Gesetze beschränkt
- Software ist schwer zu vermessen
Welche Arten von Qualität kennt Software?
Gebrauchsqualität (extern)
- Relevanz und Effektivität
- Betriebsqualität
- Zuverlässigkeit
- Benutzungsfreundlichkeit
Produktqualität (intern)
- Korrektheit
- Robustheit
- Wartbarkeit
- Übertragbarkeit
Prozessqualität
Welche Anforderungen werden an Software gestellt?
- Funktionstreue
- Qualitätstreue
- Termintreue
- Kostentreue
Was ist Gegenstand der Softwaretechnik?
Sie befasst sich mit der professionellen Entwicklung großer Softwaresysteme wobei Anwendungssoftware im Vordergrund steht.
Was sind die wichtigsten Prinzipien der Softwaretechnik?
- Prinzip der Abstraktion
- Prinzip der Strukturierung
- Prinzip der Hierachisierung
- Prinzip der Modularisierung
=> Übergeordnetes Ziel ist die Reduzierung von Komplexität!
Was ist eine Rolle, Artefakt, Artefaktmuster?
Rolle
Beschreibt die notwendigen Erfahrungen, Kenntnisse und Fähigkeiten, über die ein Mitarbeiter verfügen muss, um eine bestimmte Aktivität durchzuführen.
Artefakt
Greifbares Stück Information.
Artefaktmuster
Legt den Inhalt, die Struktur und das Layout von Artefakten fest.
Wie funktioniert das “Wasserfallmodell”?
- Folge von Phasen
- Phasenabschluss durch Meilenstein
- Resultat einer Phase ist Eingabe für die nachfolgende Phase
Wie wird das “Phasenmodell” bewertet?
+ Definierte Einbindung der Nutzer
+ Gut strukturiert durch Meilensteine
+ Aufgaben klar definiert
+ Definierte Nutzereinbindung
- Lange “Latenzzeit”
- Fehler unvermeidbar
- Änderungen unvermeidbar
Was bedeutet das “Tayloring” von Prozessmodellen? Welche Ziele hat es?
Anpassung von Prozessmodellen zwischen Standadisierung und kreative Freiheit.
Ziele
- So wenig Phasen, Artefakte, Rollen wie möglich
- Optimale Werkzeugunterstützung
- Jedes Artefakt wird qst
Was sind die Eigenschaften des inkrementellen und evolutionären Phasenmodells? Wo liegt der Unterschied?
- Produkt wird in lauffähige Teilprodukte eingeteilt
- Phasen werden mehrfach durchlaufen
- Gesamtprodukt entsteht in Ausbaustufen
=> Unterschied: Bei inkrementellen Vorgehen steht am Anfang eine vollständige Anforderungsanalyse, welche dann iterativ in mehreren Teilprodukten umgesetzt werden.
=> Evolutionäres Model: Schnell kleine Teilprodukte ausliefern und dann wieder Anforderungen abholen, einbauen. (Funktionsumfang nimmt hier evolutionär zu)
Was sind die Rechte und Pflichten des Kunden bei agiler Entwicklung?
Rechte
- Festlegung des Releaseinhalts
- Erhalt des vereinbarten Umfangs
- Änderung der Anforderungen
Pflichten
- Formulierung der Anforderungen
- Festlegung von Akzeptanzkriterien
Was sind die Ziele agiler Softwareentwicklung?
- Effizienz in Hinblick auf Zeit, Kosten, Quantität und Qualität
- Schnelles Feedback
- Einbindung des Kunden
- Eigenverantwortung des Entwicklungsteam
- Schnell lauffähige Programme
=> “Embrace the change”
Was sind die Rechte und Pflichten der Entwickler bei agiler Entwicklung?
Rechte
- Unabhängige Aufwandsschätzung
- Risikoeinschätzung
- Festlegung des Releaseumfangs
Pflichten
- Einhaltung des Releaseplans
- Einhaltung der Qualitätsanforderungen
Nennen Sie wichtige Techniken agiler Softwareentwicklung!
- Iteratives Vorgehen mit kurzen Releasezyklen
- Transparenter Schätzprozess
- Continous Delivery
- Userstories
- Common Codeownership
- Akzeptanztests
- Test First
Was macht ein Phasenmodell?
Ein Phasenmodell gliedert die Entwicklung in verschiedene Phasen, in denen vorgegebene Aktivitäten durchgeführt werden. Jede Phase endet mit einem Meilenstein.
Was ist das Ziel einer Durchführbarkeitsanalyse?
- Die fachliche, personelle & ökonomische Machbarkeit aufzeigen
- Bestehende Risiken und Alternativen finden
- Am Ende der Planungsphase entscheiden ob Weitermachen oder Projekt beenden
Was ist der Unterschied zwischen der “Outside-In” und der “Inside-Out”-Modellierung?
Outside-In
Zunächst wird die Umwelt des Produkts modelliert und davon ausgehend die Produktinterna.
Inside-Out
Zunächst werden die Produktinterna und anschließend die Umwelt des Produkts modelliert.
Was ist das Ziel beim Anlegen eines Glossars?
Definition und Erklärung der Begriffe, Schaffung einer einheitlichen Terminologie
Was sind die zentralen Einflussfaktoren des “Teufelsquadrates der Softwareentwicklung”?
- Entwicklungsdauer
- Kosten
- Quantität
- Qualität
Welche Schätzmethoden gibt es?
Basismethoden
- Analogiemethode
- Relationsmethode
- Multiplikationsmethode
- Prozentsatzmethode
Komplexere Methoden
- Function Point Methoden
Wie funktioniert die Analogie-Methode?
Wie ist sie zu bewerten?
Vergleich der zu schätzenden Entwicklung mit bereits abgeschlossenen Entwicklungsprojekten anhand von Ähnlichkeitskriterien.
+ Bei vorhandener Datenbasis leicht anwendbar
+ Gute Vorhersagen möglich
- Intuitive Schätzung auf Basis subjektiver Erfahrungen
- Fehlende allgemeine Vorgehensweise
- Fehlende Nachvollziehbarkeit der Schätzung
Wie funktioniert die Relationsmethode?
Wie ist sie zu bewerten?
Schätzung des Projekts anhand vergangener ähnlicher Projekte anhand formalisierter Vorgehensweise.
+ Bei vorhandener Datenbasis leicht anwendbar
+ Gute Vorhersagen möglich
+ Durch formale Vorgaben objektiver
+ Schätzung ist nachvollziehbar
- Die einzelnen Aufwandsfaktoren sind grob, keine Details
- Die Berechnung muss sinnvoll, Produkte vergleichbar sein
Wie funktioniert die Multiplikatormethode?
Wie ist sie zu bewerten?
Das zu entwickelnde System wird soweit in Teilprodukte zerlegt, bis jedem Teilprodukt ein bereits feststehender Aufwand zugeordnet werden kann (z.B. in LOC).
Produkte werden einer Kategorie zugeordnet. Anzahl der Produkte in Kategorie wird mit dem Kategorieaufwand multipliziert und summiert.
+ Es werden kleinere Einheiten geschätzt
+ Mathematische Berechnungen sind einfach und nachvollziehbar
- Aufwandsfaktoren haben einen großen Einfluss und müssen sinnvoll gewählt werden
- Kosten für Teilprodukte steigen überproportional zum Leistungsumfang
Wie funktioniert die Prozentsatzmethode?
Wie wird sie bewertet?
Bei dieser Methode wird aus dem IST-Aufwand in einer Phase auf den Aufwand in zukünftigen Phasen geschlossen.
+ Gut geeignet um andersweilig geschätze Aufwände zu verteilen
+ Einfache, nachvollziehbare Berechnung
+ Je mehr Phasen abgeschlossen sind, umso genauer
- Tätigkeiten in der Softwareentwicklung sind so unterschiedlich, dass nur schwer ein Vergleich möglich ist
Wie sind die Basis(schätz)-Methoden generell zu bewerten?
- Keine der Basismethoden ist alleine ausreichend
- Methodenergebnisse von ausreichend Daten abhängig
- Frühzeitig, grobe Schätzung über die
- Analogiemethode
- Relationsmethode
- Prozentsatzmethode
- Multiplikationsmethode erst sinnvoll wenn Einflussfaktoren genauer bekannt sind
Was ist die Function-Point Methode? Wie funktioniert sie?
Bewertet in einer mehrschrittigen Methode den fachlich-funktionalen Umfang eines Systems.
Ablauf
- Kategorisierung
- Klassifizierung
- Gewichtung
- Einflussfaktoren
- Berechnung bewertete Function Points
- Umrechnung in MM
- Aktualisierung empirischer Daten
Welche Einflussfaktoren kennt die Function-Point Methode?
- Verflechtung mit anderen Systemen
- Dezentrale Daten
- Transaktionsrate
- Verarbeitungslogik
- Rechenoperationen
- Logik
- Wiederverwendbarkeit
- Datenbestandskonvertierung
=> Jeder Faktor wird mit einer Zahl zwischen 0 - 6 bewertet (3: neutral)