Software Requirement Specification (SRS) for Personal Investment Management System (PIMS)


1.  Introduction

1.1  Purpose:

Personal Investment Management System (PIMS) is intended to help the user keep account of his/her money invested in institutions such as Banks and Share Market.

This document is meant to delineate the features of PIMS, so as to serve as a guide to the developers on one hand and a software validation document for the prospective client on the other.

1.2  Scope:

We describe what features are in the scope of the software and what are not in the scope of the software to be developed.

In Scope:
a.      Managing investment of a single user, which would include maintaining bookkeeping information about entities like Portfolio, Security, and Transaction.

b.      Computation of Net-Worth and Rate of Investment (ROI) of the Investor.
c.       Giving alerts to the user, if he requests for one.
d.      Downloading the current prices of shares from the web.
e.       User authentication.

Out of Scope:

a.      Features for actual purchasing and selling of securities. That is, actually buying and selling of shares/securities is done outside PIMS.
b.      Tax computations for gains/losses.
c.       Any market related prediction.

1.3  Definitions, Acronyms, and Abbreviations:

Acronyms and Abbreviations:

a.      PIMS: Personal Investment Management System.
b.      SRS: Software Requirements Specification.
c.       WWW: World Wide Web.
d.      GUI: Graphical User Interface.
e.       ROI: Rate of Investment.








1




Definitions:

a.       Transaction: A real event that involves flow of personal money. In the context of shares, it is buying/selling a group of shares of the same company, and in context of Bank it is deposit/withdrawal of money to/from one’s account.

b.      Security: A set of all transactions pertaining to a company share or a bank account.

c.       Portfolio: A set of Securities.
d.      Net-Worth: The sum total of all the money of the investor in form of shares and bank balances.
e.       ROI: The interest that user gets on a particular investment. In the context of a bank account it is the annual interest and in case of a company share it is defined as given in appendix A:

1.4  References:

Appendix A: Formula for ROI calculation for shares. Appendix B: Formula for Net-Worth calculation. Appendix C: User Screens.

1.5  Overview:

The rest of this SRS is organized as follows: Section 2 gives an overall description of the software. It gives what level of proficiency is expected of the user, some general constraints while making the software and some assumptions and dependencies that are assumed. Section 3 gives specific requirements which the software is expected to deliver. Functional requirements are given by various use cases. Some performance requirements and design constraints are also given. Section 4 gives some possible future extensions of the system. Finally the appendices in Section 5 describe respectively the formula for ROI calculation for shares and user screen.

2.  Overall Description:

2.1  Product Perspective:

PIMS is aimed toward a person who has considerable number of investments in stock market and banks, and so needs software assistance for book keeping and computations regarding the investments. PIMS should be user-friendly, ‘quick to learn’ and reliable software for the above purpose.

PIMS is intended to be a stand-alone product and should not depend on the availability of other software. It should run on both UNIX and Windows based platform.

2.2  Product Functions:

PIMS should support the following use cases:





2




Class of use cases
Use cases
Description of use cases
Use case related to
Installation
Creates and initializes working files.
Installation


Use cases related to
Login
Login into PIMS
system authorization
Change Password
Change PIMS password
Use cases related to
Create portfolio
Creates a new portfolio
portfolios
Rename portfolio
Rename an existing portfolio

Delete portfolio
Delete an existing portfolio
Use cases related to
Create security
Creates a new security in a given
securities

portfolio

Rename security
Renames an existing security

Delete security
Deletes an existing security
Use cases related to
Add transaction
Add a transaction to a security
transactions
Edit transaction
Edit an existing transaction

Delete transaction
Delete an existing transaction
Use cases related to
Display investment
Display information of the entire
Information display

investment

Display portfolio
Display information about a given


portfolio

Display security
Display information about a given


security
Use cases related to
Compute net-worth
Compute net-worth of
computations

investment/portfolio/security

Compute ROI
Compute ROI of a given security
Use cases related to share
Get current share price
Download the current share price
prices

