[A] serves as a training mechanism for users
[B] aids in building system test plans and scenarios
[C] aids in determining the feasibility and usefulness of the system before high development costs are incurred
[D] allows users and developers to experiment with the software and develop an understanding of how the system might work
[E] all of the above