Las herramientas CASE (Computer Aided Software Engineering) son aplicaciones que asisten el desarrollo de software automatizando tareas como el diseño, generación de código, y documentación. Se clasifican en Upper CASE, Middle CASE y Lower CASE dependiendo de la fase del ciclo de desarrollo que asisten. Las herramientas CASE intentan aumentar la productividad y calidad del software mientras reducen los costos y tiempos de desarrollo.