domingo, 30 de octubre de 2016

Herramientas CASE para el diseño



ESTRATEGIAS DE DISEÑO

El diseño se define como la búsqueda de una solución en cualquier campo, sin embargo las soluciones no llegan de una manera simple, muchas veces realizamos soluciones complejas a problemas sencillos o en otras ocasiones una gran solución conlleva a otro problema.

La cuestión está en cómo abordamos esos retos de diseño. Estudios demuestran que nos enfocamos en resolver los problemas de manera individual alejándonos cada vez más del sistema completo en el que estamos trabajando, “es como diseñar una ventana sin el edificio”, recuerden todo tiene un impacto y en un sistema todo está relacionado.

Así que por otro lado que tal si vemos todo el sistema y así planeamos mejor nuestro diseño, haciendo que las soluciones de una parte no perjudiquen a la otra, o mejor que se complementen entre si. Esto nos ayudara a ver qué lugar social, ambiental y técnico nuestro producto hace parte. Se recomienda que tengamos en cuenta: Metas ambiciosas que resuelvan varios problemas, colaboración a través de diferentes disciplinas, establecer parámetros base, definir la vida útil, iniciar desde cero los diseños, usar datos medibles y no asumir reglas entre otros.

En las siguientes imágenes podemos ver un sencillo pero útil flujo de trabajo para iniciar nuestros diseños o la mejora de ellos.






Diseñar es una tarea que involucra muchos aspectos, diseñar es divertido así que si utilizamos las herramientas adecuadas podremos crear productos de una mejor calidad!
Antes de poder resolver el diseño es necesario tomar decisiones generales sobre las estrategias de diseño a seguir. Algunas de las decisiones a tomar se presentan a continuación y se relacionan con aspectos que incluyen la arquitectura, robustez, reúso y extensibilidad del sistema.


ARQUITECTURA

El término arquitectura se refiere, en nuestro caso, a la organización de las clases dentro del sistema. Durante el modelo de análisis se generó una arquitectura de clases para el sistema y se definió la funcionalidad “conceptual” ofrecida por las distintas clases dentro de la arquitectura. Durante el diseño esta arquitectura debe detallarse, pudiéndose cambiar los aspectos considerados inicialmente, como fue la funcionalidad inicialmente asignada a cada clase, e incluso las propias clases, como hemos mencionado al inicio del capítulo.

El conocimiento y funcionalidad asignada a cada clase puede ser vista como la “inteligencia” de cada clase dentro del sistema. En otras palabras, algunas clases pueden ser vistas como más inteligentes que otras según el conocimiento y control que tengan sobre las demás clases.

ROBUSTEZ

La robustez de un sistema debe ser uno de los objetivos principales del diseño. Jamás debe agregarse funcionalidad o simplificar código a expensas de la robustez. El sistema debe estar protegido contra errores y debe al menos ofrecer diagnósticos para las fallas que aún pudiesen ocurrir, en particular aquellas que son fatales. Durante el desarrollo es a veces bueno insertar instrucciones internas en el código para descubrir fallas, aunque luego sean removidas durante la producción. En general se debe escoger lenguajes de programación que apoyen estos aspectos, como son el manejo de excepciones

REÚSO

El reúso es un aspecto fundamental del diseño. Cuanto más se pueda reutilizar el código mejor será la robustez del sistema. Las siguientes son algunas estrategias para mejorar las posibilidades de reúso del diseño:

A través de la herencia se puede incrementar el reúso de código. Se toman los aspectos comunes a clases similares utilizando.

DISEÑO DE OBJETOS

¿Qué es el diseño? Es el proceso previo de configuración mental en la búsqueda de una solución en cualquier área.

Durante el diseño de objetos, se ejecuta la estrategia seleccionada durante el diseño del sistema y se rellenan los detalles. Se produce un desplazamiento del énfasis pasando de los conceptos del dominio de la aplicación a los propios de las computadoras. Los objetos descubiertos durante el análisis sirven como esqueleto del diseño, pero el diseñador debe escoger distintas formas de implementarlos con el objetivo de minimizar el tiempo de ejecución, la memoria y el costo.

En particular, las operaciones identificadas durante el análisis deben expresarse en forma de algoritmos, descomponiendo las operaciones complejas en operaciones internas más sencillas.

