Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle?

Ähnliche Präsentationen


Präsentation zum Thema: "Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle?"—  Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19 Fachgebiet Software Engineering Übersicht © 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.

20 Fachgebiet Software Engineering Übersicht © 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.

21 Fachgebiet Software Engineering Übersicht © 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.

22 Fachgebiet Software Engineering Übersicht © 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.

23 Fachgebiet Software Engineering Übersicht © 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 () 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.


Herunterladen ppt "Fachgebiet Software Engineering Übersicht © 22.01.2014 Albert Zündorf, Kassel University Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle?"

Ähnliche Präsentationen


Google-Anzeigen