Software Engineering Flashcards

1
Q

Was ist der wesentliche Unterschied zwischen Standardsoftware und Individualentwicklung?

A

Der Ersteller von Standardsoftware muss die Spezifikation selbst übernehmen und kann die genauen Anwenderwünsche nicht erfragen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Aktuelle Herausforderungen für das SE

A

Heterogene Umgebungen
Kurze Projektzielzeiten
Software muss immer verlässlicher sein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind Merkmale guter Software?

A

Wartbarkeit
Zuverlässigkeit
Effizienz
Benutzerfreundlichkeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche Arten kritischer Systeme gibt es?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Warum ist Zuverlässigkeit die wichtigste Eigenschaft kritischer Systeme?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was muss man bei der Entwicklung kritischer Systeme beachten?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was macht Vorgehensmodelle aus?

A

Definieren Standards für IT Projekte.

Vor allem für:
Phasen
Organisation
Dokumente
Kommunikation
Methoden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist ein Lastenheft?

A

Anforderungen aus Sicht des Auftraggebers
Ist vs. Soll Zustand
Funktionale Anforderungen:
Nichtfunktionale Anforderungen
Grundlage der Angebote potentieller Auftragnehmer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist ein Pflichtenheft?

A

Realisierungsvorhaben aus Sicht des Auftragsnehmers
Detailliert das Lastenheft
Enthält Kriterien für die Abnahme
Begründet grundsätzliche Plattformentscheidungen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Softwareanforderungen gibt es und was muss beachtet werden?

A

Funktionale Anforderungen
Nichtfunktionale Anforderungen

Anforderungen müssen schriftlich fixiert werden um Mißverständnisse zu vermeiden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind Funktionale Anforderungen?

A

Beschreiben was das System leisten soll und sich in bestimmten Fällen bei bestimmten Eingaben verhalten soll

Sollen vollständig und konsistent sein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was sind nichtfunktionale Anforderungen?

A

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.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein Systemziel?

A

System sollte für erfahrene Benutzer einfach zu bedienen sein und so aufgebaut sein, Fehler durch Benutzer minimiert werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie können Softwareanforderungen formuliert werden?

A

Natürlicher Sprache
Nachteile: ungenau, verwirrend, Gefahr der Verschmelzung von Anforderungen

In vorstrukturierten Dokumenten (Use Case)

Als graphisches Modell (UML Diagrame)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind Schwierigkeiten bei der Sammlung von Anforderungen?

A

Beteiligten haben unklare Erwartungen
Können Erwartungen nicht in Worte fassen
Haben unrealistische Erwartungen
Beschreiben Erwartungen in unternehmensspezifischer Terminologie
Erwartungen versch. beteiligter unterscheiden sich

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was passiert wenn die Anforderungen gesammelt sind?

A

Sie werden:
klassifiziert, strukturiert und gruppiert.
Priorisiert, verhandelt, Konflikte gelöst
Dokumentiert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was ist Requirements Validation?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was passiert wenn sich Anforderungen nach Verabschiedung nochmal ändern?

A

Hierfür muss es einen Prozess geben der dies dokumentiert (Change Management)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was sind Shall-not-requirements?

A

Sind abstrakte Sicherheitsanforderungen in kritischen Systemen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was sind verteilte Systeme?

A

Softwaresysteme die auf mehreren Rechnern laufen

Mehrere Prozesse können gleichzeitig darauf laufen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was sind Vor- und Nachteile von verteilten Systemen?

A

Vorteil: Sind skalierbar, Fehlertoleranter aber Single Point of Failure

Nachteil: Komplexer, Erschwerter Zugriffsschutz wegen Datenverkehr der Rechner

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Vor- und Nachteile zentraler Repositorys

A

Vorteile: Keine direkte Kommunikation zwischen Subsystemen nötig, Schutz etc. sind einfacher in Rechenzentrum zu gewährleisten

Nachteil: Langsamerer Zugriff als auf eigene Festplatte,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Was macht das Client Server Modell aus?

A

Clients: Fragen Dienste im Netzwerk ab, kennen Server aber keine anderen Clients

Server: Bieten Dienste im Netzwerk an, Meist zentral im Rechenzentrum

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Was macht das 2-Tier-Client-Server aus?

