Difference between revisions of "EMU/SRS"

m (The Parts: -> ES integration)
(ES-GUI Enhancement)
 
(8 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 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.
 
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.
 
It is also used as a look-up table for synchronisation with the clients.
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 09:59, 22 June 2006

EMUs: Eiffel Multi Users

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