Vous êtes sur la page 1sur 22

Software Requirements Specifications Document

(Banana Hammocks) (Calculator Advance) Software Requirements Specification Document

Version: (1.0)

Date: (10/11/2004)

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 1 of 22

Software Requirements Specifications Document

Table of Contents
1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, Acronyms, and Abbreviations. 1.4 References 1.5 Overview 2. The Overall Description 2.1 Product Perspective 2.1.1 System Interfaces 2.1.2 Interfaces 2.1.3 Hardware Interfaces 2.1.4 Software Interfaces 2.1.5 Communications Interfaces 2.1.6 Memory Constraints 2.1.7 Site Adaptation Requirements 2.2 Product Functions 2.3 User Characteristics 2.4 Constraints 2.5 Assumptions and Dependencies 2.6 Apportioning of Requirements. 3. Specific Requirements 3.1 External Interfaces 3.2 Functions 3.3 Performance Requirements 3.4 Logical Database Requirements 3.5 Design Constraints 3.5.1 Standards Compliance 3.6 Software System Attributes 3.6.1 Reliability 3.6.2 Availability 3.6.3 Security 3.6.4 Maintainability 3.6.5 Portability 3.7 Organizing the Specific Requirements 3.7.1 System Mode 3.8 Additional Comments Change Management Process 4 4 4 4 5 5 5 6 6 6 8 8 8 9 9 9 9 9 10 10 10 10 11 11 11 12 12 12 12 13 13 13 13 13 13 14 14

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 2 of 22

Software Requirements Specifications Document


Document Approvals Supporting Information 14 15

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 3 of 22

Software Requirements Specifications Document

1. Introduction
The following subsections provide an overview of this entire document.

1.1 Purpose
The purpose of this document is to inform the readers and students of the class of the significant details and background of our project. This project is taking a Gameboy Advance System and simulating the basic algebraic and graphical function of a a TI-83 calculator system on it. The basic algebraic functions will include addition, subtraction, division, and multiplication. The calculator will also be able to compute the power, sine, inverse sine, cosine, inverse cosine, tangent, inverse tangent, exponential, logarithm, natural logarithm, and square root functions; and make use of the storage and recall functions of a TI-83 calculator. The basic graphing will allow the user to input a series of functions to graph and compare. The user will also have the option to change graphing modes, just like a TI-83 calculator does.

1.2 Scope
The software products to be designed include: the virtual keyboard, graphing input and output mode,standard input mode, menus for selecting which scientific functions to compute, an options menu for changing the options on the implemented machine. The software products will be interactive with the client, in which they allow him/her to choose all of the options from the first display screen. This software will take advantage of the buttons on the Gameboy Advance machine and allow them to do the navigating through the options menu.

1.3 Definitions, Acronyms, and Abbreviations.


Abbreviations GBA Gameboy Advance ROM Read Only Memory, usually used to describe a Gameboy Advance software cartridge LCD Liquid Crystal Display TFT Thin Film Transistor API Application Programing Interface
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 4 of 22

Software Requirements Specifications Document CPU Central Processing Unit RISC Reduced Instruction Set Computer ARM The GBA is built around an ARM brand 32-bit RISC processor.

1.4 References
List of documents referenced: TI-83 Owners Manual GameBoy Advance Owners Manual CS 3365 Software Engineering Lecture Notes per Dr. Michael Shin Appendix A Sample I/O Formats and Descriptions Appendix B Supporting Information

1.5 Overview
The rest of this document will give further details on the overall product description, including the hardware, software, and communications interfaces, product functions, user characteristics, and any assumptions that will be made. The document will also include the specific requirements needed. These will include the functions, performance, design, and software attributes. This document is organized in a logical manner and is easy to follow. Readers should refer to the table of contents, appendices, or index if looking for something in specific. Otherwise, reading this document from start to finish will start with a vague description and get more specific and detailed as changing sections and reading further.

2. The Overall Description


The gameboy advance calculator is a project that is meant to harness the power of the gameboy advance and change its functionality so that it can be used as a basic graphing calculator. The calculators functionality will be that of a TI-83 (Texas Instruments) and
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 5 of 22

