SWEII
Software Engineering 2
Software Engineering 2
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