| 
				   | 
				
| Line 11: | 
Line 11: | 
|   |  |   |  | 
|   | =Software Requirements Specification=  |   | =Software Requirements Specification=  | 
| − | ==The Parts==
  | + | You can find our SRS [[EMU/SRS|here]]  | 
| − | * 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
  | + |  | 
| − | * 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.
  | + |  | 
| − |    | + |  | 
| − | ===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
  | + |  | 
|   |  |   |  | 
|   |  |   |  | 
The aim of this project is to integrate a simple repository functionality into EiffelStudio.