Softwaretechnik

  1. Womit beschäftigt sich die (häufig auch als "Software Engineering" bezeichnete) Disziplin "Software-Technik"?
    Mit der systematischen Entwicklung von Software
  2. Was ist die UML und wozu dient sie?
    Unified Modelling Language = dient zur Veranschaulichung der Vorgänge/Beziehungen durch vereinfachte Symbolik
  3. Nennen Sie mindestens vier Diagrammtypen, die seitens der UML unterstützt werden!
    • Aktivitätsdiagramm
    • UseCase Diagramm
    • Klassendiagramm
    • Sequenzdiagramm
  4. Zeichnen Sie ein UML-Aktivitätsdiagramm, das die folgenden Aktionen enthält:
    - Kreditkarte in Lesegerät stecken
    - Geheimzahl eingeben
    - eingegebene Geheimzahl bestätigen
    - Kreditkarte aus Lesegerät nehmen
    - Zahlungsbeleg entgegen nehmen

    Berücksichtigen Sie dabei die beiden folgenden Fälle:
    - Karte nicht lesbar
    - falsche Geheimzahl eingegeben
    Image Upload 2
  5. Lassen sich in Aktivitätsdiagrammen auch nebenläufige Aktionen ("parallele" Vorgänge) darstellen? Wenn ja: Wie? Wenn nein: Warum nicht?
    Ja. Nebenläufig: Querbalken mit 2 Vertikallinien runter, „parallel“ ist n kack wort.
  6. Aktivitätsdiagramme können sehr groß und unübersichtlich werden. Nennen Sie mehrere Möglichkeiten zur Erhöhung der Übersichtlichkeit!
    Farben, Prägnante Bezeichnungen, Struktur
  7. Was wird in der Software-Technik unter einem Vorgehensmodell verstanden?
    Vorgehensmodelle sind ausführliche “Anleitungen” für das Vorgehen in (komplexen) Software-Entwicklungsprojekten. Phasen, Rolle, Methoden (IKEA)
  8. Tragen Sie die Begriffe "Anforderungsanalyse", "Grobdesign", "Feindesign", "Implementierung", "Test und Integration" und "Qualitätssicherung" an den richtigen Stellen in das nebenstehende Diagramm ein!
    Image Upload 4
  9. In welcher der genannten Phasen wird geklärt, was das beabsichtigte IT-System leisten soll?
    AnforderungsANALyse
  10. Worin bestehen die Aufgaben des Grobdesigns?
    Übertragung der Informationen der Anforderunganalyse in die Sprache der Software-Entwickler
  11. Welche grundsätzlichen Phasen lassen sich im Software-Entwicklungsprozess unterscheiden?
    • Anforderungsanalyse
    • Grobdesign
    • Feindesign
    • Implementierung
    • Test und Integration
    • Qualitätssicherung
  12. Erläutern Sie kurz das "Wasserfall-Modell" und diskutieren Sie Vor- bzw. Nachteile dieser Vorgehensweise
    • Die Phasen laufen strikt nacheinander ab.
    • Eine Phase muss vollständig abgeschlossen sein, bevor die nächste Phase beginnen kann.
    • Probleme im Software-Projekt werden sehr lange verschleppt oder erst spät sichtbar.
    • Meistens kann nicht garantiert werden, dass alle Phasen auf Anhieb erfolgreich abschließen.
    • Annahme, dass alle Anwender-Anforderungen nach erster Phase vollständig vorliegen, ist falsch.
    • Oft werden erst bei der Implementierung “Spezifikationslöcher” deutlich.
  13. Worin besteht die grundsätzliche Aufgabe der Anforderungsanalyse?
    eine Bedingung oder eine Fähigkeit funktionaler oder nicht funktionaler Natur, welche ein Produkt erfüllen bzw. haben muss
  14. Was versteht man im Rahmen der Anforderungsanalyse unter einem "Stakeholder"?
    Person, die das Steak hält
  15. Welche Rolle spielt der Kunde bei der Anforderungsanalyse?
    Er gibt Geld und stellt dumme Fragen. Gibt Kaffe aus, wenn man bei ihm ist.
  16. Worin unterscheiden sich Lastenheft und Pflichtenheft?
    Das Pflichtenheft beschreibt in konkreterer Form, wie der Auftragnehmer die Anforderungen im Lastenheft zu lösen gedenkt – das sogenannte wie und womit.

    Das Lastenheft (teils auch Anforderungsspezifikation, Anforderungskatalog, Produktskizze, Kundenspezifikation oder Requirements Specification) beschreibt die Gesamtheit der Forderungen des Auftraggebers an die Lieferungen und Leistungen eines Auftragnehmers.
  17. Erläutern Sie kurz, was unter einem Anwendungsfall (engl. "use case") verstanden wird!
    Ein Anwendungsfall (engl. use case) bündelt alle möglichen Szenarien, die eintreten können, wenn ein Akteur versucht, mit Hilfe des betrachteten Systems ein bestimmtes fachliches Ziel (engl. business goal) zu erreichen.
  18. Wie lassen sich Anwendungsfälle in der Praxis systematisch dokumentieren?
    Mit UML-Diagrammen (Anwendungsfall)
  19. Was wird in den Vor- und Nachbedingungen eines Anwendungsfalls beschrieben?
    Vorbedingungen (preconditions) Alle Bedingungen, die erfüllt sein müssen, damit dieser Anwendungsfall ausgeführt werden kann. Gibt es keine Vorbedingungen, so steht hier "keine".

    Nachbedingung / Ergebnis (postconditions) Der Zustand, der nach einem erfolgreichen Durchlauf des Anwendungsfalls erwartet wird.
  20. Erläutern Sie kurz den Begriff der "funktionalen Anforderung"!
    Eine funktionale Anforderung legt fest, was das Produkt tun soll.
  21. Was versteht man unter einer nicht-funktionalen Anforderung? Nennen Sie mindestens drei Beispiele für nicht-funktionale Anforderungen!
    Eine nichtfunktionale Anforderung legt fest, welche Eigenschaften das Produkt haben soll: Ästhetik, Effizienz, Stabilität
  22. Welche Probleme kann es geben, wenn Menschen Anforderungen aus ihrer Sicht formulieren?
    Verständnis. Usw
  23. Nennen Sie fünf typische Anwendungsfälle für die Nutzung eines E-Mail-Programms und erstellen Sie das zugehörige UML-Diagramm!
    blaaaaa =)
  24. Warum spielen Prototypen in unterschiedlichen Vorgehensmodellen eine wichtige Rolle?
    Test, Vorabversion, usw.
  25. "Benutzergeschichten" sind ein zentrales Element im "Extreme Programming". Erläutern Sie in wenigen Sätzen, was man dort unter eine Benutzergeschichte versteht und wozu sie im Rahmen des Software-Entwicklungsprozesses dient!
    • Kunde ruft an, Kunde will was.
    • Der Wunsch wird eingetragen, mit zeitschätzung, problem, ungefährer lösung, dem bearbeiter bzw. verantwortlichen.
  26. Worin besteht die grundsätzliche Aufgabe der Entwurfsphase?
    WIE machen wir das?
  27. Erläutern Sie kurz mit eigenen Worten den Begriff der
    "Software-Architektur"!
    Das Zusammenspiel der Komponenten der Software
  28. Was wird unter "Objekt-Persistenz" verstanden?
    Persistenz ist in der Informatik der Begriff, der die Fähigkeit bezeichnet, Daten (oder Objekte) in nichtflüchtigen Speichermedien wie Dateisystemen oder Datenbanken zu speichern.
  29. Was ist ein "GUI mockup" und wozu ist es gut?
    GUI Attrappe (Schablone) nur das aussehen, keine Funktion.
  30. Wozu dienen in der UML Stereotypen? Nennen Sie mindestens drei Beispiele für die Verwendung von Stereotypen in UML-Diagrammen!
    Wie ein Konstruktor in JAVA (Aus einfachen Elementen iwas zusammenbauen, was man projektspezifisch definiert und verwendet) Der Name Wird in Winkelklammern eingeschlossen <<iwas>>
  31. Klassen und Objekte können in vielfältigen Beziehungen zueinander stehen. Nennen Sie Beispiele für derartige Beziehungen ("Assoziationen") und geben Sie auch die zugehörige UML-Notation an!
    Image Upload 6
  32. Zeichnen Sie ein UML-Klassendiagramm, das folgende Begriffe enthält:
    Point2D für einen Punkt mit x- und y-Koordinate
    GeomObj für eine (ebene) geometrische flächenhafte Figur
    Rectangle für eine rechteckige Figur
    Circle für eine kreisförmige Figur
    area für den Flächeninhalt einer geometrischen Figur
    BoundingBox
    Image Upload 8
  33. Gegeben seien zwei Java-Klassen:

    public class Bankkonto {
    private double guthaben;
    private Person kontoInhaber;
    public void verbuchen(double betrag) { ... }
    public Person inhaber() { ... };
    }

    public class Person {
    private String name;
    private String vorname;
    ...
    }
    Erstellen Sie ein das zugehörige UML-Klassendiagramm!
    siehe Aggregation
  34. Die Klassen Bankkonto und Person stehen in Beziehung zueinander. Welche Formen von Beziehungen ("Assoziationen") zwischen Klassen kennen Sie?
    • Aggregation
    • Komposition
    • Vererbung
  35. Es sei eine Anwendung zur Reiserouten-Findung betrachtet. Eine "Reiseroute" bezeichnet dabei eine Liste von Orten, die gemäß der Besuchsreihenfolge der Orte sortiert ist). Erstellen Sie ein UML-Klassen-Diagramm, das folgende Begriffe enthält:
    Ort
    Verkehrsverbindung
    Entfernung
    Reiseroute
    Joar.. *kritzelkritzel* .. fertig =)
  36. Erläutern Sie die Assoziationstypen "Aggregation", "Komposition" und "Vererbung" und nennen Sie zu diesen drei Typen jeweils ein Beispiel
    • Aggregation: menge X <--> menge X
    • Komposition: WENN A, dann muss B in A z.B. mindestens 1 mal drin sein
    • Vererbung: B hat die Eigenschaften von A
  37. Ist es möglich, automatisiert aus UML-Klassendiagrammen Programmcode-Gerüste (z. B. in Java) zu generieren?
    Ja, nennen sich Parser.
  38. Was versteht man unter "Reverse Engineering"?
    Das, was die Chinesen so machen.. ;)
  39. Wozu dienen UML-Sequenzdiagramme?
    Das Sequenzdiagramm ist ein Verhaltensdiagramm, genauer eines der vier Interaktionsdiagramme. Es zeigt eine bestimmte Sicht auf die dynamischen Aspekte des modellierten Systems. Ein Sequenzdiagramm ist eine grafische Darstellung einer Interaktion und beschreibt den Austausch von Nachrichten zwischen Ausprägungen mittels Lebenslinien.
  40. Worin unterscheiden sich in der UML Aktivitäts- und Sequenzdiagramm?
    Ein Sequenzdiagramm stellt in der Regel einen Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufes dar. Sollen Übersichten mit allen Entscheidungsmöglichkeiten entwickelt werden, so müsste hierzu für jeden möglichen Ablauf ein eigenständiges Sequenzdiagramm modelliert werden; deshalb eignet sich hierfür eher das Aktivitätsdiagramm oder Zustandsdiagramm.
  41. Erläutern Sie in Verbindung mit Sequenzdiagrammen folgende Begriffe:
    Nachricht
    Lebenslinie
    Ereignis
    Interaktion
    Aktivierungsbalken
    Objektdestruktion
    • Lebenslinie: Lebenslinien repräsentieren die Objekte, zwischen denen in einer Interaktion Nachrichten ausgetauscht werden.
    • Nachricht: Eine Nachricht (Message) ist die Kommunikationseinheit, die bei der Kommunikation zwischen zwei Objekten ausgetauscht wird. Eine Nachricht kann für drei Arten von Kommunikationen stehen, nämlich: für den synchronen Aufruf einer Operation, für den asynchronen Aufruf einer Operation, für die asynchrone Übermittlung eines Signals.
    • Ereignis: Die UML2 nennt solch einen „Anstoß“ Ereignisauftritt (event occurrence) und nicht Ereignis. Unter Ereignis versteht die UML2, die Art oder den Typ des Ereignisauftritt.
    • Interaktion: Eine Interaktion ist die Spezifikation eines Verhaltens, das als Austausch von Nachrichten zwischen Objekten beschrieben wird.
    • Aktivierungsbalken: Request von A nach B interaktiv.
    • Objektdestruktion: bla
  42. Erläutern Sie das Konzept, das hinter dem Model View-Controller-Ansatz steht!
    Model View Controller (MVC, deutsch: Modell Präsentation-Steuerung) ist ein Architekturmuster zur Strukturierung von Software-Entwicklung in die drei Einheiten Datenmodell (engl. model), Präsentation (engl. view) und Programmsteuerung (engl. controller). Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die das gleiche Modell benutzt, aber einerseits eine Windows- oder Linux-Oberfläche realisiert, andererseits aber auch eine Weboberfläche beinhaltet. Beides basiert auf dem gleichen Modell, nur Controller und View müssen dabei jeweils neu konzipiert werden.
  43. Was wird unter "Refactoring" verstanden und wozu wird es eingesetzt?
    Refactoring (deutsch auch Refaktorierung, Restrukturierung oder Umgestaltung) bezeichnet in der Software Entwicklung die manuelle oder automatisierte Strukturverbesserung von Programm-Quelltexten unter Beibehaltung des beobachtbaren Programm-Verhaltens. Dabei sollen die Lesbarkeit, Verständlichkeit, Wartbarkeit und Erweiterbarkeit verbessert werden, mit dem Ziel, den jeweiligen Aufwand für Fehleranalyse und funktionale Erweiterungen deutlich zu senken.
  44. Nennen Sie mindestens drei Beispiele für Refactoring Methoden!
    • Umbenennen
    • Wert ändern
    • GROß/klein
  45. Lassen sich dem Programmierer Refactoring-Funktionen innerhalb einer IDE bereitstellen ("Refactoring auf Knopfdruck")?
    jaaaaaa man mit Eclipse
  46. Wozu dienen folgende Entwicklungswerkzeuge?
    Debugger
    Build-Tool
    Versionsverwaltung
    Logging-Tool
    • Zum Debuggen
    • Um einen Build zu erstellen
    • SVN jede Version der datei wird gespeichert
    • R U kidding me?
  47. Erläutern Sie kurz den Begriff der Zusicherung (engl. "assertion") in Verbindung mit derProgrammierung! Welchen praktischen Nutzen haben Zusicherungen?
    • z.B. true-false statement
    • gut, um Schalter zu machen / entscheidungsHilfe
  48. Was ist ein "Unit-Test"?
    unit testing is a method by which individual units of source code are tested to determine if they are fit for use
  49. Was macht ein "Bug-Tracking-System" und welche Funktionen sollte es bieten?
    In der Regel eine Datenbank, die Fakten über bekannte Bugs speichert, mit der Beschreibung und einem Lösungsansatz, Zeitstempel usw.
Author
r3b1r7h
ID
101622
Card Set
Softwaretechnik
Description
Softwaretechnik Klausur
Updated