Teamorganisation: Versionsverwaltung

Slides:



Advertisements
Ähnliche Präsentationen
Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims cims.
Advertisements

Phasen und ihre Workflows
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Software(technik)praktikum Tutorial: Subversion (SVN)
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Werkzeuge und Softwareumgebung von Christian Michele.
Treffen mit Siemens Siemens: Werner Ahrens Volkmar Morisse Projektgruppe: Ludger Lecke Christian Platta Florian Pepping Themen:
1/15 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – CVS Projektgruppe KIMAS CVS Daniel Karuseit.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Projekt Web Engineering
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Reservierungs Datenbank
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2007/08 m.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Teamorganisation: Versionsverwaltung
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Projektmanagement Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Wasserfallmodel Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
1 WS 2012 Software-Engineering II Versionsverwaltung.
Software Engineering I
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Concurrent Versions System
Software Design Patterns Extreme Programming (XP).
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Software-Projektführung
Aichinger Christian, Strasser Jürgen
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Kapitel 1 – Erste Schritte
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
MDA – Framework AndroMDA
Teil II Objekte ergeben ein Ganzes
Reasoner Semantische Interoperabilität
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
UML-Kurzüberblick Peter Brusten.
© powered by Alchimedus ® Seite 1 Ihr Schnelleinstieg führt Sie durch GenoGyn QM interaktiv Kommen wir zu Ihrem ersten Schritt:
Concurrent Versions System
2. MKT – Die verbale Selbstinstruktion Mi
Marco Behnke Git free & open source, distributed version control system Git.
2. Kommunikation und Synchronisation von Prozessen 2
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
Das SVN Eclipse Plugin. Wofür ist SVN gedacht? Nutzung von SVN mit Eclipse Perspektive einrichten Repository einbinden Mit dem Repository arbeiten Konflikt.
Thema 4: Klassenbibliothek
Test Summary: ein Fehler pro Tag Test First
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools
Programmentwurf: Beispiel auf Anwendungsebene anschauen
 Präsentation transkript:

Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme Beispiel Besonderheiten CVS mit eclipse Tools Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Wofür Versionskontrolle? Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Sperrmechanismen pessimistische Sperren • explizite Sperre pro Datei • keine konkurrierenden Zugriffe  keine Konflikte Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Sperrmechanismen optimistische Sperren • Sperre nur beim einchecken • update (Synchronisation) jeder Zeit möglich  Konflikte (semiautomatische Behebung) Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Systeme RCS – Revision Control System, der Anfang CVS - Concurrent Versions System, der Klassiker keine Verzeichnisse kein Umbenennen / Verschieben kein Check-In Begriff aber: gute Tool-Unterstützung SVN – Subversion, verbessertes CVS Git – verteilte Versionsverwaltung, Linux Kernel Entwicklung Mercurial - OpenSolaris, XEN, Kernel-Entwicklung Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

CVS Beispiel Alice, Bob arbeiten an einem Projekt beide checken die Version 1.1 vom Server aus Alice bearbeitet die Datei Server.java, Client.java (Zeile 42) Bob bearbeitet Helper.java und Client.java (Zeile 23) Alice checkt ein Bob versucht einzuchecken  Fehler Bob führt ein Update durch neue Server.java Merge von Client.java, kein Konflikt Bob checkt ein Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

CVS Beispiel Teil 2 Bob ändert in HtmlPanel.java (Zeile 42) Bob checkt ein Alice ändert in HtmlPanel.java (Zeile 42) Alice macht ein Update  Konflikt <<<<<<< HtmlPanel.java doc1 = (HTMLDocument) html.getDocument(); ======= doc = html.getDocument(); >>>>>>> 1.4 Alice behebt den Konflikt Alice checkt ein Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Timestamps / Tags / Branches CVS speichert (Rückwärts-)Deltas  Wiederherstellen alter Versionen möglich Versionen identifizierbar durch Timestamps Revision Numbers Markierungen (Tags) Verzweigungen (Branches) sind möglich v 1.1.1.1 v 1.1 v 1.1.2.1 v 1.2 v 1.2.1.1 v 1.1.3.1 v 1.2.2.1 Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

