Software Requirements Specification for Uni-IDE Version 1.1 Prepared by Stephen Walter Villanova CSC 4700 4-02-08 Software Requirements Specification for Uni-IDE Page ii Table of Contents Table of Contents .......................................................................................................................... ii Revision History ............................................................................................................................ ii 1. Introduction ..............................................................................................................................1 1.1 1.2 1.3 1.4 1.5 Purpose ........................................................................................................................................ 1 Document Conventions ............................................................................................................... 1 Intended Audience and Example Suggestions ............................................................................ 1 Product Scope .............................................................................................................................. 1 References ................................................................................................................................... 1 2. Overall Description ..................................................................................................................2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Product Perspective ..................................................................................................................... 2 Product Functions ........................................................................................................................ 2 User Classes and Characteristics ................................................................................................. 2 Operating Environment ............................................................................................................... 3 Design and Implementation Constraints ..................................................................................... 3 User Documentation .................................................................................................................... 3 Assumptions ................................................................................................................................ 3 3. External Interface Requirements ...........................................................................................3 3.1 3.2 3.3 3.4 User Interfaces ............................................................................................................................. 3 Hardware Interfaces .................................................................................................................... 3 Software Interfaces ...................................................................................................................... 4 Communications Interfaces ......................................................................................................... 4 4. System Features........................................................................................................................4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Multiple tabbed pane text editor ................................................................................................. 4 Document status display and file management ........................................................................... 4 BNF interpretation ....................................................................................................................... 5 Code translation into grammatical objects .................................................................................. 5 Graphical display of code structure and irregularities or errors .................................................. 5 User defined elements tracking ................................................................................................... 6 Automatic element completion.................................................................................................... 6 Compilation and execution of code files ..................................................................................... 6 5. Other Nonfunctional Requirements .......................................................................................7 5.1 5.2 5.3 5.4 5.5 Performance Requirements ......................................................................................................... 7 Safety Requirements .................................................................................................................... 7 Security Requirements ................................................................................................................ 7 Software Quality Attributes ........................................................................................................ 7 Business Rules ............................................................................................................................. 7 Revision History Name Date Reason For Changes Version Stephen Walter Stephen Walter 3-25-08 4-02-08 Initial version Formatting and additional feature information 1 1.1 Software Requirements Specification for Uni-IDE Page 1 1. Introduction 1.1 Purpose This document is to describe the software development of Universal-language Integrated Development Environment, which will be called Uni-IDE. This is newly developed software based on a compilation of features from traditional language-specific IDEs. All code is described in the Java language for cross platform support and ease of implementation. 1.2 Document Conventions This document assumes some familiarity with fundamentals of computer language structure as well as common graphical components Acronyms used in this document Uni-IDE IDE GUI BNF MVC VCS – Universal-language Integrated Development Environment – Integrated Development Environment – Graphic User Interface – Back-Naur Form, a context free grammar definition – Model-View-Controller, a programming structure design – Versioning Control System 1.3 Intended Audience and Example Suggestions The target audience is for any potent developers or funders for Uni-IDE to provide an overview of the project. Modern examples of software features may be seen in other projects such as Eclipse, Netbeans, or Microsoft Visual Studio. 1.4 Product Scope The Uni-IDE is to provide a code development environment that supports any computer language defined as a modified BNF text file. Its users consist of any small size programming group that uses a non-standard language for a specific problem. These programming teams may develop an in-house language or use a rare public language that has no supporting software to assist in their code development. Uni-IDE will fill the role of the traditional IDEs for any of these languages provided the language is specified within a context free grammar. This will save the group the time and resources that would have been used develop their own editing tool. The software will feature standard IDE features, which will reduce time and training required to operate the software and make simple transition from other environments. 1.5 References Computer language history, Compiled by Éric Lévénez, 2008 http://www.levenez.com/lang/history.html Software Requirements Specification for Uni-IDE Page 2 General terminology, Multiple authors http://en.wikipedia.org/ Java language, Sun Microsystems. http://java.sun.com/ Netbeans IDE, Netbeans Community Aided by Sun Microsystems http://www.netbeans.org/ Eclipse IDE, The Eclipse Foundation http://www.eclipse.org/ Microsoft Visual Studio IDE, Microsoft Corporation http://msdn2.microsoft.com/en-us/vstudio/default.aspx 2. Overall Description 2.1 Product Perspective The Uni-IDE is designed to operate on several different computer systems in order to act compatible with system dependant languages. Due to the nature of features, the software requires a graphic system to operate and will not be considered for use in console-only systems. The software acts as a replacement or supplement to text editors while mimicking the features of language specific IDEs. 2.2 Product Functions Multiple tabbed pane text editor Document status display and file management BNF interpretation Code translation into grammatical objects Graphical display of code structure and irregularities or errors User defined elements tracking Automatic element completion Compilation and execution of code files The software is organized into the MVC format. The Model consists of the user files as well as their interpreted form. The View of the software code will be dictated to display of the user data. Several Controller classes will perform the operations between model and view objects. 2.3 User Classes and Characteristics All users of the software are required full read and write privileges on the operating system, while also highly recommended to have execution privileges. As the target audience is expected to be small groups, so no tiered system is implemented. Every user has full access to all features of the software. The target audience is developers who work on a non-standard language, so all basic computer GUI operations are assumed to be understood without need of explanation. However, it is important to focus on users unfamiliar with modern IDE components by providing a clear and innate design. Software Requirements Specification for Uni-IDE Page 3 2.4 Operating Environment The software is to be used in normal lab or office settings at a security environment. The software works on any operating system with Java 5.0 installed and has graphical capabilities. The hardware requirements are support low end systems that may be dated. 2.5 Design and Implementation Constraints Due to cross platform support, Uni-IDE will run slower than natively built software, however the speed of the software is generally nonessential to the majority of its functionality. The two important design requirements are on the BNF grammar translation and its related display, as it is to run parallel with normal text editing functions. Therefore, optimizations in memory usage and efficiency in algorithm are to be focused on those subjects. Graphical options on the display information are limited to the native java document classes and can restrict the style of information The software does not address any networking or security issues, so all aspects are ignored. 2.6 User Documentation System has a built in help system to search and define functions of the software. Documentation may be reached in the program through the help menu and through particular areas where a tooltip description may be applied. Online support may consist of a web mailgroup as well as a website featuring common questions. No physical copy of any documentation will be produced in order to keep Uni-IDE distribution costs minimal. 2.7 Assumptions The specification is assuming that software features are not violating any legal issues and the users take full responsibility for any product designed assisted by this software 3. External Interface Requirements 3.1 User Interfaces Uni-IDE requires a graphic operating system to display frame. This operating system is only restricted to those compatible with Java code. 3.2 Hardware Interfaces The hardware must provide keyboard and mouse communications using Java. The harddisk storing the files should not be accepting any other editing requests for the user opened documents in order to avoid race conditions. Software Requirements Specification for Uni-IDE Page 4 3.3 Software Interfaces The software utilizes Java and its file management classes in order to operate. All software components are expected to exist locally on the computer and limited to a single user at a time to avoid race conditions on files. 3.4 Communications Interfaces Future version of the software may support accessing remote databases for code files and user VCS implemented as a shell form, allowing independent development on the VCS model outside of Uni-IDE development. Details of such VCS may be referenced outside of this document. 4. System Features Uni-IDE’s interface consists of a window frame holding the multi-pane text editor in the center, a menu system at the top, a side pane displaying user elements, and a bottom panel updating with textual status. 4.1 Multiple tabbed pane text editor 4.1.1 Description and Priority This view contains a tabbed object. Each tab labeled by document name and a close button will hold a text editor pane containing an editable stylized document displaying its associated file using special formatting styles. The pane also holds a side and bottom panel showing line number and relative document data through text labels. The editor also features a popup menu which appears after the stylized text field has selected partially filled user data. The menu lists potential candidates to fill the selected text. This is a core feature of the product. 4.1.2 Stimulus/Response Sequences The tab panes operate using default Java functionality with special click to close element. The stylized document monitors all keystrokes, cursor shifts, and mouse clicks and echoes commands to a controller for processing. Most events will result in a change of text or textual styles. 4.1.3 Functional Requirements The editor requires a document loading function, insertion and removal of text, and modification of textual styles. Undo and redo of recent text modifications are supported. All errors in parameters or file related exceptions are to ignore operation and report status in the bottom panel. 4.2 Document status display and file management 4.1.1 Description and Priority This model tracks every document for changes and stores compiled grammar elements, a file tree structure, location of uncompiled code, original file location, project association, and compile order. This is a core feature of the product. 4.1.2 Stimulus/Response Sequences Software Requirements Specification for Uni-IDE Page 5 TBD 4.1.3 Functional Requirements TBD 4.3 BNF interpretation 4.1.1 Description and Priority This controller reads a specified text file written in a special BNF format and produces a grammar structure of the language. Grammar is associated by the document tag format. This is a core feature of the product. 4.1.2 Stimulus/Response Sequences User activates via Options menu and selecting language definition providing the BNF file location. The program will proceed to interpret the file and update status at bottom status bar. 4.1.3 Functional Requirements TBD 4.4 Code translation into grammatical objects 4.1.1 Description and Priority This controller reads a specific text file of a specified language that has a defined structure and parses texts in elements that are applied to the grammar rules. The resulting tree structure and association table of individual elements are returned. This is a core feature of the product. 4.1.2 Stimulus/Response Sequences User may manually activate via Options menu, or it may be set to automatically translation during the editing of a file. 4.1.3 Functional Requirements REQ-1: The language, identified by the document tag, must be have a defined grammar 4.5 Graphical display of code structure and irregularities or errors 4.1.1 Description and Priority This controller receives information about the change in user code that has a change in grammatical structure and applies a set rules of stylized text to the related document. Special format is mark at the site of errors. This is a core feature of the product. 4.1.2 Stimulus/Response Sequences TBD 4.1.3 Functional Requirements REQ-1: Grammatical object of code Software Requirements Specification for Uni-IDE Page 6 4.6 User defined elements tracking 4.1.1 Description and Priority This model stores a list of user defined objects in their scopes in order to provide additional support for grammatical compliance. It tracks a unique object type, index, and location of definition and deletion of its use. A list of these objects is sent to the side panel of the main frame for display. 4.1.2 Stimulus/Response Sequences TBD 4.1.4 Functional Requirements REQ-1: Grammatical object of code 4.7 Automatic element completion 4.1.1 Description and Priority This controller takes a given selection of text and attempts to fill out a grammar sequence and/or user defined elements that would fit in the position. The potential solutions are alphabetically sorted in a list and sent to the editor’s overlaying menu. 4.1.2 Stimulus/Response Sequences Activates during normal editing of document, appears upon a pause while midwy through typing an unfinished element 4.1.5 Functional Requirements REQ-1a: Grammatical object of code REQ-1b: Language defined grammar 4.8 Compilation and execution of code files 4.1.1 Description and Priority This controller takes the selected document or every related document and runs them through a specified compiler using the document[s]’s defined ordering. Execution of console may be echoed to a new text file displayed in a tabbed text editor. 4.1.2 Stimulus/Response Sequences User activates via Options menu and selecting Compile or Execute 4.1.3 Functional Requirements REQ-1: Language defined compiler REQ-2: Execution shell Software Requirements Specification for Uni-IDE Page 7 5. Other Nonfunctional Requirements 5.1 Performance Requirements Uni-IDE is designed to operate on a low spec computer to accommodate the target audience, so it requires a minimal footprint in RAM and a light demand on cpu cycles. All real time grammar scanning with work off a queue or stack based thread to allow pause or interruption. This will assist in removing the possibility of program logic locking through grammar scanning in an indefinite cycle. 5.2 Safety Requirements The software is not designed to be apart of a critical system nor act in any life dependent situation. 5.3 Security Requirements Users of the software require basic read and write privileges to operate the software. Otherwise there are no other restrictions in place. 5.4 Software Quality Attributes The Uni-IDE needs to stress focus on clarity in the presentation of grammatical support as it is the principle reasoning for using this software. Syntax needs to be highlighted in relation to text support as well as providing customizable formatting options. The display should not distract or over exaggerate features. 5.5 Business Rules The software is not design for use in creating malicious content, which is beyond the software’s ability to identify. All products produced in relation to the software cannot associate or transfer any of its own blames or faults to the software.