Requirements gathering , documentation, and design