Introdución BD Alfredo Rodríguez Rojas Presentacion adaptada

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

Ciclo de vida de desarrollo de software
Desarrollo en espiral.
MODELADO DE BASES DE DATOS
Ingeniería de Software
Metodologías ágiles.
CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
CICLO DE VIDA DE LOS SISTEMAS DE INFORMACIÓN
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
Introducción a LAS Bases de Datos
2. Diseño y Desarrollo del Producto
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Análisis y Diseño de Aplicaciones Ingeniería de Software
Administración de Procesos de Pruebas
Evaluación de Productos
M.S.C. Ivette Hernández Dávila
Ingeniería de Software
“Especificación de Requerimientos”
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Ingeniería de Software
Sistema de Información
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
Introducción A Las Bases De Datos
Ingeniería de Software
Las etapas de un proyecto
Ciclo de Vida del Software Paradigmas de Desarrollo
Unidad VI Documentación
CONCEPTOS BÁSICOS Diseño de Sistemas.
Modelo de espiral Fue originalmente propuesto por Barry Boehm en Es una secuencia de actividades con retrospectiva de una actividad a otra, representado.
Modelos de desarrollo de Software
Técnicas de Programación
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Tema 1: Introducción a la Ingeniería de Software
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Importancia en la efectividad del:
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.
PROYECTO EMPRESARIAL Clase # 1.
Pruebas y La Vida del Ciclo de Desarrollo del Software
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
INGENIERIA DE SOFTWARE
Alexander Aristizabal Ángelo flores herrera
BASES DE DATOS.
Capitulo 1 Roger S. Presman
Ciclo de vida de un sistema
Introducción a las Bases de Datos Parte 1. Contenido 2 1.Definiciones de Bases de datos 2.Dato e Información 3.Sistemas de bases de datos 4.Sistema de.
Proceso de desarrollo de software Pablo Gervás F. Informática, UCM, noviembre 2007.
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Introducción al proceso de verificación y validación.
Actividades en el Proceso de desarrollo de Software
Modelo Prescriptivos de proceso
Ingeniería del Software I
El producto de software y su ciclo de vida
Ciclo de Vida del Software
INGENIERIA DE SOFTWARE
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
Proceso de desarrollo de Software
Ing del Software Libre1 Ingeniería del Software Libre y Modelos de Calidad Instructora: Ing. Erika Veliz Correo Electrónico:
¿Qué es la Ingeniería De Software? Ingeniería de Software.
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
Fundamentos de Computación
Las fases del ciclo de la vida de desarrollo de sistemas
Software de Comunicaciones
Modelo de procesos de software
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.
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
 Diseño, construcción y mantenimiento de sistemas de software grandes.
Transcripción de la presentación:

Introdución BD C@rlos Alfredo Rodríguez Rojas Presentacion adaptada Profesor Universidad Distrital – F.M.R.N. crodriguez@udistrital.edu.co

Norton y Kaplan, 1992 "Lo que no puede ser medido, no puede ser gestionado" Norton y Kaplan, 1992

AGENDA Introducción Definición de base de datos Conceptos básicos Sistema de Gestión de Base de Datos (SGBD) Conclusiones

INTRODUCCIÓN [1] BD única solución posible para manejar grandes volúmenes de datos, la complejidad de la extracción de datos y la concurrencia de datos (accesos simultáneos). < Costos de los servidores > Las necesidades de exploración de datos. Los sistemas integrados de gestión, paquetes contables o aplicaciones

Ciclo de desarrollo de los sistemas de información En la etapa 4) Diseño se definen los detalles a fin de cumplir con los requerimientos identificados en la etapa 3) Análisis. Fuente: Kendall y Kendall

DEFINICIÓN DE BASE DE DATOS (1) “Base de Datos es un conjunto de datos relacionados entre sí y que tienen un significado implícito”. Ramez Elmasri y Shamkant B. Navathe 1) Relaciones entre datos, tema que se trata en las próximas transparencias. 2) Significado implícito de los datos que se atribuye dependiendo del contexto en que se utilizan los mismos.

Archivos tradicionales y Bases de Datos En un sistema de información se cuenta con dos enfoques principales para definir el almacenamiento de los datos: 1. Archivos tradicionales. Consiste en almacenar los datos en archivos individuales, exclusivos para cada aplicación particular. En este sistema los datos pueden ser redundantes (repetidos innecesariamente) y la actualización de los archivos es más lenta que en una base de datos. 2. Base de datos. Es un almacenamiento de datos formalmente definido, controlado centralmente para intentar servir a múltiples y diferentes aplicaciones. La base de datos es una fuente significativa de datos que son compartidos por numerosos usuarios para diversas aplicaciones.

