Requirements Specification Document

advertisement
Team Stochastic
Central Washington University
Requirements Specification
Document
Project Name: Cluster
Sampling for Tail Estimation of Probability
(CSTEP)
Editor:
Eric Brown
Authors:
Alan Chandler
Eric Brown
Nathan Wood
Temourshah Ahmady
Faculty Advisor:
Dr. James Schwing
Client:
Dr. Yvonne Chueh
Due Date:
12/08/10
Contents
1
Introduction .......................................................................................................................4
1.1
Project Overview ........................................................................................................................... 4
1.2
Project Scope ................................................................................................................................ 4
1.3
Document Preview ........................................................................................................................ 4
2
Project Overview ................................................................................................................6
2.1
Stakeholders ................................................................................................................................. 6
2.2
Problem ......................................................................................................................................... 6
2.2.1
Current Solution .................................................................................................................... 6
2.2.2
Justification ........................................................................................................................... 6
2.3
Features ........................................................................................................................................ 6
2.4
Constraints .................................................................................................................................... 7
3
Development and Target Environments ...............................................................................8
3.1
Development Environments ......................................................................................................... 8
3.2
Target Environments..................................................................................................................... 8
4
System Model .....................................................................................................................9
5
User Interaction ................................................................................................................ 10
5.1
6
User’s Point of View .................................................................................................................... 10
Functional Requirements .................................................................................................. 11
Requirement F1 ...................................................................................................................................... 11
Requirement F2 ...................................................................................................................................... 11
Requirement F3 ...................................................................................................................................... 11
Requirement F4 ...................................................................................................................................... 11
Requirement F5 ...................................................................................................................................... 11
Requirement F6 ...................................................................................................................................... 12
Requirement F7 ...................................................................................................................................... 12
Requirement F8 ...................................................................................................................................... 12
Requirement F9 ...................................................................................................................................... 12
Requirement F10 .................................................................................................................................... 12
Requirement F11 .................................................................................................................................... 13
Requirement F12 .................................................................................................................................... 13
Requirement F13 .................................................................................................................................... 13
Requirement F14 .................................................................................................................................... 13
Requirement F15 .................................................................................................................................... 13
Requirement F16 .................................................................................................................................... 13
Requirement F17 .................................................................................................................................... 14
Requirement F18 .................................................................................................................................... 14
Requirement F19 .................................................................................................................................... 14
Requirement F20 .................................................................................................................................... 14
Requirement F21 .................................................................................................................................... 14
Requirement F22 .................................................................................................................................... 15
Requirement F23 .................................................................................................................................... 15
7
Nonfunctional Requirements ............................................................................................ 16
Requirement NF1 .................................................................................................................................... 16
Requirement NF2 .................................................................................................................................... 16
Requirement NF3 .................................................................................................................................... 16
Requirement NF4 .................................................................................................................................... 16
Requirement NF5 .................................................................................................................................... 16
Requirement NF6 .................................................................................................................................... 17
Requirement NF7 .................................................................................................................................... 17
Requirement NF8 .................................................................................................................................... 17
Requirement NF9 .................................................................................................................................... 17
Requirement NF10 .................................................................................................................................. 17
Requirement NF11 .................................................................................................................................. 17
8
Feasibility ......................................................................................................................... 19
8.1
Introduction ................................................................................................................................ 19
8.2
Versions....................................................................................................................................... 19
8.2.1
Bare Bones .......................................................................................................................... 19
8.2.2
Enhanced Version ............................................................................................................... 19
9
Conclusion ........................................................................................................................ 20
10
Appendices ....................................................................................................................... 21
Appendix I: System Block Diagram ......................................................................................................... 21
Appendix II: Use Case Diagram ............................................................................................................... 22
1 Introduction
In business and insurance practice, evaluating the adequacy of reserves is very important when
valuation actuaries calculate the probability distributions of involved financial random outcomes. A
faster research system would assist the actuaries and academic studies to project insurance financials
on a stochastic interest rate or equity return basis. This research system will be desktop-based
application made from a combination of C++, Lua, and C#.
The main goal of this project is to provide the actuaries with a more efficient research tool to make
stochastic modeling more accurate and reliable. This application will reduce the amount of time
currently spent on calculations. It will let the statisticians at actuaries and academic studies of actuarial
sciences to estimate and analyze the probability of a large block of business in a short amount of time.
The output of this program, which will be cluster samples for tail estimation of probability, helps the
valuation actuaries to analyze and guide decisions on economic values for various lines of business.
1.1 Project Overview
One of the challenges of estimating the probability distribution of financial outcomes for large insurance
businesses is the run time. Estimating and analyzing the probability of a large block of business is often
too time consuming to be practical. Modelers at actuaries reduce the number of runs or group assets
into asset categories to reduce the run time for each scenario. This way of estimating the probability
distribution of large financial outcomes is not reliable. Additionally, under- or over-estimating large
financial outcomes may lead to poor judgment and even fail the entire business.
1.2 Project Scope
The project is a desktop standalone application. Generally, it will go through three phases to perform its
task; it will have a graphical user interface that interacts with the user to get his/her preferences for the
interest rate path, size of the sample scenarios, and the distance formula choices built-in the system.
Secondly, the system will read stochastically generated scenarios in vector form from a spreadsheet.
Finally, it will estimate the tail probability as cluster samples based on the user selected distance
formula and output the required run-time for the distance sampling process, list of sample scenarios,
and the probability of sample scenarios. The program’s out plays a vital role in professional judgment of
actuaries to evaluate the adequacy of reserves.
1.3 Document Preview
Purpose – This requirements specification document describes the functions and requirements
specified for the CSTEP system. We need to create CSTEP for valuation actuaries to analyze and
project insurance financials on a stochastic interest rate (mainly cluster sampling for tail
estimation of probability).
Scope – The CSTEP system reads stochastically generated scenarios from an Excel spreadsheet
and estimate the probability of tail as cluster samples by using one of the three distance formula
that is built-in the system. Finally, the system output the required run-time for the distance
sampling process, list of selected sample scenarios, and probability of selected sample scenarios.
4
The output of the system will play a vital role in professional judgment of actuaries to evaluate
the adequacy of reserves.
Intended Audience – The intended audiences of this document are our team, client, and those
who work as valuation actuaries evaluating the adequacy of reserves of insurance companies.
Client: Dr Yvonne C. M. Chueh is our client. She is an Associate Professor in the Mathematics
Department at Central Washington University.
End Users: All statisticians and actuarial experts who judge and evaluate a company’s financial
strength can benefit from this application as it relates to projecting insurance financials on a
stochastic interest rate.
Researchers: Researchers who are doing academic and industrial studies on actuarial sciences
can also use our project.
The major sections of this document are as follow:
Project Overview- This section extends on the topics described in the introduction sections and
provides background information on the factors affecting the scope of the project and its
requirements.
Development and Target Environments – This section covers the contents of the hardware and
software resources necessary to build and run the system.
System Model – This section presents a high-level view showing the major components of the
existing and proposed system and their relationships with each other.
User Interaction – This section describes how the system interacts with the user.
Functional Requirments – This section covers all the functional requirements of the CSTEP
system and provides a detailed, clear, and unambiguous description about each functional
requirement.
Nonfunctional Requirements – This section covers all the nonfunctional requirements of the
CSTEP system and provides a detailed, clear, and unambiguous description about each
nonfunctional requirement.
Feasibility – This section explain the feasibility of the system.
Appendices – This section describes the system block and use cases diagrams that we as a team
have developed for requirement specification of our project.
5
2 Project Overview
Begin this section with a carefully written introduction paragraph(s) previewing and summarizing the
section's contents
This section will introduce the clients, stakeholders and intended users, immediately followed with a
detail of the scope of our project and more in depth requirements. We will describe the problem as it
pertains to our clients, and how we will solve the problems, our client is having. Provided with this
section will also be a list of features our project will support and utilize in the final stages. Following this
element, our paper describes the constraints that we will face on our project for the next quarter.
2.1 Stakeholders
Our client is Dr. Yvonne Chueh who is a professor in the mathematics department at Central Washington
University. The stakeholders in the project are Dr. Chueh, and Central Washington University. The
intended users would be mainly actuaries working at large insurance companies who need to determine
probabilities for large clusters of data. Other intended users would be researchers trying to determine
even more extreme cases than the actuaries do of insurance companies.
2.2 Problem
2.2.1 Current Solution
The current solution for estimating tail probabilities for hundreds of thousands of data points is
throwing the data into Microsoft Excel spreadsheets. After plugging in all of this data the actuaries then
run the distance formula, and wait for Excel to sort through a hundred thousand plus data points to. The
actuaries currently using this method to complete their work are misusing their valuable time in
crunching all of these numbers, and having to wait for the completely inefficient Excel spreadsheets to
calculate the values. This is a problem we can make much more efficient for the actuaries.
2.2.2 Justification
To accomplish this we will use Visual Studio 2008 to develop a program, which will perform the same
tasks in an efficient and user-friendly manner. The program will take in the data points in multiple
formats, run the specified formula, and finally output the results into a format of the users choosing. We
must create this program because nothing much like it has ever been created before. With this
successful completion of this program, actuaries will be able to complete their tasks much more
efficiently, and be able to spend time on different things.
2.3 Features
The main features would be a GUI interface, which would allow more efficient running of the formulas.
The user interface would also allow the user to input data from the format they have it in, and modify
the results as they see fit. Another feature would be the output of the data brought in by the user, and
modified by the program.
6
2.4 Constraints
There are several constraints that we need to deal with when tackling this project including:
compatibility of files with our program, different processor capabilities, and time. Our system also needs
to be as reliable as possible because otherwise the users will not accurately be able to complete their
jobs.
7
3 Development and Target Environments
Computer hardware specifications and operating systems define the environments software runs on.
Recognizing the development and target environments and understanding the differences between the
two helps developers recognize the probable limitations on the software when running in a target
environment. This section addresses the environments for this project, identifying the development
environments, the target environments, and the software’s limitations when running in either type of
environment.
3.1 Development Environments
Developers typically use up-to-date computer models and operating systems to develop software. For
this project, the developers will be using computers with multi-core processors, at least two gigabytes of
memory, and Windows Vista or 7 installed. With these specifications, most every program can run
without an issue. Multi-core processors allow several programs to run concurrently without slowing
down, and unless several large applications are running, even this project’s software will have few
memory constraints. Even if 100 megabytes of memory is allocated to hold a large population, the
development environments will certainly cooperate.
3.2 Target Environments
Target environments are any computer systems a target user will run this project’s software on. As
stated later in the non-functional requirements, target users will be using 32-bit or 64-bit versions of
Windows XP, Vista, or 7 to run the software. While all these operating systems themselves will not limit
the software, they may be running on hardware that will. Knowing these limitations will shape the
software as the developers ensure that it meets the requirements.
If Windows Vista or 7 are running on a computer with less than two gigabytes of memory or Windows
XP is running on a computer with less than one gigabyte of memory, the operating system will leave only
a little memory for applications, and a program needing 100 megabytes of memory may not get it. Also,
a system with a single-core processor slower than two gigahertz will likely not run the software as
quickly as desired. During testing, developers will need to determine through stress testing on various
systems how much memory will be necessary to hold large populations and how long processing will
take on slower processors.
8
4 System Model
As of now, we have completed the prototype GUI of the software, but have not completed design of our
system model. We are currently considering different designs, such as Model View Controller.
.
GUI
Data Processor
9
5 User Interaction
This section describes the actions of the CSTEP system from the user’s point of view. One of the goals of
the CSTEP program is to make it easier for actuaries to estimate the adequacy of reserves of insurance
companies. In order to attain this goal, we designed the CSTEP system user interface based on the
standard of user-centered design so that they can interact with the system clearly and simply. To look at
the CSTEP system from the user’s point of view, we analyze a use case of the system.
5.1 User’s Point of View
The following use case describes how the user expects to interact with the program:
1.
2.
3.
4.
Import the data
Select the algorithm formula
Process the data
Export the output
User expects the CSTEP program to read the user’s data from excel spreadsheet in svn format and
process it based on the user’s choice of three different algorithm based formulas that we will build into
the system, and finally the program should export the resulted data as output.
The system user interface has a homepage and four tab pages. The homepage is a windows form that
has the name of the system at the top and five buttons; New Samples, Preexisting Samples,
Documentation, Quit, and About. This page is the start of the program that gives several options for the
user on how to use the program.
10
6 Functional Requirements
Requirement F1
Priority: Essential
Source: Client
Description: The program should be able to process data using the Significance Method.
Requirement F2
Priority: Essential
Source: Client
Description: The program should be able to process data using the Euclidian Distance Method.
Requirement F3
Priority: Essential
Source: Client
Description: The program should be able to process data using the present value distance method.
Requirement F4
Priority: Essential
Source: Team
Description: The program should be able to read CSV files.
Requirement F5
Priority: Essential
Source: Client
Description: The program should have the ability to select the number of results.
11
Requirement F6
Priority: Essential
Source: Client
Description: The program should issue performance warnings if too much data is entered.
Requirement F7
Priority: Essential
Source: Team
Description: The user must be able to select the row and column that is the upper left corner of their
data.
Requirement F8
Priority: Essential
Source: Team
Description: The user must be able to select the size of each scenario by entering data into text boxes.
Requirement F9
Priority: Essential
Source: Team
Description: The user must be able to select the size of each scenario by selecting it in the spreadsheet.
Requirement F10
Priority: Essential
Source: Team
Description: The user should be able to select the number of scenarios by entering it in a text box.
12
Requirement F11
Priority: Essential
Source: Client
Description: V will be the weight factor for how influential a year is.
Requirement F12
Priority: Optional
Source: Client
Description: The program should have adjustable constants in the equation editor
Requirement F13
Priority: Preferable
Source: Client
Description: The program’s equations must be modifiable without recompiling the C++ code.
Requirement F14
Priority: Optional
Source: Client
Description: The program should be able to “nest” or “subdivide” the incoming data.
Requirement F15
Priority: Essential
Source: Team
Description: The program should be able to output its data as CSV.
Requirement F16
Priority: Essential
13
Source: Client
Description: The program should be able to graph the probability of each outputted scenario.
Requirement F17
Priority: Optional
Source: Team
Description: The program should split the nests in the output data.
Requirement F18
Priority: Preferable
Source: Client
Description: The program should estimate the amount of time left as processing proceeds.
Requirement F19
Priority: Essential
Source: Client
Description: If text or blank fields appear in the input, specific error messages should be generated.
Requirement F20
Priority: Essential
Source: Team
Description: The user must be able to select the size of each scenario by entering it in a text box.
Requirement F21
Priority: Preferable
Source: Team
14
Description: The program should issue performance warnings if multiple instances of it are running at
the same time.
Requirement F22
Priority: Optional
Source: Team
Description: The user should be able to edit the universe from within the program.
Requirement F23
Priority: Essential
Source: Team
Description: The program should have documentation that details its features. In particular, the
documentation should be able to walk users through all the use cases.
15
7 Nonfunctional Requirements
Requirement NF1
Priority: Essential
Source: Client
Description: The program must accept up to 128 years of input.
Requirement NF2
Priority: Preferable
Source: Client
Description: The program must accept up to 1024 years of input.
Requirement NF3
Priority: Essential
Source: Client
Description: The program must run on Windows XP, on both 32-bit and 64-bit versions.
Requirement NF4
Priority: Essential
Source: Client
Description: The program must run on Windows Vista, on both 32-bit and 64-bit versions.
Requirement NF5
Priority: Essential
Source: Client
Description: The program must run on Windows 7, on both 32-bit and 64-bit versions.
16
Requirement NF6
Priority: Essential
Source: Client
Description: The program should be able to process 10,000 scenarios into 50 results in 5 minutes or less
on a Turion X2.
Requirement NF7
Priority: Essential
Source: Client
Description: The program should be able to produce up to 1024 outputs.
Requirement NF8
Priority: Optional
Source: Client
Description: The program should be able to produce up to 131,072 outputs.
Requirement NF9
Priority: Essential
Source: Client
Description: The program should be able to have 12 significant digits of precision in all its calculations.
Requirement NF10
Priority: Essential
Source: Client
Description: The program should be able to process up to 131,072 input scenarios.
Requirement NF11
Priority: Preferable
17
Source: Eric Brown
Description: The program should be able to process up to 8,388,608 input scenarios.
18
8 Feasibility
8.1 Introduction
Beginning the project our team decided that to sufficiently our clients’ needs on the project we would
need to fulfill a minimum set of requirements. The requirements listed in this document are an
accumulation of those requirements we first gathered mixed with more that we have gathered along
the way. In compiling this list, we have discovered that our project is in fact quiet feasible, and we will
easily be able to do this within the time limit.
8.2 Versions
8.2.1 Bare Bones
The bare bones version of our project is a user interface that will accept as input a file containing data
points. This file could be in multiple forms of spreadsheets and contain approximately 100,000 data
points each containing roughly 30 entries. The user can then view these points and edit them from
within our program with a series of mouse clicks. The user can also edit the selection size, the universe
size, and the amount of nests in this section. Selecting these changes then brings up more options,
which allow the manipulation of data by the formulas provided. Following the manipulation of data by
the formulas, the program will output the data that is a result of the formulas. Finally, the users can
select a format to output the data to so they can use it for further research.
8.2.2 Enhanced Version
This version will be much the same as the first version with a few added features. These features would
include the capability to modify the formulas to the user’s needs. The enhanced version would also take
in any form of spreadsheet, and work on multiple platforms to reach the most users. Finally, this version
would allow users to choose the amount of nested samples that they chose for output.
19
9 Conclusion
Requirements are a pivotal part of a project this size and the requirements will ensure that our group
creates a project that meets the standards we agreed upon for this project. The sections we have
detailed within this document have given a full description of what requirements we have gathered, and
how they will affect our project. Following these requirements will enable us to create a project that full
meets the needs of all stakeholders.
20
10 Appendices
Appendix I: System Block Diagram
21
Appendix II: Use Case Diagram
Graphical User Interface
Import, Process
and Export Data
Process Previously
Imported Data and Export
User
View Previous
Results
Data Processor
Access
Documentation
22
Download