Difference between revisions of "EMU/SRS"

m (ES integration)
(ES-GUI Enhancement)
 
(5 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 12: Line 15:
 
* client/server actions
 
* client/server actions
  
===Messages===
+
You can find our complete Protocol Specification [[EMU/Protocol|here]]
====Connection Establishment====
+
 
+
====Synchronization Check====
+
 
+
====Data Transfer====
+
 
+
====Connection Closure====
+
  
 
==EMU-Server==
 
==EMU-Server==
Line 87: Line 83:
  
 
===ES-GUI Enhancement===
 
===ES-GUI Enhancement===
 +
 +
* Emu-Toolbar [Upload,Download,Lock,Unlock and start external wizards]
  
 
===Internal Dialogs===
 
===Internal Dialogs===
  
 
===External Wizards===
 
===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