Difference between revisions of "EMU/SRS"
m (→Change-Log)  | 
				 (→ES-GUI Enhancement)  | 
				||
| (7 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  | ||
| 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 75: | Line 80: | ||
* 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
 


