Klausurfragen Flashcards
Refactoring (Extreme Programming)
Codeverbesserung ohne zusätzliche Funktionalität
DevOps
Teams für eine Applikation aus Entwicklern/Testern und Operatoren/Administratoren zusammengestellt
unabhängig vom Vorgehensmodell, ergibt aber besonders mit agilen Methoden und CI Sinn
In vielen IT Organisationen sind Entwicklungsprojekte und Systembetriebe traditionell voneinander getrennt
DevOps Toolchain: create, verify, package, release, configure, monitor, plan
V-Modell
V-Modell des Bundes
Vorgehensmodell für IT Systeme der öffentlichen Hand Deutschlands
Gepflegt und weiterentwickelt von Beauftragten der Bundesregierung für Informationstechnik
Wurde Jahrelang weiterentwickelt, hat viele Aspekte aus anderen Vorgehensmodellen (agile, iterative) integriert = sehr umfangreich
Lastenheft (Spezifikation von Software)
Anforderungen aus Sicht des Auftraggebers
Ist Zustand VS Soll Zustand
Funktionale Anforderungen
Nichtfunktionale Anforderungen
Grundlage der Angebote potentieller Auftragsnehmer
Pflichtenheft (Spezifikation von Software)
Realisierungsvorhaben aus Sicht des Auftragnehmers
detailliert das Lastenheft
enthält Kriterien für Abnahme
begründet grundsätzliche Plattformentscheidungen
GUI
graphical user interface (Grafische Benutzeroberfläche)
sehr entscheidend für die Zuverlässigkeit des Systems
Viele Benutzerfehler können durch eine der Zielgruppen angemessene Benutzerführung vermieden werden
3-Tier-Server Modell (Architekturentscheidung)
Zentrale Datenbankserver sorgt für Persistenz
Ein oder mehrere Applikationsserver sind für Applikationslogik zuständig
Clients übernehmen Benutzereingaben und Bildschirmdarstellung
2-Tier-Server-Modell (Architekturentscheidung)
nur zwei Stufen : Client und Server
Thin Client:
Anwendungslogik läuft komplett auf Server
Client für Benutzereingaben und Bildschirmdarstellung zuständig
Fat Client:
Server übernimmt nur die Datenhaltung
Anwedungslogik, Bildschirmdarstellung und Benutzereingaben laufen auf Client
CRUD
Testprinzip
Datenbasiertes Testen.
Testfälle werden so zusammengestellt, dass ein Objekt den Lebenszyklus Create Read Update Delete durchläuft
Schnittstellentest
Unittest (Teststufe)
Unittest werden für die einzelenen Komponten des Gesamtsystem angewandt
Sie werden über ihre Schnittstellen angesprochen
Richtlinien:
Grenzen der Gültigkeitsbereiche aller Parameter testen
Reaktionen auf ungültige Parameterkombinationen testen
Reaktion auf Überlastung durch eine Vielzahl von Aufrufen testen
Zusammenwirkende Komponenten in unterschiedlicher Reihenfolge testen
Framework
STILL IN NEED OF HELP
SCRUM
von Ken Schwaber u.a. entwickelt
Idee: Prozesse eines Softwareprojektes sind ohnehin komplexer, um sie detailliert beschreiben zu können. Scrum gibt deshalb nur einen groben Rahmen vor.
Schwerpunkt: Projektmanagment
In diesem Rahmen können Projekte gestaltet werden, indem Projektteam selbst Richtlinien gibt
Äquivalenzklasse
STILL IN NEED OF HELP
Assoziationsklasse
STILL IN NEED OF HELP
Regressionstest
STILL IN NEED OF HELP
Sprint Backlog
STILL IN NEED OF HELP
Pointcut (Aspektorierntierte Entwicklung)
Eine in einem Aspekt eingeschlossene Anweisung, die die Verbindungspunkte definiert, an denen der mit dem Aspekt verküpfte Advice ausgefährt wird
Definition, an welchen Join Points der Aspekt eingefügt werden soll
DoR (Scrum)
STILL IN NEED OF HELP
DoD (Scrum)
STILL IN NEED OF HELP
Software Engineering
STILL IN NEED OF HELP
Verbindungspunktmodell (Aspektorierntierte Entwicklung)
Satz von Ereignissen, auf die in einem Pointcut verwiesen werden kann
Anforderungsbasiertes Testen
Aus dem Use Cases werden die Test Case abgeleitet
Strukturelles Testen
Man kennt den Algorithmus und versucht, Grenzfälle abzudecken (zB mittleren Wert einer binären Suche)
Batchverarbeitende Systeme (Typen von Software)
verarbeiten Daten am Stück ohne Eingriff des Benutzers
eignen sich wenn eine große Menge von Daten auf immer ähnliche Operationen angewandt werden müssen
Architektur:
bestehen meistens aus Komponenten für Eingabe, Verarbeitung und Ausgabe
Bsp.
System, das Mahnungen über zu zahlende Zeitschriftenabonnementsgebühren druckt
Ereignisverarbeitende Systeme (Typen von Software)
reagieren ständig und sofort auf Ereignisse wie Benutzereingaben
zB Echtzeitsysteme, Graphikprogramme, Officeprogramme
meist Einbenutzersysteme
müssen schnell auf Benutzerreaktionen reagieren
bearbeiten Daten längere Zeit im Hauptspeicher
Architektur:
mehrere autonome Objekte stehen miteinander in Kommunikationsbeziehung. Sie verarbeiten Ereignisse und interpretieren Befehle
Bsp.
Fotoalbum, das Funktionen zur Wiederherstellung alter Fotografien bietet
Sprachverarbeitende Systeme (Typen von Software)
arbeiten Anweisungen ab, die in einer formalen Sprache formuliert sind
dazu gehören zB Compiler und Skriptinterpreter für Makros
Architektur:
Verschiedene Komponenten übernehmen das prüfen, auswerten und ausführen von Anweisungen
Bsp:
System, das sehbehinderten Benutzern Webseiten vorliest