Difference between revisions of "EMU/SRS"
(→Change-Log) |
(→ES-GUI Enhancement) |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Projects]] | ||
+ | [[Image:emu_logo_02.png|right|frame| EMUs: Eiffel Multi Users]] | ||
+ | |||
=The Parts= | =The Parts= | ||
* EMU-Protocol | * EMU-Protocol | ||
* EMU-Server | * EMU-Server | ||
* EMU-Client | * EMU-Client | ||
− | * | + | * ES integration |
=Developer Requirements= | =Developer Requirements= | ||
Line 11: | Line 14: | ||
* available messages | * available messages | ||
* client/server actions | * client/server actions | ||
+ | |||
+ | You can find our complete Protocol Specification [[EMU/Protocol|here]] | ||
==EMU-Server== | ==EMU-Server== | ||
Line 51: | Line 56: | ||
* online status | * online status | ||
− | ==Change-Log== | + | ===Change-Log=== |
+ | The Log helps the users to know what has changed during their last login. | ||
+ | It is also used as a look-up table for synchronisation with the clients. | ||
Every lock/unlock action is logged with following data: | Every lock/unlock action is logged with following data: | ||
* user name | * user name | ||
Line 57: | Line 64: | ||
* type of action | * type of action | ||
* code element (class name) | * code element (class name) | ||
− | Additionally, it provides the possibility for the user to add comments (e.g what he changed, what doesn't work yet...) | + | Additionally, it provides the possibility for the user to add comments (e.g what he changed, what doesn't work yet...). |
− | + | ||
==EMU-Client== | ==EMU-Client== | ||
Line 71: | Line 77: | ||
The client needs to notify the IDE of the new changes. | The client needs to notify the IDE of the new changes. | ||
− | == | + | ==ES 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 | ||
+ | * only a few GUI changes | ||
+ | |||
+ | ===ES-GUI Enhancement=== | ||
+ | |||
+ | * Emu-Toolbar [Upload,Download,Lock,Unlock and start external wizards] | ||
+ | |||
+ | ===Internal Dialogs=== | ||
+ | ===External Wizards=== | ||
+ | ====New EMU Project Wizard==== | ||
+ | The following states need to be reflected by the wizard: | ||
+ | * emu-server hostname and port | ||
+ | * project-name and project-password | ||
+ | * add ES-libraries used | ||
+ | * add users and user-passwords | ||
=User Requirements= | =User Requirements= |
Latest revision as of 08:59, 22 June 2006
Contents
The Parts
- EMU-Protocol
- EMU-Server
- EMU-Client
- ES integration
Developer Requirements
EMU-Protocol
defines Client/Server communication with
- client/server states
- available messages
- client/server actions
You can find our complete Protocol Specification here
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
The Log helps the users to know what has changed during their last login. It is also used as a look-up table for synchronisation with the clients. Every lock/unlock action is logged with following data:
- user name
- date and time
- type of action
- code element (class name)
Additionally, it provides the possibility for the user to add comments (e.g what he changed, what doesn't work yet...).
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.
ES integration
- minimal change to existing ES-classes and features.
- modular integration: activatable and removable / hideable
- only a few GUI changes
ES-GUI Enhancement
- Emu-Toolbar [Upload,Download,Lock,Unlock and start external wizards]
Internal Dialogs
External Wizards
New EMU Project Wizard
The following states need to be reflected by the wizard:
- emu-server hostname and port
- project-name and project-password
- add ES-libraries used
- add users and user-passwords
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