Software Requirements Specifications Document will feature basic algebraic calculations, simple arithmetic and graphic capabilities. Input will in done through an intuitive virtual keyboard for most of the input. Also, attachment of an auxillary keyboard to the serial port of the gameboy will also be allowed.

2.1 Product Perspective


The gameboy advance calculator will use all the hardware components of the first generation gameboy advance (GBA). All modifications done to the GBA in this project will be software and device driver based. The system will be entirely self contained, and everything that is needed for the GBA calculator to run will be built into the machine itself. The machine does require 2 AA batteries to power up. Block Diagram

GBA Calculator 2-AA batteries

2.1.1 System Interfaces 1) Arithmatic: the system will use the built in ALU to compute all the arithmetic that will be done for the calculator. 2) Upper level Calculations: The programmers of the machine will write in functions that the machine will be able to call to produce upper level calculations.

2.1.2 Interfaces 1) Virtual Keyboard :The main user interface will be through the virtual keyboard. The virtual keyboard will be keyboard that is displayed in the bottom quarter of the GBA screen. It will allow the user to input all the commands and information that is needed for the calculator to do its work

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 6 of 22

Software Requirements Specifications Document

. Virtual Keyboard Mockup 2) Function List: The function list is a menu like interface that the user can pull up to input more advanced calculations like sine, cosine, logrithims and store/recalls. The importance of this menu is that it gives the calculator the ability to do scientific calculations, instead of just basic arithmetic.

Function List Mockup 3) Graphing Mode : The graphing mode of the calculator actually comes in two parts. An input mode and an output mode. Both interfaces will cover the entire screen. In the input mode, the user is allowed to enter the function that he/she will want to graph. Multiple functions will also be allowed to compare graphs. After the user inputs the functions that are needed, they can switch to an output mode, where the graph will actually be drawn.

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 7 of 22

Software Requirements Specifications Document

Graphing Mode input Mockup

Graphing mode output Mockup

2.1.3 Hardware Interfaces 1) Internal hardware:All hardware interfaces will be done through the GameBoy Advance. The gameboy advance as its own system of memory management and cpu scheduling. 2) Auxillary catheridge: The GBA will allow for an auxillary catheridge to be inserted to store data on. 2.1.4 Software Interfaces All software within the GBA calculator will be self programmed. A middleman from our personal computer to the GBA might be used, but at this time this program has not been specified.

2.1.5 Communications Interfaces

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 8 of 22

Software Requirements Specifications Document Serial Port: The only communication device that is available to the GBA is serial port that can be used for an additional keypad. 2.1.6 Memory Constraints 1) Hardware Memory: All memory constraints will follow the specification of the first generation GBA. Specifications can be found here : http://www.gameboyadvance.com/system.jsp 2) Catridge : Gameboy Advance catridge device acts like a hard drive for saved data etc. Catridge capacity is 128k bits on the average. 2.1.7 Site Adaptation Requirements 1) No site adapatation is necessary in with this project. Because the GameBoy Advanced calculator is portable and is self contained. The entire system is transported to wherever it is needed. No external dependendancies are in place and operation of the system will never change due to location.

2.2 Product Functions


1) Arithmatic calculations : As a calculator, it seems obvious that this machine will be able to perform basic arithmetic calculations. Addition, subtraction, multiplication etc. will be done with this machine. 2) Higher level (scientific) calculations: The user will be able to use this calculator to do sine, cosine and logarithms. All calculations deemed scientific will be allowed. 3) Graphing : If the user wants to see a graphical version of functions that they input, the calculator will be able to plot multiple graphs and run graph traces.

2.3 User Characteristics


Users of this device will usually be students from the middle school level to the undergraduate college. The user will have to to know basic arithmetic (or at least how arithmetic works) to make functional use of the calculator.

2.4 Constraints
The main constraints in this project will be the hardware that the GBA will harness. The GBA provides for:
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 9 of 22

Software Requirements Specifications Document

-32 bit RISC processor -2.9 TFT color LCD display for output -6 buttons and directional pad for input

2.5 Assumptions and Dependencies


Because everything will be coded from scratch. The only dependency that the machine will encounter are the hardware constrains that the GameBoy Advance has.

