Base de Datos REINGENIERIA Universidad Abierta Interamericana

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

Fundamentos de Diseño de Software INFT.1
ANÁLISIS DE REQUERIMIENTOS
Ingeniería de Software
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
METRICAS DE PROCESO Y PROYECTO
Herramientas CASE.
Modelos de Proceso del Software
CONCEPTOS Y PRINCIPIOS DE DISEÑO
Ingeniería del Software
Republica Bolivariana de Venezuela U.G.M.A 7mo semestre Ing. Sistema
Evaluación de Productos
SISTEMAS DE DISEÑO ASISTIDO POR COMPUTADORA
HERRAMIENTAS CASE.
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
DISEÑO DE LA INTERFAZ DE USUARIO
Actividad 6. Requisitos del software, referente a la estructura y base de datos. M.C. Juan Carlos Olivares Rojas Syllabus May,
Arquitectura de una aplicación
DISEÑO DE SOFTWARE 1ª. Parte
Diseño e Implementación
Ingenieria de software
Ciclo de Vida del Software Paradigmas de Desarrollo
Planeación con Planning Tool y DotProject Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes Rubby Casallas, Andrés Yie.
Ciclo de Vida del Software
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería de Software
Ingeniería del Software
REINGENIERIA Alumno: Ronald Marquez A.W. Modulo: Ing. Software.
Ingeniería de Requerimiento
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Estudio de Viabilidad del Sistema (EVS)
HERRAMIENTAS CASE.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Reingeniería de procesos
Universidad de Aconcagua SISTEMA DE GESTION DE CALIDAD
Medición y Métricas del Software
Diseño de Sistemas.
Capitulo 1 Roger S. Presman
Introducción a UML Departamento de Informática Universidad de Rancagua
Ingeniería de Requisitos
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Introducción al proceso de verificación y validación.
Actividades en el Proceso de desarrollo de Software
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
La reingenieria del software Integrantes: Marcela Avila Beltran Anderson Hortua Cruz Michael Mendoza Gomez.
problemas de la calidad del software
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
“ NO HAY NADA MÁS DIFÍCIL DE CONSEGUIR, MÁS ARRIESGADO DE MANTENER NI MÁS INSEGURO DE TENER ÉXITO, QUE ESTAR A LA CABEZA EN LA INTRODUCCIÓN DE UN.
Ciclo de Vida del Software
Tecnicas del Mantenimiento del Software
Preocupaciones del Analista Programador & Usuarios
 es el conjunto de conocimientos y técnicas científicas aplicadas al desarrollo, implementación, mantenimiento y perfeccionamiento de estructuras (tanto.
Proceso de desarrollo de Software
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
INGENIERIA DE REQUERIMIENTOS. Equipo Meza Mora Emanuel Jonatan Vargas Montoya Geovanni Piña Carrera Miguel.
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
VI. EVALUACIÓN DE LOS RECURSOS
Modelo de procesos de software
Planificación de Sistemas de Información
EL RETO DE LOS SISTEMAS DE INFORMACION Msc. Lic. Mirian Vega 1.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Fundamentos de Ingeniería de Software
Entregables del Proyecto
Transcripción de la presentación:

Base de Datos REINGENIERIA Universidad Abierta Interamericana Facultad de Tecnología Informática Ingeniería Informática Base de Datos REINGENIERIA

Reingeniería = Rediseñar Durante mucho tiempo las distintas aplicaciones han dado servicio y han cubierto las distintas necesidades para las que fueron creadas. A lo largo del tiempo, esas aplicaciones han sido corregidas, adaptadas y mejoradas de acuerdo a las nuevas exigencias y necesidades de la empresa en función de satisfacer sus necesidades comerciales y de negocios. Hubo personas dedicadas a estas funciones, las cuales daban lo mejor de sí para realizar y desarrollar un software que satisfaciera las necesidades de sus clientes. A su vez trataban de realizar un software de calidad, pero las distintas exigencias y urgencias han hecho que se deje lado.

Hoy, esas aplicaciones siguen funcionando pero al corregirlas se vuelven inestables, produciendo errores colaterales, graves e inesperados. El Mantenimiento del Software en sí, es enorme debido a que se lleva alrededor del 60% de la organización del desarrollo, ya que los problemas que presentan por debajo de la superficie, por debajo de lo que se puede ver a simple vista, son los más difíciles de detectar y por desgracia son muchos. Este porcentaje, hoy en día sigue creciendo.

Los cambios a los software realizados por computadora son inevitables cuando se hacen o desarrollan los mismos. Por lo que se hace inevitable preveer mecanismos para evaluarlos, controlarlos y realizar todas las modificaciones que se deban hacer.

Solo el 20% del mantenimiento será correctivo de errores. ACLARACION Corregir errores es tan solo una parte del mantenimiento del software. Hay distintos tipos de mantenimiento: Mantenimiento Correctivo Mantenimiento Adaptativo Mantenimiento de Perfeccionamiento Mantenimiento Preventivo Solo el 20% del mantenimiento será correctivo de errores.

Reingeniería = Reconstrucción REINGENIERIA Requiere Tiempo Requiere Dinero Requiere Esfuerzo Requiere Recursos Reingeniería = Reconstrucción

REINGENIERIA Es un modelo cíclico, que comprende seis actividades. » Análisis de Inventario » Reestructuración de Documentos » Ingeniería Inversa » Reestructuración del Código » Reestructuración de Datos » Ingeniería Directa No puede establecerse un orden dado a estas tareas porque cada una puede repetirse en distintas ocaciones.

Análisis del Inventario Es el inventario de todas las aplicaciones activas. Debe ser revisado con regularidad para mantenerlo siempre actualizado. Debe estar ordenado por importancia de la aplicación, aunque este orden siempre puede cambiar con el trascurso del tiempo y la importancia de las mismas. Análisis del Inventario

Reestructuración de Documentos Siempre la documentación de las aplicaciones es escasa, debido a que no se le asigna la importancia necesaria. Son posibles tres soluciones: Dejarlo así Documentar solo si se modifica Crear todo la documentación necesaria

Ingeniería Inversa Ingeniería Inversa es comprender los secretos del diseño y de la fabricación de la aplicación. Ingeniería Inversa es el proceso de análisis de un programa con el fin de crear una representación del programa con un alto nivel de abstracción. Ingeniería Inversa es un proceso de recuperación de diseño.

Reestructuración de Código Es el tipo más común de la Reingeniería. Fundamentalmente es reestructurar el código ubicado dentro de los módulos.

Reestructuración de Datos En los casos que la estructura de los datos sea débil, ésta sera dificil de adaptar y mejorar. Es una viabilidad a largo plazo, y requiere una reingeniería a gran escala. La reestructuración de datos realiza sobre el programa una gran influencia

Ingeniería Directa Es el proceso de renovación en sí. Recupera la información de diseño de un software ya existente y con esa información se reconstruye el sistema, mejorándolo en calidad global, añadiendo nuevas funciones y mejoras.

Ingeniería Inversa El proceso de la Ingeniería inversa es un proceso complejo el cual trata de extraer las abstracciones que fueron realizadas en su momento. Evalúa el viejo programa y a partir del código fuente extrae una especificación significativa del procesamiento que se realiza, la interfaz de usuario que se aplica, las estructuras de los datos o de las bases de datos. Se realizan varias actividades:

En sistemas de gran magnitud = Heramientas CASE Ingeniería Inversa Se intenta comprender y extraer abstracciones del procesamiento de datos, indicadas por el código fuente. Este proceso debe estar perfectamente comprendido antes de realizar una ingeniería inversa más precisa. Luego, se realizarán diagramas de bloques para representar las distintas iteracciones entre las distintas abstracciones funcionales. Y por último, se realizará una narrativa de procesamiento de las distintas abstracciones En sistemas de gran magnitud = Heramientas CASE

Ingeniería Inversa Suelen producirse distintos niveles de abstracción: para comprender los datos Suelen producirse distintos niveles de abstracción: - a nivel de Programa: donde se analiza la estructura de los datos. - a nivel de Sistema: analizar las estructuras globales de los datos (registros, archivos, bases de datos) para que sean adaptables. Introduce una nueva Base de Datos, la cual abarcará todo el sistema

Ingeniería Inversa Se realizan técnicas centradas en la definición Estructura de Datos Interna Se realizan técnicas centradas en la definición de los Objetos. Se realiza examinando el código fuente del programa, y en el análisis se extraen las variables, agrupándolas de acuerdo a su relación. (Ej.: arquitectura de archivos, registros, listas, etc.)

Ingeniería Inversa Permite definir objetos de datos, Estructura de Bases de Datos Permite definir objetos de datos, facilitando así las relaciones entre objetos. Para definir el modelo de datos existente se emplean los siguientes pasos: » Construir un modelo de datos inicial (claves primarias, atributos, etc.) » Determinar las claves candidatas. » Tratar de unificar distintas clases similares. » Asignar las asociasiones entre clases. Nueva Base de Datos sacada de la anterior

Ingeniería Inversa Es especificar la estructura y Interfaz de Usuario Es especificar la estructura y comportamiento de la actual interfaz. Es definir: Acciones básicas. Respuestas a esas acciones. Definir por cuál otras pueden ser reemplazadas.

Si se pasa de esos límites Reestructuración No modifica la arquitectura global del programa Se centra en los detalles en diseño de modulos individuales y en estructura de datos locales. Si se pasa de esos límites INGENIERIA DIRECTA

Reestructuración Reestructuración del Código Se busca conseguir un diseño pero con mayor calidad, para modelar la lógica del programa Reestructuración de Datos Se realiza un análisis del código fuente: sentencias, definiciones de datos, descripciones de archivos, descripciones de interfaz y descripciones de I/O, con el objetivo de extraer elementos y objetos de datos para obtener así el flujo de los mismos y sus estructuras. Con esto, se puede realizar el Rediseño de los Datos

Ingeniería Directa En lugar de esperar que se reciba la solicitud de mantenimiento, la organización de desarrollo o soporte utilizará la información obtenida en el análisis del inventario para: Seleccionar el progama que continúe utilizándose durante los años futuros. Saber si se está utilizando con éxito en la actualidad. Y que no tenga altas probabilidades de sufrir modificaciones o mejoras.

Ingeniería Directa ¿Se justifica realmente la pérdidad de tiempo y dinero para desarrollar algo que ya está en existencia, pero con otra versión operativa? - El rediseño de la arquitectura del software empleando conceptos de diseños nuevos y modernos, facilitarán el futuro, el mantenimiento. El usuario ya está familiarizado y tiene experiencia con el software, por lo que nuevos requisitos y direcciones de cambio se podrán estimar con más Facilidad. El uso de las Herramientas CASE facilitarán el trabajo en algunas partes. Cuando se finalice el Mantenimiento Preventivo (nuevas versiones del producto terminado), se dispondrá de una configuración completa del software.

Ingeniería Directa ACLARACION Ingeniería Directa, no es crear un equivalente moderno, sino es integrar los nuevos requisitos y tecnologías con lo que se tiene, para poder ampliar las capacidades de la aplicación.

para arquitecturas Cliente/Servidor Ingeniería Directa para arquitecturas Cliente/Servidor Comienza con un análisis exhaustivo del negocio que abarca la computadora central existente. Posee las siguientes características: - La funcionalidad de la aplicación migra hacia las otras computadoras. - Nuevas interfaces. - Funciones de bases de datos. - Funciones especiales posicionadas en el servidor. - Requisitos de Comunicación, Seguridad, etc. se aplicarán tanto al servidor como al cliente. - Las bases de datos se encuentran en la arquitectura cliente/servidor, las transacciones y consultas se gestionan desde ahí, pero son controladas en el contexto de un conjunto de reglas de negocio, proporcionando funcionalidad deseada a los usuarios.

para arquitecturas Cliente/Servidor Ingeniería Directa para arquitecturas Cliente/Servidor Todo esto deberá sufrir un proceso de ingeniería inversa para el rediseño, creándose en muchos casos un nuevo modelo de datos. Para todo, la base de datos del Cliente/Servidor sufrirá un proceso de reingeniería para asegurar las transacciones, actualizaciones, reglas de negocios, etc.

Herramientas CASE »»» Ingeniería del Software Asistido por Computadora ««« Proporciona la posibilidad de automatizar actividades manuales. Mejora la visión del problema. Garantiza la calidad de diseño antes de que se construya el Software.

Bloques de Construcción Herramientas CASE Bloques de Construcción Herramientas CASE Marco de Integración Servicios de Portabilidad Sistema Operativo Plataforma Hardware Arquitectura del Enterno

Bloques de Construcción Herramientas CASE Bloques de Construcción Arquitectura del Entorno: Plataforma Hardware + Sistema Operativo Marco de Integración: Grupo de Programas especializados que permiten a todas las herramientas comunicarse entre sí.

Bloques de Construcción Herramientas CASE Bloques de Construcción Servicios de Portabilidad: Proporciona un puente entre las Herramientas Case, su Marco de Integración y la arquitectura del entorno. Permite además que las herramientas CASE migren entre distintas plataformas de Hardware y el Sistema Opetativo.

Bloques de Construcción Herramientas CASE Bloques de Construcción ¡¡¡IMPORTANTE!!! No todas las herramientes CASE provienen de estos bloques de construcción, sino que cada uno ofrece una solución puntual a algo sin comunicarse con el resto de las otras.

Herramientas CASE No se debe clasificar las herramientas CASE Clasificación No se debe clasificar las herramientas CASE bajo ningún concepto, pero es necesario hacerlas, para poder entender mejor la amplitud y para apreciar mejor dónde se pueden aplicar estas herramientas dentro del proceso de hardware.

Herramientas CASE Herraminetas de Ingeniería de procesos de Negocio Clasificación Herraminetas de Ingeniería de procesos de Negocio Modelar la información de negocio cuando se tranfiere entre distintas entidades organizativas en el núcleo de una compañía. Herraminetas de Planificación de Proyectos Definir todas las tareas del proyecto para que luego realice una red de tareas. Modelado de Proceso y Gestión. Utilizado para representar los elementos claves del proceso de manera que sea posible entenderlo mejor. Proporcionan vínculos entre otras herramientas. Modelado de Análisis de Riesgo. Construye una tabla de riesgos proporcionando una guía detallada en la identificación y Análisis de Riesgo Herraminetas de Gestión de Proyecto. Herramientas de Documentación. Dichas herramientas proporcionan una facilidad para dicha tarea para quienes desarrollan software. Herramientas de Seguimiento de Requisitos.

Herramientas CASE Herraminetas de Gestión de Base de Datos. Clasificación Herraminetas de Gestión de Base de Datos. Sirve como fundamento para establecer una Base de Datos CASE que será la Base de Datos del proyecto. Herraminetas de Análisis y Diseño Hace posible que el Ingeniero del software cree modelos del sistema que vaya a construir. Herramientas PRO/SIM Proporcionan la capacidad de predecir el comportamiento de un sistema en tiempo real. Herramientas de Desarrollo e Interfaz Son un conjunto de Herramientas de componentes de programa (clases) tales como menús, botones, ventanas, íconos, desplazamiento de pantallas, etc. Herramientas de Construcción de Prototipos Herramientas de Construcción de Programación Abarca los compiladores, editores y depuradores disponibles para apoyar la mayoría de los lenguajes de programación convencionales. Herramientas de Métricas y de gestión.

Herramientas CASE La verdadera potencia de las Herramientas CASE CASE Integrados La verdadera potencia de las Herramientas CASE se logra cuando se integran unas con otras, debido a que: - Producen una reducción en el esfuerzo para efectuar Actividades; - Un aumento considerable del control del proyecto; y - Una mejor coordinación entre miembros del personal.

Herramientas CASE Combina toda una gama de Herramientas e CASE Integrados Combina toda una gama de Herramientas e Información distintas entre personas y procesos. Se integran de tal manera que la información de ingeniería del software está disponible para todas las herramientas que se necesiten.

Herramientas CASE Un entorno CASE integrado debería proporcionar: CASE Integrados Un entorno CASE integrado debería proporcionar: - Mecanismos para compartir la información de la ingeniería del software entre todas las herramientas. Cambios de elementos de información se realicen a las demás. Control de versiones y una gestión de configuarción general para toda la información de la Ingeniería del Software. Permitir un acceso directo y no secuencial a las herramientas del entorno. Dar soporte a la comunicación entre personas y Software. Etc.

Herramientas CASE CASE Integrados Para alcanzar estos objetivos, cada uno de los bloques de construcción de una arquitectura deberá encajar con las demás sin ningún tipo de limitación. Deberá unirse a través de un conjunto de servicios de portabilidad a un marco de referencia de integración que alcance los objetivos indicados con anterioridad.

Herramientas CASE Repositorio CASE Repositorio es una base de datos que actúa como centro tanto para la acumulación como para el almacenamiento de información de ingeniería del software. Es el conjunto de mecanismos y estructuras de datos que consiguen la integración entre datos y herramientas, y entre datos y datos.

Herramientas CASE Sus Objetivos: Cosas a almacenar en un Repositorio: Repositorio CASE Sus Objetivos: -Integridad de datos, Información Compartida, Integración de datos-herramientas, Integración de datos-datos, Imposición de metodología de trabajo Estandarización de documentos. Cosas a almacenar en un Repositorio: Problema a resolver, Información acerca del dominio del problema, Solución del sistema a medida que se va siguiendo, Reglas e intrucciones relavitas de los procesos, El plan del proyecto, los recursos y su historia, Información a cerca de contexto.

Herramientas CASE Repositorio = SGBD Repositorio CASE Almacenamiento de Datos no Redundante / Acceso a Alto Nivel Independencia de Datos / Control de Transacciones / Seguridad Alamcenamiento de Estructuras de Datos Sofisticadas Imposición de Integridad Etc.

FIN