Herramientas para el Diseño de Sistemas Apoyan el proceso de formular las características que el sistema debe tener para satisfacer los requerimientos detectados durante las actividades del análisis: Herramientas para el desarrollo de Sistemas Estas herramientas nos ayudan como analistas a trasladar diseños en aplicaciones funcionales. Herramientas para Ingeniería de Software Apoyan el Proceso de formular diseños de Software, incluyendo procedimientos y controles, así como la documentación correspondiente. Generadores de códigos Producen el código fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas. Herramientas de especificación Apoyan el proceso de formular las características que debe tener una aplicación, tales como entradas, Salidas, procesamiento y especificaciones de control. Muchas incluyen herramientas para crear especificaciones de datos. Herramientas para presentación Se utilizan para describir la posición de datos, mensajes y encabezados sobre las pantallas de las terminales, reportes y otros medios de entrada y salida. Herramientas para diseño Apoyan el proceso de formular las características que el sistema debe tener para satisfacer los requerimientos deseados durante las actividades de análisis. Incluye: - Herramienta de especificación: apoyan el proceso de formular las características, como por ejemplo deben tener una aplicación como entradas, salidas, procesamientos específicos de control. - Herramienta para presentación: se utilizan para describir la posición de datos, mensajes, y encabezados sobre las pantallas de las terminales, informes y otros medios de entradas y salidas. Los analistas utilizan las herramientas para el diseño de sistemas desde el inicio de la era de las computadoras. Ahora a las herramientas se le están dando un nuevo significado en el diseño de software. http://www.monografias.com/trabajos5/inso/inso2.shtml Herramientas para pruebas Apoyan la fase de la evaluación de un Sistema o de partes del mismo contra las especificaciones. Incluyen facilidades para examinar la correcta operación del Sistema así como el grado de perfección alcanzado en comparación con las expectativas. La revolución del procesamiento de datos de manera computarizada, junto con las prácticas de Diseño sofisticadas está cambiando de forma dramática la manera en que se trasladan las especificaciones de Diseño d Sistemas de Información funcionales. http://www.monografias.com/trabajos5/andi/andi.shtml#herra Herramientas de diseño Visual Studio .NET 2003 Para obtener el máximo beneficio de Visual Studio .NET, debería familiarizarse con las herramientas de diseño y características que proporcionan modelado de procesos, orientación sobre la arquitectura y desarrollo rápido de bases de datos e informes. Las secciones siguientes presentan las distintas herramientas que puede utilizar para diseñar una aplicación empresarial. Modelar con Visio Mientras diseña y genera la aplicación, existen distintas formas de utilizar Microsoft Visio para arquitectos empresariales. Por ejemplo, puede hacer ingeniería inversa del código de Visual Studio en Visual Basic, Visual C++ o Visual C# para crear un diagrama UML y después refinar el modelo utilizando la herramienta de modelado. Para obtener más información en el CD-ROM de Microsoft ejecutándose para poder ver instalación de Visual Studio arquitectos empresariales. sobre Visio para arquitectos empresariales, vea la ayuda en pantalla Visio para arquitectos empresariales. Visio debe estar activo y la ayuda en pantalla de la solución UML de Visio. Al final de la .NET Enterprise Architect tiene la opción de instalar Visio para Para obtener más información sobre modelado y UML, vea Modelar la aplicación y los datos. Utilizar Visual Database Tools Visual Database Tools le ayuda a crear objetos de base de datos como tablas, columnas, claves, índices, relaciones y restricciones. Puede conectarse rápidamente a bases de datos existentes (o crear bases de datos nuevas), crear nuevas tablas (o modificar tablas existentes) y crear, ejecutar y guardar consultas complejas. Cuando ejecuta una consulta, los cambios se propagan por la base de datos. También puede crear vistas, disparadores, procedimientos almacenados y funciones. Para obtener más información, vea Visual Database Tools y Ediciones de Visual Database Tools. Diseñar con asistentes Los asistentes son herramientas de automatización que le proporcionan una guía para completar rápidamente tareas frecuentes y probablemente complejas. Cuando utiliza un asistente de Visual Studio, está diseñando una aplicación. Cada opción de asistente que selecciona afecta al código del proyecto o a los valores de configuración. Visual Studio .NET proporciona varios asistentes para crear una variedad de proyectos que controlan determinadas situaciones de código. Por ejemplo, existen asistentes de C# para agregar proyectos, clases, métodos, propiedades, campos e indizadores y para codificar distintas interfaces. Visual Basic utiliza los asistentes para aplicaciones para crear proyectos de inicio. SQL Server proporciona varios asistentes para analizar datos, administrar réplicas, asignar características y crear entidades y relaciones. .NET Framework también ofrece asistentes para administrar ensamblados y configurar usuarios, equipos y configuraciones de seguridad empresariales. Básicamente, un asistente es una hoja de propiedades secuenciales y de varias páginas. Cada página de un asistente le ayuda a establecer opciones, a configurar valores, a personalizar proyectos, a definir tareas secuenciales e incluso a automatizar el proceso de generación e implementación del proyecto. Con Visual Studio, puede crear un asistente personalizado para ayudar a otros programadores a simplificar el proceso de codificación. Si está utilizando un asistente existente para simplificar una tarea de codificación o está creando uno nuevo para controlar problemas de personalización periódica, observará que es más rápido y coherente diseñar con asistentes. Para obtener más información, vea Crear un asistente y Crear complementos y asistentes. Utilizar ejemplos para diseñar ideas Las aplicaciones de ejemplo le proporcionan una gran cantidad de ideas de diseño para su nueva aplicación. Visual Studio .NET contiene distintos tipos de ejemplos, incluyendo ejemplos tecnológicos y empresariales. En los ejemplos tecnológicos se muestra cómo utilizar distintas tecnologías en .NET Framework. Son ejemplos de tamaño reducido y normalmente se limitan a explicar una única tecnología. Por ejemplo, en el ejemplo de Configuración se muestra cómo utilizar el espacio de nombres System.Management, en el de Permisos se explica una implementación de acceso de seguridad y en el de Subprocesos se describen distintas formas de utilizar subprocesos en .NET Framework. En los ejemplos empresariales se muestran aplicaciones distribuidas a gran escala que describen ideas de arquitectura de aplicaciones importantes. Los ejemplos empresariales están creados como aplicaciones del mundo real, con un buen diseño relativo a disponibilidad, confiabilidad, escalabilidad y alto rendimiento. Los ejemplos empresariales también tratan cuestiones comunes del ciclo de vida del desarrollo de software como implementación, administración y mantenimiento a largo plazo. Para obtener más información, vea Ejemplos empresariales y Ejemplos tecnológicos. Significado sigla CASE Computer Aided Assisted Automated Software Systems Engineering ¿Qué son las Herramientas CASE? Se puede definir a las Herramientas CASE como un conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software ( Investigación Preliminar, Análisis, Diseño, Implementación e Instalación.). CASE es también definido como el Conjunto de métodos, utilidades y técnicas que facilitan el mejoramiento del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases. Se puede ver al CASE como la unión de las herramientas automáticas de software y las metodologías de desarrollo de software formales. Existe también el CASE integrado que fue comenzando a tener un impacto muy Significativo en los negocios y sistemas de información de las organizaciones, además con este CASE integrado las compañías pueden desarrollar rápidamente sistemas de mejor calidad para soportar procesos críticos del negocio y asistir en el desarrollo y promoción intensiva de la información de productos y servicios. Ejemplos de Herramientas Case más utilizadas. ERwin: PLATINUM ERwin es una herramienta para el diseño de base de datos, que Brinda productividad en su diseño, generación, y mantenimiento de aplicaciones. Desde un modelo lógico de los requerimientos de información, hasta el modelo físico perfeccionado para las características específicas de la base de datos diseñada, además ERwin permite visualizar la estructura, los elementos importantes, y optimizar el diseño de la base de datos. Genera automáticamente las tablas y miles de líneas de stored procedure y triggers para los principales tipos de base de datos. ERwin hace fácil el diseño de una base de datos. Los diseñadores de bases de datos sólo apuntan y pulsan un botón para crear un gráfico del modelo E-R (Entidad _ relación) de todos sus requerimientos de datos y capturar las reglas de negocio en un modelo lógico, mostrando todas las entidades, atributos, relaciones, y llaves importantes. La migración automática garantiza la integridad referencial de la base de datos. ERwin establece una conexión entre una base de datos diseñada y una base de datos, permitiendo transferencia entre ambas y la aplicación de ingeniería reversa. Usando esta conexión, ERwin genera automáticamente tablas, vistas, índices, reglas de integridad referencial (llaves primarias, llaves foráneas), valores por defecto y restricciones de campos y dominios. ERwin soporta principalmente bases de datos relacionales SQL y bases de datos que incluyen Oracle, Microsoft SQL Server, Sybase. El mismo modelo puede ser usado para generar múltiples bases de datos, o convertir una aplicación de una plataforma de base de datos a otra. Software para Aplicaciones Compatibles: * NetDynamics * PowerBuilder * PROGRESS * Visual Basic Bases de Datos Compatibles: * CA-Clipper * CA-OpenIngres * DB2 for MVS * DB2 for OS/390, * DB2 UDB * dBASE * FoxPro * HiRDB, * Informix * InterBase, * Microsoft Access * Microsoft SQL Server, * Oracle * Paradox, * Rdb * red Brick Warehouse, * SAS * SQL Anywhere, * SQLBase * Sybase, * Teradata Sistemas Operativos Compatibles: * Windows NT * Windows 95 * Windows 98 Oracle Designer: Oracle Designer es un conjunto de herramientas para guardar las definiciones que necesita el usuario y automatizar la construcción rápida de aplicaciones cliente/servidor gráficas. Integrado con Oracle Developer, Oracle Designer, que provee una solución para desarrollar sistemas empresariales de segunda generación. Todos los datos ingresados por cualquier herramienta de Oracle Designer, en cualquier fase de desarrollo, se guardan en un repositorio central, habilitando el trabajo fácil del equipo y la dirección del proyecto. En el lado del Servidor, Oracle Designer soporta la definición, generación y captura de diseño de los siguientes tipos de bases de datos, por conexión de Oracle: Oracle8, Oracle7 Personal Oracle Lite Rdb ANSI 92 DB2/2 and MVS Microsoft SQL Server Sybase Tipos de herramientas En este apartado tienen cabida un amplio abanico de herramientas dentro de las cuáles se pueden citar las siguientes: Herramientas de gestión de proyectos. Facilitan la labor de planificación y seguimiento de tareas y recursos, para conseguir que el proyecto logre sus objetivos en plazo y presupuesto. Herramientas de gestión de la configuración. Identifican y definen los elementos de un sistema, controlan los cambios y las versiones de dichos elementos. Herramientas de ayuda en las pruebas. Facilitan la tarea de probar el equipo lógico desarrollado, para asegurar que cumple las especificaciones del diseño. Herramientas de control de calidad. Dentro de este apartado podrían englobarse la gran mayoría de las herramientas citadas aquí, ya que de una u otra forma todas van dirigidas a una mejora de la calidad de las aplicaciones. No obstante, se hace referencia bajo esta denominación a las herramientas que se centran en la fase de análisis, diseño y construcción. Herramientas de revamping. Sirven para "maquillar" una aplicación existente en modo carácter, mediante una interfase gráfica de usuario sobre PC. Componentes y funcionalidades de otras herramientas Se describen en este capítulo las funcionalidades más importantes de otras herramientas de ayuda al desarrollo. Gestión de proyectos Las principales funcionalidades de un gestor de proyectos son: Posibilidad de parametrización o personalización de las opciones de utilización del programa (opciones de cálculo, selección de datos a visualizar, etc.). Presentación de diferentes vistas del proyecto (por tareas, por recursos, por fechas...). Definición de calendario a nivel de proyecto y de recurso. Establecimiento de diferentes relaciones entre tareas (final- inicio, final-final, inicioinicio). Facilidades gráficas para la planificación (diagrama de GANTT, diagrama de PERT). Resolución de conflictos de los recursos. Facilidades para la impresión de programas de trabajo. Posibilidad de desarrollar macros. Conexión entre varios proyectos. Facilidades de importación / exportación. Facilidad de comunicación con otras herramientas (hojas de cálculo, aplicaciones gráficas, correo electrónico, etc.). Gestión de la Configuración Las principales funcionalidades de una herramienta de gestión de la configuración son: Identificación de cada uno de los elementos de la aplicación: número de versión e información de carácter general. Soporte para jerarquías de elementos. Control de versiones. Utilización de técnicas de bloqueo de objetos o código para evitar actualizaciones simultáneas por varios desarrolladores. Definición de las configuraciones. Criterio que se sigue para seleccionar elementos de una versión. Posibilidad de recuperación de versiones anteriores de determinados objetos o partes del código. Herramientas de ayuda en las pruebas Los principales componentes de una herramienta de ayuda a las pruebas y sus funcionalidades son: Utilidades de datos. Describen las características de los datos implicados en la prueba del software. Simuladores. Permiten representar partes del sistema no desarrollado todavía o simular la interacción del mismo con otros sistemas o con el usuario final. Trazadores. Permiten seguir paso a paso el funcionamiento de un determinado proceso e introducir paradas dentro de la ejecución para analizar el contenido de variables. Sistemas de captura y repetición. Permiten capturar datos para utilizarlos como entrada de un proceso, interceptar el flujo de ejecución de un programa, retener una secuencia de acciones desde el teclado o ratón y repetirlos posteriormente. Comparadores de datos. Sirven para comparar los resultados esperados de la prueba con los obtenidos. Estos componentes o módulos pueden formar parte de una misma herramienta de ayuda, las pruebas, o pueden ser herramientas independientes entre sí. Herramientas de control de calidad Los componentes de una herramienta de control de calidad y sus funcionalidades son las siguientes: Comprobadores de requisitos. Chequean las sentencias de los requisitos para verificar que no existe ambigüedad, inconsistencia o falta de integridad. Estas herramientas sólo comprueban sobre los requisitos incluidos en la documentación, lo que no hacen es informar que falta algún requisito importante. Generadores de condiciones de prueba basados en las especifica-ciones del diseño. Generan las condiciones por métodos aleatorios, algorítmicos y/o heurísticos. El método aleatorio utiliza procedimientos de muestreo estadístico para elegir las condiciones. El método algorítmico se basa en técnicas de análisis de causa-efecto y análisis de enlaces. El método heurístico se construye sobre experiencias previas con errores de aplicaciones. Trazadores de requisitos a probar. Desarrollan una traza (log) para un requisito en particular. Generadores de resultados esperados. Ejecutan las condiciones de prueba por primera vez. Las salidas obtenidas son juzgadas por la herramienta como correctas o erróneas y según ésto, son utilizadas como resultados esperados. Generadores de métricas. Analizan el código existente y obtienen métricas sobre el flujo de datos, el control del flujo, la estructura de datos, la estructura del proceso, el número de líneas de código, etc. Verificadores de código. Son analizadores de código a la búsqueda de variables no inicializadas, índices fuera de rango, seguimiento de estándares, etc. Estos módulos pueden formar parte de una misma herramienta de control de calidad o pueden ser herramientas independientes entre sí. Bibliotecas de clases de objetos La función de estas bibliotecas es obtener de ellas objetos, módulos o partes del código que se puedan implantar directamente, o con leves modificaciones, en la aplicación en desarrollo. Las bibliotecas de clases suelen ser específicas de un determinado lenguaje, sin embargo, se tiende a eliminar esta limitación, mediante la creación de bibliotecas siguiendo unas determinadas especificaciones (Ejemplo: System Object Model - SOM). Hay bibliotecas de clases que se han diseñado para: La creación de interfases gráficas de usuario (IGU). El acceso a bases de datos. La integración de funcionalidades multimedia. El tratamiento de documentos. El intercambio electrónico de datos. El desarrollo de aplicaciones científicas, matemáticas o de ingeniería. Herramientas de revamping Las principales características de estas herramientas son: Soporte de un determinado estándar de comunicaciones con el ordenador central (host) a través de terminales. Creación, más o menos automática, de las interfases gráficas de usuario correspondientes a las pantallas host, así como la navegación entre las mismas. Validación de la entrada de datos en la ventana gráfica. Modelo de N Capas El proceso de los datos se divide en capas, cada capa representa una parte de dicho proceso, por ejemplo una capa puede ser la interfaz con el usuario, otra capa puede ser las comunicaciones y otra capa puede ser el proceso de las bases de datos. La identificación y separación en capas, permite agrupar equipamiento obteniendo el máximo provecho del mismo, facilita establecer normas, da flexibilidad de crecimiento tecnológico, ayuda a la confección del capacity planning, etc. Tener una o muchas capas no conviene, hay que buscar el punto de equilibrio, desagregando las funciones del proceso de datos en las capas definidas. Tiene relación con la plataforma en que se aplicará. Ventajas: -Desagregación de funciones -Mas todas las ya mencionadas Desventajas: -Preparación para ello -Costo de ordenamiento inicial Herramientas CASE Introducción CASE, o Computer-Aided Software Engineering es un termino que ha estado por décadas. Este puede ser generalmente aplicado a cualquier sistema o colección de herramientas que ayuda a automatizar el proceso de diseño y desarrollo de software. Compiladores, editores estructurados, sistemas de control de código fuente, y herramientas de modelado son todas, estrictamente hablando herramientas CASE. Ellas impiden a los programadores tratar tan directamente con el hardware y les permiten trabajar en un alto nivel de abstracción en la definición de un sistema de software que entonces será construido. Sistemas CASE Hay generalmente tres tipos de sistemas CASE: Herramientas de Diseño, Ambientes de Construcción e Híbridos. Algunas de estas herramientas vienen por default en ambientes UNIX, como aquellas herramientas y utilidades que sirven para editar y compilar software. Este tipo de herramientas (make, cvs/rcs, gcc, Text/groff) que vienen con UNIX son herramientas de desarrollo base, pero los sistemas CASE generalmente no se enfocan en el codificado/escritura/compilado, en vez de esto se encargan del proceso de diseño, refinamiento, documentación, construcción y administración de versiones necesarias para desarrollar y administrar un sistema o paquete de software. En un ambiente de un gran equipo o un gran paquete donde usted puede tener cinco versiones de este paquete en varios estados de desarrollo y/o desplegándose en cinco arquitecturas de hardware diferentes, suportando de tres a cuatro versiones de sistemas operativos, los procesos de trabajo son complejos. Herramientas de diseño CASE auxilian grandes equipos de ingenieros en la especificación de sistemas de software y ayudan a automatizar la escritura de arquitecturas, documentación, y además integrar automáticamente esas piezas generadas en el IDE del desarrollador Muchas herramientas CASE utilizan el Lenguaje de Modelado Unificado (UML) desarrollador por Grady Booch, Jim Rumbaugh, e Ivar Jacobsen. Su compañia, Rational Software es una de la más conocidas en sistemas CASE. La disponibilidad de UML ha revolucionado la habilidad de los ingenieros de software para crear especificaciones de sistemas que pueden ser relativamente fácil de traducir en código mantenible y que funcione. Hay herramientas CASE para casi todo tipo de especialización que uno puede pensar, de diseño de base de datos a data warehousing, de generación de documentación a desarrollo de sistemas embedidos como teléfonos celulares. Herramientas de construcción auxilian equipos grandes en la construcción y administración de liberación de paquetes de software. Herramientas híbridas son un nuevo fenómeno, aplicación Servicios Web para crear un sistema distribuido que puede manejar múltiples estilos de desarrollo y la flexibilidad de agregar nuevas herramientas y servicios sin mucho trabajo. Buenos ejemplos incluyen Sourceforge, Collab.NET, y todas sus variantes. Ejemplos de Herramientas CASE Herramientas Abiertas Umbrello ArgoUML Gaphor Herramientas Comerciales/Cerradas Rational Rose Together System Architect Visual Paradigm Poseidon http://www.monouml.org/docs/formal/spanish/x176.html