Las clases, atributos y asociaciones del análisis deben de implementarse en forma de estructuras de datos específicas. Es necesario introducir nuevas clases de objetos para almacenar resultados intermedios durante la ejecución del programa y para evitar la necesidad de recalcularlos.

La optimización del diseño no debería llevarse a extremos exagerados porque la facilidad de implementación y mantenimiento y la extensibilidad son también objetivo importantes. La fase de análisis determina lo que debe hacer la implementación y la fase de diseño del sistema determina el plan de ataque.

La fase de diseño de objetos determina las definiciones completas de las clases y asociaciones que se utilizarán en la implementación, así como las interfaces y algoritmos de los métodos utilizados para implementar las operaciones. La fase de diseño de objetos añadirá objetos internos para la implementación y optimizará las estructuras de datos y los algoritmos. El diseño de objetos es análogo a la fase preliminar de diseño del ciclo de vida de desarrollo de software tradicional.

DISEÑO DE SISTEMAS

Se adapta el modelo al ambiente de implementación. Este paso incluye identificar e investigar las consecuencias del ambiente de implementación sobre el diseño. Aquí deben ser tomadas las decisiones de implementación estratégicas:

· cómo se incorporará una base de datos en el sistema,

· qué bibliotecas de componentes se usarán y cómo,

· qué lenguajes de programación se utilizarán,

· cómo se manejarán los procesos, incluyendo comunicación y requisitos de rendimiento,

Durante el diseño se debe decidir cómo mecanismos abstractos como la asociación, serán implementados. Similarmente, si el lenguaje de programación no ofrece ninguna técnica para apoyar herencia, se debe especificar cómo ésta será implementada.

Durante el diseño de sistema se toman consideraciones en base al ambiente de implementación teniendo como objetivo lograr una buena rastreabilidad de la arquitectura de objetos al código final. Estos objetos deben ser vistos como abstracciones del código a ser escrito donde, por ejemplo, un típico objeto sería representado por un archivo en el sistema, como es el caso de Java. En otros lenguajes, como C++, en lugar de un archivo se escriben dos, uno correspondiente a la interface del objeto y el otro a su implementación. En general, el diseño de sistema incluye diversos aspectos como:


· Selección del lenguajes de programación a utilizarse, típicamente estructurados u orientados a objetos;

· Incorporación de una base de datos, típicamente relacionales, relacionales extendidos u orientados a objetos;

· Acceso a archivos, en sus diferentes formatos;


Estos aspectos pueden variar radicalmente entre uno y otro sistema y también pueden afectar de gran manera la arquitectura resultante del sistema. En general existen diversos enfoques para la incorporación del ambiente de implementación a la arquitectura del sistema:

Agregando clases abstractas o interfaces que luego serán especializadas según el ambiente de implementación particular. Esto es posible hacer, por ejemplo, cuando el lenguaje de programación, como en el caso de Java, es común a los diversos ambientes.

Instanciando objetos especializados que administren los aspectos particulares del ambiente de implementación particular. Esto puede significar una integración parcial o completa de componentes adicionales a la arquitectura del sistema. Por ejemplo, una integración con las interfaces nativas de Java (JNI) para manejo de aspectos de bajo nivel del ambiente.

Configurando múltiples versiones del sistema correspondientes a diferentes plataformas. Este es el enfoque más flexible, aunque por lo general el de mayor costo de desarrollo. Por ejemplo, cambios radicales en los lenguajes de programación incluyendo diseños para lenguajes estructurados.

INTERFACES GRÁFICAS

Las interfaces gráficas tienen como aspecto esencial que toda interacción con el usuario es a través de elementos gráficos, como lo son los botones, menús y textos. En lo que se refiere a la aplicación, todo sistema que interactúe mediante interfaces gráficas está dirigido por eventos. Estos eventos corresponden al movimiento del ratón, el oprimir o soltar uno de sus botones, el oprimir una tecla, junto con los que no son directamente iniciados por el usuario, como los eventos de desplegar una pantalla o interrumpir un programa.
El desarrollar un sistema dirigido por eventos significa que la aplicación debe desde un inicio considerar un diseño adecuado.

BASES DE DATOS

