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 Purpose 1
1.2 Document Conventions 1
1.3 Intended Audience and Example Suggestions 1
1.4 Product Scope 1
1.5 References 1
2. Overall Description 2
2.1 Product Perspective 2
2.2 Product Functions 2
2.3 User Classes and Characteristics 2
2.4 Operating Environment 3
2.5 Design and Implementation Constraints 3
2.6 User Documentation 3
2.7 Assumptions 3
3. External Interface Requirements 3
3.1 User Interfaces 3
3.2 Hardware Interfaces 3
3.3 Software Interfaces 4
3.4 Communications Interfaces 4
4. System Features 4
4.1 Multiple tabbed pane text editor 4
4.2 Document status display and file management 4
4.3 BNF interpretation 5
4.4 Code translation into grammatical objects 5
4.5 Graphical display of code structure and irregularities or errors 5
4.6 User defined elements tracking 6
4.7 Automatic element completion 6
4.8 Compilation and execution of code files 6
5. Other Nonfunctional Requirements 7
5.1 Performance Requirements 7
5.2 Safety Requirements 7
5.3 Security Requirements 7
5.4 Software Quality Attributes 7
5.5 Business Rules 7
Revision History
Name / Date / Reason For Changes / VersionStephen Walter / 3-25-08 / Initial version / 1
Stephen Walter / 4-02-08 / Formatting and additional feature information / 1.1
Software Requirements Specification for Uni-IDE Page 6
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 – Universal-language Integrated Development Environment
IDE – Integrated Development Environment
GUI – Graphic User Interface
BNF – Back-Naur Form, a context free grammar definition
MVC – Model-View-Controller, a programming structure design
VCS – 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
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.
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.
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
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
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
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.