Difference between revisions of "EMU"

(outsourced the srs for bether readability)
Line 11: Line 11:
  
 
=Software Requirements Specification=
 
=Software Requirements Specification=
==The Parts==
+
You can find our SRS [[EMU/SRS|here]]
* EMU-Protocol
+
* EMU-Server
+
* EMU-Client
+
* EMU-IDE integration
+
 
+
==Developer Requirements==
+
===EMU-Protocol===
+
defines Client/Server communication with
+
* client/server states
+
* available messages
+
* client/server actions
+
 
+
===EMU-Server===
+
* stores and manages code-repository
+
* synchronizes code of clients
+
* manages Locking-System
+
* Account-System
+
* project update
+
* add/create new code (classes)
+
* change-logging
+
* optional: Media-upload
+
* optional: BackUp-System
+
* optional: Release-versions
+
* optional: Server-Admin-Tool
+
 
+
====Locking-System====
+
* list of locked code
+
* check if code (class) is locked
+
* lock / unlock code (class)
+
 
+
====Code-Synchronization====
+
* broadcast code-changes
+
* bring user code up to date
+
 
+
====Account-System====
+
The server uses an account-system to organize its projects and users.
+
Every project has its own users assigned.
+
 
+
=====Project-Accounts=====
+
* project name
+
* project-admin(s)
+
* user lists
+
* project status
+
* editable / creatable with a project-admin-tool
+
 
+
=====User-Accounts=====
+
* usernames
+
* used for logins
+
* assign locked code & changes to users
+
* online status
+
 
+
===Change-Log===
+
Every lock/unlock action is locked with following data:
+
* user name
+
* date and time
+
* type of action
+
* code element (class name)
+
 
+
===EMU-Client===
+
* interface for IDE and server
+
* provides features to login and communicate with server on an abstract base
+
* upload/download code elements to/from server
+
* notify IDE of server-messages (code-updates)
+
* modular / independent of IDE-integration
+
* optional: upload media files
+
 
+
====IDE-Notifications====
+
The client needs to notify the IDE of the new changes.
+
 
+
===EMU-IDE integration===
+
* minimal change to existing ES-classes and features.
+
* modular integration: activatable and removable / hideable
+
 
+
 
+
==User Requirements==
+
* easy to use
+
* target is a small project group of up to 20 developers.
+
* code synchronisation process mostly hidden from user
+
* minimal extra work (less total work)
+
* better efficiency
+
  
  

Revision as of 05:30, 27 April 2006


Overview

Name

EMU stands for Eiffel Multi User.

Goal

The aim of this project is to integrate a simple repository functionality into EiffelStudio.


Software Requirements Specification

You can find our SRS here


Milestones

M1: April 25th

  • set up mailinglist es-emu@origo.ethz.ch (Bernd)
  • wiki page up to date
  • everyone managed to compile Eiffelstudio

M2: May ???

  • To be completed by the team


Team

Everyone interested in this project is welcome to join our mailinglist es-emu@origo.ethz.ch