El aspecto de bases de datos siempre juega un papel fundamental en los sistemas de información. La decisión estratégica más importante en nuestro contexto es si utilizar bases de datos relacionales o las orientadas a objetos. Dado su amplia utilización y la situación actual en el mercado, escogeremos para nuestro desarrollo una base de datos relacional utilizando el lenguaje SQL estándar. Simplificaremos al máximo el diseño de la base de datos para minimizar su efecto sobre el sistema completo. Más bien, demostraremos cómo es posible diseñar buenas clases que permitan en un futuro cambiar de manejadores de bases de datos.


REVISIÓN DE DISEÑO

La revisión se desarrolla según la planificación para determinar si el diseño satisface los requisitos, identificar cualquier problema percibido y proponer acciones de rectificación.


También es una actividad emprendida para asegurar la convivencia, adecuada y eficiencia.


El propósito de la revisión es entender y analizar con atención el diseño, es porque se debe dedicar a la revisión la mitad del tiempo en planear el diseño.


Verificación del diseño.- El auditor deberá comprobar que:
Se realiza la verificación del diseño de acuerdo con la planificación para asegurarse de los resultados del diseño cumplan con dichos requisitos de los elementos de entrada del diseño.

Validación del diseño.- El auditor deberá comprobar que:
Se realiza la validación del diseño de acuerdo con planificación para asegurarse del producto.

Control de los cambios.- Los cambios el diseño y desarrollo:
se identifican antes en su implementación del diseño, los cambios se revisan y validan del mismo.

DIAGRAMA DE SECUENCIAS DE DISEÑO

En un diagrama de secuencia ponemos varios de los objetos o clases que forman parte de nuestro programa y ponemos qué llamadas van haciendo unos a otros para realizar una tarea determinada.



Hacemos un diagrama de secuencia por cada caso de uso o para una parte de un caso de uso (lo que llamo subcaso de uso). En nuestro ejemplo de ajedrez, podemos hacer diagramas de secuencia para "jugar partida" o bien para partes de "jugar partida", como puede ser "mover pieza".


El detalle del diagrama depende de la fase en la que estemos, lo que pretendamos contar con el diagrama y a quién. En una primera fase de diseño podemos poner clases grandes y ficticias, que representen un paquete/librería o, si nuestro programa está compuesto por varios ejecutables corriendo a la vez, incluso clases que representen un ejecutable.


Si estamos en una fase avanzada, estamos diseñando el programa y queremos dejar bien atados los detalles entre dos programadores, que cada uno va a programar una de las clases que participan, entonces debemos posiblemente ir al nivel de clase real de codificación y método, con parámetros y todo, de forma que los programadores tengan claro que métdos van a implementar, que deben llamar de la clase del otro, etc. Incluso si es un diagrama para presentar al cliente, podemos hacer un diagrama de secuencia en el que sólo salga el actor "jugador" y una única clase "juego ajedrez" que representa nuestro programa completo, de forma que el cliente vea qué datos y en qué orden los tiene que meter en el programa y vea qué salidas y resultados le va a dar el programa.



El siguiente puede ser un diagrama de secuencia de nuestro ejemplo del ajedrez a un nivel de diseño muy preliminar





Aquí ya hemos decidido que vamos a hacer tres librerías/paquetes, una para la interface de usuario, otra para contener el tablero y reglas del ajedrez (movimiientos válidos y demás) y otra para el algoritmo de juego del ordenador. Hemos puesto una clase representando cada uno de los paquetes y hemos representado el caso de usa "mover pieza".


En el diagrama de secuencia no se ponen situaciones erróneas (movimientos inválidos, jaques, etc) puesto que poner todos los detalles puede dar lugar a un diagrama que no se entiende o difícil de leer. El diagrama puede acompañarse con un texto en el que se detallen todas estas situaciones erróneas y particularidades. Si se quiere dejar muy claro que un determinado error se contempla, por ejemplo, un movimiento no válido por el usuario, entonces sí se puede poner en el diagrama de secuencia, siempre que no "embarulle" demasiado.
En este diagrama sencillo ya vamos dejando algunas cosas claras, como por ejemplo, que la interface de usuario hace llamadas y, por tanto, ve a los otros dos, mientras que algoritmo sólo ve al tablero/reglas. El tablero/reglas aparentemente ve a la interface de usuario, pero no nos interesa si seguimos un patrón modelo-vista-controlador, así que ese "Refresca pantalla" lo implementaremos con un patrón observador, pero eso son detalles que quizás no vienen al caso ahora.


