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