CASE son las siglas de Computer Aided Software Engineering lo cual se refiere a una serie de herramientas de software que ayudan al programador y/o analista a planear/diseñar/desarrollar su proyecto. Esto le permite su usuario ahorrarse tiempo y dolores de cabeza con tareas automatizadas como el cronograma de actividades, el diseño de diagramas UML, refactoring, entre otros.
Los problemas surgen cuando estas herramientas les son enseñadas a los estudiantes de primeros años de ingenieria y estos se malacostumbran al uso de ellas y se vuelven haraganes para escribir el codigo, por lo que pasan por alto las bases necesarias. O sea, es necesario hacerlo a mano para entender bien el proceso.
Un ejemplo claro, el cual he tenido la oportunidad de apreciar, es el uso de los asistentes que vienen incluidos en el Visual Studio 2005, especialmente el asistente para crear un origen de datos, el cual te hace todo, hasta la interfaz de tus formularios solo con un par de clics pero genera un codigo engorroso, dificil de entender para cualquiera que se inicia en el lenguaje y por supuesto es toda una odisea personalizarlo debido a ello.
En lo personal, siempre he sido partidario de conocer como funcionan las cosas antes de usarlas, empezar por lo mas simple y minimalista antes de llegar a lo grosso, empezar haciendo las cosas a mano antes de utilizar las herramientas asistidas, ya que una vez que se conocen las bases, las herramientas asistidas reducen el tiempo de diseño/desarrollo del software y aun se cuenta con la capacidad de personalizarlo.
Si los desarrolladores utilizan unicamente herramientas asistidas de los entornos de desarrollo, como el intellisense, autocompletado o las herramientas de refactoring, estas pueden crear una mala costumbre y una dependencia a estas herramientas de modo que no podrias diseñar/codificar sin utilizarlas. Yo lo he vivido, pero intento de no olvidarme de los tiempos cuando se programaba en c/c++ y cualquier editor de textos era el IDE universal. Se te hace familiar esta situacion?
Y que les pareceria programar de esta forma?:
"Entorno de desarrollo en tres dimensiones"
c++ codigo computadoras diseño java .net lenguajes personal programacion programador