Herramienta
CASE
(Easycase)


Es una herramienta que automatiza las fases de análisis y diseño del desarrollo de un proyecto, eliminando algunas de las tareas mas repetitivas y mecánicas. Puede usarse para formar estructuras de análisis, diseño de estructuras y modelar información y datos.

Soporta los siguientes diagramas:

• Diagrama de flujo de datos
• Diagrama de flujo de datos en tiempo real.
• Diagrama de transición de estados.
• Diagramas de estructuras.
• Diagramas de entidad relación.
• Diagramas de estructuras de datos.
• Diagramas de modelos de datos.
• Diagramas históricos de vida de entidades.
• Diagrama de estructura de datos lógicos.

EasyCase almacena todos los diagramas, registros, elementos, ficheros de texto asociados a un determinado sistema (proyecto), en un directorio propio de ese proyecto. Así se:
• Simplifica el acceso a todos los datos relativos al proyecto.
• Simplifica las uniones entre diagramas y ficheros de texto.
• Asegura la integridad de los datos.
• ((cada proyecto tiene su propio directorio de proyecto))

Forma de Trabajar:
Un proyecto consta de varios diagramas y a su vez, un diagrama esta formado por varios tipos de objetos como son:
• Símbolos.
• Conexiones
• Interfaces.
• Bloques de texto.Easy CASE como herramienta CASE

Características:
• Cubre las fases de análisis y diseño estructurado
• Permite obtener de forma rápida prototipos y sistemas de alta calidad fáciles de documentar.

Módulos:
• EasyCASE Professional
• DDMU Mantenimiento del diccionario de datos
• DBE: Easy CASE Database Engineer.

Los pasos básicos para crear un diagrama son:
• Colocar símbolos.
• Nombrar los símbolos.


Microsoft Project (o MSP) 

• Añadir y nombrar conexiones.
• Definir símbolos y conexiones en el diccionario de datos.

• Establecer las relaciones con otros diagramas, registros, elementos y tablas de control.
es un software de administración de proyectos diseñado, desarrollado y comercializado por Microsoft para asistir a administradores de proyectos en el desarrollo de planes, asignación de recursos a tareas, dar seguimiento al progreso, administrar presupuesto y analizar cargas de trabajo.


http://chesshdzcorts026.blogspot.mx/2013/05/46-herramientas-case-para-el-diseno.html
http://unidad4-desarrollo-de-software-lisr.blogspot.mx/2013/05/46-herramientas-case-para-el-diseno.htm



Herramientas CASE para el Analisis


HERRAMIENTAS CASE PARA EL ANÁLISIS:

   Permiten crear y modificar diagramas Entidad-Relación, de flujo de datos, de clases, etc. Son importantes también las herramientas de prototipo. Éstas incluyen diseñadores de formularios, de menúes, de informes, y lenguajes de especificación ejecutables.


CLASIFICACIÓN DE LAS HERRAMIENTAS CASE  PARA EL ANÁLISIS.


HERRAMIENTAS DE ANÁLISIS Y DISEÑO
Permiten crear y modificar diagramas  Entidad Relación, de flujo de datos, de clases, etc. Son importantes también las herramientas de prototipo. Éstas incluyen diseñadores de formularios, de menúes, de informes, y lenguajes de especificación ejecutables.

GENERACIÓN DE CÓDIGO Y DOCUMENTACIÓN
Generan código a partir de las especificaciones de diseño. Además, soportan la generación automatizada de documentación a partir de la información almacenada.

HERRAMIENTAS DE PRUEBA
En esta etapa se lleva a cabo la prueba de escritorio para verificar el resultado de dicho trabajo o problema.

HERRAMIENTAS DE GESTIÓN DE LA CONFIGURACIÓN
   En este apartado  se lleva a cabo los requerimientos y posteriormente realizar la configuración o modificación del sistema.

HERRAMIENTAS DE GESTIÓN DE LA CONFIGURACIÓN
En este apartado  se lleva a cabo los requerimientos y posteriormente realizar la configuración o modificación del sistema.

