Softwaretechnik Flashcards

1
Q

Die 5 Kernprozesse der Softwaretechnik

A
  1. Planung 2. Analyse 3. Entwurf 4. Programmierung 5. Validierung und Verifikation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was geschieht in der PLANUNG? (5 Sachen)

A
  1. Anforderungserhebung 2. Lastenheft (Anforderungsdefinition) 3. Pflichtenheft (Mit technischen Ansätzen verfeinertes Lastenheft) 4. Aufwandsschätzung (z.B. mittels Function-Point-Verfahren oder COCOMO) 5. Vorgehensmodell (z.B. Wasserfallmodell)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was geschieht in der Analyse (6 Sachen)?

A
  1. Auswertung 2. Mock-up 3. Prozessanalyse/Prozessmodell 4. Systemanalyse 5. Strukturierte Analyse (SA) 6. Objektorientierte Analyse (OOA)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was geschieht im Entwurf (4 Sachen)?

A
  1. Softwarearchitektur 2. Strukturiertes Design (SD) 3. Objektorientiertes Design (OOD) 4. Fundamental Modeling Concepts (FMC)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was gibt es in der Programmierung (4 Sachen)?

A
  1. Normierte Programmierung 2. Strukturierte Programmierung 3. Objektorientierte Programmierung (OOP) 4. Funktionale Programmierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was geschieht in der Validierung und Verifikation (4)?

A
  1. Modultest (Low-Level-Test) 2. Integrationstest (Low-Level-Test) 3. Systemtests (High-Level-Test) 4. Akzeptanztests (High-Level-Test)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Anforderungsanalyse (Informatik)

A

Die Anforderungsanalyse (englisch requirements analysis) ist in der Informatik ein Teil des Systementwicklungsprozesses (u. a. neben dem Anforderungsmanagement), sowie ein Teil der Business-Analyse. Ziel ist es, die Anforderungen des Auftraggebers an das zu entwickelnde System zu ermitteln, zu strukturieren und zu prüfen

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

Lastenheft

A

Das Lastenheft (teils auch Anforderungsspezifikation, Anforderungskatalog, Produktskizze, Kundenspezifikation oder englisch Requirements Specification genannt) beschreibt die Gesamtheit der Anforderungen des Auftraggebers an die Lieferungen und Leistungen eines Auftragnehmers. Es ist z. B. im Software-Bereich das Ergebnis einer Anforderungsanalyse und damit ein Teil des Anforderungsmanagements.

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

Pflichtenheft

A

Das Pflichtenheft beschreibt in konkreter Form, wie der Auftragnehmer die Anforderungen des Auftraggebers zu lösen gedenkt – das sogenannte wie und womit. Der Auftraggeber beschreibt vorher im Lastenheft möglichst präzise die Gesamtheit der Forderungen – was er entwickelt oder produziert haben möchte. Erst wenn der Auftraggeber das Pflichtenheft akzeptiert, sollte die eigentliche Umsetzungsarbeit beim Auftragnehmer beginnen.

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

Aufwandsschätzung

A

Aufwandsschätzung oder -abschätzung oder Kostenschätzung ist in der Softwaretechnik Bestandteil der Planung eines Softwareprojekts oder eines Arbeitspaketes. Dabei wird geschätzt, wie viele Personen und wie viel Zeit für die einzelnen Arbeitsschritte oder Programmteile notwendig sind, welche Ressourcen gebraucht werden und was es letztlich kostet. Kosten, Termine und benötigte Ressourcen sind dann Grundlage für ein Angebot oder für eine Entscheidung, ob und wie und wann ein Softwareprojekt oder Arbeitspaket davon gemacht wird.

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

Was ist das Wasserfallmodell?

A

Das Wasserfallmodell ist ein lineares (nicht iteratives) Vorgehensmodell, insbesondere für die Softwareentwicklung, das in Phasen organisiert wird. Dabei gehen die Phasenergebnisse wie bei einem Wasserfall immer als bindende Vorgaben für die nächsttiefere Phase ein.

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

Die Phasen des Wasserfallmodells?

