Software Engineering Projekt (SEP) mit ROBOCODE



Ähnliche Dokumente
Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Projektsteuerung Projekte effizient steuern. Welche Steuerungsinstrumente werden eingesetzt?

Robot Karol für Delphi

Studieren- Erklärungen und Tipps

SWE12 Übungen Software-Engineering

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung

SCHULUNG MIT SYSTEM: E-LEARNING VON RAUM21

Sehr geehrter Herr Pfarrer, sehr geehrte pastorale Mitarbeiterin, sehr geehrter pastoraler Mitarbeiter!

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Informationssicherheit als Outsourcing Kandidat

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

SharePoint Demonstration

Was meinen die Leute eigentlich mit: Grexit?

Das Leitbild vom Verein WIR

Eingewöhnung. Wie ein guter Start gelingt

SEP 114. Design by Contract

Statuten in leichter Sprache

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

Dokumentation Schedulingverfahren

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Internet Explorer Version 6

Die Bundes-Zentrale für politische Bildung stellt sich vor

Erläuterung der einzelnen Teile des Computer-Trainingsprogramms für Senioren im EU-Projekt: Motivierung Älterer

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Beschreibung des MAP-Tools

GPP Projekte gemeinsam zum Erfolg führen

ARCO Software - Anleitung zur Umstellung der MWSt

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Was ist Sozial-Raum-Orientierung?

Welchen Nutzen haben Risikoanalysen für Privatanleger?

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Gesundheitsförderliche Mitarbeitergespräche (smag) Quelle: GeFüGe-Projekt, bearbeitet durch Karsten Lessing, TBS NRW

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fragebogen: Abschlussbefragung

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Internet- und -Überwachung in Unternehmen und Organisationen

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Erfahrungen mit Hartz IV- Empfängern

Impulse Inklusion Selbst-bestimmtes Wohnen und Nachbarschaft

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

UpToNet DMS Posteingang

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Prozessoptimierung. und. Prozessmanagement

Klasse: 5AHH. Projektbetreuung: Sabitzer Karl Erlacher Christoph. Wallner Sonja Pfeifhofer Elisabeth Schimanz Alexander

Nicht über uns ohne uns

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.


Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

Programmierung von Konturzügen aus Geraden und Kreisbögen

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

DER SELBST-CHECK FÜR IHR PROJEKT

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Wie Sie mit Mastern arbeiten

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Ein Vorwort, das Sie lesen müssen!

Tevalo Handbuch v 1.1 vom

1. Einführung. 2. Weitere Konten anlegen

Projektmanagement. Einleitung. Beginn. Was ist Projektmanagement? In dieser Dokumentation erfahren Sie Folgendes:

FAQs zum Bachelorstudiengang Software Engineering PO-Version Allgemeine Informationen zum Bachelorstudiengang Software Engineering

10. Fachtagung IT-Beschaffung 2014 Fachforum 6

Zeichen bei Zahlen entschlüsseln

Einführung in PHP. (mit Aufgaben)

Geld Verdienen im Internet leicht gemacht

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Catherina Lange, Heimbeiräte und Werkstatträte-Tagung, November

Local Control Network

Avenue Oldtimer Liebhaber- und Sammlerfahrzeuge. Ihre Leidenschaft, gut versichert

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Die Makler System Club FlowFact Edition

SwissSupplyChain Musterprüfung

Windows Server 2008 (R2): Anwendungsplattform

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Orientierungstest für angehende Industriemeister. Vorbereitungskurs Mathematik

Präsentation: Google-Kalender. Walli Ruedi Knupp Urdorf

EasyWk DAS Schwimmwettkampfprogramm

Lizenzen auschecken. Was ist zu tun?

Wichtiges Thema: Ihre private Rente und der viel zu wenig beachtete - Rentenfaktor

Anforderungen an die HIS

Wie kann man Kreativität und Innovation fördern? Psychologische Ansätze zum Ideenmanagement

Wir sind für Sie da. Unser Gesundheitsangebot: Unterstützung im Umgang mit Ihrer Depression

LERNMODUL 1 - Projekterwaltung für unterschiedliche Szenarien

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Ausgangslage, Rolle und Auftrag

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

10.1 Auflösung, Drucken und Scannen

macs Support Ticket System

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Bürgerhilfe Florstadt

Transkript:

