Difference between revisions of "EMU"

m (Team: typo)
(EMU-Server)
Line 28: Line 28:
 
* synchronizes code of clients
 
* synchronizes code of clients
 
* manages Locking-System
 
* 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===
 
===EMU-Client===

Revision as of 01:50, 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

The Parts

  • 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
  • modular / independent of IDE-integration

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


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