Softwaretechnik Flashcards
Die 5 Kernprozesse der Softwaretechnik
- Planung 2. Analyse 3. Entwurf 4. Programmierung 5. Validierung und Verifikation
Was geschieht in der PLANUNG? (5 Sachen)
- 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)
Was geschieht in der Analyse (6 Sachen)?
- Auswertung 2. Mock-up 3. Prozessanalyse/Prozessmodell 4. Systemanalyse 5. Strukturierte Analyse (SA) 6. Objektorientierte Analyse (OOA)
Was geschieht im Entwurf (4 Sachen)?
- Softwarearchitektur 2. Strukturiertes Design (SD) 3. Objektorientiertes Design (OOD) 4. Fundamental Modeling Concepts (FMC)
Was gibt es in der Programmierung (4 Sachen)?
- Normierte Programmierung 2. Strukturierte Programmierung 3. Objektorientierte Programmierung (OOP) 4. Funktionale Programmierung
Was geschieht in der Validierung und Verifikation (4)?
- Modultest (Low-Level-Test) 2. Integrationstest (Low-Level-Test) 3. Systemtests (High-Level-Test) 4. Akzeptanztests (High-Level-Test)
Anforderungsanalyse (Informatik)
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
Lastenheft
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.
Pflichtenheft
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.
Aufwandsschätzung
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.
Was ist das Wasserfallmodell?
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.
Die Phasen des Wasserfallmodells?
- Anforderungsanalyse und -spezifikation (engl. Requirement analysis and specification) resultiert im Lastenheft
- Systemdesign und -spezifikation (engl. System design and specification) resultiert in der Softwarearchitektur
- Programmierung und Modultests (engl. Coding and module testing) resultiert in der eigentlichen Software
- Integrations- und Systemtest (engl. Integration and system testing)
- Auslieferung, Einsatz und Wartung (engl. Delivery, deployment and maintenance)
Was ist das V-Modell?
- Das V-Modell ist ein Vorgehensmodell in der Softwareentwicklung, bei dem der Softwareentwicklungsprozess in Phasen organisiert wird.
- Es basiert auf dem Wasserfallmodell. Die Phasenergebnisse sind bindende Vorgaben für die nächsttiefere Projektphase.
- Es ist aufgeteilt nach ZEIT und DETAILLIERUNGSGRAD
- Diese Gegenüberstellung soll zu einer möglichst hohen Testabdeckung führen
Was ist das Ziel agiler Softwareentwicklung?
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.
iterativ versus agil
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.