Softwaretechnik (Subject) / Softwaretechnik Theorie (Lesson)

There are 119 cards in this lesson

Mögliche Klausurfragen

This lesson was created by razi90.

Learn lesson

  • Wie ist Software Engineering (Softwaretechnik) Definiert? -die Entwicklung -die Pflege und -der Einsatz qualitativ hochwertiger Software unter Einsatz von -wissenschaftlichen Methoden -wirtschaftlichen Prinzipien -geplanten Vorgehensmodellen -Werkzeugen und -quantifizierbaren Zielen
  • Nenne die acht ethischen Regeln für Softwareentwickler -Öffentlichkeit -Kunde und Arbeitgeber -Produkt -Beurteilung -Management -Beruf -Kollegen -Selbst
  • Erläutere die Ethische Grundregel der Öffentlichkeit! Softwareentwickler sollen in Übereinstimmung mit dem öffentlichen Interesse handeln
  • Erläutere die Ethische Grundregel "Kunde und Arbeitgeber"! Softwareentwickler sollen auf eine Weise handeln, die im Interesse ihrer Kunden und ihres Arbeitgebers ist und sich mit dem öffentlichen Interesse deckt
  • Erläutere die Ethische Grundregel "Produkt"! Softwareentwickler sollen sicherstellen, dass ihre Produkte und damit zusammenhängende Modifikationen den höchstmöglichen professionellen Standards entsprechen
  • Erläutere die Ethische Grundregel "Beurteilung"! Softwareentwickler sollen bei der Beurteilung eines Sachverhaltes Integrität und Unabhängigkeit bewaren
  • Erläutere die Ethische Grundregel "Management"! Für das Software Engineering verantwortliche Manager und Projektleiter sollen sich bei ihrer Tätigkeit ethischen Grundsätzen verpflichtet fühlen und in diesem Sinne handeln
  • Erläutere die Ethische Grundregel "Beruf"! Softwareentwickler sollen die Integrität und den Ruf des Berufs in Übereinstimmung mit dem öffentlichen Interesse fördern
  • Erläutere die Ethische Grundregel "Kollegen"! Softwareentwickler sollen sich ihren Kollegen gegenüber fair und hilfsbereit verhalten
  • Erläutere die Ethische Grundregel "Selbst"! Softwareentwickler sollen sich einem lebenslangem Lernprozess in bezug auf ihren Beruf unterwerfen und anderen eine ethische Ausübung ihres Berufs vorleben
  • Was versteht man unter "Software Requirements"? "Was" soll ein Software-System leisten (und warum)
  • Was versteht man unter "Software Design"? "Wie" soll die Software die Anforderungen erfüllen (Bauplan, Architektur)
  • Was versteht man unter "Software Construktion"? Das Software-System wird gemäß Bauplan realisiert
  • Was versteht man unter "Software Testing"? Systematische Suche und Beseitigung von Fehlern
  • Was versteht man unter "Software Maintenance"? Pflege und Weiterentwicklung der Software nach der Auslieferung
  • Was versteht man unter "Software Configuration Management"? Die Verwaltung von Softwareversionen und Softwarekonfigurationen
  • Was versteht man unter "Software Engineering Management"? (Projekt-)Management von Personen, Organisationen, Zeitplänen, ...
  • Was versteht man unter "Software Engineering Process"? Definition und Verbesserung von Software-Entwicklungsprozessen
  • Was versteht man unter "Software Engineering Tools and Methods"? Werkzeuge und Methoden für die Software-Entwicklung
  • Was versteht man unter "Software Qualität"? (1-36) Messen und Verbessern der Software-Qualität
  • Nenne die acht Qualitätskriterien! -Korrektheit von Software -Zuverlässigkeit von Software -Robustheit von Software -Vertrauenswürdigkeit von Software-Effiziez -Effiziez -Wartbarkeit von Software -Portierbarkeit von Software -Kompatibilität von Software
  • Wann ist Software korrekt? Was ist das Problem? (2-10) Wenn sie sich genau so verhält, wie es in der Anforderungsdefinition festgelegt wurde! Das Problem ist, dass Anforderungsdefinitionen häufig informal und eigentlich nie ganz wiederspruchsfrei sind!
  • Wann ist Software zuverlässig? Wann ist sie korrekt? (2-11) Zuverlässige Software funktioniert meistens, Zuverlässigkeit ist ein Maß für die Wahrscheinlichkeit, dass ein Software-System sich in einem bestimmten Zeitraum so verhält, wie es von ihm erwartet wird! Software ist korrekt, wenn sie zu 100% zuverlässig ist!
  • Nenne drei Metriken für die Bewertung von Zuverlässigkeit! (2-12) -reate of failure occurrence (ROFOC) -mean time to failure (MTTF) -availability (AVAIL)
  • was sagt die Metrik "rate of failure occurence " aus? (2-12) Häufigkeit von nicht erwartetem Verhalten, z.B. 2 Fehler pro 100 operationellen Zeiteinheiten
  • was sagt die Metrik "mean time to failure " aus? (2-12) mittlerer Zeitabstand zwischen zwei Fehlern
  • was sagt die Metrik "availability" aus? (2-12) mittlere Verfügbarkeit der Software, z.B. 998 von 1000 Zeiteinheiten war das System benutzbar
  • Was versteht man unter "Robustheit" von Software? (2-13) Ein Softwaresystem ist robust, wenn es auch unter unvorhergesehenen Umständen funktioniert bzw vernünftig reagiert (z.B. auf zufällige oder beabsichtigte Angriffe)
  • Wann ist Software "Vertrauenswürdig"? (2-14) Vertrauenswürdige Software verursacht auch im Fehlverhalten keine Katastrophen [inkorrekte Software kann vertrauenswürdig sein (z.B. wenn die Software keinen wirklichen Schaden anrichten kann) korrekte Software muss nicht Vertrauenswürdig sein (z.B. bei Fehlern in der Anforderungsdefinition]
  • Wann ist Software Effizient? Welches Problem gibt es dabei? (2-15) Effiziente Software nutzt Hardware Ressourcen (hinreichend) ökonomisch (so dass auf der verfügbaren Hardware die Software benutzbar ist) Problem: Die Rechenzeit steht im Wiederspruch zum Speicherbedarf
  • Was versteht man unter der Wartung von Software? Wodurch lässt sich Software besser Warten? Nenne fünf Punkte! (2-17) Änderungen an der Software aufgrund von Fehlern oder geänderten Anforderungen! -Aktuelle Dokumentation -Vernünftige Kommentare -Versionskontrolle -Formaler Change-Request Prozess -Software sollte keine Seiteneffekte haben oder ausnutzen
  • Wann ist Software Portierbar? (2-18) Wenn sie (ohne großen Änderungsaufwand) in verschiedenen Umgebungen läuft
  • Wann ist Software kompatibel? Was ist wichtig um eine hohe Kompatibilität zu erreichen? (2-19) Kompatible Software kann leicht mit anderer Software kooperieren (oder durch Konkurenzprodukte ersetzt werden) -Standarts für Schnittstellen, Austauschformate -offene Systeme mit austauschbaren Komponenten
  • Womit sind die vier Ecken des Teufelsquadrates beschriftet? -Qualität -Quantität -Entwicklungsdauer -Entwicklungskosten
  • Welche beiden Kriterien gehören im Teufelsquadrat jeweils zusammen? (2-23) null
  • Wie ist ein "Projekt" definiert? -In sich abgeschlossenes, Inhaltliches Vorhaben, in dem neuartige und unbekannte Probleme gelöst werden -Beinhaltet eine oder mehrere Phasen -Klare Ziele -Unterschiedliche Methoden -Besonderes Risiko -Zeitlich begrenzt -Eigenes Budget
  • Welche Personen gehören zu einem Team? (3-24) -Projektleiter -Gruppenleiter -Analytiker -Integrator -Programmierer -Tester -Qualitätssicherer
  • Nenne 3 Modelle für die Zusammensetzung von Arbeitsgruppen! (3-27) -Anarchische Arbeitsgruppen -Demokratische Arbeitsgruppen -Chefpprogrammierer-Team
  • Was ist eine Anarchische Arbeitsgruppe? (3-28) Entwickler arbeiten Autonom nach eigenen Vorgaben
  • Nenne vor und Nachteile einer Anachischen Arbeitsgruppe! (3-28) -Vorteile -Entwickler arbeiten selbstbestimmt, keine Herarchie-Probleme, kaum bürokratische Hindernisse -Nachteile -Standards/Normen lassen sich nicht durchsetzen -Launen der Mitarbeiter bestimmen Planung, Abstimmung zwischen den Mitarbeitern und die Einführung neuer Technologien und Nethoden -Organisation ist nicht lernfähig
  • Was ist die idee einer Demokratische Arbeitsgruppe? (3-29) Die Beziehung zwischen Programmierer und Produkt auflösen, indem alle Gruppenmitglieder gleichberechtigt sind. Die Gruppe muss dafür eine Gemeinsame Vision haben und das Suchen und finden von Fehlern darf nicht persönlich genommen werden.
  • Welche Probleme wirft die Demokratische Arbeitsgruppe aus? (3-29) -Viele Komunikationswege, dajeder mit jedem sprechen muss. -Gruppe funktionier nur, solange es keine Beförderungen oder Rangordnungen gibt.
  • Wie sieht ein Chefprogrammiererteam aus? Durch welche Änderung wird es häufig verbessert? Chefprogrammierer Ersatzprogrammierer Programmierassistent Verbesserung: Chefprogrammierer --> Gruppenleiter (Technische Belange) Ersatzprogrammierer --> Gruppenmanager (organisatorische und wirtschaftliche Aufgaben)
  • Was versteht man unter einer Primärorganisation?(3-36) Organisationsstruktur des Herstellers (Aufgabenverteilung / Beziehungen zwischen den Mitarbeitern)
  • Was versteht man unter der sekundärorganisation Eine Projektgruppe
  • Welche Organissationsformem gibt es? (Nenne 6) (3-36) -Linienprojektorganisation -Stabslinienprojektorganisation -Matrixprojektorganisation -Reine Projektorganisation -Auftragsprojektorganisation -Projektgesellschaft
  • Was versteht man unter Linienprojektorganisation? (3-38) Keine eigene Projektorganisation, sondern Projekte werden in die Primärorganisation integriert.
  • Nenne vor und Nachteile einer Linienprojektorganisation! (2-38) Vorteile: -Geringer Aufwand mit kurzen Komunikationswegen -Kein Wechsel von Kompetenzen Nachteile: -Bedeutung eines Projektes wird nicht durch die Organisation sichtbar -Weniger Akzeptanz für ein Projekt -Konflikt zwischen Tages und Projektarbeit
  • Was versteht man unter Stabslinienprojektorganisation? (3-40) Die Projektleitung erfolgt durch eine Stabsstelle, die der Firmenleitung direkt untergeordnet ist. Die Stabsstelle hat keine formale Weisungsbefugniss gegenüber Linienmitarbeitern.
  • Nenne vor und Nachteile der Stabslinienorganisation!(3-40) Vorteile: -Bedeutung des Projekts wird durch Stabsstelle deutlich -Kein Eingriff auf Linienorganisation -Geringer Aufwand -Flexibler Personaleinsatz Nachteile: -Geteilte Weisungsbefugnis -Lange Kommunikationswege