2.6 Apportioning of Requirements.


It is possible in the future that a few additional features be implemented into this system. 1) Auxillary keypad : This will allow the user to input information much faster and bypassing the virtual keypad that will be built into the operating system. 2) Integration and Differantiation: Further versions of the calculator might allow for the use of integration and differentiation for users.

3. Specific Requirements
3.1 External Interfaces

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 10 of 22

Software Requirements Specifications Document This section will contain all the inputs into and outputs from the software system.

Gameboy liquid crystal display


The Gameboy Advance unit has a 2.9 TFT color LCD capable of displaying 240x160 pixels. This is the primary output for the software system and the only interface that standard users will receive output from.

Gameboy Advance standard keys


Every Gameboy Advance is supplied with a 4-directional key pad, two large face buttons, two small offset face buttons and two shoulder buttons. The user will interface with our software via all six keys and the keypad.

Virtual Keyboard
The virtual keyboard will provide standard input for a user. It will allow a user to access a 50 plus character set with a 6-button input. The virtual keyboard will be navigated via an on-screen display.

Gameboy Advance serial port


Every Gameboy Advance has a serial port designed to interface with other technology, primarily other Gameboy Advance machines.

3.2 Functions
The system shall verify that the algorithm input into the system is valid before processing. If the input sequence is valid, the algorithm processor will produce a response that will be output to the screen. If the input sequence is invalid, an error message will be displayed and the user will be prompted to correct the input.

3.3 Performance Requirements


The software will be designed to support a single user inputing a mathematical algorithm into system and will return a result of numerical value. All user variables saved in the system will be stored as 32-bit floating point values. The user will be limted to storing no more than 26 variables at one time. 98% of all algorithms input by the user into the system will be processed within one second. 90% of all graphed algorithms will be completed within a 10 second time frame.

3.4 Logical Database Requirements


The software system will hold three logical databases.

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 11 of 22

Software Requirements Specifications Document The algorithm processor will parse the algorithm into a tree structure before processing. After processing the tree, the data inside will not be accessed a second time. A database will be kept to store options about the software. This database will hold integers and floats as well as boolean data. The information stored will be access at almost every possible interface with the user and by almost every internal system. The software will allow a user to store and recall values. These values will be stored in a database and will be accessed only if the user updates or requests a stored value. The input interface and the algorithm processor will access this database.

3.5 Design Constraints


All data processed and returned for display by the user will be of 32-bit floating point precision. The output of this value may or may not be truncated per user request. Data output will be limited to the Gameboy Advances LCD screen. Data input will be limited to manipulation of the Gameboy Advances standard button set. The program cartriage must stay connected at all times. 3.5.1 Standards Compliance There are no standards or regulation pertaining to the GBA format or the associated calculator design.

3.6 Software System Attributes


The input system will allow for inputing numbers, operands, special symbols and letters of the alphabet. The output will be a single numerical value in the case of a standard algorithm or a graphic in the case of a graphed algorithm. Other external devices connected to the Gameboy Advances serial port will be ignored.

3.6.1 Reliability All data storage for user variables will be commited to the database at the time of entry. All caching and system data created during the processing of algorithms or graphing will be rebuilt from scratch everytime the system is turned on. This will elimate the only possibility of data corruption: power loss during processing. If any data is corrupted
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 12 of 22

Software Requirements Specifications Document through damage to the software cartriage, a default value will be assigned where applicable. 3.6.2 Availability All cached data will be rebuilt during every startup. There is no recovery of user data if it is lost. Default values of system data will be assigned when necessary. 3.6.3 Security There will be no built-in security. 3.6.4 Maintainability The user will be able to reset all options and all stored user variables to default settings. 3.6.5 Portability The algorithm processor will be implemented in standard C++ code and as suck is completely portable. All other internal systems will be specific to the Gameboy Advance platform. Each of the implementations will be coded in either modified C++ with a GBA specific API or in ARM assembly. Implementing these interal subsystems using another language is very possible without the loss of data integrity or accuracy. Porting to a lower precision processor may require special numerical calculations to meet specific guidelines.

3.7 Organizing the Specific Requirements