Ejemplo Archivos Tradicionales Clientes Desventajas: Se duplican esfuerzos Se presentan redundancias de datos (datos repetidos innecesaramente) Se pueden producir contradicciones entre los datos, si por ejemplo se ingresan nombres diferentes para un mismo cliente. ........ ......... ....... .... Fmar@gmail.com 9157878 Rincón 876 Fernando Martínez 1226 jgarcia@adinet.co m.uy 4182569 Guaná 1202 Juan García 1225 E-mail Telefono Dirección Nombre Num ...... 900 1250 Precio ....... Pintura Azulejos Producto ........ ..... Misiones 1456 Fernando Martínez 1226 Rincón 1224 Joaquín García 1225 Dom. Nombre Num

Bases de Datos Colección de datos relacionados lógicamente. Conjunto de datos no redundantes, almacenados en un soporte informático, organizados de forma independiente de su utilización y accesibles simultáneamente por distintos usuarios y aplicaciones. Las bases de datos son necesarias cuando el volumen o la organización de los datos hace imposible un seguimiento “a mano” de los mismos por el usuario. Si bien muchas aplicaciones grid no necesitan acceder a bases de datos, el middleware hace uso de la mismas para diversas tareas como el control de réplicas de los datos.

DEFINICIÓN DE BASE DE DATOS (2) . “Una base de datos tiene una fuente de la cual se derivan los datos, cierto grado de interacción con los acontecimientos del mundo real y un público que está activamente interesado en el contenido de la base de datos”. Ramez Elmasri y Shamkant B. Navathe

Ventajas del uso de bases de datos Globalización de la información. Eliminación de información redundante. Eliminación de información inconsistente. Si el sistema está desarrollado a través de archivos convencionales, esta es una operación costosa y potencialmente peligrosa. Permite compartir información. Varios sistemas o usuarios pueden utilizar una misma entidad. Permite mantener la integridad en la información. Solo se almacena la información correcta. Independencia de datos. La independencia de datos implica un divorcio entre programas y datos; es decir, se pueden hacer cambios a la información que contiene la base de datos o tener acceso a la base de datos de diferente manera, sin hacer cambios en las aplicaciones o en los programas.

Tipos de Bases de datos Jerárquica. Red. Estructura en árbol (padre/hijo). Relaciones uno-a-uno o uno-a-muchos. Pero no muchos-a-muchos. Problemas: Redundancia de la información. Borrado en cascada. Red. Evita el problema de redundancia con conectores. Relacionales y objeto-relacionales. Orientadas a objetos. Acceso directo a objetos desde programas OO. Tipos de datos flexibles, abstracción, etc. Fracaso comercial. XML.

Ingeniería de Software C@rlos Alfredo Rodríguez Rojas Profesor Universidad Distrital – F.M.R.N. crodriguez@udistrital.edu.co

Ingeniería de Software Las economías de los países desarrollados dependen en gran parte del software. Mas y más sistemas son actualmente controlados por software. La Ingeniería de Software concierne a teorías, métodos y herramientas para el desarrollo profesional de software. El gasto en La Ingeniería de Software, representa un alto porcentaje del PIB de los países desarrollados.

Ingenieria de Software: Conceptos Basicos Que es la Ingenieria de Software ? Cual es la diferencia entre un programador y un Ingeniero de Software? Cual es la diferencia entre un Ingeniero de Software y un Ingeniero de Sistemas? Cual es la diferencia entre la Ingenieria de Software y la Computacion ? Que es el software ? Que es un proceso de software ? Que es un modelo de software?

Que es la Ingeniería de Software La Ingeniería de Software es una diciplina de la Ingeniería que concierne a todos los aspectos de la producción de software Los Ingenieros de Software adoptan un enfoque sistematico para llevar a cabo su trabajo y utilizan las herramientas y tecnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles.

Diferencia entre Ingenieria de Software y Computacion La computacion concierne a la teoria y fundamentos de cualquier sistema de computo, sea de hardware o de software. La Ingenieria de software concierne solo al desarollo de sisetmas o productos de software La Ingeniria de Sofware todavia esta lejos de ser una ciencia como los son la Quimica, la Ingenieria Civil o la Electronica.

Ingenieria de Sistemas e Ingenieria de Software La Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cómputo, que incluyen hardware, software y el proceso de Ingeniería. La Ingeniería de Software es solo parte de este proceso.

Que es el Software ? Programas de cómputo y su documentacion asociada Sistemas o Productos de software grandes y complejos. Que contiene el software. Que tipos de software hay ? Cual es el costo del software. Como se desarrolla el software ? Como saber si un software tiene calidad.

Productos de Software Productos genéricos. Productos hechos a medida. Productos que son producidos por una organización para ser vendidos al mercado. Productos hechos a medida. Sistemas que son desarrollados bajo pedido a un desarrollador específico. La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida.