from the net

Edit share price
Edit the price of a share already


present in the list
Use cases related to alerts
Set alerts
Set alert giving date and details

Show alerts
Show all the pending alerts

Delete alerts
Delete an already set alert

2.3  User Characteristics:

a.      The user should be familiar with the Investment Management related terminology like Portfolio/Security/Transaction.
b.      The user should know the details of a transaction.

2.4  Principal Actors:

The two principal actors in PIMS are “user” and “system”.

2.5  General Constraints:

a.      For full working PIMS requires Internet connection.
b.      PIMS is single-user software.

2.6  Assumptions and Dependencies:


3


a.       Full working of PIMS is dependent on the availability of Internet connection.

b.      The downloading of share prices in PIMS is customized to www.indiainfoline.com. PIMS would not work for any other website.

c.       The company shares registered in the National Stock Exchange (NSE) are only considered by PIMS.

3        Specific Requirements:

3.1  Functional Requirements:

We describe the functional requirements by giving various use cases.

Use case related to installation:
Use Case 1: Installation
Primary Actor: User
Pre Condition: Internet connection available.
Main Scenario :
1.      User initiates PIMS installation program.
2.      System asks the user for the home directory in which all the working files will be created. User is also asked for the initial login and password.

3.      User specifies the home directory and login/password.
4.      System creates the working files in the specified home directory. Working files contain:

a.      Authorization information.
b.      List of company names.
c.       Current share prices.
d.      Investment structure.
5.       System downloads the list of companies (registered in NSE, from www.indiainfoline.com) and the current share prices. It initializes the

files containing the list of companies and the current share prices with the downloaded data.
Alternate Scenario:
5(a). Network failure.
5(a)1. Installation aborted.

Use cases related to system authorization:
Use Case 2: Login
Primary Actor: User
Pre Condition: Nil
Main Scenario:
1.  Start the application. User prompted for login and password.

2.  User gives the login and password.
3.  System does authentication.
4.  Main screen is displayed.
Alternate Scenario :
4(a). Authorization fails
4(a)1. Prompt the user that he typed the wrong password




4


4(a)2. Allow him to re-enter the password. Give him 3 chances.

Use Case 3: Change Password
Primary Actor: User
Pre Condition: User logged in
Main Scenario:
1.  User initiates the password change command.
2.   User is prompted for old password, new password and confirm new password.
3.    User gives the old password, new password and confirm new password.

4.  System does authentication.
5.  New password is registered with the system.
Alternate Scenario :
4(a). Authorization fails

4(a)1. Prompt the user that he typed the wrong password 4(a)2. Allow him to re-enter the password. Give him 3 chances.
4(b). New password and confirm new password do not match. 4(b)1. Allow him to re-enter the attributes. Give 3 chances.

Use cases related to portfolios:
Use Case 4: Create Portfolio
Primary Actor: User
Pre Condition: User logged in.
Main Scenario:
1.  User initiates the “create portfolio” functionality.
2.  System asks the user for the portfolio name.
3.  User enters the portfolio name.
4.  An empty portfolio is created.
Alternate Scenario:
4(a). Portfolio with the same name exists.
4(a)1. System asks the user for a different name. 4(a)2. User enters a different name.
4(a)3. Empty portfolio gets created.

Use Case 5: Rename portfolio.
Primary Actor: User
Pre-Condition: User logged in.
Main Scenario:
1.  User initiates the “rename portfolio” functionality.
2.  System asks for the portfolio to be renamed and the new name.
3.  User enters the new name.

4.  Portfolio is renamed.
Alternate Scenario:
4(a). The portfolio whose name is supposed to change does not exist.

4(a)1. Renaming fails, the error message is displayed. 4(b). Portfolio with the same new name exists.




5


4(b)1. Renaming fails, the error message is displayed.

