NonFunctional? Requirements
Operating Constraints J2SE 1.4.2 (Java 2 SDK version 1.4.2) or newer must be installed. The program requires BlueJ version 2.2.1. The program requires a run-time of less than 30 sec per Kloc on minimum platform requirements. Platform constraints Minimum requirement for installing BlueJ version 2.2.1: 64Mb main memory, 450 MHz Pentium II processor or equivalent Modifiability, Adaptability Developers are able to add new code formatting standards and options through a .class file. Each user is able to create a profile with their preference of formatting style. User profiles are saved once created, but retain the ability to be modified at future times. Documentation There will be a text document user manual. The document will be at least at a 10th grade grammar level which should allow readable of the whole document in 2 hours. There will also be text pop up dialogue boxes next to warning messages in the formatter itself to off on site explanation of any error messages. Portability The code is portable to any computer running Windows 98 and newer, Mac OS X and newer, Linux Red Had, and Fedora operating systems that meet the operating and platform constraints. Reliability If our extension closes itself in the case of an error, this should be acceptable. It should not crash BlueJ entirely. The program will fix all the unformatted java code in current open document or specified directories of files each time it is run. Security The program will only modify files that it has access to. Those files are the only files that the source formatter can run on. The program will not alter any functionality of the code that is formatted. Usability A user should be able to switch to ANSI, ASCII, and JavaDoc standards by choosing one option, instead of having to set all the preferences themselves. The program should be intuitive to use, which means all the options are grouped with similar options in the menu system and the extension included a help section to clarify usability. This allows the user to quickly find and use menus to allow a user to create a profile in less than 5 minutes. Testability The user gives code that is badly formatted and running the program will fix the code not in the specified format. For each functional requirement that is implemented, there will be example code that has that error in it. The code will then be run through the formatter to show that it can fix that error in the code. There will also be code with multiple errors in it to show that the code works on several different errors correctly at the same time rather then just one. Deployment This should be in the form of a Java .jar file that will be able to be directly put into the BlueJ extensions folder to have it implement itself with BlueJ. Refer to BlueJ extension installition guide on BlueJ's website for any more clarification if needed. Instructions located at: http://www.bluej.org/extensions/extensions.html#install. Performance The program will at least finish the code formatting in less than 15 sec per Kloc on minimum system requirements.
SRS Outline
User Manual Outline Write a short explanation of your section/chapter and then use a step-by-step process to describe how to do/use whatever the section is about. NOTE: Draw sketches; pictures are the (lazy) user's friend. i. Table of Contents ii. Thank you/Brief Summary of Product (saying how powerful it is and how it beats down its competitors) 1. Getting Started/Installation go through extension installation process such as what's given on BlueJ except not as general (mention specifically the use of the extension’s file) 2. Using Preset Formats describe what they a preset format is list and describe the ones we include 3. Customizing/Creating Profiles note that customizing the options will turn off any preset format that's turned on explain how to customize the options (rather than using a preset) mention that they can save their customized options in their own spiffy profile 4. Formatting Code explain what happens when “format errors” are found their code (pop up window with list of changes that could be made) explain the options provided once the list pops up *save original in a backup file to undo changes? (borrowed from another group) 5. 3rd Party Extensibility say something like “for our down and dirty users, we allow the customization of our product itself through their own extension” explain how they can write an extension for it (explain to me as well =( ) Credits everyone’s jobs Warning (optional I guess) state how we are not responsible for any injuries or death that may occur while using our product etc
5.2 Data Dictionary
Check Box
Name: Check Box
Alias: None
Description: A box used for selecting/deselecting its corresponding item.
Definition: None
Options
Name: Options
Alias: None
Description: Possible configurations for formatter in FixStyle Options menu.
Definition: None
DisplayFile
Name: DisplayFile
Alias: Displayed File
Description: File displayed to screen after formatted.
Definition: DisplayFile = FormattedCode | Source Code
Dropdown Menu
Name: Dropdown Menu
Alias: None
Description: A menu on the UI whose menu items drop down in a list upon selecting the menu.
Definition: None
Feature
Name: Feature
Alias: None
Description: 1. Property of the item being described.
2. A generic term for the style options.
Definition: None
Format
Name: Format
Alias: None
Description: The style specified by the user in the Options Window.
Definition: None
FormattedCode
Name: FormattedCode
Alias: Formatted Source Code
Description: Source code formatted with FixStyle formatter as per ConfigFile options/rules.
Definition: FormattedCode = FixStyleFormatter(unformattedCode, ConfigFile);
Lines
Name: Lines
Alias: None
Description: Pieces of code separated by the act of hitting the “enter” key.
Definition: None
Logic
Name: Logic
Alias: Control Statement
Description: Code which controls which statements in a program are run.
Definition: None
Options
Name: Options
Alias: None
Description: Style feature selected by the user.
Definition: None
Options Menu
Name: Options Menu
Alias: Options Window
Description: The window that provides the options for selecting a profile and selecting what style features to use.
Definition: None
Package
Name: Package
Alias: None
Description: Java library imported for use of the features provided by it.
Definition: None
Pentium II Processor
Name: Pentium II Processor
Alias: None
Description: Lowest standard of processors that is still able to run Fixstyle.
Definition: None
Platform
Name: Platform
Alias: None
Description: Computers that Fixstyle is compatible with.
Definition: None
Profile
Name: Profile
Alias: None
Description: The set of style features saved by Fixstyle
Definition: None
Program
Name: Program
Alias: Fixstyle
Description: The formatting software.
Definition: None
Selected Style
Name: Selected Style
Alias: None
Description: See Options.
Definition: None
Source Code File
Name: Source Code File
Alias: Source Code, Code, Source
Description: The Java file that contains the code to be formatted.
Definition: None
UnformattedCode
Name: UnformattedCode
Alias: Unformatted Source Code
Description: Unformatted original source code to be added to FixStyle formatter.
Definition: None
Upload File
Name: UploadFile
Alias: Upload File
Description: File uploaded such as the UnformattedCode to interact with FixStyleFormatter.
Definition: None
Attachments
- FullList.xls (28.0 kB) -
list of consolidated functional requirements
, added by ljensen on 01/29/08 21:49:33. - UIprot.zip (124.9 kB) -
Ui Prototype menu options
, added by ljensen on 01/31/08 12:51:00. - Use Cases.doc (41.0 kB) -
First Half Functional Requirements
, added by jlray on 02/04/08 21:38:40. - Screenshot-Profile 'Eclipse [built-in]' .png (94.6 kB) - added by jlray on 02/12/08 09:25:53.
