SlideShare una empresa de Scribd logo
1 de 41
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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade 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ática
universidade de vigo - departamento de informática          ingeniería del software de gestión            35 / 41
Introducción a la ingeniería del software
Introducción a la ingeniería del software
Introducción a la ingeniería del software
Introducción a la ingeniería del software
Introducción a la ingeniería del software
Introducción a la ingeniería del software

Más contenido relacionado

Destacado

Geraniàcies. Daniel Climent Giner
Geraniàcies. Daniel Climent GinerGeraniàcies. Daniel Climent Giner
Geraniàcies. Daniel Climent GinerDaniel Climent Giner
 
Lks kd 1.3 dan 1.4 rsbi
Lks kd 1.3 dan 1.4 rsbiLks kd 1.3 dan 1.4 rsbi
Lks kd 1.3 dan 1.4 rsbiWawan Hidayat
 
Komputer dari waktu ke waktu
Komputer dari waktu ke waktuKomputer dari waktu ke waktu
Komputer dari waktu ke waktureadoneitz
 
Monitoramento e Controle de Máquinas Agrícolas
Monitoramento e Controle de Máquinas AgrícolasMonitoramento e Controle de Máquinas Agrícolas
Monitoramento e Controle de Máquinas Agrícolaspipesmythe
 
Tik k7 kd 1.2 -reguler-
Tik k7 kd 1.2 -reguler-Tik k7 kd 1.2 -reguler-
Tik k7 kd 1.2 -reguler-Wawan Hidayat
 
Botànica i festes IV Jornades etnobotànica Artà 2008
Botànica i festes IV Jornades etnobotànica Artà 2008Botànica i festes IV Jornades etnobotànica Artà 2008
Botànica i festes IV Jornades etnobotànica Artà 2008Daniel Climent Giner
 
Tik k7 kd 1.3 1.4 -reguler-
Tik k7 kd 1.3 1.4 -reguler-Tik k7 kd 1.3 1.4 -reguler-
Tik k7 kd 1.3 1.4 -reguler-Wawan Hidayat
 

Destacado (9)

Geraniàcies. Daniel Climent Giner
Geraniàcies. Daniel Climent GinerGeraniàcies. Daniel Climent Giner
Geraniàcies. Daniel Climent Giner
 
Lks kd 1.3 dan 1.4 rsbi
Lks kd 1.3 dan 1.4 rsbiLks kd 1.3 dan 1.4 rsbi
Lks kd 1.3 dan 1.4 rsbi
 
Komputer dari waktu ke waktu
Komputer dari waktu ke waktuKomputer dari waktu ke waktu
Komputer dari waktu ke waktu
 
Monitoramento e Controle de Máquinas Agrícolas
Monitoramento e Controle de Máquinas AgrícolasMonitoramento e Controle de Máquinas Agrícolas
Monitoramento e Controle de Máquinas Agrícolas
 
social entrepreneurship
social entrepreneurshipsocial entrepreneurship
social entrepreneurship
 
Tik k7 kd 1.2 -reguler-
Tik k7 kd 1.2 -reguler-Tik k7 kd 1.2 -reguler-
Tik k7 kd 1.2 -reguler-
 
Filmography
FilmographyFilmography
Filmography
 
Botànica i festes IV Jornades etnobotànica Artà 2008
Botànica i festes IV Jornades etnobotànica Artà 2008Botànica i festes IV Jornades etnobotànica Artà 2008
Botànica i festes IV Jornades etnobotànica Artà 2008
 
Tik k7 kd 1.3 1.4 -reguler-
Tik k7 kd 1.3 1.4 -reguler-Tik k7 kd 1.3 1.4 -reguler-
Tik k7 kd 1.3 1.4 -reguler-
 

Similar a Introducción a la ingeniería del software

Ingeniería del Software de Gestión. Tema 1
Ingeniería del Software de Gestión. Tema 1Ingeniería del Software de Gestión. Tema 1
Ingeniería del Software de Gestión. Tema 1Enrique Barreiro
 
Mpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnalMpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnalMix Man Deejay
 
Mpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnalMpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnalDibu Cuevas
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptGabriel9876perez
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptrodrigorobert8
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptElkin513014
 
Introducción a la ingeniería de software
Introducción a la ingeniería de softwareIntroducción a la ingeniería de software
Introducción a la ingeniería de softwareAristidesRojas7
 
Exposicion unidad 1 ing software
Exposicion unidad 1 ing softwareExposicion unidad 1 ing software
Exposicion unidad 1 ing softwareuniv of pamplona
 
Introduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftwareIntroduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftwarejhonjaveruribe
 
Introduccion ingdelsoftware2
Introduccion ingdelsoftware2Introduccion ingdelsoftware2
Introduccion ingdelsoftware2Jonh Uribe
 
Ingeneri de software
Ingeneri de softwareIngeneri de software
Ingeneri de softwaredicompu
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareJulio Pari
 