HERRAMIENTAS DE INGENIERÍA INVERSA
•       Ingeniería inversa de datos: Extraen información de código fuente y construye diagramas orientados a objetos o Entidad-Relación.
•       Ingeniería inversa de procesos: Permiten aislar la lógica de las entidades y las reglas del negocio a partir del código.
•       Re-estructuración de código fuente: Modifican el formato o implantan un formato estándar.
•       Re documentación: Permiten generar diagramas para mejorar la comprensión del código.
•       Análisis de código: Generan, por ejemplo, la indentación automática.

CLASES DE HERRAMIENTAS DE DISEÑO
•       Sistemas de prototipos de investigación
•       - Herramientas CASE comerciales específicas

•       - Herramientas CASE generales.



 PowerDesigner


SAP PowerDesigner ( PowerDesigner ) es una colaboración modelado empresarial herramienta producida por Sybase , actualmente propiedad de SAP . PowerDesigner se ejecuta bajo Microsoft Windows como un nativo de la aplicación , y se ejecuta bajo Eclipse a través de un plug-in . PowerDesigner es compatible con la arquitectura dirigida por modelos de diseño de software.PowerDesigner almacena los modelos que utilizan una variedad de extensiones de archivo, como .bpm , .cdm y .pdm . La estructura interna del archivo puede ser XML o un formato de archivo binario comprimido. PowerDesigner también puede almacenar en un repositorio de modelos de base de datos.

http://antonioramosemi90.blogspot.mx/

Herramientas CASE Para la Ingeniería de Requisitos

HERRAMIENTAS CASE PARA LA INGENIERÍA DE REQUISITOS

Se define como un conjunto de actividades en las cuales, utilizando técnicas y herramientas, se analiza un problema y se concluye con la especificación de una solución. La ingeniería de requisitos es el proceso de desarrollar una especificación de software.

Tareas de la Ingeniería de Requisitos:
Inicio:
Tiene por objetivo identificar el ámbito del proyecto general. Comienza con una serie de conversaciones informales entre los participantes del mismo. Esta fase suele ser acompañada de los documentos de definición de la visión global y la visión del dominio del sistema. Se inicia muchas veces por: se descubre un nuevo mercado y se descubre un nuevo servicio.
Obtención:
Se sugiere a los ingenieros recopilar requisitos de manera organizada, preguntando a los usuarios y otros interesados cuales son los objetivos para el sistema o producto, que es lo que se debe lograr, de que forma el producto satisface las necesidades del negocio y como se utilizara el producto día d día. Se identifican una serie de problemas que ayudan a entender porque es difícil la obtención de requisitos:
· Problemas de ámbito
· Problemas de comprensión
· Problemas de volatilidad

Elaboración:
Se crea un modelo de análisis con la información obtenida del cliente en las fases de inicio y obtención. La información conseguida con el cliente durante el inicio y obtención se expande y se refina durante la elaboración.
Esta actividad se enfoca en el desarrollo de un modelo técnico refinado de las funciones, características y restricciones del software. La elaboración se conduce mediante la creación y refinamiento de escenarios del usuario que describan la forma en que el usuario final y otros actores interactúan con el sistema.
Negociación:
En esta etapa el ingeniero de requisitos debe negociar con el cliente los alcances y límites del sistema. De forma iterativa los requisitos se prioriza, modifican, combinan o eliminan buscando acuerdos que beneficien a todas las partes. Se identifican y analizan los riesgos asociados con cada requisito.
En la Ingeniería de Requisitos se describen técnicas que permiten la captura requisitos de software, la recopilación de la información y en qué casos es adecuada usar cada cual. A continuación se hace un análisis de estas técnicas: (Sommerville, 1997).

