Software Engineering Flashcards

(59 cards)

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
Was macht das 3-Tier-Client-Server System aus?
Ein zentraler DB Server sorgt für Persistenz. Applikationsserver sorgen für Applikationslogik Clients übernehmen Eingaben und Darstellung
26
Was macht Webapplikationen aus?
Können Vorteile von Fat und Thin Clients vereinen. Useability und Performance von Web Appl. nähern sich lokaler Software an.
27
Was sind Batchverarbeitende Systeme?
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
Was sind Transaktionsverarbeitende Systeme?
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
Was sind Sprachverarbeitende Systeme?
Arbeiten Anweisungen ab, die in formaler Sprache formuliert sind. z.B. Compiler Komponenten: Prüfen, Auswerten und Ausführen von Anweisungen
30
Grundregeln für den GUI Entwurf
``` Benutzervertrautheit Konsistenz Minimale Überraschung Wiederherstellbarkeit Benutzerführung Benutzervielfalt ```
31
Grundregeln für Systemmeldungen
``` Kontext Erfahrung Fähigkeiten Stil Kultur ```
32
Was sind Ziele der Softwarewiederverwendung?
Herstellkosten verringern Wartungskosten verringern Projektdauer verkürzen Qualität erhöhen
33
Was sind Kriterien für die Wiederverwendung von Software?
Entwicklungszeit der Software Nutzungsdauer der Software Erfahrungen/ Kenntnisse des Entwicklungsteams Kompromißbereitschaft der Kunden
34
Was sind Prinzipien verläßlicher Entwicklung?
Gute Grundsätze objektorientierer Entwicklung (Getter & Setter, try catch etc) Fehleranfällige Konstrukte vermeiden
35
Was ist Defensive Programming?
Überprüfungen werden in Code eingebaut, die nicht notwendig für Funktion wären. Fehler der Spezifikation werden nicht erkannt.
36
Was sind Verifikation und Validierung?
Verifikation: Entspricht das Produkt den Anforderungen Validierung: Stellt das Produkt den Anwender zufrieden? Verfahren: Softwareinspektion, SW-Test
37
Was macht Test Cases aus?
Werden aus Use Cases abgeleitet. Dienen als Anleitung für Tester. Beschreiben: Vorbedingungen, Eingabedaten, Aktionen, Erwartete Ergebnisse
38
Was sind White- und Black-Box Test?
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
Was sind die Testprinzipien?
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
Welche nicht funktionalen Tests gibt es?
Stresstest Usability Test Recovery Test Sicherheitstest
41
Was ist ein Auslieferungstest?
Gesamtsystem wird getestet | Teste keinen Zugriff auf Quellcode
42
Was ist ein Alphatest?
Interner Test mit Schwerpunkt: FUnktionalität/Usability
43
Was ist ein Betatest?
Erste Version wird an eingeschränkten Benutzerkreis gegeben um Fehlermeldungen zu sammeln Danch Einordnung: Release Candidate Release to Manufacturing General Availability
44
Was macht Standardsoftware aus?
Universell Definierte Problemlösung Minimierter Anpassungsaufwand Festpreise Kerngedanke: Ähnliche Aufgaben in versch. Unternehmen, hohe Fixkosten bei SW Entwicklung
45
Was ist Customizing?
``` 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
Argumente Pro Standardsoftware
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
Argumente Pro Individual
Flexibler -> 1:1 Abbildung Keine Abhängigkeit vom hersteller IdR technisch schlanker Keine Standardlösung für exotische Aufgabe
48
Was muss man bei der Auswahl von Standardsoftware beachten?
Best of breed | Alles aus einer Hand falls möglich
49
Was ist ein Framework?
Eine Sammlung von Klassen die erweitert werden können Bieten eine Möglichkeit Code wiederzuverwenden z.B. Hibernate
50
Was ist Service Orientierte Architektur?
Spezielle Art der Wiederverwendung mit Komponenten mittlerer Größe Komponenten sind eigenständige Dienste Für Kommunikation werden Standardkontrolle verwendet Plattform/Sprachabhängig
51
Was sind SOAP und UDDI?
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
Was ist WSDL?
XML basierter Standard für SOA. Definiert wie ein Service beschrieben wird
53
Was ist REST?
Leichtgewichtige Alternative zu SOAP/UDDI/WSDL Definiert lediglich grundlegende Prinzipien für die Maschine zu Maschine Kommunikation im Web Derzeit Tendenz hin
54
Was sind Entwurfsmuster?
Keine Softwarekomponenten sondern abstrakte Konzepte Beschreiben erfolgreiche Designs Erfahrung vieler Softwareprojekte Viele Entwurfsmuster heute frei verfügbar
55
Was ist GoF?
Gang of Four | führte 1994 Konzept der Design Patterns in SE Entwicklung ein
56
Aus was besteht ein Entwurfsmuster?
Name des Musters Domäne Lösungsbeschreibung, oft auch graphisch Konsequenzen (Beschränkung des Musters)
57
Aus was besteht ein Aspekt?
Advice | Pointcut
58
Begriffe des Aspekt Orientierten Designs
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
Welche Möglichkeiten zum Einweben von Aspekten gibt es?
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.