Características de los Productos de Software Mantenibles. Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones. Confiabilidad. El software no debe causar danos físicos o económicos en el caso de fallos. Eficiencia. El software no debe desperdiciar los recursos del sistema. Utilización adecuada. El software debe contar con una interfaz de usuario adecuada y su documentación.

Importancia de las características del producto La importancia relativa de las características depende en el tipo de producto y en el ambiente en el que será utilizado. En algunos casos, algunos atributos pueden dominar. En sistemas de seguridad críticos de tiempo real, los atributos clave pueden ser la confiabilidad y la eficiencia. Los costos tienden a crecer exponencialmente si son requeridos altos niveles de alguna característica.

Que contiene el software ? El software contiene: Líneas de código de algún lenguaje ? Instrucciones de computadora. Descripción de las estructuras de datos. Algoritmos. Procedimientos y funciones. Componentes de software.

Que tipos de software hay ? Por su estructura: Funcionales. Orientados a objetos. Orientados a listas. Orientados a componentes. Por su funcion: Programas o Sistemas de Usuario Interfaces Hombre-Maquina. Herramientas de Software. Librerias. Sistemas de uso generico: Compiladores, S.O’s, Procesadores de Texto, etc. Bases de Datos. Sistemas basados en Web.

Que tipos de software hay ? Por su plataforma de computo: Sistemas embebidos. Sistemas de computo distribuido. Sistemas de computo paralelo. Sistemas de tiempo real. Sistemas basados en Chips. Wearable computing systems. Sistemas de computo ubiquos.

Costos del Software Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo mas caro que la PC. Cuesta mas mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica. La Ingeniería de Software concierne a un desarrollo efectivo en cuanto a costes del software.

El Proceso de Software Conjunto estructurado de actividades requeridas para desarrollar un sistema de software. Especificación- que debe hacer el software y cuales son sus especificaciones de desarrollo. Desarrollo – produccion del sistema de software. Validación – verificar que el software hace lo que el cliente pide. Evolución – cambiar/adaptar el software a las demandas. Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse. Debe estar explícitamente modelado si va a ser bien administrado.

Proceso Genérico de Software Especificación - establecer los requerimientos y restricciones del sistema Diseño - Producir un modelo en papel del sistema Manufactura - construir el sistema Prueba - verificar que el sistema cumpla con las especificaciones requeridas Instalación - entregar el sistema al usuario y asegurar su operacionalidad Mantenimiento - reparar fallos en el sistema cundo sea descubiertos

Características del proceso Entendible Se encuentra el proceso bien definido y es entendible ?. Visible El proceso es visible al exterior ?. Soportable Puede el proceso ser soportado por herramientas CASE ?. Aceptable El proceso es aceptado por aquellos involucrados en el ?.

Características del proceso Confiable Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ?. Robusto Puede continuar el proceso a pesar de problemas inesperados ?. Mantenible Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?. Rapidez Que tan rápido puede producirse el sistema ?.

Problemas en el Modelo del Proceso Normalmente, las especificaciones son incompletas o anómalas No existe una distinción precisa entre la especificación, el diseño y la manufactura Solo hasta que el sistema se ha producido se puede probar El software no se puede remplazar siempre durante el mantenimiento

Modelos de Desarrollo de Software Representacion formal o simplificada de processo de software. Modelos Genericos: Modelo de Cascada Separar en distintas fases de especificación y desarrollo. Desarrollo Evolutivo La especificación y el desarrollo están intercalados. Prototipado Un modelo sirve de prototipo para la construcción del sistema final. Transformación Formal Un modelo matemático del sistema se transforma formalmente en la implementación. Desarrollo basado en Reutilización El sistema es ensamblado a partir de componentes existentes.

Modelo de Cascada (gráfica) Definición de Requerimientos Diseño del Software y del Sistema Implementación y Prueba de unidades Integración y Prueba del Sistema Operación y Mantenimiento

Fases del Modelo de Cascada Análisis de requerimientos y definición. Diseño del sistema y del software. Implementación y prueba de unidades Integración y prueba del sistema. Operación y mantenimiento. La dificultad en esta modelo reside, en la dificultad de hacer cambios entre etapas.

Actividades Concurrentes Desarrollo Evolutivo Actividades Concurrentes Versión Inicial Especificación Descripción del sistema Desarrollo Versiones Intermedias Versión Final Validación

Desarrollo Evolutivo Problemas Aplicabilidad Poca visibilidad en el proceso Los sistemas están pobremente especificados Se requieren habilidades especiales. Aplicabilidad Para sistemas interactivos pequeños o medianos. Para partes de sistemas grandes (p.ej. la interfaz de usuario). Para sistemas de corta vida.

