assess the hardware and software requirements for various users, contexts, and purposes in order to make recommendations for devices and programs