Ver Mensaje Individual
  #9 (permalink)  
Antiguo 31/10/2004, 06:03
Avatar de jeubeda
jeubeda
 
Fecha de Ingreso: octubre-2004
Ubicación: Argentino, en Valencia, E
Mensajes: 78
Antigüedad: 19 años, 6 meses
Puntos: 0
Un poco más sobre CASE

Cita:
Iniciado por Roxie
Las Herramientas CASE se utilizan en las distintas fases de el Analisis y Diseño de Aplicaciones. En los 90s fueron furor pero hoy en día con el tema de las metodologías ágiles se las cuestiona bastate, y para muchos ya se pueden considerar obsoletas.
Algunas de las herramientas son:
Smartdraw G, DFD, Visio, visible analyst, case estudio, easy case, gerwin, fcs demo, gannt project, project.
Roxie,
Si me permites, quisiera extender un poco tu respuesta, y disentir otro poco.
En general, la enumeración de herramientas CASE (Computer-Aided Software Engineering ) que has hecho (como otros casos aquí comentados) refieren a una parte del concepto; CASE en el SEI:

A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.

Esta es una definición restrictiva, aplicable a un soporte de diagramación, a un administrador de proyectos, etc, como algunos de los ejemplos ofrecidos en esta discusión indicaron. Pero esto es sólo una parte del concepto, y no precisamente el que gente proviniente de las ideas "Agiles" comenta, ya que en general estos productos hoy estan incorporados al uso diario, en tanto el presupuesto alcance. El punto de discusión con Ambler, Fowler, y muchos otros, está en su concepto extendido, es decir, cuando el soporte del proceso de desarrollo del software cubre todo o casi todo el ciclo de vida del producto, desde los requerimientos, el diseño conceptual, hasta la generación del código y su "empaquetado" para implementación. Dentro de esto, un caso particular muy difundido y cuestionado, que sólo está obsoleto en los pensamientos "agiles" de los autores nombrados, es el de los generadores de código. La expresión actual de estos conceptos está en la iniciativa MDA (Model Driven Development), de OMG, en la que un buen número de empresas e instituciones manifiestan interés. MDA parte de un diseño visual en UML, que se basa en un modelo Abstracto y un modelo aplicado a una plataforma, pasando por transformaciones de uno a otro, y finalizando en la obtención de código ejecutable. Rational Rose afirma ser un RAD, un ARAD, cumplir con MDA, y no creo que se le diga que sea obsoleto. Casos de generadores de código son Genexus y Magic, Clarion, y casos de Modeladores con alcance más amplio en el ciclo de vida pueden ser Rose y su suite comprendida en el RUP, System Architect, Erwin + Plex + Joe, Erwin + Gen, OptimalJ, ArcStyler, etc.
La idea del CASE, precisada en todo caso por MDA, es la de ordenar y facilitar el desarrollo del software en base a reglas consistentes, con documentación coherente y actualizada, auxiliada por un diseño más o menos visual, pero integrado, que sea capaz de convertirse en código, disminuyendo o eliminando el código erróneo, basado en la consistencia de los objetos integrados, siguiéndolos hasta su implementación.
Qué se facilita: el control de cambios, el versionamiento, el análisis de impacto, la utilización de nombres y definiciones únicas y coherentes, la rapidez de entrega de código, la disminución de duración de los ciclos de desarrollo, y otros asuntos vinculados a la productividad.
Contrariamente a lo que Ambler o Fowler señalan, creo que una herramienta para el desarrollo de código en este marco, puede usarse sin dificultades en un método ágil, dejando a salvo por supuesto el hecho de que no se tocará el código fuente, confiado a un generador automático, sino que se trabajaría (es decir, se trabaja) a nivel de un modelo de alto nivel, abstracto, donde los cambios son de nivel conceptual.
Yo trabajo con Plex, un caso de los indicados, y pudiera decir que por el contrario, me cuesta figurarme cómo un proyecto de Ambler, por decir un caso, pudiera desarrollarse escribiendo código a mano, sin caer en el pantano de tener que buscar todas las repeticiones del uso de una clase (o peor, de un nombre) en el caso de que deba corregirle algo.

Un sitio con algo de orden sobre el tema: http://www.codegeneration.net/

Hasta pronto
Jorge Ubeda

Última edición por jeubeda; 31/10/2004 a las 07:08