Information Technology Security

profiledanish.dan
CaseStudy.dox.pdf

MITS5501

Software Quality, Change Management and

Testing

CASE STUDY

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 2

Software Requirement Specification (SRS)

Investment Management System

1. Introduction

1.1 Purpose

The Investment Management System (IMS) is intended to help the user keep account of their

money invested in institutions such as Banks and Share Market.

This document is meant to delineate the features of IMS, 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 IMS.

b. Tax computations for gains/losses.

c. Any market related prediction.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 3

1.3 Definitions, Acronyms, and Abbreviations:

Acronyms and Abbreviations:

a. IMS: Personal Investment Management System.

b. SRS: Software Requirements Specification.

c. WWW: World Wide Web.

d. GUI: Graphical User Interface.

e. ROI: Rate of Investment.

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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 4

2. Overall Description:

2.1 Product Perspective:

IMS 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. IMS should be user-friendly, ‘quick to learn’ and

reliable software for the above purpose. IMS 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:

IMS should support the following use cases:

Class of Use Case Use Case Use Case Description

Use case related to

Installation

Installation Creates and initializes working files

Uses cases related to system

authorization

Login Login to IMS

Change Password Change IMS password

Use cases related to

portfolios

Create Portfolio Creates a new portfolio

Rename Portfolio Rename an existing portfolio

Delete Portfolio Delete an existing portfolio

Use cases related to

securities

Create security Create a new security in a given portfolio

Rename Security Renames an existing security

Delete Security Deletes an existing security

Use cases related to

transactions

Add Transaction Add a transaction to a security

Edit Transaction Edit an existing transaction

Delete Transaction Delete an existing transaction

Use cases related to

information display

Display Investment Display information of the entire investment

Display Portfolio Display information about a given portfolio

Display Security Display information about a given security

Use cases related to

computation

Compute net-worth Compute net-worth of investment/ portfolio/

security

Compute ROI Compute ROI of a given security

Use cases related to share

prices

Get current share Price Download the current share price 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

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 5

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 IMS are “user” and “system”.

2.5 General Constraints:

a. For full working IMS requires Internet connection.

b. IMS is single-user software.

2.6 Assumptions and Dependencies:

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

b. The downloading of share prices in IMS is customized to www.asx.com.au. IMS would not

work for any other website.

c. The company shares registered in the Australian Stock Exchange (ASX) are only

considered by IMS.

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 IMS installation program.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 6

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 ASX, from www.asx.com.au) 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 :

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 7

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.

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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 8

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:

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 9

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.

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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 10

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 of

companies does this. (Companies registered in the Australian 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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 11

5(b). Security with the same new name exists.

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:

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 12

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.

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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 13

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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 14

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:

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 :

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 15

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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 16

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 IMS. IMS is customized for the only the

companies registered in the ASX.

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.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 17

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

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 18

related to investment/portfolio/security that is specified on the left pane. Appendix B

shows the intended user screen.

4. Future Extensions:

a. IIMS is intended to be a single user software. A possible future extension would be to

make it multi user.

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

Σ 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 bank the ROI is constant, namely the interest rate of that bank.

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 19

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 = Σ 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 = Σ Net-worth of ith portfolio.

( where the summation ranges over all the portfolios.)

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 20

5.3 Appendix C: The User Screens:

The diagram below shows the outline of the main user screens.

Investment Screen (displaying the portfolios and net-worth

MITS5501 Case Study

Copyright © 2015-2018 VIT, All Rights Reserved. 21

Portfolio Screen (displaying the securities)

Security screen (displaying all the transactions)