A
  1. Anforderungsanalyse und -spezifikation (engl. Requirement analysis and specification) resultiert im Lastenheft
  2. Systemdesign und -spezifikation (engl. System design and specification) resultiert in der Softwarearchitektur
  3. Programmierung und Modultests (engl. Coding and module testing) resultiert in der eigentlichen Software
  4. Integrations- und Systemtest (engl. Integration and system testing)
  5. Auslieferung, Einsatz und Wartung (engl. Delivery, deployment and maintenance)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist das V-Modell?

A
  1. Das V-Modell ist ein Vorgehensmodell in der Softwareentwicklung, bei dem der Softwareentwicklungsprozess in Phasen organisiert wird.
  2. Es basiert auf dem Wasserfallmodell. Die Phasenergebnisse sind bindende Vorgaben für die nächsttiefere Projektphase.
  3. Es ist aufgeteilt nach ZEIT und DETAILLIERUNGSGRAD
  4. Diese Gegenüberstellung soll zu einer möglichst hohen Testabdeckung führen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist das Ziel agiler Softwareentwicklung?

A

Das Ziel agiler Softwareentwicklung ist es, den Softwareentwicklungsprozess flexibler und schlanker zu machen, als das bei den klassischen Vorgehensmodellen der Fall ist. Man möchte sich mehr auf die zu erreichenden Ziele konzentrieren und auf technische und soziale Probleme bei der Softwareentwicklung eingehen. Die agile Softwareentwicklung ist eine Gegenbewegung zu den oft als schwergewichtig und bürokratisch angesehenen traditionellen Softwareentwicklungsprozessen wie dem Rational Unified Process oder dem V-Modell.

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

iterativ versus agil

A

Iterativ ist nicht gleich agil!

Wahres agiles Arbeiten bedeutet, dass man alle Aufgaben parallel in einer Iteration abarbeitet - Analayse, Design , Programmierung und Testing passiert parallel, quasi Hand in Hand. Es findet stetige Kommunikation zwischen allen Teammitgliedern statt.

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

Was macht man beim iterativen arbeiten?

A

Beim Iterativen arbeiten nähert man sich in Iterationen dem Gesamtziel, aber sequenziell. Pro Iteration werden geplante Milestones abgearbeitet.

Ein anderes, oft verbreitetes Vorgehen ist der iterative Wasserfall. Oft ist das die erste Ausbaustufe, wenn man vom klassischen Vorgehen auf agiles Vorgehen “umstellt”. Das Team abeitet im gewohnten, sequenziellen Modus, aber pro Iteration. Mit diesem Vorgehen erreicht man zwar, dass man pro Iteration funktionstüchtige Artefakte liefern kann, jedoch ist das Ende einer Iteration meist sehr un-planbar und oft geprägt von Refactoring und ordentlich Zeitdruck im Team. Erst beim Test stellt sich heraus, ob alles so funktioniert, wie geplant.

17
Q

Der iterative Wasserfalll

A

Bei einem interativen Wasserfall werden pro Iteration Artefakte erarbeitet, die in der kommenden Iteration weiterverarbeitet oder verfeinert werden (Bild oben). Damit bleiben alle Nachteile von phasen- orientiertem Projektvorgehen erhalten: Abkapseln von Anaytikern, Kunden, Testern und Entwicklern sowie Behinderung der direkten Kommunikation aller Beteiligten. (A=Analyse,D=Design,P=Produktion,T=Test)

Da man mit dem iterativen Wasserfall jedoch keine funtionstüchtigen Artefakte mit einem Mehrwert für den Kunden liefert, kommt man zwangsläufig zum Schritt 2: der iterative Mini-Wasserfall (Bild unten).

Um dem agilen Manifest gerecht zu werden und die klassische Vorgehensweise beizubehalten, macht man alle Phasen pro Iteration.
Auch hier gewinnt man nicht viel, denn erfahrungsgemäss ist die Zeit am Ende einer Iteration sehr knapp und Testing fast unmöglich. Dazu kommt, dass die Teammitglieder so noch immer entkoppelt arbeiten und wichtige Kommunikation ausbleibt.