Use Case 6: Delete portfolio.
Primary Actor: User
Pre-Condition: User logged in.
Main Scenario:
1.  User initiates the ”delete portfolio” functionality.
2.  System asks for the name of the portfolio.
3.  The portfolio is deleted.
Alternate Scenario:
3(a). Portfolio does not exist.
3(a)1. Deletion fails, error message is displayed.

Use cases related to securities:

Use Case 7: Create a security.
Primary Actor: User
Pre-Condition: User logged in.
Main Scenario:
1.  User selects the portfolio in which the security is to be created.
2.  User initiates the “create security” functionality.
3.  System asks the user to enter the attributes of the security.
4.  User specifies the following fields:
a.       Name
b.      Type: bank or share.
c.       Rate of interest: if the type is bank.
d.      Company name: if the type is share. Choosing the company from a list companies does this. (Companies registered in the National Stock Exchange, names downloaded at the installation time. Refer use case 1)

5.  An empty security of specified attributes is created.
Alternate Scenario:
5(a) A security with the given name already exists.
5(a)1. Security creation fails, error message is displayed.

Use Case 8: Rename security.
Primary Actor: User
Pre-Condition: User logged in.
Main Scenario:
1.  User selects the portfolio.
2.  User initiates the “rename security” functionality.
3.  System asks the user for the security and the new name.
4.  User enters the security name and the new name.
5.  Name is changed.
Alternate Scenario:

5(a). The security whose name is supposed to change does not exist. 5(a)1. Renaming fails, the error message is displayed.
5(b). Security with the same new name exists.




6


5(b)1. Renaming fails, the error message is displayed.

Use Case 9: Delete security.
Primary Actor: User
Pre-Condition: User logged in.
Main Scenario:
1.  User selects the portfolio.
2.  User initiates the “delete security” functionality.
3.  System asks for the security name.
4.  Security is deleted.
Alternate Scenario
4(a). Security does not exist.
4(a)1. Deletion fails, error message is displayed.

Use cases related to transactions:
Use Case 10: Adding a transaction.
Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1.  User selects the portfolio and the security.
2.  User initiates the “add transaction” functionality.
3.  System prompts the user for following details, depending on the security type
(i)If the security is of share type:
a.      Number of shares transacted
b.      Type of transaction: buy or sell
c.       Price of one share
d.      Date of transaction
e.       Any detail user might want to enter.

(ii)If the security is of bank type:
a.      Amount of money transacted
b.      Type of transaction: credit or debit.
c.       Date of transaction
d.      Any detail user might want to enter.
4. New transaction is created.
Alternate Scenario:

4(a). Invalid attribute value is entered. For example field (i)(a) is not an integer or (i)(c) is not a float.
4(a)1. User is shown the error displayed and prompted to enter the incorrect fields again.

Use Case 11: Editing a transaction.
Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1. User selects the portfolio, security and transaction.




7


2.  User initiates the “edit transaction” functionality.

3.  System asks the user to enter new fields for the transaction. The fields are the same as given in Use case 1.

4.  The modified transaction is saved.

Alternate Scenario:

4(a). Invalid attribute value entered. For example field (i)(a) is not an integer or (i)(c) is not a float.
4(a)1. User is shown the error displayed and prompted to enter the incorrect fields again.

Use Case 12: Deleting a transaction.
Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1.  User specifies the portfolio, security and transaction.
2.  User initiates the “delete transaction” functionality.
3.  The transaction is deleted.

Use cases related to information display:
Use Case 13: Display Investment
Primary Actor:User.
Pre-Condition:User logged in.
Main Scenario:

1.      User selects the option of viewing the Investment (from the left pane, refer user screens in Appendix C).
2.       System computes the net worth for each portfolio. Refer use case 16.

3.      System displays the name of all portfolios with their net-worth. It also shows the net-worth of entire investment by adding up the net-worth of each portfolio.

Use Case 14: Display Portfolio
Primary Actor:User
Pre-Condition:User logged in.
Main Scenario:

1.       User selects the option of viewing a particular portfolio (selects a portfolio from the left pane, refer user screens in Appendix A).
2.      System computes the net-worth and ROI of each security. Refer use cases 16 and 17.