3.7.1 System Mode The system is designed to function on a state to state basis. There are three main states: standard input, graphing input, menu navigation. At the standard input state, a character sequence is entered via the virtual keyboard. When the user signals that the input is finished, the system processes the algorithm and outputs a result. During graphing input the user interaction is similar but there is added functionality for manipulating more than one algorithm at a time. Once the user signals done, the algorithms are processes and a graphic is produced. During menu navigation, the user is allowed to change different options pertaining to the system. The input no longer accepts the characters associated with building an algorithm

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 13 of 22

Software Requirements Specifications Document but instead allows the user to travel from menu to menu and set options visually represented by toggles.

3.8 Additional Comments


none at this time

Change Management Process


As a team, we will update and evaluate our SRS document every week as we make changes in our design and requirements. We will add new detailed information which will include: research, references, charts and graphs, and more specifications and requirements that we find along the way in the designing and implementation of the product.

Document Approvals
We have no document approvals as of this time.

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 14 of 22

Software Requirements Specifications Document

Supporting Information Appendix A


Sample I/O Formats and Descriptions

Standard input. This command line is a simple cursor yet it will handle all input of arithmetic functions and infer ace with the user. This is the default interface after power-up of the machine.

Virtual Keyboard. This keyboard will be accessible using either the L/R buttons on the GameBoy Advance. It serves as the menu to type in whatever input the user will have for the standard command line etc.

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 15 of 22

Software Requirements Specifications Document

Basic advanced functions menu for the machine. This menus is used to select all the different scientific functions that the machine will compute.

Graphing mode input mode. In this mode the user will input the functions that he/she will want to graph. Multiple functions will be supported for comparisons of graphs/functions.

Graphing mode output mode. In this mode the user will be able to see what is graphed from the graphing inputs above. Users will be able to trace the different graphs and also find intersection points.

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 16 of 22

Software Requirements Specifications Document

Options menu. This part of the system will control all basic options that are changeable in the machine. Important ones to mention would be precision, radians/degrees, and possibly contrast/brightness.

Appendix B
Supporting Information Overall Use Case

Data Model

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 17 of 22

Software Requirements Specifications Document

<<entity>> Virtual Keyboard

<<en Keyb

cursorPos:Integer on:Boolean off:Boolean


Graphing Model Use Case

<<entity>> Control

<<en Algorith

Static Model

algo:String cursorPos:Integer inputValue:String answer:String


Page 18 of 22

inputVa answer: >


d> n te ex <

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Input

< <<extend> << ex t

Software Requirements Specifications Document

<<external input device>> <<e

Text Input Use Case

Keyboard

<<external input device>>

Virtual Keyboard

Calculator User Table Acceptance Testing


/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 19 of 22

Input

< <<extend> <<

>> nd e xt <e

Software Requirements Specifications Document

Input and movement testing Input Left Right Down Up Select Start R button L button Saving to cartridge Input Save options menu Save graph Testing advanced functions Input Sin(0) Sin(90) Sin(-5) Sin(137582) Cos(0) Cos(90) Cos(-5) Cos(137582) Tan(0) Tan(90) Tan(-5) Tan(137582) e^(0) e^(1) e^(-5) e^(137582) Ln(0) Ln(1)
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Output Virtual keypad left Virtual keypad right Virtual keypad down Virtual keypad up Options Graphing mode Brings up virtual keyboard Function menu

Output Recall options menu Recall graph

Output 0 1 -0.0871557428 0.88294759 1 0 0.99619469 0.469471562 0 error -0.0874886 1.880726 1 2.7182818 0.00673794 overflow error 0
Page 20 of 22

Software Requirements Specifications Document Ln(-5) Ln(137582) Graphing Methods Input Line graph Output error 11.81880594

Sine graph

Cosine graph

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 21 of 22

Software Requirements Specifications Document Tangent graph

Hyperbolic graph

Algorithm Engine 1+1 1+1*5 (1+1)*5 45^3 13^1/2 13^(1/2) (13+45)/14+3(9) 45/e^(1) 10sin(45) 2 6 10 91125 6.5 3.60555 27.54398 52.00773 7.071067812

/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f

Page 22 of 22

Vous aimerez peut-être aussi