Difference between revisions of "EMU"

Line 1: Line 1:
#[[Category:Projects]]
+
[[Category:Projects]]
  
  
#=Overview=
+
=Overview=
#==Name==
+
==Name==
 
EMU stands for '''Eiffel Multi User'''.
 
EMU stands for '''Eiffel Multi User'''.
#==Goal==
+
==Goal==
 
The aim of this project is to integrate a simple repository functionality into EiffelStudio.
 
The aim of this project is to integrate a simple repository functionality into EiffelStudio.
  
  
  
#=Software Requirements Specification=
+
=Software Requirements Specification=
#==The Parts==
+
==The Parts==
 
* EMU-Protocol
 
* EMU-Protocol
 
* EMU-Server
 
* EMU-Server
Line 17: Line 17:
 
* EMU-IDE integration
 
* EMU-IDE integration
  
#==Developer Requirements==
+
==Developer Requirements==
#===EMU-Protocol===
+
===EMU-Protocol===
 
defines Client/Server communication with
 
defines Client/Server communication with
 
* client/server states
 
* client/server states
Line 24: Line 24:
 
* client/server actions
 
* client/server actions
  
#===EMU-Server===
+
===EMU-Server===
 
* stores and manages code-repository
 
* stores and manages code-repository
 
* synchronizes code of clients
 
* synchronizes code of clients
Line 37: Line 37:
 
* optional: Server-Admin-Tool
 
* optional: Server-Admin-Tool
  
#====Locking-System====
+
====Locking-System====
 
* list of locked code
 
* list of locked code
 
* check if code (class) is locked
 
* check if code (class) is locked
 
* lock / unlock code (class)
 
* lock / unlock code (class)
  
#====Code-Synchronization====
+
====Code-Synchronization====
 
* broadcast code-changes
 
* broadcast code-changes
 
* bring user code up to date
 
* bring user code up to date
  
#====Account-System====
+
====Account-System====
 
The server uses an account-system to organize its projects and users.
 
The server uses an account-system to organize its projects and users.
 
Every project has its own users assigned.
 
Every project has its own users assigned.
  
#=====Project-Accounts=====
+
=====Project-Accounts=====
 
* project name
 
* project name
 
* project-admin(s)
 
* project-admin(s)
Line 57: Line 57:
 
* editable / creatable with a project-admin-tool
 
* editable / creatable with a project-admin-tool
  
#=====User-Accounts=====
+
=====User-Accounts=====
 
* usernames
 
* usernames
 
* used for logins
 
* used for logins
Line 63: Line 63:
 
* online status
 
* online status
  
#===Change-Log===
+
===Change-Log===
 
Every lock/unlock action is locked with following data:
 
Every lock/unlock action is locked with following data:
 
* user name
 
* user name
Line 70: Line 70:
 
* code element (class name)
 
* code element (class name)
  
#===EMU-Client===
+
===EMU-Client===
 
* interface for IDE and server
 
* interface for IDE and server
 
* provides features to login and communicate with server on an abstract base
 
* provides features to login and communicate with server on an abstract base
Line 78: Line 78:
 
* optional: upload media files
 
* optional: upload media files
  
#====IDE-Notifications====
+
====IDE-Notifications====
 
The client needs to notify the IDE of the new changes.
 
The client needs to notify the IDE of the new changes.
  
#===EMU-IDE integration===
+
===EMU-IDE integration===
 
* minimal change to existing ES-classes and features.
 
* minimal change to existing ES-classes and features.
 
* modular integration: activatable and removable / hideable
 
* modular integration: activatable and removable / hideable
  
  
#==User Requirements==
+
==User Requirements==
 
* easy to use
 
* easy to use
 
* target is a small project group of up to 20 developers.
 
* target is a small project group of up to 20 developers.
Line 95: Line 95:
  
  
#=Milestones=
+
=Milestones=
  
#==M1: April 25th==
+
==M1: April 25th==
 
* set up mailinglist es-emu@origo.ethz.ch ([[User:Schoelle|Bernd]])
 
* set up mailinglist es-emu@origo.ethz.ch ([[User:Schoelle|Bernd]])
 
* wiki page up to date
 
* wiki page up to date
 
* everyone managed to compile Eiffelstudio
 
* everyone managed to compile Eiffelstudio
  
#==M2: May ??? ==
+
==M2: May ??? ==
 
* To be completed by the team
 
* To be completed by the team
  
  
  
#=Team=
+
=Team=
 
Everyone interested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-emu es-emu@origo.ethz.ch]
 
Everyone interested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-emu es-emu@origo.ethz.ch]
  

Revision as of 04:16, 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
  • 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


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