Software Engineering II
Informatik, 4. Semester
Informatik, 4. Semester
54
5.0 (2)
Set of flashcards Details
Flashcards | 54 |
---|---|
Language | Deutsch |
Category | Computer Science |
Level | University |
Created / Updated | 17.01.2017 / 28.11.2019 |
Weblink |
https://card2brain.ch/cards/20170117_software_engineering_ii?max=40&offset=40
|
Embed |
<iframe src="https://card2brain.ch/box/20170117_software_engineering_ii/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Von welchen Faktoren hängt die Wahl der Programmiersprache ab?
- Kenntnisse des Teams
- Anforderung des Kunden (Stichwort Integration in Systemlandschaft
- Lizenzerfordernisse der Entwicklungswerkzeuge
- Verfügbarkeit von notwendigen Frameworks und Bibliotheken
Was ist ein Framework?
- Applikationsskelett, welches vom Entwickler angepasst (spezialisiert) werden kann, um Anforderungen optimal umzusetzen
- wiederverwendbarer Entwurf; oft durch Menge von abstrakten Klassen + Zusammenspiel ihrer Instanzen beschrieben
- effiziente Art der Softwarewiederverwendung
- Programmierung von Rahmen, die um Methodenimplementierungen ergänzt werden können
- können Steuerung gleichartiger Aufgaben übernehmen
- typische Nutzung: Nutzer instanziiert Framework-Komponenten, d.h übergibt seine Objekte zur Bearbeitung durch das Framework
- typischer Arbeitsschritt: Framework steuert, d.h. ruft Methoden der Nutzerobjekte auf
Was sind Bibliotheken?
- stellen Standardlösungen für häufig wiederkehrende Probleme dar
- typische Nutzung: Nutzer erzeugt und ruft Objekte (Klassen) der Bibliothek auf
- sind geprüft und für Laufzeiten optimiert
- ihre Dokumentation wichtig zum effizienten Einsatz
- je größer Verbreitungsgrad, desto einfacher die Weiterverwendung von Ergebnissen
Wozu Frameworks und Bibliotheken?
- decken oft benötigte Funktionalitäten ab --> Vermeidung von erneuten Implementierungen von Standardfunktionalitäten
- Wiederverwendung existierender Funktionalität --> Kosteneinsparung, gesteigerte Qualität
Auf welche zwei Arten erfolgt die Dokumentation in der Regel?
- innerhalb der Methode: Kommentare beschreiben konkrete Aufgabe eines bestimmten Code-Segments
- in Verbindung mit automatischen Dokumentationsgeneratoren: auch innerhalb der Klasse, aber Fokus liegt auf Methodenbeschreibungen; Verwendung definierter Tags --> Kommentare können automatisch ausgewertet werden --> Erzeugung einer umfassenden Dokumentation
Welche Arten von Dokumentationen gibt es?
- Verwaltungsdokumentation (Autor, Datum, ...)
- Schnittstellendokumentation (Voraussetzungen, Ergebniszusicherungen, ...)
- Deklarationsdokumentation (Bedeutung von Konstanten + Variablen)
- Ablaufdokumentation (Verdeutlichen des Algorithmus)
- Strukturdokumentation (statischer Aufbau des Programms; typisch durch Einrücken + Zwischentitel)
Welche Regeln gelten für das Dokumentieren?
- konsistent
- kein Nachbeten des Codes
- schlechen Code + Tricks nicht dokumentieren, sondern neu schreiben
- Programmstruktur durch Einrücken
- geeignete Namen
- Coderichtlinien beachten
- falscher Code wird durch ausführliche Dokumentation nicht richtig
- schlechter Code wird durch Dokumentation nicht besser
- nicht überdokumentieren
Was ist bei der Entwicklung im Team zu beachten?
- komplizierter als eine 1-Person-Entwicklung
- Notwendigkeit definierter Entwicklungsprozesse
- Verwaltung + Zuweisung der Tasks
- definierte Namingconventions + Codestrukturierungen
- Verwendung von Versionskontrollsystem
- Verwendung von Continuous Integration Tools
- Verwendung von Tools für Konfigurationsmanagement
- Notwendigkeit definierter Codeverantwortlichkeiten
Was besagt die 1-10-100-Regel bzgl. der Kosten der Fehlerbehebung?
- Faktor 1: bei Entdeckung durch den Programmierer selbst
- Faktor 10: bei Entdeckung durch einen Tester
- Faktor 100: bei Entdeckung im Live-Betrieb
Wie lässt sich "Softwaretest" definieren?
- formeller Prozess
- von speziellem Testteam durchgeführt
- bewilligte Testfälle
Was sind die Ziele des Softwaretests?
- Identifikation von Testfällen, mit denen die höchste Wahrscheinlichkit gegeben ist festzustellen, ob das Softwaresystem korrekt funktioniert
- guter Test =hohe funktionale oder nichtfunktionale Abdeckung
- Idenktfikation von Fehlern von Programmen
- Fehler gefunden --> Test erfolgreich
Was sind die sieben Grundsätze des Softwaretests?
- Testen zeigt die Anwesenheit von Fehlern
- Vollständiges Testen ist nicht möglich
- Mit dem Testen frühzeitig beginnen
- Häufung von Fehlern
- Wiederholungen haben keine Wirksamkeit
- Testen ist abhängig vom Umfeld
- Trugschluss: Keine Fehler bedeuten ein brauchbares System
Was gibt es für Arten von Tests?
- Integrationstest
- Big-Bang-Integration
- Top-Down-Integration
- Bottom-Up-Integration
- Vertikale Integration
- Systemtest
- Akzeptanztest
- Funktionale Softwaretests
- strukturelle Abdeckung mit White-Box-Tests
- Anweisungsüberdeckungstest (C0)
- Zweigüberdeckungstest (C1)
- Einfacher Bedingungsüberdeckungstest (C2)
- Mehrfach-Bedingungsüberdeckungstest (C3)
- Pfad-Überdeckungstest (C4)
- funktionale Abdeckung mit Black-Box-Tests
- Äquivalenzklassenanalyse
- Grenzwertanalyse
- Informelle Testmethoden
- Kombination von beiden mit White- und Black-Box-Tests
- strukturelle Abdeckung mit White-Box-Tests
- Nichtfunktionale Softwaretests
- Performance-Test