Técnicas de la Ingeniería de Requisitos
Técnica: Entrevistas.
Características.
ü  Forma de conversación, no de interrogación.
ü  Ocupan un lugar preponderante de acuerdo al tiempo que ocupan y el objetivo que tienen.
ü  Mayor fuente de información del analista
ü  Basadas en un cuestionario rígido o una guía que las orienta hacia puntos bien definidos.
Técnica: Entrevistas.
Ventajas:
ü  Se presenta necesidades de forma directa y se verifica si las preguntas fueron interpretadas correctamente.
ü  Oportunidad para conocer el grado de aceptación o no entre los usuarios hacia el sistema que se desea diseñar. Mediante ellas se obtiene una gran cantidad de información correcta a través del usuario.
ü  Pueden ser usadas para obtener un pantallazo del dominio del problema.
ü  Son flexibles
ü  Técnica: Cuestionarios.
ü  Las entrevistas y cuestionarios se emplean para reunir información proveniente de personas o grupos, información que se obtiene conversando con el encuestado.
ü  Las preguntas suelen distinguirse en dos categorías: abiertas y cerradas. Las preguntas abiertas permiten que los encuestados respondan con su propia terminología, mientras que las preguntas cerradas predeterminan todas las posibles respuestas y el interrogado elige entre las opciones presentadas.
ü  Técnica: Grabaciones de video y de audio.
ü  Básicamente existen dos formas de utilizar las grabaciones: como registro y apoyo de las entrevistas, y para analizar algún proceso en particular.
ü  En cuanto a su función de apoyo, es importante porque permite centrar la atención en la entrevista en sí, en vez de distraerse tomando notas de todo lo que se dice. Cuando se trata de analizar algún proceso en particular, su ayuda es inestimable (sobre todo las filmaciones de video) porque permite ver y analizar en detalle ese proceso la cantidad de veces que sea necesario.
ü  Técnica: Brainstorming (Tormenta De Ideas).
ü  Este es un modelo que se usa para generar ideas. La intención en su aplicación es la de generar la máxima cantidad posible de requisitos para el sistema. No hay que detenerse en pensar si la idea es o no del todo utilizable.

Modelado de Requisitos
Modelado de requisitos nos sirve y tiene como propósito comprender completamente el problema y todo lo que éste implica y conlleva.
Su objetivo principal es delimitar el sistema y capturar la funcionalidad que debe ofrecer desde la perspectiva del usuario. Además el modelo de requisitos captura las principales características del sistema de software que se desea construir.
Por medio de él representamos los requisitos del sistema de forma sencilla, para que de esta manera cualquier usuario pueda revisarlo y además entenderlo, sin necesidad de tener conocimientos previos al modelo e información.es un modelo que se usa para generar ideas. La intención en su aplicación es la de generar la máxima cantidad posible de requisitos para el sistema. No hay que detenerse en pensar si la idea es o no del todo utilizable.
Intervienen en el los modelos de caso de uso, que desempeñan un papel importante de gran relevancia.
En el estudio del modelo de requisitos se encuentran los funcionales y no funcionales. Cabe mencionar que los requisitos determinan lo que hará el sistema, es decir, como funcionará además, las restricciones sobre su operación e implementación.
Un requisito es una condición o capacidad que necesita el usuario para resolver un problema o conseguir un objetivo determinado. Puede verse como una declaración abstracta de alto nivel de un servicio que el sistema debe proporcionar
Los requisitos funcionales: son la característica requerida del sistema que expresa una capacidad de acción del mismo, una funcionalidad; generalmente expresada en una declaración en forma verbal.
No todo lo que necesitaremos en nuestro sistema es funcionalidad pura; por el contrario a veces se necesitan otras cualidades, si se quieren generalidades, que no son objeto decodificación si bien es cierto que pueden llegar a afectar a esta.
Pueden ser frases muy generales sobre lo que el sistema debería hacer.
Los requisitos no funcionales pueden clasificarse en:
ü  · Requisitos del producto.
ü  · Requisitos organizacionales.
ü  · Requisitos externos.
Además existen los requisitos de usuarios que nos dice que el sistema debe permitir representar y acceder a archivos externos creados por otras herramientas.

Herramientas CASE para la Ingeniería de requisitos
El desarrollo de software ha ocupado un lugar importante en la Ingeniería, pero al igual que otras disciplinas, aún presenta fallas. Debido a esto se han planteado técnicas y métodos para minimizar los problemas identificados en la crisis del software.
Es así como surge la Ingeniería de Software, presentando distintos modelos de procesos que se ajustan a las necesidades y proyectos requeridos. La mayoría de ellos involucran en sus fases iníciales tareas como planeación, levantamiento de información, determinación de las características que debe cumplir el software, agrupadas en lo que hoy se conoce como Ingeniería de Requisitos (IR).
@  IRQA 43
@  RETO
@  CONTROLA
@  OSRMT (Open Source Requirements Management Tool)
@  JEREMIA
@  RAMBUTAN



 IRQA 43