3.      System displays the securities in the portfolio with the net-worth and ROI computed. It also displays the net-worth of the portfolio by summing up the net-worth of each security.

Use Case 15: Display Security
Primary Actor:User
Pre-Condition:User logged in.
Main Scenario:




8


1.       User selects the option of viewing a particular security (selects a portfolio from the left pane, refer user screens in Appendix C).
2.      System displays all the transactions.

Use cases related to computations

Use Case 16: Compute Net-Worth.
Primary Actor: System.
Pre-Condition: User logged in & investment/portfolio/security specified
Main Scenario:
1.      System computes net-worth for investment/portfolio/security specified (Appendix B shows the detailed method for computing the net-worth).

Use Case 17: Compute Rate of Investment.
Primary Actor: System.
Pre-Condition: User logged in & security specified
Main Scenario:

1.  System computes ROI for the security specified (Appendix A shows the detailed method for computing the ROI).

Use cases related to share prices

Use Case 18: Getting the current prices of shares.
Primary Actor: User.
Pre-Condition: User logged in and internet connection exists.
Main Scenario:
1. User initiates the “download current prices” functionality.
2.    The system downloads the current share prices from a particular
website.
Alternate Scenario:
2(a). Not able to download (due to network failure, site down, …)
1. Display current value saved from before; ask the user to change it

Use Case 19: Editing the share prices.
Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1.  User initiates the “Edit share prices” functionality.
2.  The system shows the list of all the companies and their current share prices (as known to the system).

3.  User edits the price of the company share he wants to edit.

Alternate Scenario:
3(a). The entered price is invalid.
3(a)(i) User is shown the error displayed.
3(b). The company name does not exist in the list of companies
3(b)1. This is not handled by PIMS. PIMS is customized for the 760-800 odd companies registered in the NSE.




9


Use cases related to alerts

Use Case 20: Setting alerts
Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1. User initiates the “set alert” functionality.
2.  The system asks the user for the date and details of the alert.
3.  The alert is set.

Use Case 21: Show the pending alerts.
Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1.  User initiates the “show pending alerts” functionality.
2.  System shows the pending alerts.

Use Case 22: Delete alerts.
Primary Actor: User.
Pre-Condition: User logged in.
Main Scenario:
1.  User initiates the “delete alerts” functionality.
2.  User is asked for the alert to be deleted.
3.  The alert is deleted.

3.2  Performance Requirements:

(a)   Should run on 500 MHz, 64 MB machine.
(b)   90% of the responses should be within 2 sec, except for downloading current prices for which more time is acceptable.

3.3  Design Constraints:

1. Security: The files in which the information regarding securities and portfolios should be secured against malicious deformations.

2. Fault Tolerance: Data should not become corrupted in case of system crash or power failure.

3.4  External Interface Requirements:

The user screen is split vertically into two panes. The left pane contains the Investment tree, which expands and contracts as per user action. The right part displays the information related to investment/portfolio/security that is specified on the left pane. Appendix B shows the intended user screen.

4.      Future Extensions:

a. PIMS is intended to be a single user software. A possible future extension would be to make it multi user.









10



5.  Appendix

5.1  Appendix A:
The formula for calculation of ROI for shares:

Suppose that, for the share of a particular company, following were the attributes of ith transaction.
Amount of money transacted = mi
Time between date of transaction and day when ROI is being calculated = ni Type of transaction = buy or sell
Let sgn(i) = +1 if the transaction was a buy, and -1 if it was a sell. Then, the rate of investment, r, is got by solving the equation

S sgn(i) mi (1+r) ni     = M

where M is the total amount in that share, and summation is over all the transactions.


The formula for calculation of ROI for banks:

For a banks the ROI is constant, namely the interest rate of that bank.


5.2 Appendix B:
The formula for calculating net-worth of a security:

If the security is of type “share”:
Net-worth = C*N where C is the current value of the share of the security and N is the number of shares of that security which the user has.

