HERRAMIENTAS CASE
Son un conjunto de herramientas y métodos asociados que proporcionan asistencia automatizada en el proceso de desarrollo del software a lo largo de su ciclo de vida.
Se buscaba reducir problemas de desarrollo en el software y el trabajo al desarrollador.
El desarrollador hace levantamiento de datos, después genera modelos o esquemas a introducir y la herramienta le pregunta que quiere y lo hace de forma automática.
OBJETIVOS
•Automatizar el Software.
•Aumentar la productividad de las áreas de desarrollo y mantenimiento de los sistemas informáticos.
• Mejorar la calidad del software desarrollado.
• Reducir tiempos y costos de desarrollo y mantenimiento.
• Mejorar la gestión y dominio sobre el proyecto en cuanto a su planificación, ejecución y control.
• Mejorar el archivo de datos de conocimientos y sus facilidades de uso, reduciendo la dependencia de analistas y programadores.
Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora.
FACTORES
Reutilización
Contempla:
* Código.
*Esquemas o Modelos.
*Modelado.
*Planificación.
*Reducir calidad en trabajo.
*Ahorrar tiempo.
*Reducir Costos.
*Tener Software Estable.
*Si un software es viable lo puedo usar porque me da un grado de confianza.
*Aumenta la compatibilidad.
Portabilidad
No depende del hardware ni del software, por lo que es compatible con otros elementos de hardware y software.
Estandarización
Definición de Procesos. Crea acuerdos, normas y políticas, que además permitan la comunicación, operabilidad, interporabilidad, compatibilidad y que sea viable donde sea.
ESTRUCTURA O TIPOS
Alto Nivel
Contempla las torres superiores de vida.
Planificación
Análisis
Diseño
Modelado
Bajo Nivel
Contempla las actividades finales.
Construcción o Codificación
Implementación o Pruebas
HERRAMIENTAS
Herramientas de
Documentación
Incrementa la Productividad
redudicendo los tiempos.
Depende del producto de calidad. Al documentar se busca una planeación, tiene que se bien hecha y concordar con el proyecto.
Herramientas de
Software
Redes
Estructuras de comunicación entre cliente/servidor y unilateral, cliente de punto apunto.
Objetos
Diseñados para diagramas, defino características, relaciones, atributos. Se hace un diseño hasta donde se quiere que ese objeto abarque el sistema.
Componentes
Son usuarios, BD, todos los demás elementos que conforman el diseño, que no necesariamente son objetos. Se checan vínculos, integración y actuación.
Comunicaciones
Comunicación con el software, hardware y usuario, o con otro sistema.
Herramientas para
asegurar la Calidad
Métrica para auditar
código fuente.
Complejidad
Entre más instrucciones complejas se utilicen, el código sea complejo, su longitud es menor.
Lenguaje Estándar
Tiene el mismo formato y mismas normas. Así será portable.
Calidad
Tiene calidad si es seguro y por su taxonomía.
Herramientas para
Administrar BD
Repositorio
Administra al SMBD
Herramientas para la Administración de la Configuración del Software.
Configura idioma, tipo de interfaz, y formar ingreso-requerimientos.
Identificación
Depende del entorno, que se quiere, que se ocupará de un lenguaje, identifica características.
Control de
Versiones
Elección de la mejor
versión del software.
Cambios de
Control
Cambios entre
diferentes versiones.
Auditorías
Que todo funcione bien, pueden ser pro(antes), pre(después), e inesperadas.
Status
Estado del lenguaje a ocupar, si es estable, no genera errores mayores. Lo que nos puede proporcionar.
Herramientas para
Análisis y Diseño
Consistencia del
Performance
entre modelos
Cuando hacemos diseños, se deben hacer con varias herramientas, tener un performance de las herramientas manejadas y deben estar balanceadas entre sí.
Herramientas PRO/SIM
Orientadas a sistemas que se van a manipular físicamente. PRO: Conexiones o comunicaciones. SIM: Integración con Hardware (parte mecánica)
Predicción en
Tiempo Real
de los Sistemas
Prototipos o muestras a
escalas de lo que se va hacer.
Creación de Interfaces
para Revisión
del Cliente.
Se divide en la versión de interfaz en la que se trabaja, y la interfaz del cliente donde está funcionando.
Herramientas para Diseño y
Desarrollo de Interfaces
Componentes
Considerar todas las partes de la interfaz, lo que se puede ver, sensores que usa, parte léxica, parte semántica, sonido, reconocimiento de palabras, etc.
Entorno GUI
Interfaz Gráfica del Usuario. Cuida al usuario, no le importa la lógica o funcionamiento, solo se adecua al usuario.
Prototipo de Usuarios
de la Interfaz
Se prueba la interfaz completa, su funcionamiento, componentes. Contempla requerimientos, todo lo que se hizo, tiene que ver que funcione.
Herramientas de Prototipo
Hacer prototipos de todo tipo, físico o lógico.
Etiquetas
Emergentes
Surgen sin solicitar permiso alguno. Para saber a que se refiere cada cosa, debo nombrar todas sus partes, y saber el funcionamiento o etiqueta de estados. Estás etiquetas son dinámicas.
Generación de
Reportes
Informa donde existen problemas. Anexa las etiquetas que tuvieron errores y señala donde fue el error.
Datos de
Diseño
Describe y define completamente los procesos y características de los datos. Se debe verificar errores dentro del diseño, si lo hay, se debe empezar desde cero.
Herramientas de
Programación
Variedad de lenguajes
que podemos usar.
Compiladores
Genera código máquina y lo ejecuta. No pasa por capas del SO.
Editores
Trabajan con Texto. Permiten texto dentro de un lenguaje establecido.
Intérpretes
Traduce a través de las capas del SO. No genera código, necesita un compilador.
Leguaje OO
Manipula Objetos. Se divide en: Código (puro código) y Interfaz Gráfica (anexa componentes).
Gráficos
Componentes que posibilitan la interacción entre el usuario y la aplicación.
Generadores
Hacer algo en la interfaz y
genera código.
Query's
Consultas a BD.
Lenguajes
Lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por equipos de cómputo.
Herramientas para
Desarrollo Web
Texto
Información que contiene la página web.
Formas
Formularios. Se representan dentro de los frames.
Gráficos
Multimedia.
Scripts
Mandatos de usuario. El usuario lo llama mediante una acción directa y hace que funcione.
Applet
Funciona en Java, en los servlets, es una aplicación cortada, es decir, solo tiene aquella parte que sirve como cliente. La otra parte la tiene el servlet que la usa como servidor.
Herramientas de
Integración y Testeo
Su función que todos los componentes se encuentren entrelazados entre sí. Y garantizar un estándar de calidad que siempre me entregue los mismos resultados.
Adquisición
de Datos
Se refiere a poder captar señales del mundo real, es decir, analógicas, y transformarlas a digital.
Métricas
Estáticas
Capacidad establecida en la cantidad de datos que manejo.
Métricas
Dinámicas
Capacidad constante, uso variable en los recursos del sistema.
Simulación
Se prueban las funciones, a través de modelos de prototipos.
Funciones
Cruzadas
Poner a prueba todos los componentes de mi sistema.
Herramientas Análisis estático
Pruebas de
Código Base
Aquella base de desarrollo que me sirve para hacer versátil a otros códigos.
Especialización
del Lenguaje
Nivel de detalle en el que se codifica un lenguaje que solo entenderá el sistema. Se especifica todo los diferentes casos que pueden ocurrir.
Requerimientos
Base
Son los requerimientos mínimos para que pueda funcionar el sistema.
Herramientas de Análisis Dinámico
Modificación intrusiva del código para insertar pruebas.
Convergencia
Ejecución
en Flujo
Separación de Procesos
de Hardware con los del Sistema
Modificación
Intrusiva
No se puede predecir en que momento interrumpir el sistema para su modificación. No se sabe a quien va afectar ni cuanto durarán las pruebas, solo puede hacer aproximaciones. Tanto el usuario como el sistema no pueden delimitar estas interrupciones.
Herramientas para
la Administración de Pruebas
Compara salidas actuales con las salidas esperadas.
Entrega de reportes, estas herramientas miden que se haga la administración de dichas pruebas y reciben resultados.
Herramientas para Pruebas
Cliente/Servidor
Comunicación Redes GUI
La GUI de administración de redes permite ver y supervisar el estado de la red desde el escritorio, además de interactuar con perfiles de red reactivos para gestionar la configuración de redes Ethernet e inalámbricas. Esta comunicación de hace mediante una interfaz de línea de comandos (CLI) de las redes.
Herramientas de Reingeniería
Análisis y Diseño del Código Fuente
Consiste en tirar un proceso que no sirva, e iniciarlo desde cero. Esta modificación del diseño del código, debe realizar una acción diferente a la que hacía antes de ser modificado.
Herramientas de Análisis y Reestructuración del Código.
Su función es hacer que el código sea más entendible ante el usuario y el programador.
Sintáxis
Usa API (Aplication Programming Interface). Conjunto de reglas (código) y especificaciones que las aplicaciones pueden seguir para comunicarse entre ellas. Regula la sintaxis, extiende más la interfaz.
Gráfica de Control de Flujo
Nos muestra en donde se realizan las modificaciones de los procesos, y las relaciones de entrada y salida.
Estructura
Es la base para el desarrollo. Si esta se modifica, debe cambiar todo aquello que se involucre en dicho desarrollo.
Herramientas de Reingeniería en Línea.
Modificación del SMBD en línea.
ONLINE: Estas modificaciones implican que sean entre cliente/servidor.
SMBD: Modifica los procesos que contiene y la comunicación entre cliente/servidor.
Medio o Cruzado
Contempla todas las actividades del ciclo de vida de un sistema.
CLASIFICACIÒN
Herramientas de diagramación.
Depósitos de información.
Generadores de interfaces.
Generadores de código.
Herramientas de administración.
CARACTERÍSTICAS
ELEMENTOS
Interfaz de Usuario
Constará de editores de texto y herramientas de diseño gráfico que permitan, mediante la utilización de un sistema de ventanas, iconos y menús, con la ayuda del ratón, definir los diagramas, matrices, etc. que incluyen las distintas metodologías.
Generador de Informes
El módulo generador de la documentación se alimenta del repositorio para transcribir las especificaciones allí contenidas.
Repositorio
Se almacenan los elementos definidos o creados por la herramienta, y cuya gestión se realiza mediante el apoyo de un Sistema de Gestión de Base de Datos (SGBD) o de un sistema de gestión de ficheros.
Metamodelo
Constituye el marco para la definición de las técnicas y metodologías soportadas por la herramienta.
Herramientas de Carga y
Descarga de Datos
Son facilidades que permiten cargar el repertorio de la herramienta CASE con datos provenientes de otros sistemas, o bien generar a partir de la propia herramienta esquemas de base de datos, programas, etc. Que pueden, a su vez, alimentar otros sistemas. Este elemento proporciona así un medio de comunicación con otras herramientas.
Facilidad de Comprobación
Facilidades que permiten llevar a cabo un análisis de la exactitud, integridad y consistencia de los esquemas generados por la herramienta.
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
*Confiabilidad en los métodos estructurados.
*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.
PREREQUISITOS
Colección de Requisitos
Elección de herramientas con las cual se desarrollará el software. Esta debe ser fácil de usar, compatible entre sí y se debe acordar su uso.
Organización
Cada una de las herramientas seleccionadas, deben llevar un orden de trabajo, cual va ir primero y sacar aquellas que no se ocuparán.
Conocer las Herramientas
En el equipo de trabajo, debe haber un especialista por cada herramienta que se ocupará.
CASE ALTAS
Requerimientos
Son declaraciones en lenguaje natural y en diagramas de los servicios que se espera que el sistema provea y de las restricciones bajo las cuales debe operar.
Especificaciones
Es una descripción abstracta del diseño del software, agrega a detalle la especificación de requerimientos del usuario.
Planeación
Traducción de los requerimientos, división de trabajo.
Diseño
Actividad de ciclo de vida de ingeniería de software en la que los requerimientos de software son analizados para causar una descripción de la estructura interna del software que servirá como base para su construcción.
CASE BAJAS
Herramientas
Con lo que se va a trabajar, requerimientos de formato estándar. Son bloques de desarrollo.
Marco de Trabajo
Integrado
Especifica el contexto o el ambiente donde se está desarrollando. Al final se deben integrar estos marcos de trabajo.
Servicios de
Portabilidad
Interacción con diferentes herramientas, tanto para software y hardware.
Servicios de Operación
Cada acción que se hace es una operación,
por lo que estos servicios proveen la calidad del sistema, no pueden ser repetitivos y deben dar lo máximo.
Plataformas de Hardware
Sobre que tipo de hardware va a ser funcional mi sistema, debe ser ligero y con instrucciones simples. Está ligada con los servicios de portabilidad.
Arquitectura de
Desarrollo
Establece la línea de comunicación desde hardware hasta software y viceversa. Se contempla la arquitectura a manejar así como sus componentes (memorias, lenguajes, drivers, paquetes, etc.).
TAXONOMÍA
BD
Planeación del
Sistema
Características del Negocio,requerimientos del cliente. Esto se registra en una BD, para tener un control y cualquier equipo pueda acceder a ello.
Administración del
Proyecto
Tiempos, costos, contratos, responsables. Requiere de la BD para manejar responsivas y los miembros puedan ver que se va a realizar. Se anotan todas las características de la Administración.
Soporte
Mantener la información actualizada. Me permite regresar y completar alguna actividad anterior que no se había concluido, en la etapa que sea.
Análisis de
Diseño
Elaboración de todas las alternativas posibles. Evaluar las alternativas que más convengan. Estas adaptaciones y modificaciones van alterar el diseño.
Programación
Cronogramas, administrativo, tareas, tiempos, y que se debe hacer para que el sistema funcione de manera lógica.
Integración y
Pruebas
Conforman la integridad total del proyecto, las partes a integrar y que estén actualizadas. Pruebas: tiene que estar en función de la calidad del software, hacen registros y portabilidad.
Prototipos y Herramientas
de Simulación
Prototipos: Primeras versiones (alfa,beta) hasta llegar a la versión a utilizar. Herramientas: Pruebas de lógica para ver si funciona correctamente.
Reingeniería
Tomar los procesos existentes y ver si son susceptibles a modificarlos. Cuando se modifican, inician desde cero y funciona de manera diferente.
Marco de Trabajo
Se refiere al ambiente o contexto donde se va a trabajar. Y el software que se desarrollo donde se encuentre debe de funcionar de manera eficiente.
Ingeniería del Proceso
Objetos
Cualquier ente susceptible a ser modificado por el sistema. Tiene características y atributos. Variables a controlar y que tiene relaciones.
Relaciones
Como interactúan los objetos, pueden ser de uno a uno, uno a muchos, muchos a muchos. Pueden ser de asociación, generalización e inclusión.
Flujo
Dirección que llevan mis objetos según sus relaciones. Dirección que se debe recorrer en cada uno de los casos.
Modelado y Administración
del Proceso
Elementos Clave
Es único e irrepetible. Elemento único del sistema, que me permite relacionarme con los demás, es decir, hace relaciones o vínculos con otros objetos.
Vinculación entre
herramientas
Relaciones del Sistema.
Definición de Actividades
Funciones de cada uno de los elementos, actividades que lleva cada uno.
Planeación del Proyecto
Estimación
costo-beneficio
Lo que se va a gastar, debe ser justificable respecto a un beneficio.
Proyectar
Programación
Proyección que se hace en base al costo-beneficio. Hace estimación del tiempo, por cada actividad.
Análisis de Riesgos
Construcción de Tablas
de Riesgos
Análisis
Que tipo de riesgo se
está tratando, en que consiste y su nivel de impacto.
Identficación
Visualizar riesgos, el tipo de riesgo. Tratar lo de alto y bajo riesgo.
Detalle
Determinar la probabilidad de que este riesgo suceda.
Rastreo de Requerimientos
-BD -status
-BD-Status
Levantamiento de requerimientos, sin definirlos. Establecer necesidades del cliente, identificarlas si es posible hacerlas o se sale de lo que pide. Se marcan status o interacciones, de como se van ejecutando los requerimientos.
Métricas y Administración
de Herramientas
Productividad/Calidad
Métricas: Se basan en nivel de calidad de desarrollo. Interviene en la planeación, diseño y análisis, se usan en todo el ciclo de vida del sistema. Pruebas: Son las más importantes ya que integro todo lo de mi sistema.
EJEMPLOS
Microsoft Project
Visual Paradigm for UML
ArgoUML
Poseidon
Modelio
HERRAMIENTAS AUTOMATIZADAS
Son herramientas que ayudan en el proceso del desarrollo de un sistema de software, desde el inicio de dicho proceso hasta el final del mismo, estas herramientas están destinadas a aumentar la productividad y disminuir los costos del desarrollo, en pocas palabras ayudan a disminuir tiempo y dinero en el desarrollo de un sistema de software.
PROCESO UNIFICADO
Reúne los mejores rasgos y las características de modelos de procesos de software. Buscando eficiencia y rápidez.
Reconoce la importancia de la comunicación con el cliente y los métodos a describir el sistema en punto de vista del cliente.
Enfatiza el importante papel de la arquitectura de software, ayudando al arquitecto a enfocarse a los cambios futuros y a la reutilización.
Sugiere un flujo de proceso iterativo e incremental y que proprciona el sentido evolutivo esencial en el desarrollo de software moderno.
FASES
Inicio
Abarca la comunicación con el cliente, y las actividades de planeación. Se identifican los requisitos del negocio para el software, se propone una arquitectura aproximada para el sistema, y se desarrolla un plan, para la naturaleza iterativa e incremental del software.
Elaboración
Abarca la comunicación con el cliente y las actividades de modelado del modelo genérico del proceso. Incluye cinco versiones diferentes de software: modelo caso de uso, modelo de análisis, modelo de diseño, modelo de implementación y modelo de despliegue.
Construcción
Desarrolla o adquiere los componentes del software que harán que cada caso de uso sea operativo para los usuarios finales. También se realizan las actividades de integración (ensamble de componentes y pruebas de integración).
Producción
Coincide con la actividad de despliegue. Durante esta fase se monitorea el uso subsiguiente del software, se proporciona el soporte para el ambiente operativo y se reciben y evalúan los informes de defectos y los requerimientos de cambios.
Transición
Abarca las últimas etapas de la actividad genérica de construcción y la primera parte de despliegue. El software se entrega a los usuarios finales para realizar pruebas beta y la retroalimentación del usuario reporta tantos defectos como cambios necesarios.
PRODUCTOS DE
TRABAJO
Inicio
*Documentación de la visión.
*Modelo inicial de caso de uso.
*Glosario inicial del proyecto.
*Caso inicial del negocio.
*Evaluación inicial del riesgo.
*Modelo del negocio si es necesario.
*Plan del proyecto, fases e iteraciones.
Elaboración
*Modelo de caso de uso.
*Requisitos suplementarios.
*Modelo de análisis.
*Descripción de la arquitectura de software.
*Prototipo arquitectónico ejecutable.
*Modelo de diseño preliminar.
*Lista revisada de riesgos.
*Plan de proyecto (plan de iteración, flujos de trabajo, productos técnicos, fundamentos, manuales).
Construcción
*Modelo del diseño.
*Componentes del software.
*Incremento integrado del software.
*Plan y procedimiento de pruebas.
*Casos de pruebas.
*Documentación del soporte (manuales de usuario, manuales de instalación, descripción del incremento actual).
Transición
*Incremento de software integrado.
*Reporte de las pruebas beta.
*Retroalimentación general del usuario.