Skip to content

Latest commit

 

History

History
1006 lines (648 loc) · 44.4 KB

ke01.md

File metadata and controls

1006 lines (648 loc) · 44.4 KB
recall
header

Womit beschäftigt sich das Software-Engineering?

Software Engineering beschäftigt sich mit der systematischen Entwicklung großer Softwaresysteme und Methoden, Techniken und Werkzeugen zur Entwicklung großer Software mit dem Ziel, Software hoher Qualität kostengünstig innerhalb eines festen Budgetrahmens und zum geplanten Zeitpunkt zu produzieren.

Was ist das Ziel von Software-Engineering?

Mit dem Software-Engineering werden die Ziele verfolgt große Softwareprojekte mit

  • hoher Qualität (Qualitätssicherung)
  • geringen Kosten (Management)
  • im Zeitrahmen (Management) abzuschließen.

Was umfasst der Begriff Softwareentwicklung?

Alle Aktivitäten, die zu einem lauffähigen Softwaresystem führen.

In welche Aktivitäten wird die Softwareentwicklung aufgeteilt?

  • produktbezogene Aktivitäten (Ergebnisse gehen direkt ins Produkt ein)
  • prozessbezogen Aktivitäten (Organisations- und Managementrahmen)

Was sind Beispiele für produktbezogene Aktivitäten der Softwareentwicklung?

  • Anforderungsermittlung
  • Entwurf
  • Implementierung

Was sind Beispiele für prozessbezogene Aktivitäten der Softwareentwicklung?

  • Projektplanung
  • Projektleitung
  • Projektkontrolle
  • Produktverwaltung
  • Qualitätsmanagement

Welche Eigenschaften von Software erschweren die Organisation der Entwicklung?

  • Software ist nicht sinnlich wahrnehmbar: Verständnis kann nur durch erklärende Texte oder Erprobung eines Produkts verstanden werden
  • Software ist Text: Sie kann wie ein Text an veränderliche Bedürfnisse angepasst werden.
  • Software ist digital: Verfahren der kontinuierlichen Ingenieursmathematik greift nicht. Wegen der großen Anzahl Zustände, sind die Mittel der Logik und Mathematik nur eingeschränkt praktikabel.

Wann gilt eine Software als "groß"?

  • >5 Personen arbeiten daran
  • Entwicklung >1 Jahr

Was sind die Eigenschaften großer Software?

  • Komplexität: Verknüpft mehrere Realitätsbereiche und Fachgebiete
  • Umfangreiche Artefakte: Spezifikationen, Programme, Dokumente
  • Lange Lebensdauer (>10 Jahre): Versionierung
  • Prägt Arbeitsweisen

Was ist von zentraler Bedeutung für das Software-Engineering bei großer Software?

Beherrschen von Komplexität

Was sind zwei wichtige Komplexitätsmaße?

  1. Kopplung
  2. Kohäsion

Was sind Anwendungssysteme?

Anwendungssysteme (oft kurz Anwendungen oder Applikationen genannt) sind Softwareprodukte, die in einem bestimmten Anwendungsbereich eingesetzt werden. Sie unterstützen Arbeitsprozesse (Auftragsbearbeitung, Lagerhaltung) oder steuern technische Prozesse (Flugüberwachung, Kraftwerksteuerung). Allgemein unterstützen Sie Geschäftsprozesse eines Unternehmens.

In welche drei Kategorien lassen sich Anwendungssysteme aufteilen?

  • Individualsoftware
  • Standardsoftware
  • Systemsoftware

Was ist eine Individualsoftware?

Ein Anwendungssystem, das für einen speziellen Auftraggeber in einem bestimmten Anwendungsbereich erstellt wird. Beispiele:

  • Steuerungssoftware für eine Fertigungsstraße
  • Website / Portal einer Firma

Was ist eine Standardsoftware?

Software, die einen bestimmten Anwendungsbereich abdeckt und durch Konfiguration an die unterschiedlichen Bedürfnisse verschiedener Anwender angepasst werden kann. Hierzu gehören z. B. Finanzbuchhaltungs- und Materialwirtschaftssysteme, Branchenlösungen für Handwerksbetriebe und Office-Programme für Textverarbeitung und Tabellenkalkulation.

Was ist Systemsoftware?

Anwendungen, die sich keinem bestimmten Anwendungsbereich zuordnen lassen. Beispiele:

  • Betriebssysteme
  • Compiler

Was ist ein Geschäftsprozess?

Die zusammengehörige Abfolge von Verrichtungen zum Zwecke einer Leistungserstellung. Ausgang und Ergebnis des Geschäftsprozess ist eine Leistung, die von einem internen oder externen Kunden angefordert und abgenommen wird.

Was ist ein Workflow?

Ein Workflow ist die Unterstützung oder Automatisierung von Geschäfts(teil)prozessen durch ein Computersystem.

Was sind Workflow-Modelle und wozu dienen sie?

Workflow-Modelle dienen für die Automatisierung von Geschäftsprozessen durch ein Computersystem. Sie präzisieren Details von Geschäftsprozessen und liefern eine konsistente Gesamtbeschreibung.

Was ist ein Synonym für die Workflow Analyse?

Business Process Reengineering

Welche 6 Punkte sind in einem Workflow-Modell spezifiziert?

  • Organisatorischer Aspekt: Wer führt aus
  • Funktionaler Aspekt: Was wird ausgeführt
  • Ablaufbezogener Aspekt: Wann (in welcher Reihenfolge) wird ausgeführt
  • Operationaler Aspekt: Wie wird ausgeführt
  • Informationsbezogener Aspekt: Womit wird ausgeführt (Inputs)
  • Kausaler Aspekt: Warum wird ausgeführt

Was sind Workflow Management Systeme?

Anwendungssysteme, mit denen Geschäftsprozesse als Workflow-Modell spezifiziert und ausgeführt werden können.

Wie lautet die Definition von Softwarequalität

Softwarequalität ist die Gesamtheit der Eigenschaften oder Merkmale, welche ein Produkt in Verwendung und (Weiter-)Entwicklung aufweist, um die gegebenen Anforderungen zu erfüllen.

In welche 2 Bereiche lässt sich Softwarequalität aufteilen?

  • Produktqualität
  • Gebrauchsqualität

Was zeichet die Produktqualität aus?

Die Produktqualität betrachtet die Qualität der Software unabhängig vom Einsatzkontext. Hierbei geht es um den Quellcode, den Binärcode und zugehörige Dokumente. Die Produktqualität wird anhand innerer Qualitätsmerkmale charakterisiert.