Herramienta CASE de Ingeniería de Requisitos, diseñada para soportar las actividades realizadas en el proceso de especificación de sistemas. Ésta facilita y formaliza la comunicación entre el cliente, el proveedor
y los distintos miembros del equipo de desarrollo. Facilita la captura, organización y análisis de las condiciones, así como la especificación de la solución mediante el apoyo metodológico adaptable
a cada cliente.

RETO
Esta herramienta propone un modelo de requisitos para capturar los aspectos funcionales del sistema; básicamente, mediante tres técnicas complementarias entre sí: la definición de la Misión del Sistema, la construcción del Árbol de Refinamiento de Funciones y el desarrollo del Modelo de Casos de Uso. Además, se introduce un Proceso de Análisis que permite traducir el Modelo de Requisitos en el Mo- delo Conceptual, manteniendo la trazabilidad entre ambos y propiciando una representación de la información
en el segundo prototipo.

CONTROLA
Herramienta de apoyo al proceso de ingeniería de software en pequeñas empresas. Se creó gracias a la expansión que tuvo el mercado y a la generación de grandes y pequeñas empresas, las cuales requieren un instrumento para el desarrollo de sus proyectos. Ofrece recursos importantes tales como: Administración de requisitos, administración de casos de uso, administración de casos de prueba y error, planeamiento de liberaciones, administración de implementaciones, control de dependencia entre Implementaciones, matriz de rastreabilidad y rastreabilidad de los requisitos.

OSRMT (Open Source Requirements Management Tool)4
Herramienta libre para la gestión de requisitos, cuyas principales características son: trabaja en arquitectura cliente/servidor, desarrollada bajo Java; la versión 1.3 trae un módulo para manejar la trazabilidad y lo introduce para el control de cambios; así mismo, genera la documentación de los requisitos tratados.

JEREMIA5
Se trata exclusivamente de una aplicación cliente exclusivamente, lo cual no permite la posibilidad de trabajar en equipo. Ésta, ayuda durante el desarrollo desarrollo del sistema, especialmente en el seguimiento de cambios de los requisitos a lo largo del ciclo de vida. Con JEREMIA es posible captar las necesidades, analizarlas y clasificarlas. Implementa un módulo orientado a la generación de la documentación posible de exportar en formato DocBook XML, la cual junto con los requisitos, se almacena en una base de datos en MySQL.

RAMBUTAN6
Esta herramienta está basada en XML, realmente consta de un conjunto de aplicaciones para el usuario final, ayudando a los analistas de sistemas en la recopilación y categorización de hechos en un documento de especificación de requisitos. Lo curioso es que tiene un cliente para palm (PDA), el cual se utiliza para recopilar los hechos en el lugar donde está ubicado el cliente mientras que la aplicación de escritorio recibe la información, edita y perfecciona. Ambas aplicaciones permiten al usuario introducir, modificar y visualizar los datos que componen un documento de especificación de requisitos.






Cita bibliográfica:



HERRAMIENTAS CASE

¿Qué es una herramienta CASE?


Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero.


Clasificación de las Herramientas CASE

No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a:

• Las plataformas que soportan.
• Las fases del ciclo de vida del desarrollo de sistemas que cubren.
• La arquitectura de las aplicaciones que producen.
• Su funcionalidad.

Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench.

2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño.

3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end, dirigidas a las últimas fases del desarrollo: construcción e implantación.

4. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de mantenimiento.


VENTAJAS Y DESVENTAJAS DE LAS HERRAMIENTAS CASE


Ventajas
Mejora en la productividad
Mejora en la eficacia
Mejora en la calidad del sistema de información
Disminución de tiempo
Automatización de tareas tediosas
Garantizar la consistencia de los procedimientos
Verificar el uso de todos los elementos en el sistema diseñado.
Automatizar el dibujo de diagramas.
Ayudar en la documentación del sistema.
Ayudar en la creación de relaciones en la Base de Datos.
Generar estructuras de código.

Desventajas
Falta de niveles estándar para el soporte de la metodología.
Conflictos en el uso de los diagramas.
Diagramas no utilizados.
Función limitada.
Costo de adquisición.






• Rational Rose: http://www.rational.com/
• Dome (herramienta CASE/MetaCASE): http://www.htc.honeywell.com/dome/index.htm
• MetaEdit (herramienta CASE/MetaCASE): http://www.metacase.com/
• ArgoUML (herramienta CASE - open source): http://argouml.tigris.org/