Software Engineering Projekt (SEP) mit ROBOCODE Klaus Knopper <robocode@knopper.net> Stand: 2014 http://robocode.sourceforge.net/ Kurzbeschreibung Es wird mit den Methoden des Software Engineering in Teamarbeit ein virtuelles Roboter- Team von Planung (Spezifikation, Design, Gewinn-Strategie, Ablaufplan,...) bis zur Implementation aufgebaut, und in Form einer gemeinsamen Abschlusspräsentation der Teams sowie eines technischen Handbuchs dokumentiert. Lernziele: Praktische Anwendung des Software Engineering, Fähigkeit zum Arbeiten im Team, Fähigkeit zur Dokumentation und Präsentation der Arbeitsergebnisse. Voraussetzung für die Teilnehmer: - Grundkenntnisse in JAVA - Grundlagen Software-Engineering Das Projekt ist Betriebssystem-unabhängig, und kann sowohl auf den Übungs-Notebooks im Multifunktions-Pool, als auch auf mitgebrachten, eigenen Rechnern implementiert werden.

1 Einführung: Robocode Robocode ist ein OpenSource-Projekt von IBM, das zum Erlernen bzw. Vertiefen der objektorientierten Programmiersprache JAVA eingesetzt wird. Da in Robocode selbst bereits eine umfangreiche graphische Laufzeit- und Entwicklungsumgebung vorhanden ist, mit Verweis auf die ausführliche Beschreibung der API für den Programmierer, sind hiermit auch die im Studium erlernten Methoden der zielgerichteten Softwareentwicklung praktisch einsetzbar. Robocode ist eine Simulation von Robotern (Tanks), die sich in einer virtuellen Arena einstellbarer Größe bewegen, ihre Umgebung mit Hilfe eines Radars scannen und sich mit Hilfe von Projektilen gegenseitig bekämpfen können. Weiterhin sind Methoden zum Nachrichtenaustausch zwischen befreundeten Robotern, Hilfen zur optischen Kontrolle der Strategieverfolgung (Farbwechsel, Sichtbarmachen der gescannten Umgebung) und Kollisionserkennung vorhanden, die mitverwendet werden können. vorwärts/rückwärts Radar drehen Kanone drehen Tank drehen Vereinfachte Spielregeln Jeder Roboter hat zu Beginn der Simulation eine bestimmte Energiemenge 1 zur Verfügung, die durch Bewegung, Kollisionen mit anderen Robotern oder Treffer fremder Projektile, 1 Diese Anfangsenergie unterscheidet sich zwischen Teamrobots und dem Basis-Robot. 1

Abfeuern eigener Projektile etc. reduziert wird. Ist die verbliebene Energie 0, explodiert der Roboter, und das Spiel ist für ihn 2 damit beendet. Gewonnen hat am Ende Team mit der höchsten Punktzahl, die sich unter anderem aus der Anzahl der überlebten Runden zusammensetzt. 2 Wenn auch nicht unbedingt für das ganze Team. 2

2 Aufgabenstellung 2.1 Ziel Ziel und Aufgabe des Projektes ist es, ein Team von genau 2 Robotern zu planen, zu implementieren und zu dokumentieren. Das Roboterteam soll mit einer gewinnenden Strategie sowohl gegen die von den anderen Kursteilnehmern programmierten Roboterteams, als auch gegen die in der Robocode-Umgebung vorhandenen Beispielroboter und -teams in einer ausreichend großen Arena (meist 1000 1000) erfolgreich antreten können. 2.2 Projektbearbeitung in Teams Es werden zu Beginn des Kurses Teams von 3 (empfohlene Teamgröße), maximal 4 Personen gebildet. Innerhalb des Teams sollen einerseits alle teilnehmenden Personen mit fest zugewiesenen, speziellen Aufgaben betraut werden, andererseits sollen alle Teammitglieder auch nach Bedarf an anderen notwendigen Teilprojekten (z.b. Implementation, Dokumentation) mitarbeiten. Eine Person aus dem Team wird zum Projektleiter/zur Projektleiterin gewählt, der oder die für das Ressourcen-, Zeit- und Qualitätsmanagement verantwortlich ist. Analyse, Planung, Implementation, Tests und Präsentation können von jeweils einer oder mehreren Personen geleitet werden, speziell an der Abschlusspräsentation sollten alle Teammitglieder beteiligt sein und einen Teil vortragen. In der Dokumentation (s.s. 5) soll ersichtlich werden, welche Person während des Projektes für welche Aufgabe(n) verantwortlich war, um neben der Gesamtwertung für die Gruppe auch eine personenbezogene Einzelbewertung des Projekts durchführen zu können. 2.3 Methoden Es sollen die Methoden des Software Engineering angewandt werden, also 1. Planung, 2. Analyse, 3. Entwurf, 4. Programmierung, 5. Tests, 6.... begleitende Prozesse, insbesondere Dokumentation, mit Validierung und Verifizierung in geeigneten Phasen des Projektverlaufs. 3

