Category Archives: SS15

Software Engineering I, SS15

Im folgenden ein Beispiel, was “method body lines of code” aus den Bewertungskriterien bedeutet. Aus diesen 55 Zeilen der Klasse fließen 12 Zeilen in die Bewertung ein. Da ausschließlich Methodenrümpfe gezählt werden, fallen alle Importe, Felddeklarationen usw. raus. Innerhalb der Methodenrümpfe werden zudem alle Kommentare, sowie öffnende und schließende Klammern nicht gezählt.

Count Example

Projects, SS15

Projektdaten

Betreuer: Marcel Hahn
Zielgruppe: Bachelor ab dem 4. Semester & Master
Skills: Interesse an Softwareentwicklung/Eclipse, gute Java, Eclipse und Git Kenntnisse
Umfang: Bachelor: 12 Credits über 2 Semester, Master: 8 Credits über 2 Semester
Zeit: SS 2015 und WS 15/16 , evtl. Teilnahme an der ICSE 2016 (14-22 May 2016)

Summary

Beim SCORE 2011 haben wir es noch in die Hauptrunde geschafft.

Beim SCORE 2013 wurden wir als eines der letzten drei Teams nach San Francisco eingeladen.

Dieses Jahr holen wir uns das Ding in Austin, Texas!

Das Thema:

Distributed Software Development: Team and Source Code Overview

This program aims to help students working in distributed software engineering projects to have a better overview of who is working on particular parts of the code, what tasks are associated to each file, and who is responsible for each file, as well as the working patterns for each individual, to allow for better communication. For example, student Smith might be responsible for a file, but she is working from Australia, therefore, only online between particular times. The program will run as an overlay over an IDE and will be continuously updated as changes happen to the code and responsibilities get allocated.

http://score-contest.org/2016/projects/dsd.php

Technologien

Java, Eclipse, Git, …

Software Engineering I, SS15

Der Server spricht generell ein zeilenbasiertes String Protokoll. Daher kann man eine telnet Verbindung benutzen um das Protokoll zu erkunden. Nach dem öffnen einer Konsole und der Eingabe von

 telnet se1.cs.uni-kassel.de 5000

kann man mit HELP eine Liste aller verfügbaren Befehle abrufen.

Allgemeine Informationen

  • Um sich beim Server anzumelden, benötigt man zunächst einen eigenen Login. Dieser ist identisch mit eurem Jira-Login.
  • Jedes erfolgreiche Kommando wird vom Server mit einem OK beendet. Fehler werden mit einer Zeile beantwortet die mit ERROR beginnt.
  • Der Server kommuniziert durch zwei verschiedene Protokollarten:
    • “Klartextprotokoll”: Bei einloggen und in der Lobby verwendet der Server ein simples “Klartextprotokoll” um mit seinen Clients zu kommunizieren.
    • JSON-Protokoll: Nach einem erfolgreichen JOIN GAME Kommando das mit OK bestätigt wurde wechselt der Server in ein JSON basiertes Protokoll, bei dem er JSON codierte Events verschickt und JSON codierte Commands erwartet.
  • Um einen Timeout zu vermeiden sollte vom Client in regelmäßigen Abständen ein NOOP geschickt werden.

Klartextprotokoll

Sobald man eine Verbindung zum Server aufgebaut hat, kommuniziert dieser mit einem simplen Klartextprotokoll mit dem Client. Nicht alle Befehle sind überall verfügbar. Eine genaue Auflistung inkl. Gruppierung der Befehle liefert der HELP Befehl. Hier eine Übersicht über die verschiedenen Befehle:

  • Immer:
    • HELP <command>
    • NOOP
  • Nach der Begrüßung vom Server:
    • LOGIN (<login>|<email>) <password>
    • LOGOUT
  • Nach dem Anmelden:
    • LIST MAPS
    • LIST USERS
    • LIST GAMES
    • CREATE GAME <gamename> -maxPlayers <count> (-map <mapname>)? (-testgame)?
    • JOIN GAME <gamename> (-visitor [true|false])?
    • MSG (ALL | ( ( USER | TEAM ) <recipient> ) )? <message>
    • UPLOAD MAP
    • DOWNLOAD MAP <mapname>
    • CREATE TESTPLAYER
      Beispiel:

      SE1-Server 1.0, Timeout set to 600000ms
      login admin ******
      USER NICK=admin EMAIL=andreas.koch@cs.uni-kassel.de ROLE=SE
      TEAM NAME=SE ID=3fb6101e
      OK
      help
      Available commands after greeting: LOGIN, LOGOUT
      User commands: ID, CHANGE PASSWORD, LIST USERS
      Game management: LIST MAPS, CREATE GAME, LIST GAMES, JOIN GAME, UPLOAD MAP, DOWNLOAD MAP
      Team management: LIST TEAMS
      Other commands: CREATE TESTPLAYER, MSG, CHANGELOG, UPLOAD MAP, NOOP, HELP
      send 'HELP <command>' for details
      a successfull command will be acknowledged with an 'OK' line
      an unsuccessfull command will be acknowledged with an 'ERROR' line
      OK
      help create testplayer
      Creates a temporary user e.g. for testing purposes. This user exists at least for 24h hours or until the next server restart
      Usage: "CREATE TESTPLAYER"
      OK
      create testplayer
      TEMPORARY USER NICK=tempUser0 PASSWORD=ys8ufm
      OK