• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Apuntes2
 

Apuntes2

on

  • 498 views

 

Statistics

Views

Total Views
498
Views on SlideShare
498
Embed Views
0

Actions

Likes
0
Downloads
26
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Apuntes2 Apuntes2 Presentation Transcript

    • tema 1 – introducción a la ingeniería del software enrique barreiro departamento de informática universidade de vigo escuela superior de ingeniería informática ingeniería del software de gestión
    • características y evolución del software tema 1 – introducción a la ingeniería del software un poco de historia primeras décadas: desarrollar el hardware reducir costes de procesamiento y almacenamiento década de los ochenta: desarrollo de la microelectrónica mayor potencia de cálculo y reducción de costes objetivo actual: mejorar la calidad de las soluciones software. 1959 - 1965 1965 - 1975 1975 - 1989 1989 -  Sistemas distribuidos  Potentes sistemas  Orientación  Multiusuario  Inteligencia Artificial de sobremesa  Tiempo real por lotes  Hardware de bajo  Tecnología de objetos  Bases de datos  Distribución coste  Sistemas expertos  Software como limitada  Impacto en el  Redes neuronales producto  Software a consumo  Cliente/servidor  Mayores gastos medida  Redes area local  Tecnologías de de mantenimiento y global Internet.  Gran demanda AUMENTAN los problemas del desarrollo de software:  Subexplotación del potencial del hardware  Incapacidad de atender a la demanda  Incapacidad de mantener el software existente© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 2 / 41
    • características y evolución del software tema 1 – introducción a la ingeniería del software software programas archivos de configuración documentación de la estructura del sistema manuales de instalación y uso sitios web con información y actualizaciones tipos de software productos genéricos sistemas producidos por una organización y que se venden en el mercado abierto sistemas gestores de bases de datos, procesadores de texto, paquetes gráficos,... la organización controla la especificación productos personalizados desarrollados específicamente para un cliente aplicaciones de negocio, sistemas de control de tráfico aéreo, control de procesos de fabricación,... el cliente controla la especificación de la aplicación© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 3 / 41
    • características y evolución del software tema 1 – introducción a la ingeniería del software El software desde una perspectiva industrial El valor del software: de “elemento añadido” a principal elemento de coste El desarrollo del software: Algunas preguntas: ¿Por qué se tarda tanto? (y casi siempre más de lo previsto) ¿Por qué la productividad es tan baja? ¿Por qué cuesta tanto? ¿Por qué siempre quedan errores sin localizar?© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 4 / 41
    • naturaleza y problemas del desarrollo de software tema 1 – introducción a la ingeniería del software El software como elemento lógico. Se desarrolla, no se fabrica: Calidad del diseño. Costes más importantes en la ingeniería Gestión especial de los proyectos Se “deteriora” con el mantenimiento Desarrollo a medida (ausencia de componentes) La “crisis” del software: problemas que aparecen en el desarrollo del software al desarrollar, mantener y atender la demanda de nuevas aplicaciones. Sin tiempo para recoger datos históricos Planificación y estimaciones imprecisas Dificultad de mantener el software existente Insatisfacción del cliente Calidad Baja productividad© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 5 / 41
    • naturaleza y problemas del desarrollo de software tema 1 – introducción a la ingeniería del software Causas de la crisis del software Naturaleza lógica del software Mala gestión de los proyectos ( ausencia de datos, deficiente comunicación, ...) Ausencia de entrenamiento formal en nuevas técnicas (programadores vs. ingenieros de software) MITOS DE GESTIÓN Resistencia al cambio - Uso de estándares Mitos del software: - Uso de herramientas - Mala planificación: aumento de programadores MITOS DE LOS DESARROLLADORES MITOS DEL CLIENTE - Programa funcionando = fin del trabajo - Requisitos establecidos como - Calidad = el programa se ejecuta una declaración general de sin errores objetivos - Entrega al cliente: programa - Flexibilidad del software ante funcionando los cambios© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 6 / 41
    • la ingeniería del software tema 1 – introducción a la ingeniería del software definiciones establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico, fiable, eficiente y que satisfaga las necesidades del usuario disciplina que comprende todos los aspectos de la producción de software, desde las etapas iniciales hasta el mantenimiento: “disciplina de ingeniería”: aplicación de teorías, métodos y herramientas para solucionar problemas, y teniendo en cuenta restricciones financieras y organizativas “todos los aspectos de producción”: comprende procesos técnicos del desarrollo y actividades como la administración de proyectos, desarrollo de herramientas, métodos y teorías actividad de modelado solución de problemas adquisición de conocimiento dirigida por una fundamentación© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 7 / 41
    • la ingeniería del software tema 1 – introducción a la ingeniería del software trata de ser la respuesta a la crisis del software combinación de elementos: métodos completos para todas las fases mejores técnicas de control de calidad mejores elementos de programación herramientas para automatizar los métodos filosofía de coordinación, control y buena gestión© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 8 / 41
    • modelado tema 1 – introducción a la ingeniería del software modelado: método básico de la ciencia modelo representación abstracta de un sistema que da respuesta a preguntas sobre el sistema útiles cuando se manejan sistemas grandes, pequeños, complicados o caros para tener una experiencia de primera mano permiten visualizar y comprender sistemas que no existen o que sólo se supone que existen ejemplos: biología: modelos de dinosaurios a partir de restos física: modelos que representan cómo se reúnen materia y energía en los niveles subatómicos más bajos el sistema en el mundo real serían dinosaurios o partículas subatómicas modelos© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 9 / 41
    • modelado tema 1 – introducción a la ingeniería del software los ingenieros de software necesitan comprender el ambiente de funcionamiento del sistema: construyen modelos del dominio del problema (sistemas de bolsa, control de tráfico aéreo,...) comprender los distintos sistemas que podrían construir para evaluar alternativas: construyen modelos del dominio de la solución SI ST EMA DE PA GOS Y Sol ici ta r b iene s o servicios FA CT URA CIÓN técnicas y herramientas para construir los modelos (por ejemplo, diagramas de UML) iniciador Co nf irm ar p ed ido iniciador <<subsistema>> Enviar factura al comprador Sistema de iniciador visión Hojear fact uras iniciador <<subsistema>> Pagar factura Vendedor <<subsistema>> <<subsistema>> Comprador <<extend>> Controlador del Co ntrolador del iniciador brazo asidero <<subsistema>> Re al iza r t ransa cció n Sistema d e i dentificaci ón Pagar recargo por saldo deudor de objetos Pl anificar pago Rechazar fact ura factura Sistema de cuentas bancarias <<subsistema>> Pagar factura en día <<subsistema>> <<subsistema>> <<subsistema>> Contro lado r de cinta Sistem a de selección En vi ar aviso vencimiento de em balajes Sistema de transportadora embalaje© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 10 / 41
    • solución de problemas tema 1 – introducción a la ingeniería del software los ingenieros de software buscan una solución adecuada, en varios pasos: • Formular el problema • Analizar el problema • Buscar soluciones • Decidir la solución más adecuada • Especificar la solución actividades básicas del desarrollo • obtención de requerimientos • análisis • diseño del sistema • implementación otras actividades del desarrollo para evaluar la adecuación de los modelos revisiones del análisis: el modelo del dominio del problema se compara con la realidad del cliente revisiones del diseño: el modelo del dominio de la solución se compara con los objetivos del proyecto pruebas: el sistema se valida contra el modelo del dominio de la solución administración del proyecto: se compara el modelo del proceso de desarrollo (calendario y presupuesto) con la realidad (trabajos entregados y recursos gastados)© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 11 / 41
    • participantes y papeles tema 1 – introducción a la ingeniería del software participantes: todas las personas involucradas en el proyecto cliente: encarga y paga el sistema desarrolladores: construyen el sistema (analistas, diseñadores, programadores,...) gerente o director del proyecto: planifica y calcula el presupuesto, coordina a los desarrolladores y cliente usuarios finales: los que van a utilizar el sistema papel (rol) conjunto de responsabilidades en el proyecto o en el sistema asociado con un conjunto de tareas y se asigna a un participante un mismo participante puede cumplir varios papeles© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 12 / 41
    • otros conceptos de la ingeniería del software tema 1 – introducción a la ingeniería del software sistemas y modelos sistema: realidad subyacente modelo: cualquier abstracción de la realidad productos de trabajo artefacto o elemento que se produce durante el desarrollo (documento, fragmento de software,...) dos tipos: producto de trabajo interno: producto para el consumo interno del proyecto (por ejemplo, una revisión de la estructura de la base de datos, resultados de pruebas para el gerente,...) entrega: producto de trabajo para un cliente (especificación de requisitos, manual de usuario, producto final,...) actividades, tareas y recursos actividad (o fase): conjunto de tareas que se realiza con un propósito específico (obtención de requisitos, entrega, administración,...) que pueden componerse de otras actividades tarea: unidad elemental de trabajo que puede ser administrada; consumen recursos, dan como resultado productos de trabajo y dependen de productos de trabajo producidos por otras tareas recursos: bienes que se utilizan para realizar el trabajo: tiempo, equipamiento y recursos humanos al planificar, el gerente divide el trabajo en tareas y les asigna recursos© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 13 / 41
    • otros conceptos de la ingeniería del software tema 1 – introducción a la ingeniería del software objetivos, requerimientos y restricciones objetivos: principios de alto nivel que se utilizan para guiar el proyecto definen los atributos realmente importantes del sistema (seguridad, fiabilidad,...) a veces hay conflicto entre objetivos (por ejemplo, seguridad y bajo coste) que aumentan la complejidad del proyecto requerimientos características que debe tener el sistema requerimiento funcional: área de funcionalidad que debe soportar el sistema (por ejemplo, proporcionar billetes de tren) requerimiento no funcional: restricción que se establece sobre el funcionamiento del sistema (por ejemplo, proporcionar billetes de tren en menos de un segundo) otras restricciones: por ejemplo, utilización de un determinado lenguaje, de una determinada plataforma o de un sistema antiguo que el cliente no quiere retirar© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 14 / 41
    • otros conceptos de la ingeniería del software tema 1 – introducción a la ingeniería del software notaciones, métodos y metodologías notación: conjunto de reglas gráficas o de texto para representar un modelo (UML, Unified Modelling Language, es una notación gráfica orientada a objetos para representar modelos) método: técnica repetible para resolver un problema específico. Por ejemplo: un algoritmo de ordenación es un método para ordenar elementos en una lista la administración de la configuración es un método para el seguimiento de los cambios metodología: colección de métodos para la resolución de una clase de problemas (OMT, metodología de Booch, Catalysis, Proceso Unificado de Desarrollo,...)© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 15 / 41
    • actividades de desarrollo tema 1 – introducción a la ingeniería del software ingeniería de requerimientos ReservaBilletes el cliente y los desarrolladores definen el propósito y objetivos del sistema Viajero CompraBillete resultado: descripción del sistema en términos de participantes (actores) y funciones (casos de uso) Anulación reserva actores: entidades externas que interactúan con el sistema (incluyen roles como Nombre del caso de uso: CompraBillete usuarios finales u otros sistemas con los que Actor participante: Iniciado por Viajero interactúa el sistema) Precondición: casos de uso: secuencias de 1. El Viajero se para frente al distribuidor automático de billetes eventos que describen todas las acciones posibles entre un Flujo de eventos: actor y el sistema para una 2. El Viajero selecciona las estaciones de origen y destino función específica. 3. El DistribuidorDeBilletes muestra el precio del billete 4. El Viajero inserta una cantidad de dinero que, al menos, debe se acuerdan requisitos no ser igual que el precio del billete funcionales. Por ejemplo: 5. El DistribuidorDeBilletes emite el billete especificado al Viajero y devuelve el cambio si es necesario el distribuidor de billetes debe estar disponible al menos un Postcondición: 95% del tiempo 6. El Viajero coge el billete y el cambio el distribuidor de billetes debe dar respuesta en menos de un Requisitos especiales: segundo después de Si la transacción no ser termina después de un minuto de seleccionada la transacción inactividad, el DistribuidorDeBilletes devuelve todo el dinero insertado© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 16 / 41
    • actividades de desarrollo tema 1 – introducción a la ingeniería del software análisis se produce un modelo correcto, completo, consistente, claro, realista y verificable transformación de los casos de uso en un modelo que describe por completo el sistema y que se usará en el diseño descubrimiento y resolución con el cliente de ambigüedades e inconsistencias en el modelo de casos de uso Transacción da como resultado cantidad pagada BilleteTren Saldo válido para Zona Moneda Papel© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 17 / 41
    • actividades de desarrollo tema 1 – introducción a la ingeniería del software diseño diseño del sistema Gestión facturas comprador definición de los objetivos de diseño descomposición del sistema en subsistemas abordables por equipos selección de estrategias para la construcción (plataformas hardware y software, almacenamiento de datos persistentes, control de acceso,...) Gestión de planificación Gestión de de p agos cuentas resultado: descripción de las estrategias, descomposición en subsistema diseño de objetos: definición de objetos e interfaces de subsistemas, reestructuración del modelo de IU Solicitud de pago objetos para lograr los objetivos de diseño, optimización del modelo para mejorar el Co mprado r rendimiento,... Procesamiento de resultado: modelo de objetos detallado solicitudes de pago actividades del diseño Planificador Gestor de Procesamiento de facturas diseño arquitectónico de pagos especificación de los subsistemas pedidos diseño de interfaz Solicitud Confirmación de pedidos Factura diseño de componentes de pago diseño de la estructura de datos diseño procedimental (algoritmos)© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 18 / 41
    • tema 1 – introducción a la ingeniería del software <<subsystem>> <<subsystem>> Gestión Trabajos Gestión Sistema <<s ubsyst em>> Externos Mantenimientos de Gestión <<subsystem>> <<subsystem>> <<subsystem>> Gestión Mantenimiento Validación Gestión Correctivo Usuarios Instalaciones <<subsystem>> Gestión Mantenimiento <<subsystem>> Preventivo Gestión Subgrupos-Instalaciones <<subsystem>> Gestión Máquinas Subgrupo© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 19 / 41
    • tema 1 – introducción a la ingeniería del software Alta Instalaciones <<subsystem>> <<subsystem>> <<include>> Gestión Trabajos Gestión Sistema <<s ubsystem>> Externos Mantenimientos de Gestión <<include>> Baja Instalaciones <<include>> Validar Usuario <<subsystem>> <<subsystem>> <<subsystem>> Administrador Gestión Mantenimiento Validación Gestión <<include>> (from Validación Usuarios) Correctivo Usuarios Instalaciones (from Validación Usuarios) Modificación Instalaciones <<subsystem>> Gestión Mantenimiento <<subsystem>> Preventivo Gestión Consulta Inst alaciones Operario Subgrupos-Instalaciones (from Validación Usuarios) <<subsystem>> Gestión Máquinas Subgrupo <<subsystem>> Alta Características-Maq Gestión <<include>> Máquinas <<include>> Baja Características-Maq <<include>> Gest ión Carac teríst icas Gestión Tareas Validar Usuario Máquinas Máquinas Administrador <<inc lude>> (f ro m Va li dació n Us ri os) ua (f ro m Va li dació n Usua ri os) Modificación Características-Maq Consulta Características-Maq Operario (from Valida ción Usu arios)© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 20 / 41
    • tema 1 – introducción a la ingeniería del software Nombre Alta Características Máquina Prioridad Media Actor Administrador Extends Ninguno Includes Validar Usuario Pre-Condiciones 1. El usuario está identificado. 2. El usuario selecciona la opción de altas en el formulario. Post-Condiciones 1. Los datos de la nueva característica quedan : A dmi nistra dor Opciones Frm CTRL Alta Form_Alta Validar Da tos Resultado Alta MENSAJES Cliente Instalación INST ALACION guardados si el proceso finaliza correctamente. 2. Los datos de la nueva característica no quedan Seleccionar guardados si se produce algún error durante el proceso. Cre a() Descripción 1. El sistema muestra el formulario de altas. Crea() 2. El usuario introduce los datos. 3. El sistema realiza la validación de los datos. 4. Si la característica ya existe [A]. Mostrar 5. Si los datos no son correctos [B]. 6. El usuario selecciona la opción de Guardar. 7. El sistema guarda los datos. 8. Si se guarda correctamente se visualiza un mensaje, Introducir Datos() si hay algún problema el sistema avisa con un Comprobar() mensaje de error. Excepciones El proceso se puede cancelar en cualquier momento. A. Si la característica ya existe se visualizan sus datos. Obtener Datos ... B. Datos incorrectos, ir a punto 2. Mostrar(Datos) Cubrir_Datos() Si no Existe Comprobar() Datos Correctos Crear_Alta() Alta Características-Maq <<include>> Construir <<include>> Visualizar Resultado Baja Características-Maq <<include>> Validar Usuario Construir Datos no Correctos Administrador <<inc lude>> (f ro m Va li dació n Us ri os) ua (f ro m Va li dació n Us ri os) ua Modificación Características-Maq Visualizar Mensaje Fin S i Fin S i Consulta Características-Maq Operario (from Valida ción Us arios) u© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 21 / 41
    • tema 1 – introducción a la ingeniería del software Nombre Alta Características Máquina Prioridad Media Actor Administrador Extends Ninguno Includes Validar Usuario Pre-Condiciones 1. El usuario está identificado. 2. El usuario selecciona la opción de altas en el Sistema (from Validar Usuario) Administr ador (from Al ta Máquinas) formulario. Administrador Validado Post-Condiciones 1. Los datos de la nueva característica quedan guardados si el proceso finaliza correctamente. 2. Los datos de la nueva característica no quedan guardados si se produce algún error durante el proceso. Descripción 1. El sistema muestra el formulario de altas. 2. El usuario introduce los datos. Visualizar Seleccionar Formulario Formulario 3. El sistema realiza la validación de los datos. 4. Si la característica ya existe [A]. 5. Si los datos no son correctos [B]. 6. El usuario selecciona la opción de Guardar. Comprobar Introducir 7. El sistema guarda los datos. Datos Datos 8. Si se guarda correctamente se visualiza un mensaje, si hay algún problema el sistema avisa con un mensaje de error. Datos Incorrectos Mensaje "Error Excepciones El proceso se puede cancelar en cualquier momento. Datos" A. Si la característica ya existe se visualizan sus datos. Datos Correctos B. Datos incorrectos, ir a punto 2. Comprobar Existencia de la Ins talación Si Existe Visualizar Datos Instalación No Existe Seleccionar Guardar Alta Características-Maq Guardar Datos <<include>> Ins talación <<include>> Error al Guardar Mensaje "Error" Baja Características-Maq <<include>> In stalación Guarda da Validar Usuario Administrador Mensaje "Inst alación <<inc lude>> (f ro m Va li dació n Us ri os) ua guardada" (f ro m Va li dació n Us ri os) ua Modificación Características-Maq Consulta Características-Maq Operario (from Valida ción Us arios) u© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 22 / 41
    • tema 1 – introducción a la ingeniería del software Registra-venta-de Descrita-por 1 n Especificacion 0..1 CatalogoDe LineaDeVenta DelProducto Product os Contiene cantidad descripción 1 1..n precio 1 articuloID 1.. n Utilizado-por n Contenida-en Tienda Abastece Registra-completas direc ción Articulo nombre 1 1 n 1..n 1 Venta 1 n Alberga fecha 1..n Iniciado-por hora 1 Registro 1 1 Encargado Capturada-en 1 1 1 1 Pagada-mediante Iniciada-por Registra-ventas-en 1 1 Pago 1 Cliente cantidad Cajero© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 23 / 41
    • tema 1 – introducción a la ingeniería del software ODBC Servidor SGBD TCP/IP TCP/IP Red Local Impresora Cliente TCP/IP Cliente© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 24 / 41
    • tema 1 – introducción a la ingeniería del software© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 25 / 41
    • actividades de desarrollo tema 1 – introducción a la ingeniería del software implementación traducción del modelo de diseño (por ejemplo, del modelo de objetos) en código fuente incluye: implementación de atributos y métodos de cada objeto integración de todos los objetos para que funcionen como un solo sistema pruebas pruebas de unidad: comparación del modelo de diseño con cada objeto y subsistema pruebas de integración: combinaciones de subsistemas y comparación con el modelo de diseño del sistema pruebas del sistema: ejecución de casos típicos y excepcionales, y comparación con el modelo de requerimientos objetivo: descubrir la mayor cantidad posible de errores que se puedan reparar antes de entregar el sistema mantenimiento mejoras en el sistema (nuevas funciones, facilidad de uso,...) corrección de errores adaptación a cambios en el entorno (hardware, software, legislación,...) actividad más costosa del ciclo de vida de un producto software© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 26 / 41
    • actividades de desarrollo tema 1 – introducción a la ingeniería del software actividades de administración del desarrollo comunicación actividad crítica y costosa en tiempo intercambio de modelos y documentos, informes de evolución y calidad, negociaciones, comunicación de decisiones,... herramientas y notaciones gestión de la configuración proceso que supervisa y controla los cambios en los productos de trabajo cambios: requerimientos, plataformas hardware y software, errores encontrados, mejoras del sistema,... administración del proyecto objetivo: asegurar la entrega de un sistema de alta calidad a tiempo y dentro del presupuesto planificación y presupuesto del proyecto contratación de desarrolladores y coordinación de equipos vigilancia de la evolución del proyecto detección de desviaciones e intervención© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 27 / 41
    • el proceso de desarrollo tema 1 – introducción a la ingeniería del software© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 28 / 41
    • el proceso: modelos de desarrollo tema 1 – introducción a la ingeniería del software proceso conjunto ordenado de tareas, una serie de pasos que involucran actividades, restricciones y recursos, que producen una salida determinada proceso de software: conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema software características tiene una serie de actividades principales utiliza recursos, está sujeto a restricciones y genera productos intermedios y finales compuesto por subprocesos que se encadenan de alguna forma cada actividad tiene sus criterios de entrada y salida, que permiten conocer cuando comienza y termina dicha actividad existen principios orientadores que explican las metas de cada actividad cuando implica la construcción de un producto, se suele llamar ciclo de vida aportan consistencia y estructura sobre el conjunto de actividades, lo que permite realizar la misma tarea correctamente de forma repetida existen diferentes modelos de proceso Requisitos del usuario Sistema software Proceso de desarrollo de Software© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 29 / 41
    • modelo en cascada tema 1 – introducción a la ingeniería del software Requerimentos y Análisis Diseño Implementación Pruebas Mantenimiento resultado de cada fase: uno o más se retrasa la localización y corrección documentos aprobados de errores una fase comienza cuando la anterior pueden producir sistemas poco útiles termina para usuarios o mal estructurados en la práctica, las etapas se solapan inflexibilidad del modelo: dificultad para responder a cambios en los iteraciones de coste elevado y requerimientos reelaboración del trabajo: tendencia a la congelación de partes del desarrollo (especificaciones,...)© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 30 / 41
    • desarrollo evolutivo tema 1 – introducción a la ingeniería del software basado en: dos tipos: desarrollo de una implementación prototipado evolutivo: inicial trabajo con cliente para explorar exposición a comentarios y crítica del sus requerimientos y entregar un usuario sistema final evolución continua del prototipo refinamiento a través de diferentes mediante la agregación de versiones hasta llegar a un sistema funciones y características adecuado propuestas por el cliente prototipos desechables Recolección comprensión de las necesidades y refinamiento de del cliente requisitos desarrollo de una definición mejorada de los requerimientos del sistema Producto prototipos centrados en la Diseño experimentación de requisitos rápido poco claros o complejos problemas prisas del cliente (utilización del prototipo como sistema final Refinamiento Construcción pasar elecciones debidas al prototipo a del prototipo del prototipo la implementación final (entorno, sistema operativo,...) estructura deficiente Evaluación del evolución del proceso difícil de gestionar prototipo por herramientas y técnicas especiales el cliente poco adecuado para grandes sistemas© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 31 / 41
    • prototipado con lenguajes visuales tema 1 – introducción a la ingeniería del software H ypertext Date component display component File Edit Views Layout Options Help G eneral 12th January 2000 Index Range checking 3.876 script User prompt component + Draw canvas script component Tree display component fuente: I. Sommerville, Software Engineering, 6th ed.,2000© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 32 / 41
    • desarrollo incremental tema 1 – introducción a la ingeniería del software Definición general de requerimientos pasos identificación y priorización de funciones y servicios Asignación de requerimientos a incrementos definición de varios requerimientos que proporcionan parte de la funcionalidad, según la prioridad (los más importantes se entregan Diseño de la arquitectura del antes) sistema definición detallada de requerimientos del incremento y desarrollo con el proceso más adecuado Desarrollo de incrementos congelación de requerimientos de incrementos del sistema desarrollados puesta en explotación de los incrementos Validar completados y entregados incrementos ventajas Integrar puesta en marcha temprana incrementos los incrementos iniciales permiten refinar requerimientos de incrementos posteriores Validar satisfacción del cliente (bajo riesgo de fallo) sistema sistema final muy probado y con pocos fallos problemas sistema incompleto incrementos relativamente pequeños sistema completo adaptación de requerimientos a incrementos del tamaño apropiado Sistema final identificación de recursos comunes a todos los incrementos© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 33 / 41
    • modelo en espiral tema 1 – introducción a la ingeniería del software PROGRESO propuesto por Barry A TRAVÉS Boehm DETERMINAR OBJETIVOS, DE LAS ITERACIONES EVALUAR ALTERNATIVAS, ALTERNATIVAS Y IDENTIFICAR Y RESOLVER RIESGOS organización en ciclos RESTRICCIONES Análisis de riesgos primer ciclo: factibilidad segundo ciclo: requerimientos Análisis de riesgos tercer ciclo: diseño ... Análisis de riesgos Prototipo cada ciclo se divide en 4 An. Prototipo 3 operativo sectores Riesgo. Proto- Prototipo 2 - REVISIÓN tipo 1 definición de objetivos, restricciones del producto Plan de Simulaciones, modelos, . y proceso, plan de requerimientos Concepto de pruebas comparativas Plan de ciclo administración,... de vida operación Requerimientos de software evaluación y reducción de Diseño del Diseño riesgos (por ejemplo, producto detallado mejor definición de Plan de Validación de requerimientos desarrollo requerimientos mediante prototipos) Codificar Plan de integración Diseño de validación desarrollo y validación: y prueba y verificación Prueba de elección de un modelo PLANIFICAR SIGUIENTE unidad para el desarrollo FASE Prueba de integración planificación: el proyecto Prueba de se revisa y se decide si se - aceptación continúa con el siguiente Explotación ciclo. si es así, se planifica DESARROLLAR, VERIFICAR PRODUCTO DE SIGUIENTE NIVEL la siguiente fase© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 34 / 41
    • el proceso unificado de desarrollo tema 1 – introducción a la ingeniería del software proceso unificado de desarrollo propuesto por los autores de UML (lenguaje unificado de desarrollo) basado en componentes interconectados a través de interfaces utiliza UML para desarrollar los esquemas y diagramas de un sistema software principales aspectos definitorios dirigido por casos de uso centrado en la arquitectura iterativo e incremental Requisitos del usuario Sistema software Proceso de desarrollo de Software© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 35 / 41
    • el proceso unificado: dirigido por casos de uso tema 1 – introducción a la ingeniería del software para construir un sistema con éxito hay que conocer las necesidades y deseos de los futuros usuarios usuario personas que trabajan y necesitan el sistema otros sistemas que interactúan con el que estamos desarrollando interacción: usuario inserta tarjeta en cajero automático Retirar dinero usuario responde sobre la pantalla a las preguntas que realiza el cajero el usuario recibe una cantidad de dinero y su tarjeta una interacción así es un caso de uso fragmento de funcionalidad del sistema que proporciona al usuario Cliente del banco Ingresar dinero un resultado importante utilidad casos de uso herramienta para especificar los requisitos de un sistema: representan los requisitos funcionales y juntos constituyen el Transferencia ent re cuentas modelo de casos de uso, que describe la funcionalidad total del sistema guían el proceso de desarrollo (diseño, implementación y prueba) basándose en el modelo de casos de uso, se crean modelos de diseño e implementación se revisa cada modelo para que sean conformes al modelo de casos de uso se prueba la implementación para garantizar que los componentes del modelo de implementación implementan correctamente los casos de uso no sólo inician el proceso de desarrollo sino que éste sigue un hilo de trabajo que parte de los casos de uso© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 36 / 41
    • el proceso unificado: centrado en la arquitectura tema 1 – introducción a la ingeniería del software casos de la arquitectura de un sistema software se uso describe mediante diferentes vistas del sistema en construcción conduce influida por diversos factores guía necesidades de la empresa, tal y como las perciben los usuarios y clientes otros factores, como plataforma de explotación (arquitectura hardware, sistema operativo, gestor de arquitectura bases de datos, protocolos de comunicación,...), componentes reutilizables, sistemas heredados, requisitos no funcionales,... es una vista del diseño completo con las características más importantes resaltadas, Capa específica dejando los detalles de lado. de la aplicación hay una constante interacción entre los casos de uso y la arquitectura, que evolucionan en paralelo los casos de uso deben encajar en la arquitectura cuando se realizan Capa general de la aplicación la arquitectura debe permitir el desarrollo de todos los casos de uso requeridos el arquitecto realiza un esquema en borrador de la arquitectura Capa que no es específica de los casos de uso (por intermedia ejemplo, la plataforma) trabaja con un subconjunto de los casos de uso principales del sistema, especificándolo en detalle y realizándolo en términos de subsistemas, clases y Capa de software componentes del sistema a medida que los casos de uso se especifican y maduran, se descubre más de la arquitectura, lo que a su vez lleva a la maduración de más casos de uso este proceso continúa hasta que se considera que se dispone de una arquitectura estable© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 37 / 41
    • el proceso unificado: iterativo e incremental tema 1 – introducción a la ingeniería del software el trabajo se divide en partes más pequeñas o miniproyectos miniproyecto: una iteración que resulta en un incremento iteración: pasos en el flujo de trabajo incremento: crecimiento del producto las iteraciones están controladas y planificadas factores para seleccionar lo que se implementará en una iteración la iteración se centra en un grupo de casos de uso que juntos amplían la utilidad del producto desarrollado hasta ahora la iteración trata los riesgos más importantes las iteraciones sucesivas se construyen sobre los artefactos de desarrollo tal como quedaron al final de la última iteración en las primeras fases del ciclo de vida los incrementos implican modificaciones en las últimas fases los incrementos implican menos modificaciones y más añadidos a los modelos para cada iteración: identificación y especificación de los casos de uso relevantes creación de un diseño utilizando la arquitectura seleccionada como guía implementación del diseño mediante componentes verificación de que los componentes satisfacen los casos de uso si una iteración cumple con sus objetivos, el desarrollo continúa con la siguiente iteración. Si no, se revisan las decisiones previas y se adopta un nuevo enfoque ventajas proceso iterativo controlado reducción del coste del riesgo a los costes de un solo incremento reducción del riesgo de no sacar al mercado el producto en el calendario previsto se acelera el ritmo del esfuerzo de desarrollo en su totalidad, para obtener resultados claros a corto plazo los requerimientos del usuario se van refinando en iteraciones sucesivas, por lo que se pueden acomodar mejor los cambios© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 38 / 41
    • la vida del proceso unificado tema 1 – introducción a la ingeniería del software el proceso unificado se repite a lo largo de una serie de ciclos cada ciclo concluye con una versión del producto y consta de cuatro fases inicio: descripción del producto final a partir de una idea inicial y análisis de negocio para el producto principales funciones del sistema y usuarios más importantes (modelo de casos de uso) posible arquitectura del sistema plan del proyecto, coste, identificación y priorización de riesgos elaboración: se especifican en detalle los principales casos de uso se diseña la arquitectura del sistema: vistas arquitectónicas del modelo de casos de uso, del modelo de análisis, del modelo de diseño, del modelo de implementación y modelo de despliegue al final se pueden planificar las actividades y estimar recursos necesarios para finalizar el proyecto construcción: se crea el producto añadiendo el software a la arquitectura al final se dispone de todos los casos de uso acordados para el desarrollo aunque puede incorporar defectos transición periodo durante el cual el producto se convierte en versión beta, en la que usuarios prueban el producto e informan de defectos y deficiencias se corrigen problemas e incorporan sugerencias incluye actividades como la formación del usuario, proporcionar una línea de ayuda y asistencia,... cada fase se divide a su vez en iteraciones© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 39 / 41
    • la vida del proceso unificado tema 1 – introducción a la ingeniería del software Fases Flujos de trabajo Inicio Elaboración Construcción Transición fundamentales Requisitos una iteración en la fase de elaboración Análisis Diseño Implementación Prueba iter #1 iter #2 --- --- --- --- --- iter #n-1 iter #n Iteraciones© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 40 / 41
    • bibliografía tema 1 – introducción a la ingeniería del software Bruegge, B., Dutoit, A.H., Ingeniería del Software Orientado a Objetos, cap. 1 Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de Software, cap. 1 Pressman, R.S., Ingeniería del Software. Un enfoque práctico, cap. 1 y 2 Sommerville, I., Ingeniería de Software, cap. 1, 2 y 3© enrique barreiro alonso escuela superior de ingeniería informáticauniversidade de vigo - departamento de informática ingeniería del software de gestión 41 / 41