CVS mit eclipse Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Konflikte Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Tools: cvsmail Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Tools: cvsweb Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Tools: cvsstat Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Reverse Engineering Aufgabe: Wie funktioniert das alte Programm Wo finde ich zu ändernde Funktionalität Wo muss ich neue Funktionalität einbauen Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Reverse Engineering Z.B.: In welchen Phasen läuft ein RedCode Wettkampf ab? Welcher Baustein macht dabei was? Wo und wie würde man Mult und Div Befehle realisieren Wo und wie würde man neue OpCode Modifier implementieren Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Reverse Engineering Techniken Doku lesen Java Docs Googlen Klassendiagramm generieren (Omondo, Fujaba, …) (Achtung man braucht nur „wichtige“ Klassen) Debuggen / EDobsen Eclipse „Show Declaration“ / „Show Usages“ Traces generieren Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Reverse Engineering Ergebnisdokumentformat Eine gemeinsames Teamdokument Doku im HTML Format (wegen CVS) Kapitelstruktur wie Vorlage Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Reverse Engineering Ergebnisinhalte Code Ausschnitte Story Boards Sequenzdiagramme Klassendiagramm für wichtige Bausteine Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Aufgabe: Getting started Die zu verwendende CoreWar-Version wird über das CVS-Repository eurer Gruppe bereit gestellt. Dort befindet sich auch ein Verzeichnis, das Beispieldokumente enthält. Auf der Vorlesungsseite ist eine Anleitung verlinkt, wie das auschecken mit Eclipse vorzunehmen ist. Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Aufgabe: CoreWars kennen lernen Als erste einfache Übung spielen Sie mit dem gegebenen Programm. Geben Sie ein oder zwei einfache Kämpfer ein (Quelltexte finden sich in den Dokumenten bzw. im Internet). Hinweis: Das gegebene CoreWars-Framework erwartet entweder ein Label oder Whitespace am Beginn jeder Instruktions-Zeile. Also lautet der einfachste Kämpfer: "    MOV 0, 1" (statt "MOV 0, 1") Lassen Sie diese Kämpfer gegeneinander kämpfen. Führen sie den Kampf schrittweise aus. Das Menü dazu befindet sich unten links in der Kampf-Anzeige. Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Aufgabe: Struktur erkennen Beschäftigen Sie sich nun mit dem Quellcode des CoreWars-Framework. Nach einigem Lesen sollte man schon eine grobe Aufteilung der Software in Subsysteme und Komponenten erkennen. Diese gilt es textuell und mit Hilfe von Package- bzw. Komponentendiagrammen zu dokumentieren. Kleine Klassendiagramme mit den wichtigsten Methoden für wichtige Ausschnitte der Funktionalität sind sinnvoll. Insbesondere soll die Redcode-Befehlsverarbeitung im MARS untersucht werden. Erstellen Sie einen Klassendiagramm(-Ausschnitt) der Klassen, die zum MARS und der Befehlsverarbeitung gehören (Hinweis: ca. 8-10) und führen Sie die wichtigsten Methoden auf. Beschreiben Sie den Ablauf in Sequenz- oder Aktivitätsdiagrammen. Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Aufgabe: Client-Server-Kommunikation Untersuchen Sie die Kommunikation zwischen Client und Server im Existierenden Framework. Wie ist der Ablauf des Protokolls? Welche Daten werden ausgetauscht? Wie werden diese codiert? Die Kommunikation über Interfaces bzw. Oberklassen (sprich festgelegte Methodensignaturen) und die Ereignisse müssen im Reverse Engineering Dokument beschrieben werden. Zur Unterstützung für die Beschreibung des Austauschs von  Nachrichten bieten sich Sequenzdiagramme an. Unterstützend zu Beschreibungen der Spielabläufe können ein paar Screenshots helfen. Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University

Aufgabe: 8 neue Befehle implementieren In dieser Projektphase sind die acht neuen Befehle zu implementieren. Identifizieren Sie die Stellen im existierenden Code die geändert werden müssen, um den Befehlssatz zu erweitern. Erweitern sie auch den Test-Code um Testfälle für die neuen Befehle! Orientieren Sie sich hierbei an den existierenden Testfällen (Hinweis: Klasse CUTest, pro Befehl eine Methode test<neuerOpCode>() einfügen. Der Befehl JOI benötigt die weiteren Aufgabenteile. Implementieren sie nur das Grundgerüst, die Ausführung des Befehls soll den Sprung vorerst NICHT durchführen, also einfach den program counter inkrementieren). Dokumentieren Sie kurz, welche Änderungen Sie in welchen Klassen vorgenommen haben. Fachgebiet Software Engineering Übersicht © 27.03.2017 Albert Zündorf, Kassel University