Software Project Management EAN
Software Project Management EANSoftware Project Management EAN
Software Project Management EANRicardo Colonia
 
Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Enrique Barreiro
 
Planificacio y formulacion web d
Planificacio y formulacion web dPlanificacio y formulacion web d
Planificacio y formulacion web ddiana_caluna
 
Grafico tipos de software
Grafico tipos de softwareGrafico tipos de software
Grafico tipos de softwareAngel Chumo
 

Similar a Introducción a la ingeniería del software (20)

Ingeniería del Software de Gestión. Tema 1
Ingeniería del Software de Gestión. Tema 1Ingeniería del Software de Gestión. Tema 1
Ingeniería del Software de Gestión. Tema 1
 
Mpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnalMpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnal
 
Mpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnalMpa1 mental ing de software samuel b.b fnal
Mpa1 mental ing de software samuel b.b fnal
 
Proyecto 11
Proyecto 11Proyecto 11
Proyecto 11
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.ppt
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.ppt
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.ppt
 
Introducción a la ingeniería de software
Introducción a la ingeniería de softwareIntroducción a la ingeniería de software
Introducción a la ingeniería de software
 
Exposicion unidad 1 ing software
Exposicion unidad 1 ing softwareExposicion unidad 1 ing software
Exposicion unidad 1 ing software
 
Apuntes2
Apuntes2Apuntes2
Apuntes2
 
Introduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftwareIntroduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftware
 
Introduccion ingdelsoftware2
Introduccion ingdelsoftware2Introduccion ingdelsoftware2
Introduccion ingdelsoftware2
 
Ingeneri de software
Ingeneri de softwareIngeneri de software
Ingeneri de software
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de software
 
Software Project Management EAN
Software Project Management EANSoftware Project Management EAN
Software Project Management EAN
 
Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
Planificacio y formulacion web d
Planificacio y formulacion web dPlanificacio y formulacion web d
Planificacio y formulacion web d
 
Grafico tipos de software
Grafico tipos de softwareGrafico tipos de software
Grafico tipos de software
 
Omar,luis,daniel
Omar,luis,danielOmar,luis,daniel
Omar,luis,daniel
 

Más de Henrry Eliseo Navarro Chinchilla (20)

Is
IsIs
Is
 
Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02
 
Bucarasica
BucarasicaBucarasica
Bucarasica
 
Bucarasica
BucarasicaBucarasica
Bucarasica
 
5 a bd_servidor
5 a bd_servidor5 a bd_servidor
5 a bd_servidor
 
Introducion uml
Introducion umlIntroducion uml
Introducion uml
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Gestionde fichero
Gestionde ficheroGestionde fichero
Gestionde fichero
 
Metodos en php
Metodos en phpMetodos en php
Metodos en php
 
Grafos
GrafosGrafos
Grafos
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7
 
Exploration network chapter11
Exploration network chapter11Exploration network chapter11
Exploration network chapter11
 
Exploration network chapter10
Exploration network chapter10Exploration network chapter10
Exploration network chapter10
 
Exploration network chapter9
Exploration network chapter9Exploration network chapter9
Exploration network chapter9
 
Exploration network chapter8
Exploration network chapter8Exploration network chapter8
Exploration network chapter8
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7
 
Fichero
FicheroFichero
Fichero
 
Entrada salida
Entrada salidaEntrada salida
Entrada salida
 
Gestión de Almacenamiento
Gestión de AlmacenamientoGestión de Almacenamiento
Gestión de Almacenamiento
 

Introducción a la ingeniería del software

  • 1. 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
  • 2. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 2 / 41
  • 3. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 3 / 41
  • 4. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 4 / 41
  • 5. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 5 / 41
  • 6. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 6 / 41
  • 7. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 7 / 41
  • 8. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 8 / 41
  • 9. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 9 / 41
  • 10. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 10 / 41
  • 11. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 11 / 41
  • 12. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 12 / 41
  • 13. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 13 / 41
  • 14. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 14 / 41
  • 15. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 15 / 41
  • 16. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 16 / 41
  • 17. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 17 / 41
  • 18. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 18 / 41
  • 19. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 19 / 41
  • 20. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 20 / 41
  • 21. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 21 / 41
  • 22. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 22 / 41
  • 23. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 23 / 41
  • 24. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 24 / 41
  • 25. tema 1 – introducción a la ingeniería del software © enrique barreiro alonso escuela superior de ingeniería informática universidade de vigo - departamento de informática ingeniería del software de gestión 25 / 41
  • 26. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 26 / 41
  • 27. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 27 / 41
  • 28. el proceso de desarrollo tema 1 – introducción a la ingeniería del software © enrique barreiro alonso escuela superior de ingeniería informática universidade de vigo - departamento de informática ingeniería del software de gestión 28 / 41
  • 29. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 29 / 41
  • 30. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 30 / 41
  • 31. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 31 / 41
  • 32. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 32 / 41
  • 33. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 33 / 41
  • 34. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 34 / 41
  • 35. 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ática universidade de vigo - departamento de informática ingeniería del software de gestión 35 / 41