3 Vorgehen 3.1 Projektplan/Zeitplan Vom Projektleiter ist in einem frühen Projektstadium in Absprache mit den übrigen Teammitgliedern ein Projektplan zu erstellen, die Aufgaben sind festzulegen und zu verteilen. Beispielsweise könnte der Projektplan für Woche 1 eine Orientierungsphase vorsehen, um die Robocode Laufzeit- und Entwicklungsumgebung kennenzulernen, und einen ersten Blick in die Beispielprogramme und die Robocode-API zu werfen, Woche 2 für Analyse der Möglichkeiten, die die Robocode-API bietet, Design (Entwurf einer Gewinn-Strategie) und Planung (wer kümmert sich um welchen Teil der Implementation, welche Module sind wann fertigzustellen und zu testen?), Woche 3 für die Implementierung und Tests. 3.2 Analyse und Design Auch wenn es den einen oder anderen Teilnehmer vielleicht reizt, gleich draufloszuprogrammieren, soll die Arbeit an der Software zielgerichtet ablaufen. Es wird zunächst gemeinsam die Strategie, die jeder der Teamroboter verfolgen kann, festgelegt. In der Implementationsphase soll diese Strategie nach Möglichkeit nicht mehr geändert werden. Da hierzu die Kenntnis der Möglichkeiten innerhalb der Laufzeitumgebung Voraussetzung ist, müssen sich die Teilnehmer vorher eingehend mit der Robocode-API, insbesondere der Klasse TeamRobot und den darin geerbten Basisklassen und deren Methoden beschäftigt haben. 3.3 Implementation In der Implementationsphase sollen (Vorgabe), ausgehend von Objekten der Klasse Team- Robot, zwei Roboter programmiert werden. Diese sollen sich gegenseitig bei der Erreichung des Ziels (s.s. 3) unterstützen, was z.b. durch geeignete Kommunikations-Schnittstellen erreicht werden kann. Das Team kann in der virtuellen Arena von Robocode getestet werden. Um fair gegenüber den anderen Projektteams zu bleiben, sollen nur die in Robocode vorhandenen Beispiele als Basis dienen und keine 1:1-Kopien aus dem Internet heruntergeladener Killermaschinen, die oft auch kaum verständlich programmiert und unzureichend dokumentiert sind. Sie dürfen aber durchaus Strategien wiederverwenden, die Sie bei anderen Robotern gesehen haben, sofern Sie diese durchschauen und verständlich erklären und dokumentieren können. 3.4 Abschlusspräsentation/Dokumentation Am letzten Tag des Projektes muss jedes Team 1. Eine Dokumentation 2. Eine Präsentation 3. Einen funktionsfähigen Prototyp bzw. ein fertiges Roboter-Team (jar-package!) abliefern. 4

3.4.1 Dokumentation Die Dokumentation soll, pro Team eine, in elektronischer Form (PDF + eine weiterbearbeibare Fassung) beim Kursleiter abgegeben werden und enthält: Den Namen des Projektes, Die Namen der in diesem Team beteiligten Personen und ihre Funktionen für das Projekt, Eine kurze Einführung ( Worum geht es überhaupt? ), eine Ausarbeitung, wobei das Pflichtenheft als Gliederungshilfe dienen kann, u.a.: Eine Beschreibung des Vorgehens und der verwendeten Methoden bei der Realisierung des Projektes, Eine Erläuterung der Strategie für jeden programierten Roboter, Die Umsetzung dieser Strategie, z.b. mit Beispielcode aus der Implementation, Ein Fazit: Wurde das Ziel erreicht? Welche Problempunkte sind noch ungelöst? Was könnte man anders/besser machen, wie hoch ist der Aufwand dafür? 3.4.2 Präsentation Das Team stellt sein abgeschlossenes Projekt in Form einer Kurzpräsentation (max. 20 Minuten, plus 10 Minuten Diskussion) vor. Hierbei kann der Beamer oder die Tafel mitverwendet werden. Falls Live-Demonstrationen am Rechner gezeigt werden, sind diese im Vorfeld so vorzubereiten, dass keine zusätzliche Zeit für die Technik aufgewandt werden muss. 3.5 Demonstration Nach Abschluss aller Präsentationen erfolgt (als Demonstration der Ergebnisse) eine Gegenüberstellung aller Teams in einer gemeinsamen, großen Robocode-Arena in 10 Runden, um das Team mit der besten Strategie zu ermitteln. Hierzu ist dem Kursleiter ein Snapshot (jar-export) des programmierten Roboter-Teams zur Verfügung zu stellen. Während oder nach der Demonstration erfolgt eine Abschlussdiskussion mit allen Teilnehmern. 5