540 likes | 712 Views
Web-based Integrated Development Environment. Application Design Document. Roles & Responsibilities. Academic adviser: Dr. Mayer Goldberg. Technical adviser: Mr. Guy Wiener. Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein. Table of contents. Background
E N D
Web-based Integrated Development Environment Application Design Document
Roles & Responsibilities • Academic adviser: Dr. Mayer Goldberg • Technical adviser: Mr. Guy Wiener • Project Team: • SuzanaVaserman • David Fleish • Moran Zafir • Tzvika Stein
Table of contents • Background • System Requirements • System Architecture • Main classes and their relationships • User Interfaces • Open questions • Task list
Background (reminder)
Current Situation • Developers working on a software project, nowadays, use code management tools to organize their code (e.g. SVN and Clear Case). • The actual code creation and modification is done locally on the developer’s machine.
Current Situation – Problem Domain • The code must be downloaded and uploaded from and to the code repository – time consuming. • A developer’s final version of the code might have conflicts with the version on the server at upload • time – conflict resolving can be tedious. • Developers must have all the software required for developing installed on their machines – require licenses which raise expenses.
Current Situation – Problem Domain (Cont.) • As a result of high software demands, both for developing and for testing, hardware demands for developing machines might rise as well – expenses increase. • Sometimes, developers working on the same project aren’t necessarily at the same physical location, which makes it hard to cooperate and communicate with one another – communication issues slow the developing process.
System Requirements
System Requirements • In order to overcome the issues we just mentioned we intend to develop a web-based IDE in which: • There will be only one valid version of the code at any given time. No local versions. No check out and check in. • All editing of the code will be done within the web browser and stored directly on the central server. • Programmer’s view of the code is always the same for all programmers.
System Requirements (cont.) • All resources required for developing the application will be located on the server. • No special hardware or software requirements on the developer’s side, other than a web browser. • An integrated chat should encourage users to communicate with one another for better cooperation and coordination.
System Architecture
The Client Architecture • A standard web browser is used to interact with the application. • The client has to send different query requests to the server : • Retrieve directory structure upon expand. • Retrieve users associated with active project. • Retrieve modifying users of open files. • Etc ..
The Client Architecture (cont.) • Initiate update check requests regularly : • Directory structure updates • Open files updates • Chat messages updates • After each response from the server the client has to • modify the client’s view
The Controller Architecture • The controller is the middle tier that interprets and processes requests from the client and accesses the database. • The Controller and Database sits on the same computer • The controller consists of 2 components : • Web Server • Application Server
The Web Server Architecture • Emulates the serverwith apache software. • Receives requests from the client • Delegates the requests to the application server • Sends application server responses back to the client.
The Application Server Architecture • Consists of physical files and logical objects in the system • Receives and process requests from the web server and executes specified transactions on the database • Data requests - Directories content, association between users and projects, etc… • Update requests – Files change • Updates both Database and physical files • Dynamic updates - users log in, log out, open files, close files, Updates logical data.
The Database Architecture • Stores users and projects related data • (except physical files and dynamic associations) • Receives requests from the application server and returns desired records. • Maintains properties for first system setup • Uses MySql to manipulate data
The Database Architecture (cont.) • Links between user and associated projects. • Links between user and created files. • Links between tags and associated data. • Links between run configurations and files. • Links between users and permissions
Open Questions • The programming language we are going to support and the tools we are going to use for compilation and execution • Will we support simultaneous connections of a certain user to a certain project • How to keep consistency between the File System and the DB
Application • Data base • Build data base • Create data base controller • Project management • User management
Application (cont.) • File management • File operations • File tags • Refresh file structure • Search file • File editing/viewing • File configuration
Application (cont.) • Chat • Logging in and out of the system • System cleanup