If the security is of type “bank”, the net-worth is simply the total balance of money in that bank.

The formula for calculating net-worth of a portfolio:

Net worth of a security = S Net-worth of ith security.
( where the summation ranges over all the securities.)

The formula for calculating net-worth of entire investment:

Net worth of entire investment = SNet-worthofithportfolio.( where the summation ranges over all the portfolios.)





Introduction

Railway Route Optimization System is a product to serve to users who are tourists. The Main purpose of the project is to let the end users or passengers to know the shortest path to reach the destination with in short period and with amount as minimum as possible and as early as possible when more than one Railways route is to there to reach the destination.
This optimization system shows the graphical representation of the train route from staring point to ending point, this is very use full in now a days to know the train details i.e. train Starting Point and Ending Point, Starting time and arrival time Charge for A Starting point to Ending Point
The Railways Route Optimization has 4 Modules
• Stations
• Trains
• Route
• Search

Stations module :

This module Maintains the data about station and allow operations like addition, deletion, modification. This module maintains stations tables and fields are station-id, station-name, and district, state. In this table Station-id, station-name is unique does not allow any unique values.
For arranging a route Starting station, ending station, via stations are must be registered in stations module, after registration of the stations administrator can arrange the path among that stations. This station module is handled by administrator only, can not handle end user

Trains module :

This module maintains the data about trains and allows operations like additions, deletion, and modification. The train module handles trains table and fields are train-id, train-name, starting-station, ending station, starting-time, ending-time, train-type.
In this train-id unique and this attribute does not allow any duplicate values

Route :

This module maintains the data about routes between stations and This module handle the routes tables and fields are route-id, starting-station, destination, timetakenforordinary, and timetakenforexpress. The module shows the graphical representation of a route between starting-station and destination.
This module is very useful to know routes between any two stations and also know shortest path among the routes, and also gives graphical representation of the corresponding routes

Search :

This module maintains the data about trains, routes tables and this module gives reports on trains and routes, this module
In this project has two active actors they are
1. Administrator
2.Traveller

Administrator :

The administrator has privileges on Stations, Trains, and Routes he can Add data into these tables and allow all operations on these tables. Once data is stored into these tables after the traveler can send a query on that data for generating reports. And he can easily find out which is the shortest path between two stations

Traveler :

The traveler has only privileges on search for a train and a route. The traveler sends queries to server and gets reports on the requested data and he will get graphical representation of the path between any two stations

The accrual concept in accounting means that expenses and revenues are recorded in the period they occur, whether or not cash is involved. The benefit of the accrual approach is that financial statements reflect all the expenses associated with the reported revenues for an accounting period.

While we are discussing the accrual concept in financial accounting, it is important to note that there are two methods of accounting, cash basis accounting method and accrual basis accounting method. The former method involves reporting income when it is received and expenses, when they are paid, whereas, in accordance with latter method the income is reported when it is earned and expenses when they are incurred. And this is what differentiates between the cash basis accounting method and the accrual basis accounting method.

The accrual basis accounting method enables to track income and expenses while it is concerned with the notion that revenue should be matched with whatever expenses or assets produce that revenue. Thus the matching principle facilitates making careful estimates against revenues that are recorded, but are not received. That's how the accrual method of accounting aims at providing more meaningful financial information.

One of the main reasons why accrual basis accounting method is most useful is that it provides the results of operations accurately. For example, when a business makes sales or provides services on credit basis to the customers, the financial entry that needs to be generated or made is debiting receivables and crediting revenues. So, providing required information in terms of revenues and receivables, the results are matched in an accurate manner.

Accrual basis of accounting method provides a better picture of a company. It is widely used, because it leads to produce financial statements in an accurate manner. Since the accrual basis accounting method involves recording revenues and expenses together in the same accounting period, it enables the users of financial information to evaluate the performance of a business entity accurately . As regards the cash basis method of accounting, it does not provide the accurate picture of liabilities that are incurred but not yet paid and does not provide sufficient records that are required to file for audits. Thus, accruals are a key part of the closing process of accounting and preparing financial statements. Financial statements are prepared under the accruals concept of accounting which requires that income and expense must be recognized in the same accounting period