Was sind Beispiele für innere Qualitätsmerkmale?

  • Korrektheit der Software bezüglich Spezifikationen
  • Verständlichkeit
  • Änderbarkeit
  • Wiederverwendbarkeit

Was zeichet die Gebrauchsqualität aus?

Die Gebrauchsqualität bezieht sich auf die Fähigkeit der Software, die an sie gestellten Anforderungen im jeweiligen Einsatzkontext zu erfüllen. Die wird mittels äußerer Qualitätsmerkmale ermittelt.

Was sind Beispiele für äußere Qualitätsmerkmale?

  • Korrektheit bezüglich des Einsatzkontextes
  • Zuverlässigkeit
  • Effizienz
  • Aufgabenangemessenheit
  • Erwartungskonformität
  • Fehlerrobustheit

In welche 6 Qualitätsmerkmale unterteilt sich das Qualitätsmodell nach ISO 9126?

  • Änderbarkeit/Wartbarkeit (nichtfunktionale Anforderung: Qualität)
  • Benutzbarkeit (nichtfunktionale Anforderung: Qualität)
  • Effizienz (nichtfunktionale Anforderung: technisch)
  • Funktionalität (funktionale Anforderung)
  • Übertragbarkeit (nichtfunktionale Anforderung: Qualität)
  • Zuverlässigkeit (nichtfunktionale Anforderung: Qualität)

Was sind die 5 Kriterien für Änderbarkeit/Wartbarkeit (ISO 9126)?

  • Analysierbarkeit: Aufwand, um Mängel oder Ursachen von Versagen zu diagnostizieren oder um änderungsbedürftige Teile zu bestimmen.
  • Konformität: Grad, in dem die Software Normen oder Vereinbarungen zur Änderbarkeit erfüllt.
  • Modifizierbarkeit: Aufwand zur Ausführung von Verbesserungen, zur Fehlerbeseitigung oder Anpassung an Umgebungsänderungen.
  • Stabilität: Wahrscheinlichkeit des Auftretens unerwarteter Wirkungen von Änderungen.
  • Testbarkeit: Aufwand, der zur Prüfung der geänderten Software notwendig ist.

Was sind die 5 Kriterien für Benutzbarkeit (ISO 9126)?

  • Attraktivität: Anziehungskraft der Anwendung gegenüber dem Benutzer.
  • Bedienbarkeit: Aufwand für den Benutzer, die Anwendung zu bedienen.
  • Erlernbarkeit: Aufwand für den Benutzer, die Anwendung zu erlernen (zum Beispiel Bedienung, Ein-, Ausgabe).
  • Konformität: Grad, in dem die Software Normen oder Vereinbarungen zur Benutzbarkeit erfüllt.
  • Verständlichkeit: Aufwand für den Benutzer, das Konzept und die Anwendung zu verstehen.

Was sind die 3 Kriterien für Effizienz (ISO 9126)?

  • Konformität: Grad, in dem die Software Normen oder Vereinbarungen zur Effizienz erfüllt.
  • Zeitverhalten: Antwort- und Verarbeitungszeiten sowie Durchsatz bei der Funktionsausführung.
  • Verbrauchsverhalten: Anzahl und Dauer der benötigten Betriebsmittel bei der Erfüllung der Funktionen. - Ressourcenverbrauch, wie CPU-Zeit, Festplattenzugriffe usw.

Was sind die 6 Kriterien für Funktionalität (ISO 9126)?

  • Angemessenheit: Eignung von Funktionen für spezifizierte Aufgaben, zum Beispiel aufgabenorientierte Zusammensetzung von Funktionen aus Teilfunktionen.
  • Sicherheit: Fähigkeit, unberechtigten Zugriff, sowohl versehentlich als auch vorsätzlich, auf Programme und Daten zu verhindern.
  • Interoperabilität: Fähigkeit, mit vorgegebenen Systemen zusammenzuwirken.
  • Konformität: Fähigkeit des Softwareprodukts, Standards, Konventionen oder gesetzliche Bestimmungen und ähnliche Vorschriften bezogen auf die Funktionalität einzuhalten.
  • Ordnungsmäßigkeit: Merkmale von Software, die bewirken, dass die Software anwendungsspezifische Normen oder Vereinbarungen oder gesetzliche Bestimmungen und ähnliche Vorschriften erfüllt.
  • Richtigkeit: Liefern der richtigen oder vereinbarten Ergebnisse oder Wirkungen, zum Beispiel die benötigte Genauigkeit von berechneten Werten.

Was sind die 5 Kriterien für Übertragbarkeit (ISO 9126)?

  • Anpassbarkeit: Fähigkeit der Software, diese an verschiedene Umgebungen anzupassen.
  • Austauschbarkeit: Möglichkeit, diese Software anstelle einer spezifizierten anderen in der Umgebung jener Software zu verwenden, sowie der dafür notwendige Aufwand.
  • Installierbarkeit: Aufwand, der zum Installieren der Software in einer festgelegten Umgebung notwendig ist.
  • Koexistenz: Fähigkeit der Software neben einer anderen mit ähnlichen oder gleichen Funktionen zu arbeiten.
  • Konformität: Grad, in dem die Software Normen oder Vereinbarungen zur Übertragbarkeit erfüllt.

Was sind die 4 Kriterien für Zuverlässigkeit (ISO 9126)?

  • Fehlertoleranz: Fähigkeit, ein spezifiziertes Leistungsniveau bei Software-Fehlern oder Nicht-Einhaltung ihrer spezifizierten Schnittstelle zu bewahren.
  • Konformität: Grad, in dem die Software Normen oder Vereinbarungen zur Zuverlässigkeit erfüllt.
  • Reife: Geringe Versagenshäufigkeit durch Fehlerzustände.
  • Wiederherstellbarkeit: Fähigkeit, bei einem Versagen das Leistungsniveau wiederherzustellen und die direkt betroffenen Daten wiederzugewinnen. Zu berücksichtigen sind die dafür benötigte Zeit und der benötigte Aufwand.

Wie werden die Merkmale von Softwarequalität gemessen?

Interne und externe, ggf. zusammengesetzte, Metriken.

Welche Zielkonflikte bestehen bei den Qualitätskriterien einer Software?

  • Wird eine Software zu mächtig, geht dies ggf. zulasten der Angemessenheit (Funktionalität), weil dann bei kleinen Problemen mit Kanonen auf Spatzen geschossen wird
  • Effizienz kann zu verminderter Übertragbarkeit führen, weil Software auf eine Plattform / Hardware spezialisiert wird
  • Eine erhöhte Benutzbarkeit und Attraktivität kann zu Ungunsten der Effizienz führen, da optisch ansprechende Effekte den Ressourcenverbrauch erhöhen. Beispiel: vim, effizient aber unattraktiv

