Foliensatz Nr. 5 - Software Engineering

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

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. (B)</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. (A)</p> Signup and view all the answers

Was ist eine Baseline im Kontext des Konfigurationsmanagements?

<p>Ein Bezugspunkt für die weitere Entwicklung. (B)</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. (C)</p> Signup and view all the answers

Was geschieht typischerweise bei der Erstellung eines Tags?

<p>Der Zustand des Repositories wird stabilisiert und markiert. (C)</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. (D)</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. (C)</p> Signup and view all the answers

Welche der folgenden Punkte sind zentrale Aufgaben des Konfigurationsmanagements?

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

Was ist der Zweck einer Repository-Datenbank im Konfigurationsmanagement?

<p>Verwaltung von Konfigurationselementen und Versionsnummern (A)</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 (A)</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 (A)</p> Signup and view all the answers

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

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

Was beschreibt die Beziehung zwischen Konfiguration A und B?

<p>A kann B ersetzen oder modifizieren (A)</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 (D)</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 (D)</p> Signup and view all the answers

Flashcards

Verzweigte Entwicklungspfade

Parallel laufende Entwicklungszweige (Branches) für verschiedene Funktionalitäten oder Releases als Grundlage für die Versionierung.

Release-Erstellung (Branch)

Der Prozess der Erstellung einer neuen Version eines Softwareprodukts (Release) durch Abzweigung eines Branches von einem Hauptzweig.

Echte Parallelentwicklung

Entwicklung mehrerer Versionen (Releases) gleichzeitig ohne Zusammenführen.

Release-Management

Die Verwaltung und Kontrolle des gesamten Prozesses zur Veröffentlichung neuer Versionen (Releases) einer Software.

Signup and view all the flashcards

Konfigurationsmanagement

Die systematische Verwaltung aller Konfigurationselemente einer Software, inklusive des gesamten Prozesses vom Code bis zum Release.

Signup and view all the flashcards

Tag

Eine Markierung, die zu einem bestimmten Zeitpunkt die aktuell gültigen Versionen aller Konfigurationselemente im Repository kennzeichnet.

Signup and view all the flashcards

Baseline

Eine stabile Konfiguration, die als Referenzpunkt für die weitere Entwicklung dient.

Signup and view all the flashcards

Release

Eine Baseline, die für die Auslieferung an den Kunden freigegeben wurde (lauffähig).

Signup and view all the flashcards

Code-Freeze

Ein Zeitraum, in dem alle Änderungen an einem Code gestoppt werden, um eine stabile Baseline zu erstellen.

Signup and view all the flashcards

Linearer Entwicklungspfad

Eine sequentielle Vorgehensweise bei der Softwareentwicklung, bei der Änderungen in einer einzigen Abfolge abgeschlossen und markiert werden.

Signup and view all the flashcards

Konfigurationselemente

Alle Bestandteile einer Software, die für die Erstellung und den Betrieb relevant sind, z.B. Code, Dokumentationen, Testdaten.

Signup and view all the flashcards

Repository

Ein zentraler Ort, an dem alle Konfigurationselemente einer Software gespeichert und verwaltet werden.

Signup and view all the flashcards

Versionsnummer

Ein eindeutiger Kennzeichner für eine bestimmte Version eines Konfigurationselements.

Signup and view all the flashcards

Versionshistorie

Eine Aufzeichnung aller Änderungen an einem Konfigurationselement über die Zeit.

Signup and view all the flashcards

Variantenfamilie

Eine Gruppe von Versionen, die aus einer gemeinsamen Basis entwickelt wurden und sich in bestimmten Eigenschaften unterscheiden.

Signup and view all the flashcards

Ersetzt durch (Versionsbildung)

Eine neue Version ersetzt eine ältere Version.

Signup and view all the flashcards

Modifiziert nach (Variantenbildung)

Eine neue Version basiert auf einer älteren Version und wurde in bestimmten Eigenschaften verändert.

Signup and view all the flashcards

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

More Like This

Software Engineering Concepts Quiz
3 questions
Software Maintenance & SCM Quiz
37 questions
Software Configuration Management (CSE2552)
16 questions
Use Quizgecko on...
Browser
Browser