A

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

25
Q

Was macht das 3-Tier-Client-Server System aus?

A

Ein zentraler DB Server sorgt für Persistenz.

Applikationsserver sorgen für Applikationslogik

Clients übernehmen Eingaben und Darstellung

26
Q

Was macht Webapplikationen aus?

A

Können Vorteile von Fat und Thin Clients vereinen.

Useability und Performance von Web Appl. nähern sich lokaler Software an.

27
Q

Was sind Batchverarbeitende Systeme?

A

Verarbeiten Daten am Stück ohne Eingriff des Benutzers. Wenn auf große Datenmenge immer ähnliche Operationen angewendet werden.

Bestehen meist aus Komponenten für Eingabe, Verarbeitung und Ausgabe

28
Q

Was sind Transaktionsverarbeitende Systeme?

A

Verarbeiten Schreib- und Lesezugriffe auf großen Datenbestand.
Müssen sicherstellend dass Personen sich nicht gegenseitig behindern.

Komponenten für: Benutzerinteraktion, Anwendungslogik und Datenhaltung

29
Q

Was sind Sprachverarbeitende Systeme?

A

Arbeiten Anweisungen ab, die in formaler Sprache formuliert sind. z.B. Compiler

Komponenten: Prüfen, Auswerten und Ausführen von Anweisungen

30
Q

Grundregeln für den GUI Entwurf

A
Benutzervertrautheit
Konsistenz
Minimale Überraschung
Wiederherstellbarkeit
Benutzerführung
Benutzervielfalt
31
Q

Grundregeln für Systemmeldungen

A
Kontext
Erfahrung
Fähigkeiten
Stil
Kultur
32
Q

Was sind Ziele der Softwarewiederverwendung?

A

Herstellkosten verringern
Wartungskosten verringern
Projektdauer verkürzen
Qualität erhöhen

33
Q

Was sind Kriterien für die Wiederverwendung von Software?

A

Entwicklungszeit der Software
Nutzungsdauer der Software
Erfahrungen/ Kenntnisse des Entwicklungsteams
Kompromißbereitschaft der Kunden

34
Q

Was sind Prinzipien verläßlicher Entwicklung?

A

Gute Grundsätze objektorientierer Entwicklung (Getter & Setter, try catch etc)

Fehleranfällige Konstrukte vermeiden

35
Q

Was ist Defensive Programming?

A

Überprüfungen werden in Code eingebaut, die nicht notwendig für Funktion wären.

Fehler der Spezifikation werden nicht erkannt.

36
Q

Was sind Verifikation und Validierung?

A

Verifikation: Entspricht das Produkt den Anforderungen
Validierung: Stellt das Produkt den Anwender zufrieden?

Verfahren: Softwareinspektion, SW-Test

37
Q

Was macht Test Cases aus?

A

Werden aus Use Cases abgeleitet.
Dienen als Anleitung für Tester.

Beschreiben: Vorbedingungen, Eingabedaten, Aktionen, Erwartete Ergebnisse

38
Q

Was sind White- und Black-Box Test?

A

White Box Test: Beim Erstellen der Testfälle wird Wissen um Programmaufbau berücksichtigt.

Black-Box-test: testfälle werden ausschließlich aus Spezifikation abgeleitet

39
Q

Was sind die Testprinzipien?

A
  1. Anforderungsbasiert (AUs Use Cases)
  2. Klassenbasiert
  3. Strukturell (Versucht Grenzwerte abzudecken)
  4. Pfadüberdeckung
  5. Testen auf Zufallswerte
  6. CRUD (Create Read Use Delete)
40
Q

Welche nicht funktionalen Tests gibt es?

A

Stresstest
Usability Test
Recovery Test
Sicherheitstest

41
Q

Was ist ein Auslieferungstest?

A

Gesamtsystem wird getestet

Teste keinen Zugriff auf Quellcode

42
Q

Was ist ein Alphatest?

A

Interner Test mit Schwerpunkt: FUnktionalität/Usability

43
Q

Was ist ein Betatest?

A

Erste Version wird an eingeschränkten Benutzerkreis gegeben um Fehlermeldungen zu sammeln
Danch Einordnung:

