EMU
- =Overview=
- ==Name==
EMU stands for Eiffel Multi User.
- ==Goal==
The aim of this project is to integrate a simple repository functionality into EiffelStudio.
- =Software Requirements Specification=
- ==The Parts==
- 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
- =Milestones=
- ==M1: April 25th==
- set up mailinglist es-emu@origo.ethz.ch (Bernd)
- wiki page up to date
- everyone managed to compile Eiffelstudio
- ==M2: May ??? ==
- To be completed by the team
- =Team=
Everyone interested in this project is welcome to join our mailinglist es-emu@origo.ethz.ch