In welche Bereiche lässt sich die Dokumentation von Software unterteilen?

  • Systemdokumentation
  • Benutzerdokumentation

Was zeichnet eine gute Dokumentation aus?

Eine gute Dokumentation ist

  • vollständig
  • konsistent zur aktuellen Version
  • verständlich für Lesergruppe
    • strukturierter, logischer Aufbau
    • einheitliches Format
    • sachlich, präziser Schreibstil

In welche 6 Phasen teilt sich der Entwicklungsprozess auf?

  • Anforderungsermittlung (Requirements Engineering)
  • Analyse
  • Entwurf
  • Implementierung
  • Tests
  • Systemeinführung

Welche Personengruppen sind in die Anforderungsermittlung involviert?

  • Auftraggeber
  • zukünftige Benutzer
  • Anwendungsexperten
  • Projektleiter
  • Analytiker
  • Entwickler
  • Tester

In welche Kategorien werden die Anforderungen nach IEEE 830 unterteilt?

  • funktionale Anforderungen
    • Funktionen / Eigenschaften
      • Operationen
      • Abläufe
      • Ausnahmebehandlung
      • einzuhaltende Geschäftsregeln
    • externe Schnittstellen
      • Benutzerschnittstelle
      • Eingabeformat
      • Ausgabeformat
      • Schnitstellen für dritte Systeme
  • nichtfunktionale Anforderungen
    • technische Anforderungen
      • Performance
      • Lastverhalten
      • Beschränkungen durch Rahmenbedingungen (OS, DBMS, Entwicklungsumgebung, ...)
    • Qualitätsanforderungen
      • Nutzbarkeit
      • Zuverlässigkeit
      • Sicherheit
      • Wartbarkeit

In welche 5 Tätigkeiten lässt sich die Anforderungsermittlung unterteilen?

  • Extrahieren
  • Verhandeln
  • Spezifizieren
  • Verifizieren
  • Validieren

Was ist das Ziel des Extrahierens in der Anforderungsermittlung?

Wünsche und teils verborgene Anforderungen an das zu erstellene Softwareprodukt ermitteln und in für alle Beteiligten verständlicher Form explizit machen.

Was ist das Ziel des Verhandelns in der Anforderungsermittlung?

Ordnen der Anforderungen nach Wichtigkeit, Kritikalität, Stabilität. Deadlines für die Implementierungen jeder Funktion erstellen.

Was ist das Ziel des Spezifizierens in der Anforderungsermittlung?

Dokument erstellen, das als Entwicklungsgrundlage verbindliche Basis der Abnahmetests durch den Auftraggeber dient.

Welche Dokumente dienen als verbindliche Basis der Abnahmetests durch den Auftraggeber?

Anforderungsspezifikation

Was ist das Ziel des Validierens in der Anforderungsermittlung?

Validieren soll die Vollständigkeit der Anforderungsspezifikation sicherstellen und dass sie alle Erwartungen des Auftraggebers und der Benutzer trifft. "Building the right product."

Was ist das Ziel des Verifizierens in der Anforderungsermittlung?

Verfizieren soll die Korrektheit der Einzelspezifikationen sicherstellen und deren Konsistenz untereinander. "Building the product right."

Wozu dient die Analyse im Entwicklungsprozess?

Aufbereitung der Anforderungsspezifikation als Grundlage für den Entwurf. Dieser Schritt kann auch in die Anforderungsermittlung und den Entwurf aufgeteilt werden. Bei großen Projekten ermöglicht die Analyse als einzelner Schritt eine granularere Aufteilung des Entwicklungsprozesses.

Was ist Ziel des Entwurfs?

Auf Basis der Anwendungsspezifikation wird die innere Struktur der Software festgelegt. Hierbei ist das Ziel die Komplexität der Software durch Aufteilung in funktionale Einheiten, sog. Module, in beherrschbare Dimensionen zu bringen. Das Ergebnis des Entwurfs ist die Entwurfsspezifikation.

Was ist Inhalt der Entwurfsspezifikation?

Die Entwurfsspezifikation bescheibt das Zusammenspiel der Module der Software (APIs, Schichten, etc.). Programmtechnische Details sind nicht Teil des Entwurfs.

Was zeichnet eine gute Entwurfsspezifikation aus?

  • Jedes Modul behandelt ein zusammmenhängendes Teilproblem (starke Kohäsion)
  • Module untereinander sollten möglichst unabhängig sein (schwache Kopplung)
  • Die Schnittstelle eines Moduls soll nur beschreiben, was das Modul leistet, wie es das tut, sollte verborgen sein (Geheimnisprinzip, bessere Wartbarkeit)

Was ist Kohäsion?

Der problembezogene Zusammenhang von Operationen eines Moduls

Was ist eine Programmbibliothek?

Eine Programm- oder Klassenbibliothek ist eine Sammlung von selbstständigen Unterprogrammen / Modulen, die für die Wiederverwendung gedacht ist.

Was ist ein Rahmenwerk (Framework)?

Ein Framework ist eine Sammlung kooperierender Klassen, die Grundstruktur und Kontrollfluss in der Software für eine bestimmte Problemstellung anbietet. Das Framework bildet einen generischen Rahmen, der für eine Software genutzt, spezialisiert und "zusammengesteckt" werden kann. Es geht über eine Programmbibliothek hinaus, weil es Kontrollflüsse festlegt.

Was ist ein Entwurfsmuster (Design Pattern)?

Ein Entwurfsmuster ist ein Lösungsschema für gängige Herausforderungen in der Softwareentwicklung. Es beinhaltet keine konkreten Implementierungen, sondern nur Beschreibungen von Hierarchien, Verknüpfungen von Klassen und Kontrollflüssen, die sich in der Vergangenheit bewährt haben.

Was ist eine Komponente in der Softwareentwicklung?

In sich abgeschlossene Softwarebausteine, die gemäß einem Komponentenmodell aufgebaut sind und zusammengesteckt werden können (Beispiel COM, Enterprise Java Beans)

Was ist Ziel des Implementierungs-Phase?

Während der Implementierung werden die in der Entwurfsspezifikation beschriebenen Module in Programmcode umgesetzt. Das Ergebnis ist eine Ansammlung von Quelltexten der verschiedenen Module aber im Allgemeinen noch kein funktionsfähiges Programm

Was ist Ziel der Test-Phase?

