SWEII

Software Engineering 2

Software Engineering 2

Nik Kaiser

Nik Kaiser

Set of flashcards Details

Flashcards 28
Language Deutsch
Category Computer Science
Level University
Created / Updated 20.03.2015 / 17.06.2021
Weblink
https://card2brain.ch/box/sweii
Embed
<iframe src="https://card2brain.ch/box/sweii/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was ist Software Engineering?

Fach-/Teilgebiet der Informatik

Beschäftigt sich mit der systematischen Anwendung von

Paradigment (z.B. Objektorientierung)

Methoden (z.B. UML)

Techniken (z.B. CRC-Karten)

und Werkzeugen (z.B. UML Tool)

für die Herstellung von Software.

Was ist ein Paradigma

Grundsätzliche Art der Weltanschauung oder Lehrmeinung

Woran erkennt man einen Paradigmenwechsel?

Ein Fachgebiet wird von Grund auf umgewälzt.

Dadurch Überkompensation von exponentiell angestiegener Problemkurve durch neues Paradigma.

Die ansteigende Komplexität war mit altem Paradigma nicht mehr Beherrschbar

Was sind die 6 Pardigmen der objektorientierten Programmierung?

Abstraktion (Realität -> Class)

Vererbung (Generalisierung/Spezialisierung)

