Difference between revisions of "EMU"
Line 1: | Line 1: | ||
− | + | [[Category:Projects]] | |
− | + | =Overview= | |
− | + | ==Name== | |
EMU stands for '''Eiffel Multi User'''. | EMU stands for '''Eiffel Multi User'''. | ||
− | + | ==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= | |
− | + | ==The Parts== | |
* EMU-Protocol | * EMU-Protocol | ||
* EMU-Server | * EMU-Server | ||
Line 17: | Line 17: | ||
* EMU-IDE integration | * EMU-IDE integration | ||
− | + | ==Developer Requirements== | |
− | + | ===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=== | |
* 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==== | |
* 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==== | |
* broadcast code-changes | * broadcast code-changes | ||
* bring user code up to date | * bring user code up to date | ||
− | + | ====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 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===== | |
* usernames | * usernames | ||
* used for logins | * used for logins | ||
Line 63: | Line 63: | ||
* online status | * online status | ||
− | + | ===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=== | |
* 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==== | |
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=== | |
* 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== | |
* 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= | |
− | + | ==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 ??? == | |
* To be completed by the team | * To be completed by the 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:16, 27 April 2006
Contents
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