SoftwareProjectPlan_TeamStochastic(FINAL_WEBSITE)

advertisement
Team Stochastic
Central Washington University
Software Project Plan
Project Name: Cluster
Sampling Tail Estimation Probability (CSTEP)
Editor:
Alan Chandler
Authors:
Alan Chandler
Eric Brown
Nathan Wood
Temourshah Ahmady
Faculty Advisor:
Dr. James Schwing
Client:
Dr. Yvonne Chueh
Due Date:
11/09/10
Table of Contents
1
Introduction .......................................................................................................................3
1.1
Vision Statement ........................................................................................................................... 3
1.2
Real World Problem ...................................................................................................................... 3
1.3
Project Stakeholders ..................................................................................................................... 3
1.4
Project Scope ................................................................................................................................ 3
1.5
Document Preview........................................................................................................................ 4
2
Process Model and Team Organization ................................................................................5
2.1
Software Process Model ............................................................................................................... 5
2.2
Team Organization ........................................................................................................................ 5
2.3
Team Roles and Duties.................................................................................................................. 5
3
Risk Management ...............................................................................................................7
3.1
Risk Table ...................................................................................................................................... 7
3.2
Risk Analysis and Solution Strategies ............................................................................................ 7
4
Hardware and Software Requirements ................................................................................9
4.1
Hardware Requirements ............................................................................................................... 9
4.2
Software Requirements ................................................................................................................ 9
5
Work Breakdown Structure ............................................................................................... 10
5.1
Introduction ................................................................................................................................ 10
5.2
Activity Breakdown ..................................................................................................................... 10
6
7
Project Schedule ............................................................................................................... 11
6.1
Introduction ................................................................................................................................ 11
6.2
Estimation of Effort ..................................................................................................................... 11
Conclusion ........................................................................................................................ 12
Appendices ...................................................................................................................................... 13
Appendix A: CS 480 Resource Usage ...................................................................................................... 13
Appendix B: CS 480 Task Sheet ............................................................................................................... 15
Appendix C: CS 480 Gantt Chart ............................................................................................................. 18
Table 1 Risk Table.......................................................................................................................................... 7
Table 2 Activity Breakdown ........................................................................................................................ 10
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#.
1.1 Vision Statement
Valuation actuaries are in need of a faster way to analyze and project insurance financials on a
stochastic interest rate (mainly cluster sampling for tail estimation of probability). This system will be
able to read 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 will be 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. The output of the system will play a vital
role in professional judgment of actuaries to evaluate the adequacy of reserves.
1.2 Real World Problem
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.3 Project Stakeholders
The main users of this project are those who work at 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.
1.4 Project Scope
This 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 it will output the required run-time for the distance sampling process, list of sample
scenarios, and the probability of sample scenarios. The program’s output plays a vital role in
professional judgment of actuaries to evaluate the adequacy of reserves.
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.5 Document Preview
The following documents are the significant part of our project plan:
Process Model and team Organization – We chose to use the waterfall process model with
prototyping. This model is a systematic process toward our final product, from start to finish.
The initial step is obtaining all the requirements from the client. While gathering requirements
and developing a design that will meet those requirements, we create a prototype that the
client and team members will review. Next, we implement the design and product. The final
step is to maintain the system, and to insure functionality.
Risk Analysis- Risk analysis is a technique to identify and assess factors that may jeopardize the
success of the project and achieving our goal. In this section, we analyze each potential risk to
our project and determine how it will affect our goal and project.
Hardware and Software Requirements – This section describe the specification of the inputs
that the program reads from the spreadsheet, and the software needed to develop and run the
application. It will also detail the hardware requirements for the program.
Work Breakdown Structure – This is a detailed section about the important dates and
subprojects, during development in the CS480-481 sequence.
Conclusion – This project mathematically interesting and will be a great learning experience for
the entire team.
2 Process Model and Team Organization
Detailed in this section are the process model, team members’ official responsibilities, and their roles for
this project. The development of the project follows the Waterfall method, with the addition of a
prototype. Each member will fulfill a specific position within the team to manage certain tasks
throughout the project. Each team member will also participate in each step of the development,
though in different proportions for each step.
2.1 Software Process Model
Though criticized for its lack of testing, the Waterfall method of software development provides
straightforward, systematic steps. This simplicity makes completing a fully developed, professionalgrade program possible within the time allotted, which is approximately six months. Once the project is
given, the developer team gathers requirements specifying the exact expectations and desires the client
has for the program. After compiling as many requirements as possible, the team enters the design
stage, conceptualizing the architecture of the code and the layout of the user interface. With an
acceptable design in place, the team builds a prototype of the design and presents it to the client and
other authoritative figures for formal review.
Using the feedback from the prototype, which we ultimately discard altogether, the program undergoes
a redesign and enters the construction step. During this step, the team builds a final version of the
project, which includes a fully functional user interface and a complete algorithm for correctly solving
the problem in question. To ensure the program satisfies all the requirements, the team tests the
software thoroughly, attempting to discover as many bugs and faults with the software as possible.
Once the testing has finished, which tends to imply the advent of a deadline, we will package up and
deliver the final product to the client. By this point, the software is a finished product.
2.2 Team Organization
Because of the scope and size of the project, each team member must take responsibility for portions of
the project. Providing the team with direction and focus, Alan Chandler will act as Team Leader. A few of
his duties involve equally distributing work among members, making sure members complete their
given tasks, and preparing agendas for meetings. Assuming the role of Lead Developer, Nathan Wood
will manage the design and architecture of the software. He must provide specifications for each portion
of code and guarantee proper integration of those portions. The team’s Lead Tester will be Eric Brown,
who will design and accumulate tests that will assess the correctness of the software. Temourshah
Ahmady, as the Quality Assurance Officer, will compare the software to the requirements and the
client’s expectations to guarantee the software is complete, correct, and meeting quality standards. This
requires maintaining close communication with the client.
2.3 Team Roles and Duties
Every team member will work cooperatively on every assignment and step of development, but some
will work more on certain tasks than others. For all written documentation, every member will provide
the same amount of work. The requirements and design steps will also require the same effort from
each member. During the construction stage, every member will have pieces of code to work on, but
the Lead Developer will be responsible for integrating each piece of code and will likely end up
programming a bit more. In the same, every member will work on developing tests and checking for
quality, but the Lead Tester and Quality Assurance Officer will put more effort into each task,
respectively. Regardless of the task, everyone will equally participate in the project, as shown in
Appendix A.
3 Risk Management
A risk can be anything that derails the development process of the application, and risk management is a
discipline for identifying risks, and determining measures to control and reduce them. This section
outlines some of the risks that may happen during the development process of our project application.
Our team will come up with a risk management plan to handle and assess the impact of each potential
risk.
3.1 Risk Table
Our team has identified the possible risks that may occur during our CS 480 and 481 Software Project.
The table below has detailed the risks with the likelihood they may occur and the impact they would
have on the future of the project.
Table 1 Risk Table
List
1
2
3
4
5
6
Risk
Team member does not do his share of the work
Team member becomes ill or injured
Team member does not continue to CS 481
Project does not meet client needs
Project falls behind and need more time
Team members disagreement
Likelihood
Medium
Medium
Low
Low
Low
Low
Impact
Medium
Medium
High
High
High
High
3.2 Risk Analysis and Solution Strategies
The following list describes the project's risks, their likelihood and impact, and the strategies for
managing these risks.
1. Since some of our team member may not have experienced working and learning as a team
before, they will find it hard, and they might not do their share of work. Therefore, in order to
prevent this risk, it is necessary for all team members to have good communication among each
other, and everyone should brief the team about his share of work during the weekly team
meetings. In particular, the team leader should make sure that everybody in the team has work
to do, and all team members must understand everything the team does.
2. As it is natural, it is possible for any member of our team member to get ill or something
unexpected happen, that would stop any of us to continue doing our share of work. In that
case, the team members are responsible to share the work and get the project done.
3. Since CS 480 and 481 is required, to complete the CS major, the likelihood that any of our team
members drop the class or unable to continue is very low. As mentioned, in only situation, that
our team members may not be able to continue is when they get ill or something unexpected
happens. In situation like that, we all will share the work and make every efforts needed to
complete the project.
4. In order to make sure that our project meet all the requirements and satisfy the client’s
expectations, we as a team should have effective communication with the client and make sure
that we update our client on every decision and any progress we make to complete the project.
5. It is possible that our team will run out of time to get the project done on time. To avoid this
risk, every team member should be highly committed to attend in all our meetings. In particular,
everybody should take responsibility to do their share of work, and those who finish their share
of work early should help the other team members. In case our team fall behind and cannot
complete the project on time, we all will take responsibility to request more time and get our
project done.
6. Every team member plays a vital role in obtaining the team’s goal and completing our project.
Therefore, we as a team respect each other’s ideas and inputs to make sure that everybody
agrees with how we will do our project. If our group disagrees, which can delay development;
we will make every effort to solve the disagreement.
4 Hardware and Software Requirements
We are planning to write our application primarily in the .NET framework on Windows 7 64 bit. Our
program will also depend on the Visual C++ 2010 runtime. This section first details hardware
requirements, and then software requirements.
4.1 Hardware Requirements
The target systems are dual-core desktop PCs running Windows XP SP3 32 bit, circa 2005. We expect
them to have at least 1 GB of physical RAM, and at least 1 GB of swap file. We expect the computer to
have a CPU equivalent to a Core 2 Duo, with around 3 GHz. The computers should have at least 20GB
free space.
The main difference from a hardware standpoint is the development PCs are faster, which poses some
testing challenges. We expect the development PCs to have at least 4GB of RAM, and a Core i7 with
around 3 GHz.
The development PCs are therefore much faster. To compensate for the differences, we will perform
final benchmarking to test if the program meets the performance requirements on a PC that we
consider representative of the users’ PCs.
4.2 Software Requirements
Target platforms will require the .NET framework version 4.0, which requires at least Windows XP. They
will also require the Visual C++ Runtime version 2010. As the primary target customers of this software
are business users, we expect that they will be running Windows XP SP3 32 bit, which is still prevalent in
the business world.
The development PCs are running primarily Windows 7 64 bit. Included with Visual Studio are the .NET
framework and the Visual C++ runtime, so this is not an issue for development. To install these needed
runtimes on the users PCs, we hope to bundle the installers with our installer, and if that is not possible
provide links to where users can download the installers.
As Windows XP 32 bit is different from Windows 7 64 bit, we will run all tests will on both at a bare
minimum. For basic testing, we will have a Windows XP 32 bit virtual machine to test the application on
for our project. For final testing, we will use a real machine with Windows XP 32 bit, and ensure that it
meets all the requirements on both platforms. If there is time, we will also test it on Windows XP 64 bit,
Windows Vista 32 and 64 bit and Windows 7 32 bit, as these are becoming more common in the
business world.
5 Work Breakdown Structure
5.1 Introduction
This section will include the breakdown of work, which our team must accomplish in order to create a
successful project. We will set the amount of time we believe each part of the project will take to be
completed and organize this information with Microsoft Project. As a team, we will decide these hours
and then split them between ourselves accordingly in order to have a fair amount of work. This will
make sure that our individual teammates do not feel they are getting too little or too much work
compared to everyone else.
5.2 Activity Breakdown
We will create time estimates for the remaining projects in CS480 and in CS481 in order to schedule our
time most efficiently. To do this we will approximate times for each part of the project and then put
those times into a project manager such as Microsoft Project. We will display the organization that this
program gives with a Gantt chart. With this sheet, we have accurately described the tasks, which we will
have to complete to finish our project1.
Table 2 Activity Breakdown
Due Date:
Monday February 1st
Wednesday February 3rd
Friday February 5th
Monday February 8th
Monday March 8th
Friday March 12th
Wednesday, Friday March 10, 12
Week of March 16-19th
1
See Appendix B
Assignment:
Software Design Specification
Midterm Oral Presentation
Software Test Plan
Peer Reviews
User’s Manual
Quality Assurance and Test Report
Final Oral Presentation
Program Satisfies Requirements
6 Project Schedule
6.1 Introduction
In this section, we will detail the scheduling of our project and the deadlines for different pieces of our
project. From the information in the previous section, we will determine a schedule by which we will
finish the parts of our project. Using Microsoft Project, we will use the amount of hours we estimated for
each project in the previous section to create a schedule. Microsoft Project has many advanced and
efficient methods that allow for a schedule that has an easy to understand format. Using this schedule our
team will efficiently tackle the CS480/CS481 Software Engineering Project.
6.2 Estimation of Effort
We approached estimating the effort required by working through one of the more detailed sections and
using that as a baseline for time. Extrapolating the amount of time needed to do this section we gathered
estimates for all of the projects following and agreed upon a time. To determine the interdependencies of
our different projects our group examined the assignments carefully. Reading through each document
allowed us to build an understanding of how the documents were interconnected. This information led us
to the documents we would need to do before other documents. Team roles dictated the parts of the
projects each team member would write. We assigned each team member to their roles by matching the
part of the project as closely as we could with their role. We show the accumulation of our efforts to
divide the various parts of projects in our Gantt chart2.
2
See Appendix C
7 Conclusion
The client, Dr. Chueh, insists that this project has never been done before. If that is true, then it could
become a groundbreaking program that may become commonplace in the actuarial world. For that
reason, Team Stochastic will put all the effort, energy, and resources into this project to produce the
best software possible, and following this project plan should make fulfilling that goal simpler.
Appendices
Appendix A: CS 480 Resource Usage
Appendix B: CS 480 Task Sheet
Appendix C: CS 480 Gantt Chart
Download