Podcast
Questions and Answers
Was beschreibt der Begriff 'Echte Parallelentwicklung' im Konfigurationsmanagement?
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?
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?
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?
Welche Bedeutung haben Tags im Kontext des Konfigurationsmanagements?
Was kennzeichnet ein Branch-Pattern im Konfigurationsmanagement?
Was kennzeichnet ein Branch-Pattern im Konfigurationsmanagement?
Was ist eine Baseline im Kontext des Konfigurationsmanagements?
Was ist eine Baseline im Kontext des Konfigurationsmanagements?
Welche Aussage beschreibt am besten den Zweck von Releases?
Welche Aussage beschreibt am besten den Zweck von Releases?
Was geschieht typischerweise bei der Erstellung eines Tags?
Was geschieht typischerweise bei der Erstellung eines Tags?
Welche Aussage trifft nicht zu, wenn es um lineare Entwicklungspfade mit Code-Freeze geht?
Welche Aussage trifft nicht zu, wenn es um lineare Entwicklungspfade mit Code-Freeze geht?
Was ist die Hauptfunktion von Tags im Konfigurationsmanagement?
Was ist die Hauptfunktion von Tags im Konfigurationsmanagement?
Welche der folgenden Punkte sind zentrale Aufgaben des Konfigurationsmanagements?
Welche der folgenden Punkte sind zentrale Aufgaben des Konfigurationsmanagements?
Was ist der Zweck einer Repository-Datenbank im Konfigurationsmanagement?
Was ist der Zweck einer Repository-Datenbank im Konfigurationsmanagement?
Was beschreibt die Variantenfamilie in Bezug auf Versionsbildung?
Was beschreibt die Variantenfamilie in Bezug auf Versionsbildung?
Welche Aussage beschreibt die Änderungsverfolgung am besten?
Welche Aussage beschreibt die Änderungsverfolgung am besten?
Welche Funktion bietet das Konfigurationsmanagement bzgl. Effektivität bei großen Datenmengen?
Welche Funktion bietet das Konfigurationsmanagement bzgl. Effektivität bei großen Datenmengen?
Was beschreibt die Beziehung zwischen Konfiguration A und B?
Was beschreibt die Beziehung zwischen Konfiguration A und B?
Was ist eine wichtige Überlegung bei der Zugriffskontrolle im Konfigurationsmanagement?
Was ist eine wichtige Überlegung bei der Zugriffskontrolle im Konfigurationsmanagement?
Welche Rolle spielt die Effizienz im Kontext des Konfigurationsmanagements?
Welche Rolle spielt die Effizienz im Kontext des Konfigurationsmanagements?
Flashcards
Verzweigte Entwicklungspfade
Verzweigte Entwicklungspfade
Parallel laufende Entwicklungszweige (Branches) für verschiedene Funktionalitäten oder Releases als Grundlage für die Versionierung.
Release-Erstellung (Branch)
Release-Erstellung (Branch)
Der Prozess der Erstellung einer neuen Version eines Softwareprodukts (Release) durch Abzweigung eines Branches von einem Hauptzweig.
Echte Parallelentwicklung
Echte Parallelentwicklung
Entwicklung mehrerer Versionen (Releases) gleichzeitig ohne Zusammenführen.
Release-Management
Release-Management
Signup and view all the flashcards
Konfigurationsmanagement
Konfigurationsmanagement
Signup and view all the flashcards
Tag
Tag
Signup and view all the flashcards
Baseline
Baseline
Signup and view all the flashcards
Release
Release
Signup and view all the flashcards
Code-Freeze
Code-Freeze
Signup and view all the flashcards
Linearer Entwicklungspfad
Linearer Entwicklungspfad
Signup and view all the flashcards
Konfigurationselemente
Konfigurationselemente
Signup and view all the flashcards
Repository
Repository
Signup and view all the flashcards
Versionsnummer
Versionsnummer
Signup and view all the flashcards
Versionshistorie
Versionshistorie
Signup and view all the flashcards
Variantenfamilie
Variantenfamilie
Signup and view all the flashcards
Ersetzt durch (Versionsbildung)
Ersetzt durch (Versionsbildung)
Signup and view all the flashcards
Modifiziert nach (Variantenbildung)
Modifiziert nach (Variantenbildung)
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.