Reference: LinkedIn.com



A company has various motives for holding the inventory as stated below:

1) Transaction Motive : The Company may be required to hold the inventory in order to facilitate the smooth and uninterrupted production and sale operations. It may not be possible for the company to procure the raw material whenever necessary. There may be a time lag between the demand for the material and its supply. Hence it is needed to hold the raw material inventory. Similarly it may not be possible to produce the goods immediately after they are demanded by the customers. Hence it is needed to hold the finished goods inventory. They need to hold work in progress may arise due to production cycle.

2) Precaution Motive : In addition to the requirement to hold the inventory for routine transactions, the company may like hold them to guard against risk of unpredictable changes in demand and supply forces. Eg. The supply of raw material may get delayed due to factors like strike, transport, disruption, short supply, lengthy processes involved in import of raw material etc. hence the company should maintain sufficient level of inventory to take care of such situations. Similarly, the demand for finished goods may suddenly increases (especially in case of seasonal type of products) and if the company is unable to supply them, it may mean gain of competition. Hence, company will like to maintain sufficient supply of finished goods.

3) Speculative Motive: The Company may like to purchase and stock the inventory in the quantity which is more than needed for production and sales purpose. This may be with the intention to get advantage in term of quantity discounts connected with bulk purchasing or anticipating price rise.

Motives For Holding Cash

Cash is known as most liquid and less productive assets of a firm. If cash remains idle, earns nothing but involves cost in terms of interest payable to finance it. Although cash is least productive current assets, firm should hold certain amount of cash for marketable securities. Mainly, there are three motives for holding cash.

1. Transaction Motive Of Holding Cash
Transaction motive refers to the need to hold cash to satisfy normal disbursement collection activities associated with a firm's ongoing operation. Transaction means the act of giving and taking of cash or kinds in the ordinary course of business. A firm frequently involves in purchase and sales of goods or services. A firm should make payment in terms of cash for the purchase of goods, payment of salary, wages, rent, interest, tax, insurance, dividend and so on. A firm also receives cash in terms of sales revenue, interest on loan, return on investments made outside the firm and so on. If these receipts and payments were perfectly synchronized, a firm would not have to hold cash for transaction motive. But in real, cash inflows and outflows cannot be matched exactly. Some times receipts of cash exceeds the disbursement whereas at other time disbursement exceeds the receipt. Because of this reason, if disbursement exceeds the receipt, a firm should hold certain level of cash to meet current payment of cash in excess of its receipt during the period.

2. Precautionary Motive Of Holding Cash
Precautionary motive refers to hold cash as a safety margin to act as a financial reserve. A firm should hold some cash for the payment of unpredictable or unanticipated events. A firm may have to face emergencies such as strikes and lock-up from employees, increase in cost of raw materials, funds and labor, fall in market demand and so on. These emergencies also bound a firm to hold certain level of cash. But how much cash is held against these emergencies depends on the degree of predictability associated with future cash flows. If there is high degree of predictability, less cash balance is sufficient. Some firms may have strong borrowing capacity at a very short notice, so that they can borrow at the time when emergencies occur. Such a firm may hold very minimum amount of cash for this motive.

3. Speculative Motive Of Holding Cash
The speculative motive refers to the need to hold cash in order to be able to take advantage of bargain purchases that might arise, attractive interest rates and favorable exchange rate fluctuations. Some firms hold cash in excess than transaction and precautionary needs to involve in speculation. Speculative needs for holding cash require that a firm possibly may have some profitable opportunities to exploit, which are out of the normal course of business. These opportunities arise in conditions, when price of raw material is expected to fall, when interest rate on borrowed funds are expected to decline and purchase of inventory occurs at reduced price on immediate cash payment.