Prototipado Prototipado exploratorio Prototipado de “throw-away”. El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a partir de una especificación inicial. Se debe comenzar con unas especificaciones bien entendidas. Prototipado de “throw-away”. El objetivo es entender los requerimientos del sistema. Se puede comenzar con especificaciones poco entendidas.

Problemas y Riesgos con los Modelos. Cascada. Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño. Bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida. Prototipado. Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y el diseño se llevan a cabo paso a paso. Alto riesgo debido a falta de visibilidad Evolutivo. Alto riesgo debido a la necesidad de tecnología avanzada y habilidades del grupo desarrollador.

Manejo de Riesgos La tarea principal del administrador consiste en minimizar riesgos. El “riesgo” inherente en una actividad es se mide en base a la incertidumbre que presenta el resultado de esa actividad. Las actividades con alto riesgo causan sobre-costes en cuanto a planeación y costos El riesgo es proporcional al monto de la calidad de la información disponible. Cuanto menos información, mayor el riesgo.

Modelos de Procesos Híbridos Los sistemas grandes están hechos usualmente de varios subsistemas. No es necesario utilizar el mismo modelo de proceso para todos los subsistemas. El prototipado es recomendado cuando existen especificaciones de alto riesgo. El modelo de cascada es utilizado en desarrollos bien comprendidos.

Modelo de Proceso de Espiral Determine objetivos alternativas y restricciones Evalúe alternativas, identifique y resuelva riesgos Análisis de Riesgos Análisis de Riesgos Análisis de Riesgos Prototipo Operacional Prototipo 3 Análisis de Riesgos Prototipo 2 Proto tipo 3 REVISIÓN Simulaciones, modelos y benchmarks Plan de requerimientos Plan del ciclo de vida Concepto de Operación Requeri mientos de SW Diseño del Producto Diseño Detallado Plan de Desarrollo Validación de Requerimientos Codificación Prueba de Unidades Plan de Integración y Prueba Diseño V &V Prueba de Integración Prueba de Aceptación Planea la siguiente fase Desarrolla y verifica el siguiente nivel del producto Servicio

Fases del Modelo de Espiral Planteamiento de Objetivos Se identifican los objetivos específicos para cada fase del proyecto. Identificación y reducción de riesgos. Los riesgos clave se identifican y analizan, y la información sirve para minimizar los riesgos. Desarrollo y Validación. Se elige un modelo apropiado para la siguiente fase del desarrollo. Planeación. Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.

Plantilla para una ronda del espiral Objetivos. Restricciones. Alternativas. Riesgos. Resolución de riesgos. Resultados. Planes. Garantías (commitments).

Ventajas del Modelo de Espiral Centra su atención en la reutilización de componentes y eliminación de errores en información descubierta en fases iniciales. Los objetivos de calidad son el primer objetivo. Integra desarrollo con mantenimiento. Provee un marco de desarrollo de hardware/software.

Problemas con el Modelo de Espiral El desarrollo contractual especifica el modelo del proceso y los resultados a entregar por adelantado. Requiere de experiencia en la identificación de riesgos. Requiere refinamiento para uso generalizado.

Que modelo utilizar ? Para sistemas bien comprendidos utiliza el Modelo de Cascada. La fase de análisis de riesgos es relativamente fácil. Con requerimientos estables y sistemas de seguridad críticos, utiliza modelos formales. Con especificaciones incompletas, utiliza el modelo de prototipado. Pueden utilizarse modelos híbridos en distintas partes del desarrollo.

Visibilidad de Procesos Los sistemas de software son intangibles por lo que los administradores necesitan documentación para identificar el progreso en el desarrollo. Esto puede causar problemas.. El tiempo planeado para entrega de resultados puede no coincidir con el tiempo necesario para completar una actividad. La necesidad de producir documentos restringe la iteración entre procesos. .El tiempo para revisar y aprobar documentos es significativo. El modelo de cascada es aún el modelo basado en resultados mas utilizado.

Retos de la Ingenieria de Software Mantener y tratar con sistemas legados. Tratar con una mayor diversidad de sistemas con mayores demandas de computo, y menores tiempos de entrega Sistemas Legados Sistemas entiguos que deben ser mantenidos y mejorados. Hetereogenidad Sistemas que incluyen una mezcla de software y hardware. Entrega Existe una presion incremental por una entrega a tiempo de los productos de software. Formalidad. Existe una gran demanda de que exista formalidad en el proceso de desarrollo de software

Retos de la Ingenieria de Software Por que no podemos desarrollar sistemas de software con tecnicas formales como lo hacen los Ingenieros en Electronica, los Ing. Quimicos o los Ingenieros Topográficos, Civiles. ?

GRACIAS POR SU ATENCIÓN

PREGUNTAS