Software Engineering Flashcards
(59 cards)
Was ist der wesentliche Unterschied zwischen Standardsoftware und Individualentwicklung?
Der Ersteller von Standardsoftware muss die Spezifikation selbst übernehmen und kann die genauen Anwenderwünsche nicht erfragen.
Aktuelle Herausforderungen für das SE
Heterogene Umgebungen
Kurze Projektzielzeiten
Software muss immer verlässlicher sein
Was sind Merkmale guter Software?
Wartbarkeit
Zuverlässigkeit
Effizienz
Benutzerfreundlichkeit
Welche Arten kritischer Systeme gibt es?
Sicherheitskritische Systeme (kann zu Schäden für Mensch und Umwelt führen z.B: Atomkraftwerk)
Aufgabenkritisch (Kann zum Scheitern einer umfangreichen Aufgabe führen, Raumfahrtnavigation)
Geschäftskritisch (kann hohe Kosten hervorrufen)
Warum ist Zuverlässigkeit die wichtigste Eigenschaft kritischer Systeme?
Wenn es unzuverlässig arbeitet wird es von den Benutzern abgelehnt
Ausfallkosten können Unternehmen gefährden
Verlorene Informationen können wichtiger als System sein
Was muss man bei der Entwicklung kritischer Systeme beachten?
Lieber erprobte Techniken verwenden
Kosten für Tests höher als bei unkritischen
Besonders aufwendige SE Methoden lohnen sich oft
Sicht auf Gesamtsystem (Hard + Software)
Was macht Vorgehensmodelle aus?
Definieren Standards für IT Projekte.
Vor allem für: Phasen Organisation Dokumente Kommunikation Methoden
Was ist ein Lastenheft?
Anforderungen aus Sicht des Auftraggebers
Ist vs. Soll Zustand
Funktionale Anforderungen:
Nichtfunktionale Anforderungen
Grundlage der Angebote potentieller Auftragnehmer
Was ist ein Pflichtenheft?
Realisierungsvorhaben aus Sicht des Auftragsnehmers
Detailliert das Lastenheft
Enthält Kriterien für die Abnahme
Begründet grundsätzliche Plattformentscheidungen
Welche Softwareanforderungen gibt es und was muss beachtet werden?
Funktionale Anforderungen
Nichtfunktionale Anforderungen
Anforderungen müssen schriftlich fixiert werden um Mißverständnisse zu vermeiden
Was sind Funktionale Anforderungen?
Beschreiben was das System leisten soll und sich in bestimmten Fällen bei bestimmten Eingaben verhalten soll
Sollen vollständig und konsistent sein
Was sind nichtfunktionale Anforderungen?
Beschreiben Beschränkungen der vom System angebotenen Dienste. Werden oft als Systemziel formuliert.
Besser sind Meßbare Dinge z.B: Performance, Portierbarkeit
Ursprung:
Dem Produkt (Anzahl User)
Der Organisation (Zugriff auf Firmen DB)
externe Quellen (Gesetzte etc.)
Was ist ein Systemziel?
System sollte für erfahrene Benutzer einfach zu bedienen sein und so aufgebaut sein, Fehler durch Benutzer minimiert werden.
Wie können Softwareanforderungen formuliert werden?
Natürlicher Sprache
Nachteile: ungenau, verwirrend, Gefahr der Verschmelzung von Anforderungen
In vorstrukturierten Dokumenten (Use Case)
Als graphisches Modell (UML Diagrame)
Was sind Schwierigkeiten bei der Sammlung von Anforderungen?
Beteiligten haben unklare Erwartungen
Können Erwartungen nicht in Worte fassen
Haben unrealistische Erwartungen
Beschreiben Erwartungen in unternehmensspezifischer Terminologie
Erwartungen versch. beteiligter unterscheiden sich
Was passiert wenn die Anforderungen gesammelt sind?
Sie werden:
klassifiziert, strukturiert und gruppiert.
Priorisiert, verhandelt, Konflikte gelöst
Dokumentiert
Was ist Requirements Validation?
In Review Meetings mit Anbietern und Kunden werden die Anforderungen validiert.
z.B: gescheit formuliert, realistisch vollständig…
Allererster Prototyp und erste Testfälle abzuleiten oftmals hilfreich
Was passiert wenn sich Anforderungen nach Verabschiedung nochmal ändern?
Hierfür muss es einen Prozess geben der dies dokumentiert (Change Management)
Was sind Shall-not-requirements?
Sind abstrakte Sicherheitsanforderungen in kritischen Systemen
Was sind verteilte Systeme?
Softwaresysteme die auf mehreren Rechnern laufen
Mehrere Prozesse können gleichzeitig darauf laufen
Was sind Vor- und Nachteile von verteilten Systemen?
Vorteil: Sind skalierbar, Fehlertoleranter aber Single Point of Failure
Nachteil: Komplexer, Erschwerter Zugriffsschutz wegen Datenverkehr der Rechner
Vor- und Nachteile zentraler Repositorys
Vorteile: Keine direkte Kommunikation zwischen Subsystemen nötig, Schutz etc. sind einfacher in Rechenzentrum zu gewährleisten
Nachteil: Langsamerer Zugriff als auf eigene Festplatte,
Was macht das Client Server Modell aus?
Clients: Fragen Dienste im Netzwerk ab, kennen Server aber keine anderen Clients
Server: Bieten Dienste im Netzwerk an, Meist zentral im Rechenzentrum
Was macht das 2-Tier-Client-Server aus?
Gibt nur Clients und Server
Thin Clients: Anwendungslogik läuft komplett auf Server, Client nur Benutzereingabe und Bildschirmdarstellung
Fat Clients: Server übernimmt nur Datenhaltung. Anwendungslogik, Eingaben Darstellung laufen auf Client