Reading the two pdf and write a paper to answer the five question:
What systems development model approach would you use to develop this system?
Why is the system a good match for the systems development model you chose?
What would be the advantage of using your chosen systems development model?
What situations might you encounter that would be a problem for the model you chose?
What would be your second choice of a systems development model for this system and why?
software_requirements_specification_splitpay.pdf

system_development_life_cycle_methodology.pdf

Unformatted Attachment Preview

Software Requirements
Specification
for
SplitPay
Version 1.0 approved
ZILDOR, Inc.
February 9, 2011
Prepared by:
Rick Aasen
Leland Cerauskis
Blake Matson
Ed Carlisle
Eric Jeffers
Josh Ritchey
Nick Carson
Travis Green
Phuong Vo
SPLITPAY
Software Requirements Specification
TABLE OF CONTENTS
1. Introduction ……………………………………………………………………………………………. 4
1.1 Purpose ……………………………………………………………………………………………….. 4
1.2 Document Conventions ………………………………………………………………………….. 4
1.3 Intended Audience and Reading Suggestions …………………………………………….. 4
1.4 Project Scope………………………………………………………………………………………… 5
2. Overall Description …………………………………………………………………………………… 6
2.1 Product Perspective ………………………………………………………………………………. 6
2.2 Product Features …………………………………………………………………………………… 7
2.3 User Classes and Characteristics ………………………………………………………………. 9
2.4 Operating Environment ………………………………………………………………………… 11
2.5 Design and Implementation Constraints ………………………………………………….. 11
2.6 User Documentation ……………………………………………………………………………. 11
2.7 Assumptions and Dependencies …………………………………………………………….. 12
3. System Features …………………………………………………………………………………….. 14
Core Features ……………………………………………………………………………………………… 14
3.1 User Registration and Welcome ……………………………………………………………. 14
3.2 Group Creation and Management ………………………………………………………….. 15
3.3 Posting a Bill ……………………………………………………………………………………….. 16
3.4 Member-to-Member Transactions …………………………………………………………. 17
3.5 Final Debt Resolution …………………………………………………………………………… 18
3.6 Group History ……………………………………………………………………………………… 19
3.7 Show All Debts ……………………………………………………………………………………. 20
3.8 Settings Menu …………………………………………………………………………………….. 21
3.9 Help Menu………………………………………………………………………………………….. 22
3.10 Push Notifications ……………………………………………………………………………….. 22
Additional Features ……………………………………………………………………………………… 24
3.11 Member Debt Visualization …………………………………………………………………… 24
3.12 PayPal ………………………………………………………………………………………………… 24
3.13 GPS Tracking ……………………………………………………………………………………….. 25
3.14 Receipt Imaging …………………………………………………………………………………… 26
3.15 E-mail/SMS Notifications ………………………………………………………………………. 27
3.16 SplitPay Tutorial ………………………………………………………………………………….. 28
2
2
SPLITPAY
Software Requirements Specification
4. External Interface Requirements ………………………………………………………………. 29
4.1 User Interface ……………………………………………………………………………………… 29
4.2 Hardware Interfaces …………………………………………………………………………….. 37
4.3 Software Interfaces ……………………………………………………………………………… 37
4.4 Communications Interfaces …………………………………………………………………… 38
5. Other Nonfunctional Requirements …………………………………………………………… 39
5.1 Performance Requirements …………………………………………………………………… 39
5.2 Safety Requirements …………………………………………………………………………… 39
5.3 Security Requirements …………………………………………………………………………. 39
5.4 Software Quality Attributes …………………………………………………………………… 39
6. Key Milestones ………………………………………………………………………………………. 41
7. Key Resource Requirements …………………………………………………………………….. 42
8. Other Requirements ……………………………………………………………………………….. 43
9. Appendix A Glossary ……………………………………………………………………………… 44
10. Appendix B Project Proposal …………………………………………………………………… 45
3
3
SPLITPAY
Software Requirements Specification
1. INTRODUCTION
1.1
PURPOSE
The purpose of this Software Requirements Specification (SRS) document is to provide a
detailed description of the functionalities of the SplitPay system. This document will cover each
of the system’s intended features, as well as offer a preliminary glimpse of the software
application’s User Interface (UI). The document will also cover hardware, software, and various
other technical dependencies.
1.2
DOCUMENT CONVENTIONS
This document features some terminology which readers may be unfamiliar with. See Appendix
A (Glossary) for a list of these terms and their definitions.
1.3
INTENDED AUDIENCE AND READING SUGGESTIONS
This document is intended for all individuals participating in and/or supervising the SplitPay
project. Readers interested in a brief overview of the product should focus on the rest of Part 1
(Introduction), as well as Part 2 of the document (Overall Description), which provide a brief
overview of each aspect of the project as a whole. These readers may also be interested in Part
6 (Key Milestones) which lays out a concise timeline of the project.
Readers who wish to explore the features of SplitPay in more detail should read on to Part 3
(System Features), which expands upon the information laid out in the main overview. Part 4
(External Interface Requirements) offers further technical details, including information on the
user interface as well as the hardware and software platforms on which the application will run.
Readers interested in the non-technical aspects of the project should read Part 5, which covers
performance, safety, security, and various other attributes that will be important to users.
Readers who have not found the information they are looking for should check Part 8 (Other
Requirements), which includes any additional information which does not fit logically into the
other sections.
4
4
SPLITPAY
Software Requirements Specification
1.4
PROJECT SCOPE
The SplitPay system is composed of two main components: a client-side application which will
run on Android handsets, and a server-side application which will support and interact with
various client-side features. The system is designed to facilitate the process of tracking and
settling shared expenses. Potential scenarios include paying rent, splitting a check at dinner,
sharing travel expenses, etc.
For more information about the project and its goals, see Appendix B (Project Proposal).
5
5
SPLITPAY
Software Requirements Specification
2. OVERALL DESCRIPTION
2.1
PRODUCT PERSPECTIVE
The SplitPay project is a new, self-contained product intended for use on the Android platform.
While the SplitPay mobile application is the main focus of the project, there is also a server-side
component which will be responsible for database and synchronization services. The scope of
the project encompasses both server- and client-side functionalities, so both aspects are
covered in detail within this document. Below is a diagram of the SplitPay system which
illustrates the interactions between the server and client applications.
6
6
SPLITPAY
Software Requirements Specification
2.2
PRODUCT FEATURES
The following list offers a brief outline and description of the main features and functionalities
of the SplitPay system. The features are split into two major categories: core features and
additional features. Core features are essential to the application’s operation, whereas
additional features simply add new functionalities. The latter features will only be implemented
as time permits.
C ORE F EATURES
1. USER REGISTRATION & WELCOME
o Only appears once (the first time the application is run)
o Allows the user to register with the SplitPay server
o Enables the user to customize his/her account settings and preferences
2. GROUP CREATION & MANAGEMENT
o Streamlines the process of creating and organizing groups
o Provides support for multiple groups
o Allows the user to add group members manually or from contacts list
3. POSTING A BILL
o Stores and monitors the bill amount, the individuals involved, etc.
o Includes support for multiple simultaneous bills
o Efficiently distributes debt amongst the individuals responsible for the bill
4. MEMBER-TO-MEMBER TRANSACTIONS
o Enables group members to simulate transfers of debt, payments made, etc.
o Adjusts member balances accordingly
o Records relevant information (amount paid, members involved, etc.)
5. FINAL DEBT RESOLUTION
o Calculates the most efficient method of sorting out debts
o Notifies group members of unresolved debts, credits, etc.
o Offers the option to disband a group once all payments are made
6. GROUP HISTORY
o Automatically records all transactions and bills posted to each group
o Provides users with access to a detailed history of transactions
o Supports sorting transactions by date, amount, payer, etc.
7
7
SPLITPAY
Software Requirements Specification
7. SHOW ALL DEBTS
o Enumerates all of a user’s unresolved debts across each group he/she is a part of
o Provides easy access to relevant information (past transactions, group info, etc.)
o Offers the option to resolve a debt (or debts) immediately
8. SETTINGS MENU
o Allows the user to customize his/her preferences
o Enables the user to modify certain features and functionalities
o Can be accessed at any time using the built-in Settings button on Android phones
9. HELP MENU
o Displays a list of topics covering the different components of SplitPay
o Offers detailed information on each feature, menu, etc.
o Can be accessed at any time via the Settings menu
10. PUSH NOTIFICATIONS
o Appear after any significant event occurs in a group
o Alert group members of newly incurred expenses
o Remind users of unresolved debts
A DDITIONAL F EATURES
11. MEMBER DEBT VISUALIZATION
o Presents a visual representation of current member balances
o Allows users to navigate through financial information in a more intuitive fashion
o Automatically updates as users post expenses and make transactions
12. PAYPAL INTEGRATION
o Incorporates a mechanism for initiating real transactions
o Facilitates secure, hassle-free transactions between members
o Automatically updates member balances as transactions occur
13. GPS TRACKING
o Stores location data associated with certain events
o Utilizes Google Maps to display transaction locations
o Creates an expense map which can be viewed by all members of a group
8
8
SPLITPAY
Software Requirements Specification
14. RECEIPT IMAGING
o Utilizes the camera built into Android handsets
o Records and stores a snapshot of receipts associated with different expenses
o Provides a method of checking/verifying expenses posted to a group
15. E-MAIL/SMS NOTIFICATIONS
o Extends the standard notifications service built into SplitPay
o Automatically delivers notifications via e-mail and/or text message
o Enables individuals without SplitPay to receive group notifications
16. SPLITPAY TUTORIAL
o Provides an abridged version of the Help menu for first-time users
o Offers a step-by-step run through of each feature, menu, etc.
o Enables any user to quickly and easily take advantage of all of SplitPay’s
functionalities
A major functionality present in several of these features is automatic synchronization. Using
Android’s internet capabilities, the application periodically communicates with the SplitPay
server. This allows bills, transactions, groups, and group histories to be uploaded to a central
server where the data can be shared with all other Android users in the group. This process of
exchanging data between the server and the phone(s) is referred to as syncing.
For more detailed information, see Part 3 of the document (System Features).
2.3
USER CLASSES AND CHARACTERISTICS
The SplitPay project is meant to offer a shared expenses solution that is faster, easier, and more
convenient than manually calculating and handling debts. Consequently, the application will
have little or no learning curve, and the user interface will be as intuitive as possible. Thus,
technical expertise and Android experience should not be an issue. Instead, anticipated users
can be defined by how they will use the product in a particular situation. The following list
categorizes the scenarios in which SplitPay is expected to be utilized:
9
9
SPLITPAY
Software Requirements Specification
S PLIT P AY : P OTENTIAL S CENARIOS
1. Long-term recurring expenses (e.g. rent, groceries, utilities)
o Key functions:
Keep track of expenses
Notify users when debts are incurred
Record who has paid and who still owes
o Requirements:
Method for inputting expenses into the application
Support for automated notifications
Database containing current debts, past transactions, etc.
2. Short-term recurring expenses (e.g. travel costs – gas, food, hotel)
o Key functions:
Add new expenses (quickly and easily)
Record who is paying and what he/she is paying for
Update member balances on the fly
o Requirements:
Simple and intuitive user interface for adding expenses
Expense-tracking system
Automated, background algorithm for calculating debts
3. Single expense (e.g., splitting a bill at dinner)
o Key functions:
Create a group (quickly and easily)
Add non-registered individuals to the group
Quickly calculate each member’s balance
o Requirements:
Simple and intuitive user interface for adding groups
Support for group members without the SplitPay application
Option to calculate all balances on the spot
These groups are not meant to separate or categorize users, just the different situations in
which SplitPay is likely to be used. In fact, a user may utilize the application for all of these
scenarios simultaneously. This is another defining feature of the SplitPay system: support for
multiple groups. This functionality allows a user to track expenses pertaining to several
unrelated groups at the same time.
10
10
SPLITPAY
Software Requirements Specification
It is crucial that each of these situations be fully supported in the final product so as to
maximize the overall value of the product. It is also important that the application be as userfriendly as possible, otherwise it will not be a viable alternative to handling shared expenses
manually. Most importantly, the application must be reliable. Regardless of the situation, the
application must accurately distribute costs. There is zero tolerance for error when dealing with
financial transactions.
2.4
OPERATING ENVIRONMENT
The main component of the SplitPay project is the software application, which will be limited to
the Android operating system (specifically Android 2.2 and above). The application is not
resource- or graphics-intensive, so there are no practical hardware constraints. The app will rely
on several functionalities built into Android’s Application Programming Interface (API), so
ensuring appropriate usage of the API will be a major concern. Beyond that, the application is a
self-contained unit and will not rely on any other Android-related software components.
The application will, however, frequently interact with the SplitPay server, a virtual dedicated
server hosted by GoDaddy.com. The server operates on a Linux CentOS platform with 1GB of
RAM and 15GB of allocated storage space. The SplitPay database will be stored on the server
using MySQL and will be interfaced with a wrapper written in PHP 5.
2.5
DESIGN AND IMPLEMENTATION CONSTRAINTS
The primary design constraint is the mobile platform. Since the application is designated for
mobile handsets, limited screen size and resolution will be a major design consideration.
Creating a user interface which is both effective and easily navigable will pose a difficult
challenge. Other constraints such as limited memory and processing power are also worth
considering. SplitPay is meant to be quick and responsive, even when dealing with large groups
and transactions, so each feature must be designed and implemented with efficiency in mind.
2.6
USER DOCUMENTATION
The primary goal of SplitPay is to facilitate the process of managing shared expenses.
Consequently, the application will be designed to be as simple to use as possible. Nonetheless,
users may still require some supplementary information about each component of the SplitPay
system. The application will contain two features that offer this: the SplitPay Tutorial and the
Help menu.
11
11
SPLITPAY
Software Requirements Specification
The Help menu is a collection of topics covering each of the application’s menus, features, etc.
At any time, the user can navigate to the Help menu and select any of these topics to obtain
more information. Details about the Help menu can be found in section 3.9 of this document.
The SplitPay Tutorial takes all of these topics and condenses them into a single, step-by-step
demonstration that the user can access immediately after installing the application. This
tutorial is meant to quickly and effectively teach new users the “ins and outs” of the
application. Section 3.16 covers the tutorial in further detail.
2.7
ASSUMPTIONS AND DEPENDENCIES
T IME D EPENDENCIES
As mentioned previously, the features of SplitPay are divided into two groups: core features
and additional features. Core features are crucial to the basic functionality of the SplitPay
application. These features must all be implemented in order for the application to be useful.
Optional features, however, are not critical to the function of the application. They are usability
improvements and convenience enhancements that may be added after the application has
been developed. Thus, the implementation of these features is entirely dependent upon the
time spent designing and implementing the core features. The final decision on whether or not
to implement these features will be made during the later stages of the design phase.
H ARDWARE D EPENDENCIES
Some of the additional features rely on hardware components present in Android handsets. For
instance, the camera will be used to record images of receipts for digital storage. C …
Purchase answer to see full
attachment