Professional Documents
Culture Documents
Version <1.6>
Unclassified
Page 1
Revision History
Date 10/06/2009 10/07/2009 10/12/2009 10/13/2009 10/25/2009 11/09/2009 11/21/2009 Version 1.0 1.1 1.2 1.3 1.4 1.5 1.6 Description Created the initial draft Created draft of section 3 Revision of Document Final Revision Revision as per Teachers Instructions Additions Final Revision for Demo Author Paul Kilgo Xiannuan Liang Joshua K. Sullivan Joshua K. Sullivan Joshua K. Sullivan Joshua K. Sullivan Joshua K. Sullivan
Unclassified
Page 2
Table of Contents
1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, Acronyms, and Abbreviations 1.4 References 1.5 Overview 2. Overall Description 2.1 Product perspective 2.1.1 Interfaces 2.2 Constraints 3. Specific Requirements 7 3.1 Functional Requirements 3.1.1 <Search Class Catalog> 3.1.2 <Add/Drop Classes> 3.1.3 <Confirm Schedule> 3.1.4 <View Transcript> 3.2 Non-Functional Requirements 3.1.2 <Security> 3.1.3 <Visual Aesthetics> 3.2.3<Connection Permanency > 4. Use Case Diagram 5. Use Case Scenarios 6. Activity Diagrams 7. Test Cases 8. Software Architecture 8.1 Introduction 8.1.1 Purpose 8.1.2 Scope 8.1.3 Definitions, Acronyms, and Abbreviations 8.1.4 Overview 8. 2 Architectural Representation 8.3 Architectural Goals and Constraints 8.4 Use-Case View 8.4.1 Use-Case Realizations 8.5 Logical View 8.5.1 Overview 8.5.2 Architecturally Significant Classes 8.6 Interface Description 8.7 Size and Performance 8.8 Quality 9. Conceptual Architecture (Activity Flow Chart) Unclassified BMR Incorporated, 2009 5 5 5 5 5 5 6 6 6 7
Bama Mobile Registration Software Requirements Specifications Bmr-Android 10. System Architecture 11. Class Architecture 12. Sequence Diagram
32 33 34
Unclassified
Page 4
Unclassified
Page 5
2. Overall Description
This section will contain information about the project as a whole including perspectives and constraints. 2.1 Product perspective 2.1.1 Interfaces The product will have four main screens: the login screen which allows a user to log into the system, semester management screen which allows a user to manage their classes, class listing screen which will provide a user with all information about a class, and class search screen which allows users to search for classes. Each of the four screens will provide certain functionality. 2.1.1.1 Login Screen The login screen will allow the user to choose from list of accounts which have been used in the past. The user can select an existing account or add a new one. When the user adds a new one, the user name will appear in the list. If the user chooses an account from the list and the password for the chosen accounts is unsaved, the user will be prompted for a password and also granted the option to save the password. If the password is saved, the system will attempt to log in. If the login is unsuccessful, the user will be prompted to update the password. The accounts should be editable. A long-click, clicking down and holding down your click on the screen, should be able to invoke an option to delete an account, and if the password is saved, an option to forget the password. A successful login will bring up the Semester Management Screen. 2.1.1.2 Semester Management Screen Upon first viewing this screen (presumably after successful login), the user will be presented with a list of classes for which they have registered. If the user has not registered for any classes in the current semester, no classes are presented. Class information should be presented in the list: course title, course code, instructor, and meeting times. A menu action should present to option to switch terms or search for classes. Electing to switch terms will invoke a pop-up screen asking the user which semester they would like to switch to. A search action will bring up the Class Search Screen. Clicking a class in the list will bring up the Class Listing Screen. Long-clicking a class will bring up a menu to drop the class. If the user selects to drop the class, they are asked to confirm. If confirmed, the program issues commands to the back-end to drop the class. 2.1.1.3 Class Listing Screen This screen should show all known information about a given class. A menu action shall present the user with an option to add this class if the user is not already taking the class. 2.1.1.4 Class Search Screen Upon entering this screen, the user will be prompted by a search box, already highlighted, to provide a search term. The user should be able to type in any string of characters. The user can search for specific classes by class code (e.g., CS124), CRN, or just by a generic search term. The backend will sort out what kind of data the user has entered and try to match this against the database. The results of a search are listed just below the search box in a similar fashion as on the Semester Management Screen. Unclassified BMR Incorporated, 2009 Page 6
A user can click a result to view its class listing on the Class Listing Screen. The user can long-click a result to try and add the class. Adding the class does not return the user to the Semester Management Screen. 2.2 Constraints The system has the constraint of working on an android cell-phone. This includes limited power and resources. The product is also limited by the android platform. The team is also constrained by time.
3. Specific Requirements
3.1 Functional Requirements 3.3.1 Search Class Catalog The user will have the ability to search the class catalog for various classes and find information on each of the classes in the catalog. This will be integrated in with the Class Search Screen. 3.3.2 Add/Drop Classes The user will have the ability to add or drop the classes that they have found. This feature will be useful for setting up a new schedule or for changing classes after a semester has already started. The Class Management screen will provide the use with the screen that will show them their current classes. If the user wants to add or drop they will then go to the Class Listing Screen which will have the add and drop option. 3.3.3 Confirm Schedule The user will have the ability to confirm their schedule through the application. This involves either clicking confirm because the user has adequate funding to pay for the semester or paying for the semester then clicking confirm. 3.2 Non-Functional Requirements 3.2.1 Security Security will be an issue because of the possibility of monetary transactions as well as the various student data being transferred over a wireless connection. Because of these issues the application will have various security features to enable to user to know that all action performed on the application will be safe. 3.2.2 Visual Aesthetics The application will be aesthetically appealing to the user in order to make the application more desirable. We will test whether or not we have successfully created an aesthetically appealing application by using team members as test subjects. 3.2.3 Connection Permanency The application will be availability 24/7 so that the users can asses all features of the application no matter the time.
Unclassified
Page 7
Unclassified
Page 8
Name: Add User Identifier: UC01 Preconditions 1. Application exists on Android device Basic Course 1. User starts application 2. User decides to add a new username to local database 3. User inserts username and password 4. User selects whether or not to save the password 5. Information is determined to exist in MyBama backend and is saved into local database. 6. The users current term is displayed Alternate Course A: Username/password determined to be incorrect Condition: User enters a username/password combination that does not exist within MyBama A.1 Message is displayed that informs user that the combination entered is incorrect A.2 List of users is displayed. Post conditions 1. User list is displayed without new username 2. Users current term is displayed
Unclassified
Page 9
5.2 Name: Login Identifier: UC02 Preconditions 1. Application exists on Android device 2. User has a legitimate username/password in the MyBama system 3. Username exists within local database Basic Course 1. User starts application 2. User selects username from list 3. If prompted, the user enters password 4. Users current term is displayed Alternate Course A: Stored password is incorrect Condition: If the users password has been modified since the most recent login A.1 User is prompted to enter new password Post conditions 1. Users current term is displayed
Unclassified
Page 10
5.3 Name: Add Class Identifier: UC03 Preconditions 1. Application exists on Android device 2. User has a valid username/password Basic Course 1. User starts application 2. User selects username to login 3. User navigates to class search 4. User searches for class 5. User then selects class that was searched for 6. User adds this class to current term Alternate Course A: class searched for does not exist Condition: the class the user searches for does not exist within MyBama A.1 User is returned to search page to search for a different class Alternate Course B: class selected has already been added to schedule Condition: the class the user tries to add already exists in the students schedule B.1 Message is displayed informing user that the class has already been added B.2 User is returned to the class search page Post conditions 1. Current term page is displayed
Unclassified
Page 11
5.4 Name: Drop Class Identifier UC04 Preconditions 1. Application exists on Android device 2. User has a valid username/password Basic Course 1. User starts application 2. User selects username to login 3. User navigates to current term 4. User selects class to drop 5. User drops class Post conditions 1. Updated current term is displayed
Unclassified
Page 12
5.5 Name: Confirm Schedule Identifier UC05 Preconditions 1. Application exists on Android device 2. User has a valid username/password Basic Course 1. User starts application 2. User selects username to login 3. User navigates to current term 4. User selects confirm schedule 5. Message is displayed telling user the schedule is confirmed Alternate Course A: Schedule is already confirmed Condition: User tries to confirm schedule that has already been confirmed A.1 Message is displayed informing user that schedule is already confirmed Post conditions 1. Updated current term is displayed
Unclassified
Page 13
5.6 Name: Switch Term Identifier UC06 Preconditions 1. Application exists on Android device 2. User has a valid username/password Basic Course 1. User starts application 2. User selects username to login 3. User initiates switch term 4. User selects term to display 5. New term is displayed Post conditions 1. Updated term is displayed
Unclassified
Page 14
5.7 Name: Search Classes Identifier UC07 Preconditions 1. Application exists on Android device 2. User has a valid username/password Basic Course 1. User starts application 2. User selects username to login 3. User navigates to current term 4. User selects Search classes 5. Class search is displayed Post conditions 1. Class search is displayed
Unclassified
Page 15
5.8 Name: View Classes Identifier UC08 Preconditions 1. Application exists on Android device 2. User has a valid username/password Basic Course 1. User starts application 2. User selects username to login 3. Current term is displayed Post conditions 1. Updated current term is displayed
Unclassified
Page 16
6. Activity Diagrams
6.1 Add user
Unclassified
Page 17
Unclassified
Page 18
Bama Mobile Registration Software Requirements Specifications Bmr-Android 6.3 Add Class
Unclassified
Page 19
Bama Mobile Registration Software Requirements Specifications Bmr-Android 6.4 Drop Class
Unclassified
Page 20
Bama Mobile Registration Software Requirements Specifications Bmr-Android 6.5 Confirm Schedule
Unclassified
Page 21
Bama Mobile Registration Software Requirements Specifications Bmr-Android 6.6 Switch Term
Unclassified
Page 22
Bama Mobile Registration Software Requirements Specifications Bmr-Android 6.7 Search Classes
Unclassified
Page 23
Bama Mobile Registration Software Requirements Specifications Bmr-Android 6.8 View Classes
Unclassified
Page 24
7. Test Cases
The test cases are listed below as well as the steps a test must step through as they search for bugs in the system. If the tester reaches the last step without find a bug then the test case passes. 7.1 User logs in using a valid user name and password and is granted access.--Pass, Josh & Ben, 11/14/2009 a. b. c. d. e. f. g. Start application-Pass, Josh & Ben, 11/14/2009 Add new user name to local database.--Pass, Josh & Ben, 11/14/2009 Insert Username and Password.--Pass, Josh & Ben, 11/14/2009 Select to save password.--Pass, Josh & Ben, 11/14/2009 Information is saved in local database.--Pass, Josh & Ben, 11/14/2009 Current term is displayed.--Pass, Josh & Ben, 11/14/2009 Return to step a and work through till step d except this time do not save password, continue on to step f . If f passes then 7.1 is complete.--Pass, Josh & Ben, 11/14/2009
7.2 User logs in with invalid credentials and is denied access.--Pass, Josh & Ben, 11/14/2009 a. b. c. d. Start application.--Pass, Josh & Ben, 11/14/2009 Select user name from List.--Pass, Josh & Ben, 11/14/2009 If prompted, enter an incorrect password.--Pass, Josh & Ben, 11/14/2009 Access denied pop up should be viewable.--Pass, Josh & Ben, 11/14/2009
7.3 User adds class which he/she has necessary requirements to register for and the class is added to their schedule. --Pass, Josh & Ben, 11/14/2009 a. b. c. d. e. f. Start application.--Pass, Josh & Ben, 11/14/2009 Select user name and login.--Pass, Josh & Ben, 11/14/2009 Navigate to class search.--Pass, Josh & Ben, 11/14/2009 Search for a class.--Pass, Josh & Ben, 11/14/2009 Select the search class.--Pass, Josh & Ben, 11/14/2009 Add class to current term.--Pass, Josh & Ben, 11/14/2009
Unclassified
Page 25
7.4 User adds class which results in a failure imposed by the back-end (no prerequisite, not open for registration, too many students signed up, current term not manageable).--Pass, Josh & Ben, 11/14/2009 a. b. c. d. e. f. g. Start application.--Pass, Josh & Ben, 11/14/2009 Select user name and login.--Pass, Josh & Ben, 11/14/2009 Navigate to class search.--Pass, Josh & Ben, 11/14/2009 Search for a class.--Pass, Josh & Ben, 11/14/2009 Select the search class.--Pass, Josh & Ben, 11/14/2009 Add class to current term.--Pass, Josh & Ben, 11/14/2009 Class should not be added.--Pass, Josh & Ben, 11/14/2009
7.5 User drops class successfully. --Pass, Josh & Ben, 11/13/2009 a. b. c. d. e. Start application.--Pass, Josh & Ben, 11/13/2009 Select user name and login.--Pass, Josh & Ben, 11/13/2009 Navigate to current term.--Pass, Josh & Ben, 11/13/2009 Select the class to drop.--Pass, Josh & Ben, 11/13/2009 Class will drop from list of classes current being taken.--Pass, Josh & Ben, 11/13/2009
7.6 User drops class which ends in failure (co-requisite with an incomplete class, current term not manageable). --Pass, Josh & Ben, 11/13/2009 a. Start application.--Pass, Josh & Ben, 11/13/2009 b. c. d. e. Select user name and login.--Pass, Josh & Ben, 11/13/2009 Navigate to current term.--Pass, Josh & Ben, 11/13/2009 Select the class to drop.--Pass, Josh & Ben, 11/13/2009 Class will not drop.--Pass, Josh & Ben, 11/13/2009
7.7 User searches for class by its class code (CS123), CRN, or with a generic search term.--Pass, Josh & Scott, 11/13/2009 a. b. c. d. e. Start application.--Pass, Josh & Scott, 11/13/2009 Select user name and login.--Pass, Josh & Scott, 11/13/2009 Navigate to current term.--Pass, Josh & Scott, 11/13/2009 Select the Search class.--Pass, Josh & Scott, 11/13/2009 Class search will be viewable.--Pass, Josh & Scott, 11/13/2009
Unclassified
Page 26
7.8 User performs a search which yields no results.--Pass, Josh & Scott, 11/13/2009 a. b. c. d. e. Start application.--Pass, Josh & Scott, 11/13/2009 Select user name and login.--Pass, Josh & Scott, 11/13/2009 Navigate to current term.--Pass, Josh & Scott, 11/13/2009 Select the Search class for a class that doesnt exist.--Pass, Josh & Scott, 11/13/2009 Class not found will be displayed.--Pass, Josh & Scott, 11/13/2009
7.9 User views the class information for a class listing returned from a search result.--Pass, Josh , 11/14/2009 a. b. c. d. e. f. Start application.--Pass, Josh , 11/14/2009 Select user name and login.--Pass, Josh , 11/14/2009 Navigate to current term.--Pass, Josh , 11/14/2009 Select the Search class.--Pass ,Josh , 11/14/2009 Class search will be viewable.--Pass, Josh , 11/14/2009 Click the class to view all extra information about the class on the class listing. --Pass, Josh , 11/14/2009
7.10 User views the class information out of the list of classes in the current semester. --Pass, Ben, 11/12/2009 a. b. c. d. Start application.--Pass, Ben, 11/12/2009 Select user name and login.--Pass, Ben, 11/12/2009 Navigate to current term.--Pass, Ben, 11/12/2009 Click the class to view all extra information about the class on the class listing.--Pass, Ben, 11/12/2009
Bama Mobile Registration Software Requirements Specifications Bmr-Android communicates with the backend.
8.1.3 Definitions, Acronyms, and Abbreviations Bama Mobile Registration is occasionally abbreviated BMR. ClaXML is the name given to the XML subset the client and server will use to communicate. 8.1.4 Overview The remainder of this document defines the model we have chosen to use for our client-server communication and the roles and responsibilities are assigned.
Bama Mobile Registration Software Requirements Specifications Bmr-Android connection would be absolutely necessary to use this application.
With the phone not having any data backing for itself, the application could end up being very slow if it makes too many requests to the server. We will have to be intelligent about network usage and make clever use of data caching. On the plus side, the dumb client will be on the easier side to implement. Since we are relying on the backend to do most of the class registration logic, all we will have to do is make the client respond to the server's messages in an appropriate way. Our dependencies indicate that we need to work from the bottom-up in terms of implementation. We should start with the ClaXML objects as they are required by Session, then we can work on Session, as it is required by the Activities. The non-functional portions of the Activities may be worked on in parallel with the Session and ClaXML objects.
Unclassified
Page 29
Architecturally Significant Classes The Session object will be in charge of all of the communication with the server. It is essentially the only exit point for the mobile device in our most high-level view of this project. The Activity classes represent the melding with the user. They will be in charge of responding to inputs issued by the user.
8.8 Quality
Since we have very discrete actions for each Activity, it becomes rather easy to add on a new element of functionality. All that's needed is to add an Activity to support this functionality and a bridging to it from another Activity. If network functionality is needed, the new Activity can just make a call to Session. Our application calls for very basic usage of the user interface, the hardware of the target device probably won't be a big issue to us. We are designing with a touch screen in mind, but Android provides alternative ways of navigation and we can always add support for other input methods in our user interface with relative ease. It will probably be backwards-compatible across Android versions. Our application has a very good chance of becoming multilingual as all of the software we are creating has good support for multiple languages. For the client-server messages, if the server sends a message in some language, the device would only display character-by-character what the server told it. So, if the server has been translated, a lot of the client's user interactions have been as well. As well, Android has good support for different device locales.
Unclassified
Page 30
Unclassified
Page 31
10.System Architecture
Unclassified
Page 32
Unclassified
Page 33
12.Sequence Diagram
Unclassified
Page 34