Difference between revisions of "EMU"
Line 1: | Line 1: | ||
− | [[Category:Projects]] | + | #[[Category:Projects]] |
− | + | #=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 03:15, 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