|
|
| 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.