ENSAYO USO DE HERRAMIENTAS LUIS ANGEL GALLEGO VILLA

Anuncio
ENSAYO
USO DE HERRAMIENTAS
LUIS ANGEL GALLEGO VILLA
Instructor
ROBINSON VELANDIA RUIZ
Especialista en Gerencia de Proyectos
Tecnología en Análisis y Desarrollo
SENA
Puerto Berrío, Antioquia
Año 2011
HERRAMIENTAS 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. Estas herramientas nos
pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software
en tareas como el proceso de realizar un diseño del proyecto, cálculo de costes,
implementación de parte del código automáticamente con el diseño dado,
compilación automática, documentación o detección de errores entre otras.
Sistema de software que intenta proporcionar ayuda automatizada a las
actividades del proceso de software. Los sistemas CASE a menudo se utilizan
como apoyo al método.
Objetivos:









Mejorar la productividad en el desarrollo y mantenimiento del software.
Aumentar la calidad del software.
Reducir el tiempo y coste de desarrollo y mantenimiento de los sistemas
informáticos.
Mejorar la planificación de un proyecto
Aumentar la biblioteca de conocimiento informático de una empresa ayudando
a la búsqueda de soluciones para los requisitos.
Automatizar el desarrollo del software, la documentación, la generación de
código, las pruebas de errores y la gestión del proyecto.
Ayuda a la reutilización del software, portabilidad y estandarización de la
documentación
Gestión global en todas las fases de desarrollo de software con una misma
herramienta.
Facilitar el uso de las distintas metodologías propias de la ingeniería del
software.
Aunque no es fácil y no existe una forma única de clasificarlas, las herramientas
CASE se pueden clasificar teniendo en cuenta los siguientes parámetros:
1.
2.
3.
4.
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.
La siguiente clasificación es la más habitual basada en las fases del ciclo de
desarrollo que cubren:



Upper CASE (U-CASE), herramientas que ayudan en las fases de
planificación, análisis de requisitos y estrategia del desarrollo, usando, entre
otros diagramas UML.
Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y
diseño de la aplicación.
Lower CASE (L-CASE), herramientas que semiautomatizan la generación de
código, crean programas de detección de errores, soportan la depuración de
programas y pruebas. Además automatizan la documentación completa de la
aplicación. Aquí pueden incluirse las herramientas de Desarrollo rápido de
aplicaciones.
Existen otros nombres que se le dan a este tipo de herramientas, y que no es una
clasificación excluyente entre sí, ni con la anterior:




Integrated CASE (I-CASE), herramientas que engloban todo el proceso de
desarrollo software, desde análisis hasta implementación.
MetaCASE, herramientas que permiten la definición de nuestra propia técnica
de modelado, los elementos permitidos del metamodelo generado se guardan
en un repositorio y pueden ser usados por otros analistas, es decir, es como si
definiéramos nuestro propio UML, con nuestros elementos, restricciones y
relaciones posibles.
CAST (Computer-Aided Software Testing), herramientas de soporte a la
prueba de software.
IPSE (Integrated Programming Support Environment), herramientas que
soportan todo el ciclo de vida, incluyen componentes para la gestión de
proyectos y gestión de la configuración.
Por funcionalidad podríamos diferenciar algunas como:




Herramientas de generación semiautomática de código.
Editores UML: Es un programa de código abierto, gratuito que nos facilita la
creación de diagramas para la planificación de implementación de
aplicaciones.
Herramientas de Refactorización de código: Es una técnica de la ingeniería de
software para reestructurar un código fuente, alterando su estructura interna
sin cambiar su comportamiento externo.La refactorización se realiza a menudo
como parte del proceso de desarrollo del software: los desarrolladores alternan
la inserción de nuevas funcionalidades y casos de prueba con la
refactorización del código para mejorar su consistencia interna y su claridad.
Los tests aseguran que la refactorización no cambia el comportamiento del
código.
Herramientas de mantenimiento como los sistemas de control de versiones.
HERRAMIENTAS UML
El lenguaje de modelado unificado (UML - Unified Modeling Language) facilita
varios tipos de diagramas, los que nos permiten describir los requisitos,
funcionalidad, y otros conceptos relativos a un proyecto de desarrollo de software.
El UML se utiliza para definir un sistema de software y con el 20% de UML se
puede describir el 80% de un proyecto desarrollo.
Efectivamente, como desarrollador se tiene que tener la capacidad para
seleccionar los diagramas adecuados que describan el proyecto.
Estos diagramas se pueden organizar en dos grupos:
1. Los que describen el comportamiento del negocio, del sistema, de un aspecto
en particular:







Diagrama de Actividad: Representa los procesos de negocio o la lógica de un
sistema complejo. Incluye, opcionalmente, el flujo de datos. El nivel de
abstracción suele ser bastante alto, pero pueden realizarse diagramas de
actividad exploratorios cuando la lógica que se trata es compleja.
Diagrama de Estados: Describe los estados de un objeto así como la transición
entre estados. Muy útil para los desarrolladores.
Diagrama de Casos de Uso: Muestra casos de uso individuales, actores y las
relaciones entre ellos. El Proceso Unificado dice está dirigido por los casos de
uso, esto significa que este diagrama (en el nivel de abstracción que sea) es la
base del lenguaje de modelado y representación.
Diagrama de Comunicación: Muestra las relaciones entre instancias de las
clases y el flujo de mensajes entre ellas, antes (UML 1.0) se llamaba Diagrama
de Colaboración. La cuestión tiene que ser realmente complicada para tener
que utilizar estos diagramas.
Diagrama de Interacción: Es una variante del Diagrama de Actividad, muestra
un panorama general del flujo de control dentro del sistema o proceso de
negocio.
Diagrama de Secuencia: Muestra la secuencia de la lógica, el orden en que se
suceden los mensajes. Importante, especialmente cuando se trabaja en
ambientes altamente compartidos.
Diagrama de Tiempo: Muestra el cambio de estado de un objeto a través del
tiempo en respuesta a eventos externos.
Nota: Los últimos cuatro diagramas también se clasifican como Diagramas de
Interacción, dado enfatizan la interacción entre los objetos. Sin embargo no deja
de ser un aspecto del comportamiento.
Los que describen la estructura, la forma, la organización:






