Requirement Specification for a Simple Application to Model a Garden The following is a requirements statement for a simple application to model the design of a garden.
The required system has to allow a garden designer to construct a three dimensional model of a garden. The model will allow the designer, and any of their clients, to view the garden at any time in the future and from above or through any vertical cross section.
This will enable the application to simulate to a client what a person will see while in the garden as the garden grows.
The designer will be able to specify the shape of the garden based on a grid of squares.
Each square will be the same size. The size of each will depend on the detail of the garden shape. Once the garden shape is specified plants can be placed in the garden by the designer.
The plants can cover one or more grid squares, depending on their size and the size of the grid squares. Plants will be assigned an initial height and radius. Plants will also be assigned growth rates for height and radius. The Growth rates can be entered for each season (spring, Summer, Autumn, Winter) and the soil type (sandy, clay, silt, loam, chalk, or peat). However, one growth rate for height and one growth rate for radius can also be assigned, or rates can be assigned that are independent of either season or soil type. Each grid square will be assigned a soil type.
The designer can remove or change any plants in the garden and adjust the plant parameters in order to optimize the garden layout.
Once the garden layout has been completed the garden and plants can be viewed at the initial time or at a given time in the future. In the future the plants will have a size calculated based on their growth rates in height and radius.
Your analysis of the Garden Application will not include any interface classes but your model classes should allow the straightforward construction of an MVC interface.