EMU: Difference between revisions

From EiffelStudio: an EiffelSoftware project
Jump to navigation Jump to search
Trickli (talk | contribs)
No edit summary
Trickli (talk | contribs)
No edit summary
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 12:15, 27 April 2006


  1. =Overview=
  2. ==Name==

EMU stands for Eiffel Multi User.

  1. ==Goal==

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


  1. =Software Requirements Specification=
  2. ==The Parts==
  • EMU-Protocol
  • EMU-Server
  • EMU-Client
  • EMU-IDE integration
  1. ==Developer Requirements==
  2. ===EMU-Protocol===

defines Client/Server communication with

  • client/server states
  • available messages
  • client/server actions
  1. ===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
  1. ====Locking-System====
  • list of locked code
  • check if code (class) is locked
  • lock / unlock code (class)
  1. ====Code-Synchronization====
  • broadcast code-changes
  • bring user code up to date
  1. ====Account-System====

The server uses an account-system to organize its projects and users. Every project has its own users assigned.

  1. =====Project-Accounts=====
  • project name
  • project-admin(s)
  • user lists
  • project status
  • editable / creatable with a project-admin-tool
  1. =====User-Accounts=====
  • usernames
  • used for logins
  • assign locked code & changes to users
  • online status
  1. ===Change-Log===

Every lock/unlock action is locked with following data:

  • user name
  • date and time
  • type of action
  • code element (class name)
  1. ===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
  1. ====IDE-Notifications====

The client needs to notify the IDE of the new changes.

  1. ===EMU-IDE integration===
  • minimal change to existing ES-classes and features.
  • modular integration: activatable and removable / hideable


  1. ==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


  1. =Milestones=
  1. ==M1: April 25th==
  • set up mailinglist es-emu@origo.ethz.ch (Bernd)
  • wiki page up to date
  • everyone managed to compile Eiffelstudio
  1. ==M2: May ??? ==
  • To be completed by the team


  1. =Team=

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