Diagrama de Clases: Muestra una colección de clases, sus tipos, sus
contenidos y sus relaciones. Importantísimo representa el modelo de datos, y
en consecuencia su persistencia en alguna forma de almacenamiento.
Diagrama de Estructura: Muestra la estructura interna de una clase,
componente o caso de uso. Especialmente debe indicar los puntos de
interacción con otras partes del sistema.
Diagrama de Componentes: Describe los elementos que componen un
sistema. Debe detallar los elementos o componentes, las interacciones y
relaciones así como las interfaces públicas.
Diagrama de Despliegue: Muestra la arquitectura de ejecución de un sistema.
Incluye nodos, entornos de hardware y software.
Diagrama de Objetos: Describe los objetos y sus relaciones en algún momento.
Generalmente se usa en casos especiales para diagramas de clase o de
comunicaciones.
Diagrama de Paquetes: Describe como los elementos del modelo se organizan
en "paquetes", debe indicar la dependencia entre paquetes.
Ventajas:






Expresar de una forma gráfica un sistema de manera tal que otros lo puedan
entender.
Permite especificar cuáles son las características de un sistema antes de su
construcción.
A partir de estos puntos permite la construcción del diseño del sistema.
Permite que los propios elementos gráficos sirvan como documentación del
sistema desarrollado y que así estos puedan servir para futuras revisión.
Mayor rigor en la especificación.
Permite realizar una verificación y validación del modelo realizado.
Objetivo:


Uml tiene como objetivo primordial ayudar al usuario a desarrollar un buen
sistema.
UML tiene como objetivo final ser tan simple como fuera posible pero
manteniendo la capacidad de modelar toda la gama de sistemas que se
necesita construir.
Un modelo UML está compuesto por tres clases de bloques de construcción:



Elementos: Los elementos son abstracciones de cosas reales o ficticias
(objetos, acciones, etc.)
Relaciones: relacionan los elementos entre sí.
Diagramas: Son colecciones de elementos con sus relaciones.
HERRAMIENTA REM
REM (Requirements Management), es una gran y sencilla herramienta para el
desarrollo del análisis de requisitos de un proyecto de software, al que haya que
aplicarle un proceso de ingeniería de software. Con este programa se pueden
hacer los pasos más importantes del proceso de análisis de requisitos de cualquier
proyecto, en los que se destacan los requisitos funcionales, no funcionales,adición
de sus respectivos actores, casos de uso, entre otros.
Rem permite hacer:








Adición de objetivos
Adición de actores
Adición de requisitos de almacenamiento de información
Casos de uso
Requisitos funcionales
Requisitos no funcionales
Requisitos de restricción
Matriz de rastreabilidad
LA METODOLOGÍA RUP
La metodología RUP, llamada así por sus siglas en inglés Rational Unified
Process, divide en 4 fases el desarrollo del software:




Inicio, El Objetivo en esta etapa es determinar la visión del proyecto.
Elaboración, En esta etapa el objetivo es determinar la arquitectura óptima.
Construcción, En esta etapa el objetivo es llevar a obtener la capacidad
operacional inicial.
Transmisión, El objetivo es llegar a obtener el release del proyecto.
Cada una de estas etapas es desarrollada mediante el ciclo de iteraciones, la cual
consiste en reproducir el ciclo de vida en cascada a menor escala. Los Objetivos
de una iteración se establecen en función de la evaluación de las iteraciones
precedentes.
Vale mencionar que el ciclo de vida que se desarrolla por cada iteración, es
llevada bajo dos disciplinas:
Disciplina de Desarrollo.





Ingeniería de Negocios: Entendiendo las necesidades del negocio.
Requerimientos: Trasladando las necesidades del negocio a un sistema
automatizado.
Análisis y Diseño: Trasladando los requerimientos dentro de la arquitectura de
software.
Implementación: Creando software que se ajuste a la arquitectura y que tenga
el comportamiento deseado.
Pruebas: Asegurándose que el comportamiento requerido es el correcto y que
todo lo solicitado está presente.
Disciplina de Soporte.




Configuración y administración del cambio: Guardando todas las versiones del
proyecto.
Administrando el proyecto: Administrando horarios y recursos.
Ambiente: Administrando el ambiente de desarrollo.
Distribución: Hacer todo lo necesario para la salida del proyecto
Es recomendable que a cada una de estas iteraciones se les clasifique y ordene
según su prioridad, y que cada una se convierte luego en un entregable al cliente.
Esto trae como beneficio la retroalimentación que se tendría en cada entregable o
en cada iteración.
Los elementos del RUP son:



Actividades, Son los procesos que se llegan a determinar en cada iteración.
Trabajadores, Vienen hacer las personas o entes involucrados en cada
proceso.
Artefactos, Un artefacto puede ser un documento, un modelo, o un elemento
de modelo.
Una particularidad de esta metodología es que, en cada ciclo de iteración, se hace
exigente el uso de artefactos, siendo por este motivo, una de las metodologías
más importantes para alcanzar un grado de certificación en el desarrollo del
software.
La Metodología RUP es más adaptable para proyectos de largo plazo.
Descargar