Beim Testen wird geprüft, ob der Prüfgegenstand (Klasse, Modul, Applikation) seine Spezifikation erfüllt. Beginnend beim Einzeltest der Module (Unittest, Modultest) geht man durch Verknüfpung von Modulen zu Integrationstests und schließlich zum Systemtest über. Beim Auftraggeber erfolgt der Abnahmetest.

Was ist Ziel der Systemeinführung (Deployment / Rollout)?

Bei der Systemeinführung wird eine Software von der Entwicklungsumgebung in die Einsatzumgebung (Produktivumgebung) gebracht und die nötigen organisatorischen Maßnahmen beim Anwender durchgeführt. Zur Systemeinführung gehören auch vorbereitende Maßnahmen wie Schulungen, Druchführung von Beta-Tests, Einrichten einer Support Hotline.

Was ist ein Vorgehensmodell?

Vorgehensmodelle schaffen den organisatorischen Rahmen einer Entwicklungsaktivität. Die Entwicklung wird in Phasen unterteilt, die mit einem Meilenstein abgeschlossen werden. Sie sollen den Arbeitsablauf vereinheitlichen und langfristig stabil halten, um eine verlässliche Arbeitsgrundlage zu schaffen.

Welche Fragen muss ein Vorgehensmodell mindestens beantworten?

  • Worauf baut eine Aktivität auf?
  • Was soll bei einer Aktivität untersucht / entwickelt werden?
  • Mit welcher Methode / Technik soll das passieren?
  • Welche Ergebnisse sind zu erarbeiten?

Welche Vorgehensmodelle gibt es?

  • Wasserfallmodell
  • V-Modell
  • Spiralmodell
  • SCRUM
  • Extreme Programming
  • Kanban
  • Rational Unified Process
  • evolutionäres Prototyping
  • ...

Was ist das Wasserfallmodell?

  • adaptiert aus Bau- und Produktionsgewerbe (mit echt abgeschlossenen Phasen)
  • lineares (nicht iteratives) Vorgehensmodell
  • aufeinanderfolgende, abgeschlossene Phasen
  • keine Rückschritte

Was sind die (scheinbaren) Vorteile des Wasserfallmodells?

  • einfaches Management wegen klarer zeitlicher Vorgaben und abgeschlossener Phasen
  • vollständige und korrekte Ergebnisse nach jeder Phase (in der Theorie)
  • eigene Wartungs-Phase verdeutlicht, dass Arbeit über Rollout hinaus besteht

Was sind die Nachteile des Wasserfallmodells?

  • Softwareentwicklung hat keine abgeschlossenen Phasen
  • Menschen machen Fehler, Entdeckung in späteren Phasen, Rollback zur Korrektur nicht vorgesehen
  • Anforderungsspezifikationen sind niemals perfekt, kein Nachschärfen möglich
  • lauffähiges Produkt erst ganz am Ende (Big Bang), ggf. werden erst hier Fehler bemerkt
  • Zeitpläne nicht eingehalten -> späte Phasen (Tests!) entfallen teilweise
  • gebündelt am Ende testen ist schlechte Qualitätssicherung -> späte Erkennung von Fehlern

Wie wird versucht die Nachteile des Wasserfallmodells auszugleichen?

Wasserfall mit Iterationen ermöglicht Rückkehr in frühere Phasen. Testing bleibt allerdings zeitlich ans Ende gestellt.

Was ist Prototyping?

Die Erstellung von benutzbaren (Teil-)Funktionen einer Anwendung in frühen Entwicklungsstadien, um die Anforderungsspezifikation zu validieren.

Wozu dient das Prototyping?

Wünsche und Vorstellungen der Kunden / Benutzer können bestätigt / abgeklärt werden.

Welche Arten von Softwareprototypen gibt es?

  • horizontale Prototypen bilden die Software in der Breite ab. Beispiel: Klickdummy für ein GUI
  • vertikale Prototypen bilden einen speziellen Aspekt der Software ab. Beispiel: Datenbankanbindung

Wie gliedern sich Prototypen in den Verlauf der Entwicklung ein?

Der Prototyp selbst wird entweder verworfen (Wegwerfprototyp) oder weiterverwendet und eingebaut. Letzteres verschlechtert meist die Qualität des Endprodukts, weil Prototypen nicht besonders sorgfältig erstellt werden.

Welche Prototypen eigenen sich für welches Vorgehensmodell?

Wegwerfprototyp für jedes Modell, Prototypen, die verfeinert und integriert werden eigenen sich nur für iterative Vorgehensmodelle, da sonst eine Verfeinerung nicht vorgesehen ist

Was ist die iterative Vorgehensweise?

Bei iterativen Vorgehensweisen sind Wiederholungen und Korrekturen der bisherigen Arbeit vorgesehen.

Was ist die inkrementelle Vorgehensweise?

Der Entwicklungsprozess wird mehrfach für einzelne Features der Software durchgespielt. Hierdurch wird erreicht, dass nicht erst alles am Ende fertig wird (Big Bang), sondern auch schon während der Entwicklung die Richtung der Anwendung erkennbar ist. Die inkrementelle Vorgehensweise ist nicht zwingend auch iterativ, aber beide passen gut zusammen, da ggf. auch Änderungen am vorherigen Inkrement vorgenommen werden müssen, wenn man das nächste bearbeitet.

Was ist die evolutionäre Vorgehensweise?

Die eher theoretische Betrachtung des Problems über Anforderungsermittlung und Entwurf wird vernachlässigt und stattdessen sehr früh mit der Implementierung begonnen und so explorativ die Anwendung an die Geschäftsprozesse und Randbedingungen angepasst. Wird jeder so erarbeitete Stand als Prototyp behandelt, spricht man von evolutionärem Prototyping. Im Gegensatz zur inkrementellen Vorgehensweise bleiben hier die Anforderungen und Entwurfsüberlegungen lange unklar und müssen sich durch die Implementierung selbst herauskristallisieren, was auch zum Verwerfen der bisherigen Arbeit führen kann.

Wofür steht RUP?

Rational Unified Process

Was ist der Rational Unified Process?

Ein iteratives und inkrementelles Vorgehensmodell zur Softwareentwicklung mit stark überlappenden Entwicklungsphasen.

Was sind die 6 Core Workflows des Rational Unified Process?

  1. Geschäftsprozessmodellierung (Business Modeling)
  2. Anforderungsermittlung (Requirements)
  3. Analyse und Entwurf (Analysis and Design)
  4. Implementation
  5. Test
  6. Inbetriebnahme (Deployment)

Was geschieht bei der Geschäftsprozessmodellierung (Business Modeling) (RUP)?