Kapselung (Sichtbarkeit +-#)

Aggregation / Komposition (PartOf)

Assoziation (Attribut mit Pointer)

Polymorphie (danamische (Vererbt und Überschreibt in verschiedenen Klassen) und statische (mehrere Methoden mit gleichem Namen))

Was ist UML?

Eine Norm und ein Satz von Notationen zur Beschreibung objektorientierter Softwaresysteme

Was ist das Ziel der UML?

Softwaresysteme besser entwerfen, analysieren, dokumentieren

Was sind primitive Typen?

Integer

Boolean

String

unlimitednatural

Was sind die 3 Interaktionsarten der Mensch-Maschine-Kommunikation?

Benutzergeführte (z.B. CLI, Abfrage-, Makro- & Programmiersprachen)

Systemgeführte (z.B. Menüs, Prompts, Formulare. Das System gibt den Ablauf vor)

Gemischte (z.B. Dialoge mit wechselnder Initiative oder alternativen Eingabemöglichkeiten

Was sind die 7 Anforderungen/Grundsätze der Dialoggestaltung

Aufgabenangemessenheit: Zu erledigende Aufgaben müssen effektiv und effizient erledigbar sein durch passenden Infogehalt & und Werkzeuge

Selbstbeschreibungsfähigkeit: "Intuitive Bedienung" durch selbsterklärung und dezente Rückmeldung des Systems

Lernförderlichkeit: Dialogsystem muss einfach erlernbar sein durch einheiltiches und einprägsames Strickmuster (z.B. Buttons immer an der gleichen Stelle)

Steuerbarkeit: Ablauf muss selbst bestimmbar und die Richtung/Geschwindigkeit des Dialogs beeinflussbar sein

Erwartungskonformität: Erfüllung der Nutzererwartung an Abläufe und Kontinuität der Oberfläche

Individualisierbarkeit. Individuelle Vorlieben Berücksichtigen. Anpassung an jeweilige Arbeitsaufgabe möglich. Anpassungen müssen jedoch zu mehr effizienz führen.

Fehlertoleranz: System ist gegen offensichtliche Fehleingaben resistent und kann diese selbst korrigieren.

Was sind 3 Maßnahmen der Qualitätssicherung?

Organisatorische: Projektorganisation, Softwareprozesse

Konstruktive: Architektur, Entwurf

Analytische: Validierung, Test, Inspektion

Was sind die 5 Ziele des Testens

Kosten vermeiden

Vertrauen schaffen

Fehler finden

Qualität nachweisen

Risiko minimieren

Was sind die 7 Grundsätze des Testens

Wähle destruktiven Ansatz: Test ist erfolgreich wenn Fehler gefunden

Vollständiges Testen ist nicht möglich: Ab gewisser Komplexität nur Stichprobenartig mit gewissem Abdeckungsgrad

Beachte Kakerlaken Prinzip: Ein gefundener Fehler in einer Komponente lässt auf weitere schließen. Abdeckungsgrad erhöhen

So früh wie möglich beginnen: z.B. mit Usability Driven Design (Papierprototypen, Mockups)

Test ist immer Kontextbezogen: Abhängig von der Umgebung, Anwender, Arbeitsplatz, Umfeld

Beachte das Pestizid Paradoxon: Test unter gleichem Kontext zu wiederholen ist sinnlos

Vermeide Trugschlüsse auf Brauchbarkeit: Fehlerfreiheit ungleich Brauchbarkeit

Welche Fehler Überdeckungsgrade gibt es?

C0: Anweisungsüberdeckung

C1: Zweigüberdeckung

C2: Pfadüberdeckung

Wie Unterscheidet sich der Fehler-Begriff (6)

Fehler: Fehlverhalten des Systems, nichterfüllung festgelegter Forderungen

Defekt: Fehler durch mangelndes Problemverständnis

Mangel: Nichterfüllung angemessener aber nicht dokumentierter Erwartungen

Programmierfehler: im Code während der Entwicklung

Infektion: Fehlerzustand zur Laufzeit

Fehlfunktion: sichtbare Manifestation eines Fehlers

Warum benötigt man Software Engineering?

Die meisten Kosten entstehen durch Fehler aus der Anforderungsdefinition. Diese Fehlerquelle soll SWE minimieren.

Was ist das Magische Viereck?

Besteht aus Zeit, Kosten, Qualität und Quantität.

Es lassen sich immer nur zwei Merkmale erfüllen, die anderen beide resultieren aus diesen.

Was ist Moores Law?

Komplexität von IC's verdoppelt sich alle 12-24 Monate. Zwar gibt es bessere Programmiersprachen, jedoch wird der technische Fortschritt dieser Entwicklung immer davon laufen.

Welche 6 Strukturdiagramme gibt es?

Klassendiagramm: Konstruktionszeichnung des Systems. Bildet Klassen, innere Struktur und Beziehungen ab

Paketdiagramm: Zeigt Pakete und Beziehungen zwischen Pakete

Komponentendiagramm: Zeigt Struktur des Systems

Kompositionsstrukturdiagramm: Zeigt konkreten inneren Aufbau einer Komponente

Objektdiagramm: Zeigt Instanzen und Beziehungen/Inhalt zwischen Instanzen zu eniem bestimmten Zeitpunkt zur Laufzeit des Systems

Verteilungsdiagramm/Einsatzdiagramm: Zeigt konkrete Installation eines Systems

Welche 6 Verhaltensdiagramme gibt es?

Anwendungsfalldiagramm: WAS leistet das System für den Anwender

Aktivitätsdiagramm: WIE realisiert das System etwas grob. Verfeinert use-cases

Zustandsdiagramm: Zustand und Zustandswechsel einer Klasse

Sequenzdiagramm: Fein, dokumentiert den konkreten Ablauf z.B. einer Methode

Kommunikationsdiagramm: Wer kommuniziert mit wem, NICHT wann

Zeitverlaufsdiagramm: Zustände und Zustandswechsel von mehreren Objekten in einem Zeitintervall

Was ist das Verhältnis zwischen Architektur, Entwurf und Konstruktion.

Architektur (nicht-funktionale Anforderungen) ist teil des Entwurfs und daraufhin erfolgt die Konstruktion (funktionale Anforderungen.

Was ist eine Manifestationsform der Architektur und was wird damit erreicht?

Mehrebenenarchitektur wie MVC. Damit erreicht man die Austauschbarkeit von Ebenen

Was ist Architektur?

Das Konzept ein Anwendungssystem in grundlegende Komponenten zu zerlegen und deren Zusammenspiel über Schnittstellen zu beschreiben.

Was ist Anforderungserhebung?

Welche Anforderungsarten gibt es?

Anforderungserhebung ist der Übersetzungsprozess von der Fachperspektive in die Entwicklerperspektive.

Nicht-funktionale Anforderungen: Wartbarkeit (Architekturentscheidung), Robustheit usw.

funktionale Anforderungen: Was das System machen soll (Konstruktionsentscheidung)

Welche UML-Diagramme finden sich in der Anforderungsdefinitionsphase des Wasserfallmodells wieder?

Hier werden Anforderungen von Fachperspektive in Entwicklerperspektive überführt.

Use-Case: Welche Aufgaben muss das System für den Benutzer generell erfüllen (Kundensicht)

Aktivity: Wie müssen diese Aufgaben konkret erfüllt werden (Kundensicht)

Fachklassenmodell: Aus Fließtext die erste Abstraktion der Anforderungen. Wie hängen die einzelnen Klassen auch in der Realität zusammen.

Welche UML-Diagramme finden sich in der Entwurfsphase des Wasserfallmodells wieder?

Klassendiagramm: Verfeinerung des Fachklassenmodells z.B. durch erste benötigte Attribute und Methoden.

Komponentendiagramm: Aufteilung des Systems in Programmbestandteile zur Zuteilung zu bestimmten Entwicklern.

Paketdiagramm: Welche Pakete und Beziehungen können erstellt werden.

Zustandsdiagramm: Beschreibt mögliche/erlaubte, Zustände/Werte einer Klasse und deren erwartete Veränderung

Welche UML-Diagramme finden sich in der Implementationsphase des Wasserfallmodells wieder?

Klassendiagramm: Anpassung/Erweiterung des Klassenmodells an Probleme die sich aus dem Entwicklungsprozess ergeben (z.B. weitere (Hilfs-)Attribute und Methoden, zusätzliche Abstraktion)

Sequenzdiagramm: umgesetzter Ablauf einer Methode und Code Abarbeitung

Kompositionsstrukturdiagramm: Konkrete Implementation einer Komponente aus der Entwurfphase

Welche UML-Diagramme finden sich in der Testphase des Wasserfallmodells wieder?

Klassendiagramm: Abgleichen der fertigen Implementation mit der "Konstruktionszeichung". Wurde alles eingehalten und das System gemäß den Anforderungen konstruiert?

Objektdiagramm: Instanzen und Beziehungen zu einem bestimmten Zeitpunkt lassen sich beim debuggen nachvollziehen und prüfen.

Welche Historischen Abschnitte gibt es bisher in der Softwareentwicklung und was waren Ihre Paradigmen?

1. "Kunst": Maschinencode

2. "Normierung": Sprungorientierung

3. "Strukturierung": Sequenzierung/Iteration/Verzweigung, Kein Sprung,

4. "Objektorientierung": Abstraktion, Kapselung