Software Requirements

Software requirements given by the customer need to be refined so that the user needs and expectations are explicitly stated. It is the responsibility of the developer to ensure that all the essentials are spelled out. The process of developing such requirements includes analysis of the requirements provided by the customer, formulation of questions to the customer, elicitation of answers to the questions, and documentation of the results.

In this project, you need to play the role of both the developer and the customer. You need to document the results of your analysis in a table, as shown below. This table shows examples of three questions and answers for a hypothetical product (not your current project). You should provide a table that is specific to your project. The table can also include various definition of terms used in the requirements. Formulate and answer as many questions as needed to make the specification precise enough so that both the customer and the developer can have the same intepretation.

  Question Answer
1. What is the range of expected values of input "Loan amount"? The loan amount should be in the range of 0 through 10,000 thousands of US dollars.
2. Should interest rate be fixed for the whole period or can it vary? It can vary.
3. When can the interest rate change? It can change at any time. Your system should record the time when the rate changed. However, since the amount of payment is to be recomputed at the end of each month, the change should be implemented starting next month after the change.
4. ....................... ........................................

This analysis should lead to the formulation of specific requirements for the project. List the capabilities of your software product in a number of points. Each capability should be stated clearly enough so that a software developer could understand what needs to be implemented.

It is a (non-functional) requirement for this project to follow the "incremental development" process in the development of this year's program. Therefore, you need to propose four (4) functional increments. This means that each of the points in the above list should be associated with one of the four phases.