Für das System relevante Geschäftsprozesse werden in Anwendungsfällen dokumentiert, um ein einheitliches Verständnis zwischen Systementwicklern und Anwendern zu schaffen

Welches sind die 4 Phasen des Rational Unified Process?

  • Konzeption (Inception)
  • Ausarbeitung (Elaboration)
  • Konstruktion (Construction)
  • Übergang in den Betrieb (Transition)

Was geschieht bei der "Konzeption" im Rational Unified Process?

Anforderungen an das System und Umfang des Projekts wird ermittelt. Erste Entwurfsüberlegungen und ggf. Implementierungen finden statt. Auflisten von

  • Erfolgsfaktoren
  • Projektrisiken
  • Aufwandschätzung
  • Terminplan

Abschluss der Phase bildet die Validierung der Anforderungen und Prüfung des Kosten- und Terminplans.

Was geschieht bei der "Ausarbeitung" im Rational Unified Process?

Abschluss der Anforderungsermittlung, erster ausführbarer Entwurfsprototyp

Was geschieht bei der "Konstruktion" im Rational Unified Process?

Weiterentwicklung des Entwurfsprototyp und Implementierung der ausstehenden Funktionen, Integration, Tests. Erste Beta-Version.

Was geschieht bei der "Übergang in den Betrieb" im Rational Unified Process?

System wird beim Anwender in Betrieb genommen. Ggf. Beta-Testing mit ausgewählten Benutzern. Manuals, Schulungen, Aufbau einer Support-Struktur. Abnahme durch Auftraggeber.

Was sind die 3 Core Supporting Workflows des Rational Unified Process?

  1. Konfigurationsverwaltung (Configuration- & Change Management)
  2. Projektmanagement
  3. Umgebung (Environment)

Was ist die Aufgabe des Supporting Workflows "Konfigurationsverwaltung" im Rational Unified Process?

Versionsverwaltung der prozessbegleitend erstellten Dokumente, Benachrichtigung bei Änderungen etc.

Was ist die Aufgabe des Supporting Workflows "Projektmanagement" im Rational Unified Process?

Zwischen konkurrierenden Zielen vermitteln. Risiken managen, Probleme beseitigen.

Was ist die Aufgabe des Supporting Workflows "Umgebung" im Rational Unified Process?

Bereitstellung von Hard- und Software für die Anwendungsentwicklung, Schulung und Unterstützung der Projektmitarbeiter.

Was ist Extreme Programming "XP"?

Ein Implementierungs-zentriertes, feininkrementelles, iteratives (evolutionäres) Vorgehensmodell der Softwareentwicklung.

Was sind die 13 "Praktiken" des Extreme Programming?

  • kleine Releases
  • Planspiel (Ermittlung der auszuarbeitenen Featues)
  • Tests
  • Systemmetapher
  • einfacher Entwurf (KISS)
  • Refaktorisierung
  • Programmieren in Zweierteams (Pair-Programming)
  • gemeinsames Code-Eigentum
  • Programmierrichtlinien
  • kontinuierliche Code-Integration (Continuous Integration)
  • Dokumentation (Selbstdokumentierend)
  • geregelte Arbeitszeiten
  • Anwendervertreter in Teams

Was versteht man unter der Praktik "Kleine Releases" des Extreme Programming?

  • Release-Zyklen von 1-3 Monaten mit wenigen Unterschieden zwischen den Releases
  • Mehrere Iterationen pro Release (1-3 Wochen)
  • Arbeitspakete in Iterationen (1-3 Tage)
  • Planung, Implementierung und Abnahmetests (durch Anwender) bei jedem Release

Was versteht man unter der Praktik "Planspiel" des Extreme Programming?

Planung eines Releases. Wünsche der Kunden werden in User Stories beschrieben, mit Prioritäten versehen und beim nächsten Inkrement berücksichtigt oder geschoben (Backlog).

Was versteht man unter der Praktik "Tests" des Extreme Programming?

Test Driven Development: Tests stellen die Anforderungen der Kunden dar. Tests sind vor der Implementierung einer User Story vorzunehmen.

Was versteht man unter der Praktik "Systemmetapher" des Extreme Programming?

Metaphern ersetzen Entwurfsspezifikationen und beschreiben einzelne Module der Software mit Worten einer für Kunde und Entwicklung verständlichen Sprache, dokumentiert in einem Glossar.

Was versteht man unter der Praktik "Einfacher Entwurf" des Extreme Programming?

Implementierung sollten keine eventuell auftretenden Sonderfälle oder Wiederverwendungen vorhersehen und stattdessen so einfach und funktional wie möglich gehalten werden.

Was versteht man unter der Praktik "Refaktorisierung" des Extreme Programming?

Kontinuierliche Verbesserung der Entwurfsqualität (testgestützt) ohne Änderung der Funktion. Heißt auch: Nicht optimale Entwürfe sind in Ordnung und können nachträglich verbessert werden.

Was versteht man unter der Praktik "Programmieren in Zweierteams" des Extreme Programming?

Geteilte Arbeit, ein Entwickler schreibt die Implementierung, der andere macht auf Fehler aufmerksam und gibt die Richtung des Entwurfs vor. Regelmäßiges Wechseln und Rollen und Teams.

Was versteht man unter der Praktik "Gemeinsames Code-Eigentum" des Extreme Programming?

Jeder Code gehört jedem Teammitglied und liegt in jedermanns Verantwortung.

Was versteht man unter der Praktik "Programmierrichtlinien" des Extreme Programming?

Durch Einhaltung von Programmierrichtlinien entsteht selbstdokumentierender Code in gleichem Stil, der von allen Teammitgliedern verstanden und geändert werden kann.

Was versteht man unter der Praktik "Kontinuierliche Code-Integration" des Extreme Programming?

Wegen der kurzen Release-Zyklen sollen neue Bestandteile schnell in die bestehende Code-Base integriert werden. Unterstützt wird das Vorgehen von Continuous Integration Tools, die automatisiert Tests ablaufen lassen.

Was versteht man unter der Praktik "Dokumentation" des Extreme Programming?

Der Code sollte selbstdokumentiert und verständlich sein. Ist er das nicht, muss refaktorisiert werden. Separate Dokumentation wird zu schnell vom Code überholt und ist damit nicht mehr korrekt.

Was versteht man unter der Praktik "Geregelte Arbeitszeiten" des Extreme Programming?

Überstunden sind zu vermeiden, da die Arbeitsweise hohe Konzentration erfordert und jeder Entwickler jeden Tag hoch konzentriert arbeiten können soll ohne durch Überstunden beeinträchtigt zu sein. Alle Entwickler sollten gleichzeitig arbeiten, damit beste Vorraussetzungen für Kommunikation gegeben sind.

