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 / Version
Stephen 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.