Foliensatz Nr. 5 - Software Engineering
18 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Was beschreibt der Begriff 'Echte Parallelentwicklung' im Konfigurationsmanagement?

  • Die gleichzeitige Pflege und Weiterentwicklung mehrerer Releases ohne Zusammenführung. (correct)
  • Die Erstellung von Tags und Baselines für die Hauptversion.
  • Das Zusammenführen mehrerer Entwicklungspfade zu einer Hauptversion.
  • Die Ausführung von Bug-Fixes in einem zentralisierten Workflow.
  • Welches Workflow-Modell bezeichnet einen zentralisierten Ansatz zur Entwicklung?

  • Distributed Workflow
  • Dictator and Lieutenants Workflow
  • Feature Branch Workflow
  • Integration Manager Workflow (correct)
  • Was ist der Unterschied zwischen einem Hauptrelease und einem Patch im Release-Management?

  • Ein Patch ist restriktiver und erlaubt keine Änderungen an der Codebasis.
  • Ein Patch ist eine vollständige neue Version der Software.
  • Ein Hauptrelease enthält neue Funktionen, während ein Patch Fehlerbehebungen bietet. (correct)
  • Ein Hauptrelease wird ständig aktualisiert, während ein Patch einmalig ist.
  • Welche Bedeutung haben Tags im Kontext des Konfigurationsmanagements?

    <p>Tags sind dafür verantwortlich, die Versionshistorie darzustellen.</p> Signup and view all the answers

    Was kennzeichnet ein Branch-Pattern im Konfigurationsmanagement?

    <p>Es bietet einen Ablauf wie beim Code-Freeze für die Release-Erstellung.</p> Signup and view all the answers

    Was ist eine Baseline im Kontext des Konfigurationsmanagements?

    <p>Ein Bezugspunkt für die weitere Entwicklung.</p> Signup and view all the answers

    Welche Aussage beschreibt am besten den Zweck von Releases?

    <p>Sie sind stabil und lauffähig, um an den Kunden ausgeliefert zu werden.</p> Signup and view all the answers

    Was geschieht typischerweise bei der Erstellung eines Tags?

    <p>Der Zustand des Repositories wird stabilisiert und markiert.</p> Signup and view all the answers

    Welche Aussage trifft nicht zu, wenn es um lineare Entwicklungspfade mit Code-Freeze geht?

    <p>Funktionserweiterungen sind während des Code-Freezes erlaubt.</p> Signup and view all the answers

    Was ist die Hauptfunktion von Tags im Konfigurationsmanagement?

    <p>Sie dienen als Markierung für gültige Versionen zu einem bestimmten Zeitpunkt.</p> Signup and view all the answers

    Welche der folgenden Punkte sind zentrale Aufgaben des Konfigurationsmanagements?

    <p>Versionshistorie und Änderungsverfolgung</p> Signup and view all the answers

    Was ist der Zweck einer Repository-Datenbank im Konfigurationsmanagement?

    <p>Verwaltung von Konfigurationselementen und Versionsnummern</p> Signup and view all the answers

    Was beschreibt die Variantenfamilie in Bezug auf Versionsbildung?

    <p>Die Gruppierung von Versionen, die sich aus Modifikationen ergeben</p> Signup and view all the answers

    Welche Aussage beschreibt die Änderungsverfolgung am besten?

    <p>Sie ermöglicht die Rückverfolgbarkeit und Wiederherstellung von Änderungen</p> Signup and view all the answers

    Welche Funktion bietet das Konfigurationsmanagement bzgl. Effektivität bei großen Datenmengen?

    <p>Vereinheitlichung von Datentracking</p> Signup and view all the answers

    Was beschreibt die Beziehung zwischen Konfiguration A und B?

    <p>A kann B ersetzen oder modifizieren</p> Signup and view all the answers

    Was ist eine wichtige Überlegung bei der Zugriffskontrolle im Konfigurationsmanagement?

    <p>Nur autorisierte Benutzer sollten Zugriff auf sensible Daten haben</p> Signup and view all the answers

    Welche Rolle spielt die Effizienz im Kontext des Konfigurationsmanagements?

    <p>Sie verbessert den Umgang mit großen Datenmengen</p> Signup and view all the answers

    Study Notes

    Foliensatz Nr. 5 - Software Engineering

    • Dozentin: Prof. Elke Pulvermüller, Universität Osnabrück
    • Fachbereich: Mathematik / Informatik / Physik, Institut für Informatik
    • Arbeitsgruppe: Software Engineering
    • E-Mail: [email protected]
    • Sprechstunde: n.V.
    • Semester: Wintersemester 2024/2025

    Inhalt - Konfigurationsmanagement

    • 1: Software-Krise und Software Engineering
    • 2: Grundlagen des Software Engineering
    • 3: Qualität
    • 4: Projektmanagement
    • 5: Konfigurationsmanagement
    • 6: Software-Modelle
    • 7: Software-Entwicklungsphasen, -prozesse, -vorgehensmodell
    • 8: Weiterführendes

    5.1 Motivation und Begriffe

    • Probleme:
      • Integration falscher Komponenten
      • Übersehen bereits entwickelter Komponenten (z.B. Programmteile, Testdaten)
      • Unvollständiges Archivieren von Vorversionen
      • Fehler durch mangelhafte Übersicht über die Teile und deren Zusammensetzungen
    • Grundidee: Richtlinien, Vorschriften und Werkzeuge zur sicheren Verwaltung und kontrollierten Zugriff auf alle Projektergebnisse im Team

    5.2 Aufgaben und Verfahren

    • Versionskontrolle: Identifizierung, Archivierung, Schutz/Zugriffsregeln, Bereitstellung, kontrollierte Löschung von Einheiten, Versionen und Varianten
    • Konfigurationskontrolle: Sicherstellung der Konsistenz, Dokumentation der Abhängigkeiten, Nachvollziehbarkeit und genaue Reproduzierbarkeit
    • Build-Automatisierung: Erzeugung ausührbarer Programme mit Prüfsummenunterstützung
    • Änderungskontrolle: Verwaltung und Prüfung von Änderungen
    • Koordination der Teamarbeit: Zentrale Koordination mittels gemeinsamer Referenzumgebung und Konflikterkennung/ -vermeidung
    • Ableitung und Bereitstellung von Metriken

    5.3 Konfigurationselemente

    • Schritt 1: Identifikation der Konfigurationselemente
      • Quelltexte
      • Schnittstellenverträge
      • Anforderungsdokumente
      • Architektur- und Designdokumente
      • Konfigurationsmanagement-Handbuch
      • Testspezifikationen und Testdaten
      • Build-Skripte
      • Meta- und Konfigurationsdaten
      • Benutzerdokumentation
      • Installationsanleitungen, Release-Notes
      • Werkzeuge (z.B. Compiler, Entwicklungsumgebungen)
      • Bibliotheken
      • Generierte Artefakte
      • Protokolle von Meetings
      • Binäre Auslieferungsdateien
      • Projektpläne
      • Listen offener Punkte, Risikolisten
      • usw.

    5.4 KM Plan

    • Schritt 2: Erstellung eines KM-Plans
      • Einleitung (Ziele, Begriffe, Beschreibung der Konfigurationselemente)
      • Management (Verantwortlichkeiten für die KM-Aktivitäten)
      • Aktivitäten (KM-Aufgaben und Verfahren)
      • Zeitplanung (zeitliche Abfolge der KM-Aktivitäten)
      • Ressourcen (Werkzeuge, Personal)
      • Pflege (Änderungsplanung des Plans)

    5.5 Projektstruktur

    • Schritt 3: Festlegung einer Projektstruktur
      • Hierarchie der Verzeichnisse im Projekt
      • Projektstruktur (Systemstruktur/Architektur - Conways Law 1968)
      • Einfluss der Projektorganisation, Gliederung in Teilprojekte
    • Keine Konfigurationselemente (temporärer Charakter).
    • Einfluss der SW-Architektur: Detaillierung der Projektstruktur auf Basis der Softwarearchitektur, ggf. Hilfsordner zur Gruppierung von Konfigurationselementen

    5.6 Verwaltung der Konfigurationselemente

    • Versionskontrolle: Versionsnummer, Verfügbarkeit, Integrität, Zugriffskontrolle, Änderungsverfolgung, Wiederherstellung
    • Abbildung ins Repository: ohne temporäre Ordner
    • Deltamechanismus: Reduktion des Speicherbedarfs (Vergleich von Versionen bzw. Änderungen)
    • Check-in / Check-out: Bildung von Versionen im Arbeitsbereich
    • Kontrolle paralleler Änderungen mit Vermeidung (durch Planung und Abstimmung), oder Lock-Modify-Unlock, oder Copy-Modify-Merge-Strategien

    5.7 Release-Management

    • Release x.y.z: Hauptrelease, Wartungsrelease, Patch
    • Grafische Übersicht: Darstellung des Release-Plans

    5.8 Werkzeuge zur Versionskontrolle

    • Versionierungssoftware: CTSS, RCS, SCCS, CVS, Subversion, Git, Mercurial, Bazaar
    • Ziel: Beseitigung von Schwächen in CVS, Atomarer Check-in (Transaktionen), Versionierung, Effiziente Deltabildung (auch für Binärdateien)

    5.9 Automatisierung des Build-Prozesses

    • Werkzeuge: Make, Ant, Maven
    • Umsetzung: Entwicklungsumgebungen genügen nicht, Skripte für Schrittbeschreibung (imperativ vs. Deklarativ), Spezielle Build Tools/Interpreter
    • Schritte:
      • Quellelemente ermitteln
      • Produkt aus den Quellelementen erstellen
      • Produkt prüfen
      • Produkt ausliefern
      • Ergebnisse dokumentieren
      • Varianten: Entwickler-Build, Integrations-Build, Produktions-Build
    • Target-Namenskonventionen (prinzipiell wählbar)
    • Tasks: Übersicht, Was ist eine Task, Eigene Tasks, Bemerkung
    • Maven-Projekt-Aufruf: mvn compile, mvn clean install. Default-Lifecycle(standard).

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Dieses Quiz behandelt das Themengebiet des Konfigurationsmanagements im Rahmen des Software Engineering. Besonderes Augenmerk liegt auf den Herausforderungen und Begriffen, die mit der Integration von Software-Komponenten verbunden sind. Erfahren Sie mehr über die häufigsten Probleme und deren Lösungen.

    More Like This

    Use Quizgecko on...
    Browser
    Browser