Was versteht man unter der Praktik "Anwendervertreter in Teams" des Extreme Programming?

Wegen der fehlenden Anforderungsermittlung und der kurzen Release-Zyklen ist es nötig dicht mit einem Systembenutzer zusammen zu arbeiten, damit die Releases und User Stories ständig von einem Kunden validiert werden.

Was sind die Vorraussetzungen für die Anwendung des Extreme Programming?

  • Alle Entwickler sollten sehr gute und breite Qualifikationen mitbringen, damit jederzeit flexibel gut zusammenarbeitenden Teams gebildet werden können.
  • Alle Beteiligten müssen sich auf die XP Praktiken einlassen. Kunden müssen einen fähigen Vertreter ins Entwicklungsteam entsenden können.
  • Die Vertragsgestaltung ist bei diesen Vorgehen kompliziert. Kein Beteiligter kann Anspruch auf Planungssicherheit erheben.
  • kleine Projekte mit <16 Entwicklern
  • alle Entwickler mit gleichen Arbeitszeiten und am Besten am gleichen Ort, da viel Kommunikation nötig ist
  • es muss viele Tests geben, die die ganze Funktionalität abdecken aber nicht zu lang laufen dürfen

Was sind die Gefahren evolutionärer Vorgehensweisen?

Durch den Entfall einer initialen Anforderungsermittlung läuft man Gefahr das später entdeckte große Anforderungen die bisherige Arbeit zunichte machen.

Was sind typische Probleme des Projektmanagements in der Softwareentwicklung?

  • durch den immateriellen Entwicklungsgegestand ist die Fertigstellung eines Teilprodukts nur schwer prüfbar. Aussagen der Entwickler sind immer subjektiver Art oder im schlimmsten Fall unehrlich.
  • Personalplanung geht unabhängig von den Qualifikationen von der Austauschbarkeit der Entwickler aus
  • Bei großen Projekten sind die Unterschiede zwischen Projekten meist so groß, dass Erfahrung nicht besonders wertvoll ist
  • Projektplanung muss interne Iterationen im Zeitplan berücksichtigen

Was sind die Aufgaben des Projektmanagements in der Softwareentwicklung?

  • Vor dem Angebot: Voruntersuchung, Aufwandsschätzung, Machbarkeitsstudie, Zeitbedarfsschätzung, Kosten/Nutzen-Analyse
  • Bei Auftrag: Ablauf-, Termin-, Ressourcen- und Kostenplanung (Projektplanung)
  • Im Projekt: Leitung des Entwicklerteams, Projektcontrolling
  • Nach dem Projekt: Abschlussanalyse, lessons learned

Welche Abhängigkeiten bestehen zwischen Managementaktivitäten und Vorgehensmodell?

Die Managementaktivitäten müssen auf das Vorgehensmodell abgestimmt sein. Je nach Vorgehensmodell sind Managementaktivitäten zu unterschiedlichen Zeitpunkten und Anlässen durchzuführen.

Was zeichnet einen integrierten Entwicklungsprozess aus?

Bei einem integrierten Entwicklungsprozess sind Entwicklung, Management und Qualitätssicherung vollständig in das Vorgehensmodell integriert.

Was sind Beispiele von Vorgehensmodellen für integrierte Entwicklungsprozesse?

  • Spiralmodell
  • V-Modell

Welche Schritte sind für die Voruntersuchung vom vorläufigen Management zu unternehmen?

  • Klärung von Produktanforderungen sofern für die Voruntersuchung notwendig
  • grobe Aufwandsschätzung bezüglich personellen Einsatzes und benötigter Betriebsmittel
  • Machbarkeitsstudie bezüglich verfügbarer Mitarbeiter und deren Qualifikationen
  • Schätzung der Entwicklungsdauer
  • Kosten/Nutzen-Analyse

Welche Schritte sind für die Ablauf-, Terminplanung vom Management zu unternehmen?

  • alle zu erledigenden Aktkivitäten werden in Vorgänge aufgeteilt
  • Abhängigkeiten zwischen Vorgängen identifizieren
  • Vorgänge in Ablaufreihenfolge bringen
  • auf Basis der Vorgangsdauer ergeben sich Termine und Ressourcenbedarf
  • Festlegung von Meilensteien mit dem Auftraggeber
  • Terminplanung mit Netzplanarten

Was ist ein "Vorgang" im Rahmen der Ablaufplanung eines Projekts?

Ein Vorgang ist eine in sich abgeschlossene identifizierbare Tätigkeit, die innerhalb einer angemessenen Zeitdauer durchgeführt werden kann.

Was ist ein "kritischer Vorgang" im Rahmen der Ablaufplanung eines Projekts?

Vorgänge ohne Pufferzeit

Was ist ein "kritischer Pfad" im Rahmen der Ablaufplanung eines Projekts?

eine Reihe von kritischen Vorgängen

Welche Schritte sind für die Ressourcenplanung vom Management zu unternehmen?

  • Vorhersage des Bedarfs an Personal- und Betriebsmitteln
  • Engpasse und Leerläufe vermeiden
  • personelle Einsatzplanung auf Basis von:
    • parallele Ausführung von Vorgängen
    • Qualifikation
    • zeitliche / örtliche Verfügbarkeit
    • organisatorische Zuordnung
  • möglichst gleichmäßige Auslastung des verfügbaren Personals

Welche Schritte sind für die Kostenplanung vom Management zu unternehmen?

  • Erfassung aller direkten und indirekten Kosten
  • Erstellung eines Projektfinanzplans: Welche Mittel müssen wann und wo eingesetzt werden

Was versteht man unter Projektcontrolling?

Überprüfung der Zielerreichung an den Meilensteinen sowie laufende Termin- und Kostenkontrolle und ggf. Maßnahmen zur Korrektur bei Abweichung.

Was ist Vorraussetzung für eine sinnvolle Bewertung von Arbeitsergebnissen?

objektive Bewertungskriterien, Nachvollziehbarkeit

Welche Maßnahmen kann das Controlling bei Abweichung vom Projektplan vornehmen?

  • unmittelbare Maßnahmen:
    • Überstunden
    • Personal Umverteilung
    • bessere Hardware
    • bessere Software
  • mittelbare Maßnahmen (um gleiche Probleme in Zukunft zu vermeiden):
    • lessons learned
    • Planungsfehler beseitigen

Was sind die Aufgaben des Änderungsmanagements?

  • schriftliche Dokumentation aller Änderungswünsche
  • Klärung der Motivation des Änderungswunsches
  • Genehmigung / Ablehnung
  • Planung und Integration der Änderungen in den Projektplan
  • Überwachung der Durchführung

