+ All Categories
Home > Documents > Bmr Android Srs 1.6

Bmr Android Srs 1.6

Date post: 07-Apr-2018
Category:
Upload: haseeb-sheriff
View: 221 times
Download: 0 times
Share this document with a friend

of 34

Transcript
  • 8/4/2019 Bmr Android Srs 1.6

    1/34

    CS 415

    Bama Mobile Registration Android

    Software Requirements Specifications

    Version

    Unclassified BMR Incorporated, 2009 Page 1

  • 8/4/2019 Bmr Android Srs 1.6

    2/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    Revision HistoryDate Version Description Author

    10/06/2009 1.0 Created the initial draft Paul Kilgo

    10/07/2009 1.1 Created draft of section 3 Xiannuan Liang

    10/12/2009 1.2 Revision of Document Joshua K. Sullivan

    10/13/2009 1.3 Final Revision Joshua K. Sullivan

    10/25/2009 1.4 Revision as per Teachers Instructions Joshua K. Sullivan

    11/09/2009 1.5 Additions Joshua K. Sullivan

    11/21/2009 1.6 Final Revision for Demo Joshua K. Sullivan

    Unclassified BMR Incorporated, 2009 Page 2

  • 8/4/2019 Bmr Android Srs 1.6

    3/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    Table of Contents

    1. Introduction 5

    1.1 Purpose 5

    1.2 Scope 5

    1.3 Definitions, Acronyms, and Abbreviations 5

    1.4 References 5

    1.5 Overview 5

    2. Overall Description 6

    2.1 Product perspective 6

    2.1.1 Interfaces 6

    2.2 Constraints 7

    3. Specific Requirements 7

    3.1 Functional Requirements 7

    3.1.1 7

    3.1.2 7

    3.1.3 7

    3.1.4 7

    3.2 Non-Functional Requirements 7

    3.1.2 7

    3.1.3 7

    3.2.3 7

    4. Use Case Diagram 8

    5. Use Case Scenarios 9-16

    6. Activity Diagrams 17-24

    7. Test Cases 18-28

    8. Software Architecture 28-31

    8.1 Introduction 28

    8.1.1 Purpose 28

    8.1.2 Scope 28

    8.1.3 Definitions, Acronyms, and Abbreviations 28

    8.1.4 Overview 28

    8. 2 Architectural Representation 27

    8.3 Architectural Goals and Constraints 28

    8.4 Use-Case View 28

    8.4.1 Use-Case Realizations 298.5 Logical View 29

    8.5.1 Overview 29

    8.5.2 Architecturally Significant Classes 29

    8.6 Interface Description 29

    8.7 Size and Performance 29

    8.8 Quality 30

    9. Conceptual Architecture (Activity Flow Chart) 31

    Unclassified BMR Incorporated, 2009 Page 3

  • 8/4/2019 Bmr Android Srs 1.6

    4/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    10. System Architecture 32

    11. Class Architecture 33

    12. Sequence Diagram 34

    Unclassified BMR Incorporated, 2009 Page 4

  • 8/4/2019 Bmr Android Srs 1.6

    5/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    Software Requirements Specifications

    1. Introduction

    The basic goal of this document is to provide an overview of the software specifics of our project.

    1.1 Purpose

    The purpose of this document is to outline the software project Bama Mobile Registration for Android.

    This document outlines the external behavior of this application, including nonfunctional requirements,

    design constraints and other miscellaneous specifications for this software.

    1.2 Scope

    The scope of the project includes creating a user interface to the MyBama registration system as well as a

    backend that will emulate some of its behavior, specifically for testing. We will then make this user

    interface and the backend interact. Additionally, this project may extend to add in some nicer features

    which are not a part of the bare minimum requirements, just some feature thought would be nice to include.

    1.3 Definitions, Acronyms, and Abbreviations

    Bama Mobile Registration can be abbreviated BMR.

    1.4 References

    All public information can be found at the following web address.

    http://groups.google.com/group/bmr-android?hl=en

    1.5 Overview

    The current class registration system for the University of Alabama is MyBama, which has no known APIs

    to accomplish our most basic goal. So, instead, we have split the project into two parts: one part to handle

    the emulation of MyBama. Essentially, we are creating our own API. The second part is the client itself

    which will exist on the user's mobile device.

    The end-user to this product is the student who wishes to use a mobile device to manage his or her class

    schedule. University of Alabama students are the customer for this project. It is important to note this since

    our design will stem only from the software team's experience using the registration system.

    The product will have four main screens: the login screen, semester management screen, search screen, and

    the class listing screen. Each of the four screens will provide certain functionality.

    Using this product a University of Alabama student will be able to successfully

    1 Login to the system

    2 Manage their semester through adding and dropping classes

    3 View the information about a class

    4 Search and find classes

    Unclassified BMR Incorporated, 2009 Page 5

    http://groups.google.com/group/bmr-android?hl=enhttp://groups.google.com/group/bmr-android?hl=en
  • 8/4/2019 Bmr Android Srs 1.6

    6/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    2. Overall Description

    This section will contain information about the project as a whole including perspectives and constraints.

    2.1 Product perspective

    2.1.1Interfaces

    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 beprompted 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 ManagementScreen.

    Unclassified BMR Incorporated, 2009 Page 6

  • 8/4/2019 Bmr Android Srs 1.6

    7/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    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 BMR Incorporated, 2009 Page 7

  • 8/4/2019 Bmr Android Srs 1.6

    8/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    4.Use Case Diagram

    Unclassified BMR Incorporated, 2009 Page 8

  • 8/4/2019 Bmr Android Srs 1.6

    9/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.Use Case Scenarios

    5.1

    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 BMR Incorporated, 2009 Page 9

  • 8/4/2019 Bmr Android Srs 1.6

    10/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.2Name: 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 BMR Incorporated, 2009 Page 10

  • 8/4/2019 Bmr Android Srs 1.6

    11/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.3Name: 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 MyBamaA.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 BMR Incorporated, 2009 Page 11

  • 8/4/2019 Bmr Android Srs 1.6

    12/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.4Name: 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 BMR Incorporated, 2009 Page 12

  • 8/4/2019 Bmr Android Srs 1.6

    13/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.5Name: 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 BMR Incorporated, 2009 Page 13

  • 8/4/2019 Bmr Android Srs 1.6

    14/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.6Name: 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 BMR Incorporated, 2009 Page 14

  • 8/4/2019 Bmr Android Srs 1.6

    15/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.7Name: 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 BMR Incorporated, 2009 Page 15

  • 8/4/2019 Bmr Android Srs 1.6

    16/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    5.8Name: 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 BMR Incorporated, 2009 Page 16

  • 8/4/2019 Bmr Android Srs 1.6

    17/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6. Activity Diagrams

    6.1 Add user

    Unclassified BMR Incorporated, 2009 Page 17

  • 8/4/2019 Bmr Android Srs 1.6

    18/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6.2 Login

    Unclassified BMR Incorporated, 2009 Page 18

  • 8/4/2019 Bmr Android Srs 1.6

    19/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6.3 Add Class

    Unclassified BMR Incorporated, 2009 Page 19

  • 8/4/2019 Bmr Android Srs 1.6

    20/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6.4 Drop Class

    Unclassified BMR Incorporated, 2009 Page 20

  • 8/4/2019 Bmr Android Srs 1.6

    21/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6.5 Confirm Schedule

    Unclassified BMR Incorporated, 2009 Page 21

  • 8/4/2019 Bmr Android Srs 1.6

    22/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6.6 Switch Term

    Unclassified BMR Incorporated, 2009 Page 22

  • 8/4/2019 Bmr Android Srs 1.6

    23/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6.7 Search Classes

    Unclassified BMR Incorporated, 2009 Page 23

  • 8/4/2019 Bmr Android Srs 1.6

    24/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    6.8 View Classes

    Unclassified BMR Incorporated, 2009 Page 24

  • 8/4/2019 Bmr Android Srs 1.6

    25/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    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. Start application-Pass, Josh & Ben, 11/14/2009

    b. Add new user name to local database.--Pass, Josh & Ben, 11/14/2009

    c. Insert Username and Password.--Pass, Josh & Ben, 11/14/2009

    d. Select to save password.--Pass, Josh & Ben, 11/14/2009

    e. Information is saved in local database.--Pass, Josh & Ben, 11/14/2009

    f. Current term is displayed.--Pass, Josh & Ben, 11/14/2009

    g. 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. Start application.--Pass, Josh & Ben, 11/14/2009

    b. Select user name from List.--Pass, Josh & Ben, 11/14/2009

    c. If prompted, enter an incorrect password.--Pass, Josh & Ben, 11/14/2009

    d. 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. Start application.--Pass, Josh & Ben, 11/14/2009

    b. Select user name and login.--Pass, Josh & Ben, 11/14/2009

    c. Navigate to class search.--Pass, Josh & Ben, 11/14/2009

    d. Search for a class.--Pass, Josh & Ben, 11/14/2009

    e. Select the search class.--Pass, Josh & Ben, 11/14/2009

    f. Add class to current term.--Pass, Josh & Ben, 11/14/2009

    Unclassified BMR Incorporated, 2009 Page 25

  • 8/4/2019 Bmr Android Srs 1.6

    26/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    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. Start application.--Pass, Josh & Ben, 11/14/2009b. Select user name and login.--Pass, Josh & Ben, 11/14/2009

    c. Navigate to class search.--Pass, Josh & Ben, 11/14/2009

    d. Search for a class.--Pass, Josh & Ben, 11/14/2009

    e. Select the search class.--Pass, Josh & Ben, 11/14/2009

    f. Add class to current term.--Pass, Josh & Ben, 11/14/2009

    g. Class should not be added.--Pass, Josh & Ben, 11/14/2009

    7.5 User drops class successfully. --Pass, Josh & Ben, 11/13/2009

    a. Start application.--Pass, Josh & Ben, 11/13/2009

    b. Select user name and login.--Pass, Josh & Ben, 11/13/2009

    c. Navigate to current term.--Pass, Josh & Ben, 11/13/2009

    d. Select the class to drop.--Pass, Josh & Ben, 11/13/2009

    e. 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. Select user name and login.--Pass, Josh & Ben, 11/13/2009c. Navigate to current term.--Pass, Josh & Ben, 11/13/2009

    d. Select the class to drop.--Pass, Josh & Ben, 11/13/2009

    e. 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. Start application.--Pass, Josh & Scott, 11/13/2009

    b. Select user name and login.--Pass, Josh & Scott, 11/13/2009

    c. Navigate to current term.--Pass, Josh & Scott, 11/13/2009

    d. Select the Search class.--Pass, Josh & Scott, 11/13/2009

    e. Class search will be viewable.--Pass, Josh & Scott, 11/13/2009

    Unclassified BMR Incorporated, 2009 Page 26

  • 8/4/2019 Bmr Android Srs 1.6

    27/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    7.8 User performs a search which yields no results.--Pass, Josh & Scott, 11/13/2009

    a. Start application.--Pass, Josh & Scott, 11/13/2009

    b. Select user name and login.--Pass, Josh & Scott, 11/13/2009

    c. Navigate to current term.--Pass, Josh & Scott, 11/13/2009

    d. Select the Search class for a class that doesnt exist.--Pass, Josh & Scott, 11/13/2009

    e. 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. Start application.--Pass, Josh , 11/14/2009

    b. Select user name and login.--Pass, Josh , 11/14/2009

    c. Navigate to current term.--Pass, Josh , 11/14/2009

    d. Select the Search class.--Pass ,Josh , 11/14/2009

    e. Class search will be viewable.--Pass, Josh , 11/14/2009

    f. 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. Start application.--Pass, Ben, 11/12/2009

    b. Select user name and login.--Pass, Ben, 11/12/2009

    c. Navigate to current term.--Pass, Ben, 11/12/2009

    d. Click the class to view all extra information about the class on the class listing.--Pass, Ben, 11/12/2009

    8 Software Architecture

    8.1 Introduction

    The purpose of this document is to provide an overview of the architecture for the Bama Mobile

    Registration project for Android. The project includes writing a client for a currently nonexistent API for

    the MyBama course registration system implemented at the University of Alabama. Because the API is

    nonexistent, we will include a mostly nonfunctional but approximate backend of what the API should be

    able to do.

    8.1.1 Purpose

    This document will provide the reader with a good overview of how we intend to solve the problem of

    registering for class via a mobile phone. The view of the project will be very high-level and will lack

    specifics, but should provide some guidance on how the software should be structured.

    8.1.2 Scope

    This document only defines what is to be done on the mobile platform and the medium through which it

    Unclassified BMR Incorporated, 2009 Page 27

  • 8/4/2019 Bmr Android Srs 1.6

    28/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    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.

    8.2 Architectural Representation

    The easiest way to imagine this project is a simple client-server model that communicates in some way

    with a server via a cell carrier's data connection or other IP interface. We do not concern ourselves with the

    specifics of this communication as this is covered in the scope of the Android SDK.

    We are then introducing the model elements of the central server, the mobile device, and thecommunication layers that connect them. In terms of the OSI Model, we place ourselves just over the

    application layer as we intend to make the client and server communicate over HTTP or in later

    implementations, HTTPS. For this project, we are most interested in making the software for the client.

    So this essentially means that the user is somewhere else in the world and communicates with a central

    server which should contain all of the class backing, authentication information, et cetera. With this in

    mind, it's easy to see that we can't allow the user's phone perform the majority of the decision-making as

    this will be performed by the central server since it holds the database. We will essentially be designing a

    dumb client which makes requests to the server and displays the result to the user.

    Stepping into the intricacies of what goes on inside the client, we can start to see a few of the components

    flesh out. For one, we should have four major screens: a login screen, a semester management screen, a

    class listing screen, and a class search screen. As well, it makes sense to have a component whose purposeis to maintain the session and communicate with the server. We can refer to this component as Session.

    For the platform we are designing for, an easy way is offered for parsing XML: SAX. This introduces a

    component which is a SAX handler for ClaXML, called ClaXMLHandler, and as well a data set that it

    produces, ClaXMLSet.

    The user will navigate through the screens or Activities for Android terminology. These Activities will

    make calls to the Session object to connect to and retrieve data from the central server. The Activities will

    then display the result to the user.

    The Session object sits idly by and will handle making calls to SAX, constructing ClaXMLSets, and

    presenting the result in a manner that programmatically makes sense.

    8.3 Architectural Goals and ConstraintsWith any network communication, there comes the possibility of security and privacy. This is an especial

    concern when dealing with monetary transactions, as confirming a schedule would normally involve. In

    final implementations, encryption would be absolutely necessary.

    There is a problem of connection loss that we expect to experience when using cell phones with spotty

    connections. We will have to design around this as there is not much we can do to remedy the problem.

    The phone will end up knowing very little about what classes are available for the user to take. A data

    Unclassified BMR Incorporated, 2009 Page 28

  • 8/4/2019 Bmr Android Srs 1.6

    29/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    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.

    8.4 Use-Case View

    The important use cases for this document are Add Class, Drop Class, Confirm Schedule, and

    Login as they suggest something about what will be passed over the network to t he server. Also, our

    communication medium will need to be able to support these kinds of commands.

    Otherwise, it's up to us as the software designers to place these use cases in areas which will make the most

    sense to the user. For example, it only makes sense to add a class after we have searched for it first, so it

    makes sense we place the Add Class use case somewhere inside the class search screen.

    8.4.1 Use-Case Realizations

    Almost all of the use cases work in very similar ways, but perhaps the most complicated is the Search use

    case. Let us examine it in detail.

    First, the user will interact with the user interface inside the Search Activity and perform some input

    which causes the system to pass a search string that the user has entered to the Session object. The Session

    object will then construct the appropriate URL to handle the search action. The Session object will then

    make a call to the SAX libraries and pass it a ClaXMLHandler object and the constructed URL. SAX will

    call this URL, take the data returned, and parse it. We can then mine a ClaXMLSet object out of

    ClaXMLHandler and examine its contents. We can check for errors and throw an exception if any exist.

    Otherwise, we can return the data set back to the Activity. The Activity will then take this data source and

    bind it to a user interface component and display the search result to the user.

    8.5 Logical View

    8.5.1 Overview

    On the client side, we are looking at just two main packages. One package which relates specifically to

    BMR, and the other which deals primarily with ClaXML.

    The BMR package decomposes into a Session object and four Activities which represent the individual

    screens.

    The ClaXML package decomposes into a handler for SAX and a data set that we can return back to the

    classes inside the BMR package.

    Unclassified BMR Incorporated, 2009 Page 29

  • 8/4/2019 Bmr Android Srs 1.6

    30/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    8.5.2 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.6 Interface Description

    All of our Activities are intended to be ListActivities, which means we will have a very list-based user

    interface. As most actions involve choosing an item out of a set of items, it seemed most appropriate.

    We intend to use Android's standard methods of interaction with the user. For example, we make use of

    single-clicks as selections for items in lists, long-clicks for data-altering actions (Edit/Delete), and for any

    other actions we intend to put inside the Menu.

    8.7 Size and Performance

    One thing to consider when designing this software is of course that we are developing for a mobile

    platform. That means for one screenful of user interface, we can only accomplish so much. This is why

    we ended up with four screens with very discrete functions.

    We should be careful to minimize the amount of network communication our application poses as data

    connections could end up being very slow or very costly to the user if they have no data plan. Our XML

    subset should be very minimal and light.

    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 BMR Incorporated, 2009 Page 30

  • 8/4/2019 Bmr Android Srs 1.6

    31/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    9. Conceptual Architecture (Activity Flow Chart)

    Unclassified BMR Incorporated, 2009 Page 31

  • 8/4/2019 Bmr Android Srs 1.6

    32/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    10.System Architecture

    Unclassified BMR Incorporated, 2009 Page 32

  • 8/4/2019 Bmr Android Srs 1.6

    33/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    11. Class Architecture

    Unclassified BMR Incorporated, 2009 Page 33

  • 8/4/2019 Bmr Android Srs 1.6

    34/34

    Bama Mobile Registration Version:

    Software Requirements Specifications Date: 11/21/2009

    Bmr-Android

    12.Sequence Diagram


Recommended