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

