Escolar Documentos
Profissional Documentos
Cultura Documentos
Version: (1.0)
Date: (10/11/2004)
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f
Page 1 of 22
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
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f
Page 3 of 22
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.
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.
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.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
. 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
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.
/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.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
-32 bit RISC processor -2.9 TFT color LCD display for output -6 buttons and directional pad for input
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.
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.
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.
/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.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.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.
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
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
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
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
<<en Keyb
<<entity>> Control
<<en Algorith
Static Model
/opt/scribd/conversion/tmp/scratch2776/78219848.doc 12/08/11
f
Input
Keyboard
Virtual Keyboard
Page 19 of 22
Input
>> nd e xt <e
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 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
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