Release Candidate
Release to Manufacturing
General Availability

44
Q

Was macht Standardsoftware aus?

A

Universell
Definierte Problemlösung
Minimierter Anpassungsaufwand
Festpreise

Kerngedanke: Ähnliche Aufgaben in versch. Unternehmen, hohe Fixkosten bei SW Entwicklung

45
Q

Was ist Customizing?

A
Parametrisierung oder auch Ergänzungsprogrammierung je nach Hersteller.
Bei SW mit vielen Parametern:
Flexibler
Weniger Programmierung notwendig
Schwieriger zu verstehen
Längere Einführungszeiten
46
Q

Argumente Pro Standardsoftware

A

Kosten besser abschätzbar
Wartungsaufwand abschätzbar
Kein kurzfristiger Personalaufwand während Entwicklung
Parameteränderung später ejdrzeit möglich
Einführung schneller
Ausgereifte Software
Vor Entscheidung testen möglich

47
Q

Argumente Pro Individual

A

Flexibler -> 1:1 Abbildung
Keine Abhängigkeit vom hersteller
IdR technisch schlanker
Keine Standardlösung für exotische Aufgabe

48
Q

Was muss man bei der Auswahl von Standardsoftware beachten?

A

Best of breed

Alles aus einer Hand falls möglich

49
Q

Was ist ein Framework?

A

Eine Sammlung von Klassen die erweitert werden können
Bieten eine Möglichkeit Code wiederzuverwenden
z.B. Hibernate

50
Q

Was ist Service Orientierte Architektur?

A

Spezielle Art der Wiederverwendung mit Komponenten mittlerer Größe

Komponenten sind eigenständige Dienste

Für Kommunikation werden Standardkontrolle verwendet

Plattform/Sprachabhängig

51
Q

Was sind SOAP und UDDI?

A

XML basierte Standards für Service orientiere Architektur.
SOAP definiert das XML Format der Nachrichten die ein Service erhält und verschickt

UDDI definiert das Format der Nachrichten mit denen nach Diensten gesucht wird

52
Q

Was ist WSDL?

A

XML basierter Standard für SOA. Definiert wie ein Service beschrieben wird

53
Q

Was ist REST?

A

Leichtgewichtige Alternative zu SOAP/UDDI/WSDL

Definiert lediglich grundlegende Prinzipien für die Maschine zu Maschine Kommunikation im Web

Derzeit Tendenz hin

54
Q

Was sind Entwurfsmuster?

A

Keine Softwarekomponenten sondern abstrakte Konzepte
Beschreiben erfolgreiche Designs
Erfahrung vieler Softwareprojekte
Viele Entwurfsmuster heute frei verfügbar

55
Q

Was ist GoF?

A

Gang of Four

führte 1994 Konzept der Design Patterns in SE Entwicklung ein

56
Q

Aus was besteht ein Entwurfsmuster?

A

Name des Musters
Domäne
Lösungsbeschreibung, oft auch graphisch
Konsequenzen (Beschränkung des Musters)

57
Q

Aus was besteht ein Aspekt?

A

Advice

Pointcut

58
Q

Begriffe des Aspekt Orientierten Designs

A

Advice: Code zum Implemntieren eines Belangs
Aspekt: Programmabstraktion, enthält Definition eines Pointcuts und den Advice
Join Point: Ereignis in einem ausgeführten Programm, bei der der mit Aspekt verknüpfte Advice ausgeführt werden kann
Verbindungsmodell: Satz von Ereignissen auf die in einem Point Cut verwiesen werden kann

Point Cut: In einem Aspekt eingeschlossen Anweisung, die die Join Points definiert, an denen der mit dem Apsket verknüpfte Advice ausgeführt werden soll

Einweben: Enbeziehen des Advice codes an Join Points durch Aspect-Weber

59
Q

Welche Möglichkeiten zum Einweben von Aspekten gibt es?

A

Quellcodeverarbeitung (Quellcode wird an passenden Stellen durch Aspect Weaver eingefügt. Dann COmpiler)

Während des Linkens: Aspect Weaver wird in Compiler eingebaut

Zur Laufzeit: Join Points werden im Hintergrund überwacht. bei definiertem Ereigniseintritt wird Advice ausgeführt.