Was ist ein Risiko im Entwicklungsprozess?

Ein potentielles Problem und eine Eintrittswahrscheinlichkeit. Ein Problem ist widerum ein eingetretenes Risiko.

Was sind die Aufgaben des Risikomanagements?

Risiken identifizieren und Maßnahmen ergreifen, um ihr Eintreten zu verhindern

Was sind die am häufigsten eintretenden Risiken?

  • unzureichende Qualifikation des Personals
  • unrealistische Termin- und Kostenvorgaben
  • Entwicklung von falschen Funktionen / Eigenschaften
  • Entwicklung der falschen Benutzerschnittstelle
  • Entwicklungen, die über das Ziel hinaus schießen ("vergolden")
  • permanente Anforderungsänderungen

Welche Schritte umfasst das Risikomanagement?

Risiko-

  • Identifikation (Listen mit potentiellen Probleme)
  • Analyse (Schadenswahrscheinlichkeit und Schadensausmaß feststellen)
  • Prioritätenbildung (Probability-Impact-Matrix)
  • Management-Planung (Vorbereiten von Maßnahmen beim Eintreten von Risiken)
  • Überwindung (Risiken durch geeignete Maßnahmen ausschließen)
  • Überwachung

Was ist das Spiralmodell?

Ein generisches, iteratives und inkrementelles Vorgehensmodell mit besonderem Fokus auf die Risikoabschätzung und -beseitigung.

Was sind die Stärken der Teamarbeit?

  • hoher Problemlösungsgrad durch kombinierte Qualifikationen
  • Nutzung unterschiedlicher Qualifikationen
  • geringere Gefahr von Sackgassen
  • gegenseitige Anregung / Verstärkung

Was sind die Schwächen der Teamarbeit?

  • Koordinierungs- und Kommunikationsaufwand
  • lange Diskussionen / langsame Entscheidungsfindung
  • Konkurrenzdenken / Profilierung
  • schwer kontrollierbare Gruppendynamik
  • Leistungsdruck auf Teammitglieder

Wie viele Mitglieder eines Teams sollten herausragend qualifiziert sein?

20%

Wie wird die Abschlussanalyse eines Projekts auch genannt?

wrap-up

Welche Tätigkeiten umfasst der Projektabschluss?

  • wrap-up
  • Archivierung der Projektresultate und -unterlagen
  • Projektorganisation auflösen, Mitarbeiter neu verteilen
  • Abschlussfeier

Warum ist Qualitätssicherung nötig?

Ohne Qualitätssicherung nur fehlerfreie Software bei fehlerfreier Arbeit. Menschen machen aber Fehler.

Was versteht man unter Qualitätssicherung?

Die Summe alle Maßnahmen (technische und Managementaktivitäten), die garantieren, dass ein Produkt die Spezifikation erfüllt.

In welche Kategorien lässt sich die Qualitätssicherung einteilen?

  • konstruktive Qualitätssicherung
  • analytische Qualitätssicherung

Was umfasst die konstruktive Qualitätssicherung?

Vermeidung von Qualitätsmängeln durch den Einsatz von Methoden, Konstruktionsprinzipien, Verfahren, Werkzeugen und Vorgehensmodellen in der Entwicklung. Die konstruktive Qualitätssicherung zielt auf Gebrauchs-, Produkt und Prozessqualität.

Was umfasst die analytische Qualitätssicherung?

Nachträgliche Analyse eines Produkts auf Erfüllung der Qualitätsansprüche.

In welche Kategorien lässt sich die analytische Qualitätssicherung einteilen?

  • statische Prüfungen
  • dynamische Prüfungen

Was sind statische Prüfungen in der analytischen Qualitätsicherung?

Statische Prüfungen sind nicht auf die Ausführbarkeit des Prüfgegenstandes angewiesen, können also auf alle Artefakte der Softwareentwicklung angewendet werden.

Was sind dynamische Prüfungen in der analytischen Qualitätsicherung?

Dynamische Prüfungen nutzen die Ausführbarkeit des Prüfgegenstands, beziehen sich in der Softwareentwicklung auf den Programmcode.

Was sind Methoden der statischen Prüfungen in der analytischen Qualitätsicherung?

  • Metriken
  • Automatische Analysatoren
  • Reviews
    • Inspektion
    • Walk-Throughs

Was sind Beispiele für Code Metriken der statischen Prüfungen in der analytischen Qualitätsicherung?

  • Lines of Code (LoC)
  • Anzahl von:
    • Statements
    • Klassen
    • Attributen einer Klasse
    • Methoden einer Klasse
    • Packages
  • Verschachtelungstiefe
  • Nicht erreichbarer Code
  • Nutzung vor Initialisierung
  • Style Checker
  • Zyklomatische Komplexität (McCabe)
  • Paket-Abhängigkeiten
  • Abstraktheit (abstrakte Klassen / Interfaces vs. konkrete Klassen)

Was leisten automatische Analysatoren in der statischen Prüfung?

Programmanalyse in Form von Flussgraphen oder cross-reference-Listen, um Inkonsistenzen / Unvollständigkeiten aufzudecken.

Was sind Reviews?

Manuelle Prüfverfahren, bei dem ganze Teams den Prüfgegenstand analysieren, wodurch die Betriebsblindheit des Autors umgangen wird.

Wie unterscheiden sich die Review Verfahren Inspektion und Walk-Through?

Beide Methoden finden meist unterschiedliche Fehler und sollten daher beide zum Einsatz kommen

  • Inspektion: Review-Team bereitet Inspektion vor (Checklisten), Autor des Prüfgegenstands stellt ihn vor, Review-Team diskutiert, Moderator protokolliert gefundene Fehler (primär Verifikation)
  • Walk-Through: formloser; Testspezialist stellt Testszenarien vor, Review-Team arbeitet gemeinsam durch, keine Checklisten, mehr Fokus auf Anforderungen (primär Validierung)

Was wird bei der Inspektion vorwiegend bewertet?

Standardkonformität und Schlüssigkeit (Verifizierung)

Was wird beim Walk-Through vorwiegend bewertet?

Vollständigkeit und Angemessenheit (Validierung)

Wie werden dynamische Prüfungen auch bezeichnet?

Testing

Was ist der Nachteil von zumeist stichprobenartigem Testen?

Es kann keine Fehlerfreiheit nachgewiesen werden, sondern nur existierende Fehler gefunden werden.

Wie werden Black-Box Testverfahren noch genannt?

funktionale Testverfahren

