UniIDE Project Specification Draft version 1.1

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