Wie werden White-Box Testverfahren noch genannt?

strukturelle Testverfahren

Was ist der Unterschied zwischen White-Box und Black-Box Testverfahren?

Black-Box Verfahren prüfen, ob die Ausgabe eines Programm(teil)s bei bestimmter Eingabe der Erwartung entspricht. Es müssen also möglichst fehleranfällige Eingabekombinationen ermittelt werden, um Fehler zu finden. Die innere Struktur des Programms wird dabei ignoriert. Bei White-Box Verfahren ist die innere Struktur bekannt und es wird mit Coverage-Tests versucht jeden möglichen Pfad im Programm durch geeignete Wahl der Eingaben zu durchlaufen.

Welche Teststufen gibt es bei dynamischen Tests?

  • Modultests / Unit-Tests
  • Integrationstests
  • Systemtest
  • Abnahmetest

Was wird beim Modultest geprüft?

Test von einzelnen Prozeduren / Klassen / Komponenten um Black- und White-Box Verfahren

Was wird beim Integrationstests geprüft?

Zusammenspiel von Modulen (Black- und White-Box), also ob Schnittstellen korrekt spezifiziert und implementiert sind.

Was ist eine Integrationsstrategie beim Integrationstest?

Gibt die Reihenfolge vor in der Module integriert werden, entweder

  • top-down: vom aufrufenden zum aufgerufenen Modul
  • bottom-up: vom aufgerufenen zum aufrufenden Modul

Was wird beim Systemtest geprüft?

Gesamtsystem wird auf Einhaltung der Anforderungsspezifikation getestet (Black-Box). Performanz-, Last-, Stress- und Robustheitstests zur Prüfung nicht-funktionaler Anforderungen.

Was wird beim Abnahmetest geprüft?

Testen im realen Umfeld (Black-Box) gegen die Erwartungen der Anwender. Prüft

  • Gebrauchstauglichkeit
  • äußere Korrektheit
  • Zusammenspiel mit anderen Systemen in der Einsatzumgebung

Was ist ein Regressionstest?

Ein wiederholter Test nach (vermeindlicher) Fehlerbeseitigung.

Wofür steht CMM?

Capabilitiy Maturity Model

Was ist das Capabilitiy Maturity Model?

Ein Reifegradmodell zur Beurteilung der Qualität des Softwareprozesses von Organisationen sowie zur Bestimmung der Maßnahmen zur Verbesserung desselben.

Welche fünf Reifegerade gibt es im Capabilitiy Maturity Model?

  1. initial
  2. repeatable
  3. defined
  4. managed
  5. optimized

Wie wird im Capabilitiy Maturity Model der nächste Reifegrad erreicht?

Zielvorgaben, technische und Management-Aktivitäten der aktuellen Stufe erfüllen, um nächste zu erreichen.

Welche ISO-Norm ist im Bereich der Qualitätssicherung von Software verbreitet?

ISO 9000, 9001, 9000-3

Was leisten Softwareentwicklungswerkzeuge?

Unterstützung und Teilautomatisierung von Entwicklungsprozessen.

Was sind die Vorteile bei Verwendung von Softwareentwicklungswerkzeugen?

  • mehr Entwicklungszeit für kreative Inhalte statt repetitive Tätigkeiten
  • höhere Produktivität durch Automatisierung
  • standardisierter Output für Einheitlichkeit und Konsistenz zwischen Entwicklern
  • Verbesserung des Prozesses und des Produkts durch Unterstützung bei Methodenanwendung

Wofür steht SEU?

Softwareentwicklungsumgebung

Was ist eine Softwareentwicklungsumgebung?

Sammlung von Hardware- und Softwarewerkzeugen, die die Entwicklung von Software in einem bestimmten Anwendungsbereich unterstützen.

In welche Kategorien können Softwareentwicklungswerkzeuge eingeteilt werden?

  • Programmierumgebungen (Integretad Development Environment (IDE))
  • CASE-Tools (Computer Aided Software Engineering)
  • Software-Engineering-Umgebungen

Was leistet eine IDE?

Wenig bis keine Unterstützung bei Anforderungsermittlung / Entwurf. Für gewöhnlich

  • Editor mit Syntax-Highlighting
  • Browser für mehrere Code-Dateien
  • einfaches Ansprechen von Compilern
  • Integration des Debuggers

Was sind CASE-Tools?

CASE steht für Computer-aided Software Engineering, es handelt sich also um Werkzeuge für die Softwareentwicklung.

Was leisten CASE-Tools?

Unterstützung bei Spezifikation und Entwurf von Software, meist grafische Darstellung, wenig bis keine Unterstützung beim eigentlichen Programmieren. Können ggf. Code-Snippets generieren

Was ist das Single-Sourcing-Prinzip?

Multiple Darstellungen von Entwürfen gehen alle auf einen gemeinsamen Quelltext zurück

Was leisten Software-Engineering-Umgebungen?

Unterstützung für langlebige Softwareprojekte. Decken die Bereiche der CASE-Tools ab, aber darüber hinaus noch Konfigurations- und Versionsmangement, Qualitätssicherung und Projektmanagement.

Was sind Merkmale einer idealen Softwareentwicklungsumgebung?

  • basiert auf DBMS, sodass auch andere Werkzeuge auf die Datenbasis zugreifen können
  • offen (wohldefinierte Schnittstelle) für die Anbindung weiterer Werkzeuge
  • Werkzeuge für
    • Anforderungsermittlung
    • Entwurf
    • Implementierung (Programmiersprache)
    • Test
    • Debugging
    • Management von
      • Projekt
      • Dokumentation
      • Konfiguration

Wofür steht UML?

Unified Modeling Language

Was sind charakteristische Konzepte der objektorientierten Entwicklung?

  • Kapselung
  • Geheimnisprinzip
  • Vererbung / Generalisierung
  • Wiederverwendbarkeit

Welchen Vorteil bietet die Objektorientierung in Bezug auf den Softwareentwicklungsprozess?

Durchgängigkeit von Methoden und Techniken bei der Anforderungsermittlung, Entwurf und Implementierung. Von abstrakten, unscharfen Modellen in schrittweiser Verfeinerung ergibt sich der Programmcode fast automatisch.

Welche Modelltypen gibt es in der systematischen Softwareentwicklung?

  • Strukturelle Modelle (Klassendiagramme)
  • Funktionale Modelle (Anwendungsfalldiagramme)
  • Verhaltensorientierte Modelle
    • Ablaufverhalten (Interaktionsdiagramme: Sequenzdiagramm, Kollaborationsdiagramm)
    • Objektverhalten (Zustandsdiagramme)