introducciÓn a la ingenierÍa del softwareis3_0910... · del software bloque i. tema 1....
TRANSCRIPT
![Page 1: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/1.jpg)
1
INTRODUCCIÓNA LA INGENIERÍA DEL SOFTWARE
Bloque I. Tema 1.
Ingeniería del Software3º curso de ITIG
![Page 2: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/2.jpg)
2
1.1. Introducción
1.2. La complejidad inherente del software
1.3. El ciclo de vida del software
![Page 3: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/3.jpg)
3
¿Qué es software?Software son los programas, la documentación y la configuración de los datos asociados.
Genéricos: Productos de uso genérico (procesadores de texto, paquetes de dibujo, etc.)A medida: Productos específicos para un
cliente particular.
![Page 4: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/4.jpg)
4
¿Qué es software?Software son los programas, la documentación y la configuración de los datos asociados.
Genéricos: Productos de uso genérico (procesadores de texto, paquetes de dibujo, etc.)A medida: Productos específicos para un
cliente particular.
Principal Diferencia: El control de la especificación!!
![Page 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/5.jpg)
5
¿Qué es Ingeniería del Software?
“La Ingeniería del Software es la disciplina de ingeniería encargada de todos los aspectosrelacionados con la producción de software desde sus etapas más tempranas de la especificación del sistema hasta el mantenimiento del sistema tras su puesta en marcha.”
![Page 6: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/6.jpg)
6
¿Qué es Ingeniería del Software?
“Disciplina de ingeniería”Uso apropiado de todas las teorías, métodos y herramientas para solucionar los problemas que aparecen. Incluso teniendo en cuenta restricciones económicas y de organización.
![Page 7: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/7.jpg)
7
¿Qué es Ingeniería del Software?
“Todos los aspectos de la producción de software”
Procesos técnicos de desarrollo, pero también: dirección de proyectos, generación de herramientas específicas para aplicar los métodos y teorías apropiados...
![Page 8: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/8.jpg)
8
Diferencia entre ingeniería del software y ciencia de la computación
Ciencia de la computación: Teorías y métodos subyacentes a las computadoras y los sistemas software.Ingeniería del software: Resolución de problemas prácticos para producir software.
![Page 9: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/9.jpg)
9
Diferencia entre ingeniería del software e ingeniería de sistemas
Los sistemas, hoy en día, incorporan software. Siendo un sistema algo más complejo que el software. Un sistema es un avión, una planta química.El software es una parte de casi todos los sistemas.
![Page 10: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/10.jpg)
10
¿Qué es el proceso software?
Proceso software es el conjunto de actividades y resultados asociados para producir un producto softwareDiferentes actividades u ordenación de las mismas diferentes procesos del software.4 actividades comunes:
Especificación softwareDesarrollo softwareValidación softwareEvolución software
![Page 11: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/11.jpg)
11
Especificación software
Los clientes e ingenieros definen el software a producir y las restricciones para su operación.
Especificad cómo se hace una sangría
![Page 12: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/12.jpg)
12
Desarrollo software
Relacionado con el diseño y programación del software.
Realizad la sangría
![Page 13: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/13.jpg)
13
Validación del software
El software se valida (comprueba) para asegurar que es lo que el cliente quiere y espera.
Probad la sangría solos y luego dádsela a probar a quien os la encargó.
![Page 14: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/14.jpg)
14
Evolución del software
El software se modifica para adaptarlo a los cambios solicitados por el cliente y/o a los requisitos del mercado.
Echad más fruta o más azúcar a gusto del cliente. Y si hay diabéticos en la fiesta, haced una parte de sangría sin azúcar.
![Page 15: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/15.jpg)
15
¿Qué es un modelo de proceso software?
Modelo de proceso software es una descripción simplificada de un proceso software (actividades, productos, roles,...)
Modelos de proceso softwareModelo en cascada Modelo incrementalModelo de construcción de prototiposModelo en espiral
![Page 16: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/16.jpg)
16
Modelo en cascada
Fases: Análisis, diseño, codificación y pruebas unitarias, integración y pruebas, explotación y mantenimientoInicio de fase coincide con el Fin de la anteriorResultados: al final de cada faseRequiere unos requisitos bien entendidos
![Page 17: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/17.jpg)
17
Modelo en cascadaDefinición de
requisitos
Diseño
Codificación ypr. unitarias
Integracióny pruebas
Operación ymantenimiento
![Page 18: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/18.jpg)
18
Modelo en cascada
CríticasNo refleja realidad (hay iteraciones)Inversión de mucho tiempoProducto funcionando en fase final
![Page 19: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/19.jpg)
19
Modelo incremental
No linealCada versión implica nuevas funcionalidadesIntegración de resultadosAjuste a proyectos de alta incertidumbre
![Page 20: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/20.jpg)
20
Modelo incremental
Definirrequisitos
Asignarrequisitos
a incrementos
Diseñar laarquitecturadel sistema
Desarrollarincremento
Validarincremento
Integrarincremento
Validarsistema
Sistema incompleto
Sistema final
![Page 21: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/21.jpg)
21
Modelo incremental
VentajasLos clientes no tiene que esperarLos incrementos iniciales como prototipos operativos.Requisitos críticos muy probados
Problemas¿Cómo deben ser los incrementos?
![Page 22: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/22.jpg)
22
Modelo construcción de prototipos
Clientes no muy explícitosResponsable técnico no seguro
Sistemas pequeños o de tiempo de vida corto
Construir /revisar prototipo
Cliente prueba el prototipo
Escucharal cliente
![Page 23: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/23.jpg)
23
Modelo construcción de prototipos
La especificación se desarrolla de forma creciente y el cliente va viendo funcionalidadesPero:
estructura deficienteherramientas y técnicas específicas
![Page 24: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/24.jpg)
24
Modelo en espiral
División del proyecto en ciclos: cada ciclo representa una fase del proceso.Cada ciclo se divide en actividades estructurales
ObjetivosAnálisis de riesgosDesarrollo y validaciónPlanificación
Cada ciclo se completa con una revisión
![Page 25: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/25.jpg)
25
Modelo en espiral
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2
Prototype 3Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
![Page 26: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/26.jpg)
26
Modelo en espiral
Enfoque realista del desarrolloConstrucción de prototiposReduce los riesgosPero:
Precisa expertos en riesgos
![Page 27: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/27.jpg)
27
¿Qué es CASE?
CASE - Computer-Aided Software Engineering (Ingeniería del Software Asistida por Computadora)Comprende un amplio abanico de programas que ayudan a las actividades del proceso:
Editores gráficosGeneradores de códigoGeneradores de casos de prueba...
![Page 28: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/28.jpg)
28
Atributos de un buen softwareMantenibilidad
Debe poder evolucionar para adecuarse a los cambios del cliente o del negocio. ¡¡Diseñar para el cambio!!
ConfiabilidadFiabilidad, protección y seguridad, por ejemplo: No daños físicos ni económicos.
EficienciaNo malgastar recursos, como memoria y buenos tiempos de respuesta. Siempre evaluar dentro del entorno de explotación.
UsabilidadFácil de usar, sin esfuerzo adicional por parte del usuario. Buena interfaz de usuario y documentación adecuada.
![Page 29: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/29.jpg)
29
Atributos de un buen softwareLa importancia de los atributos dependerá de la aplicación del software en desarrollo. Por ejemplo:
Sistema Bancario Seguro
Juego interactivo Capacidad de respuesta
Control de Central Nuclear Fiable
Tienda On-line Fácil de usar
Robot expedición Marte Eficiente (recursos limitados)
![Page 30: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/30.jpg)
30
1.1. Introducción
1.2. La complejidad inherente del software
1.3. El ciclo de vida del software
![Page 31: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/31.jpg)
31
¿Por qué es complejo el software?
Brooks: “La complejidad del software es una propiedad esencial y no accidental”Tres motivos:
La complejidad del dominio del problema.La dificultad de controlar el proceso de desarrollo.Los problemas para caracterizar sistemas discretos.
![Page 32: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/32.jpg)
32
La complejidad del dominio del problema (I)
Los problemas del mundo real son complejos (miles de requisitos compitiendo y quizás contradictorios).
Ahora, añade requerimientos no funcionales: eficiencia, coste, fiabilidad...
Diferente perspectiva del mismo problema entre los usuarios y los desarrolladores.
![Page 33: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/33.jpg)
33
La complejidad del dominio del problema (y II)
Los requerimientos cambian durante el desarrollo.
Los grandes sistemas evolucionan a lo largo del tiempo:Mantenimiento: corregir errores.Evolución: cambios de requerimientos.Conservación: uso continuo de medios extraordinarios para mantener operativo un sistema viejo.
Ejemplo: ¿Podéis resumir qué pasos hay que dar para solicitar el acceso a la UNIVERSIDAD?
Ejemplo: ¿Podéis resumir qué pasos hay que dar para solicitar una hipoteca bancaria?
![Page 34: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/34.jpg)
34
La dificultad de controlar el proceso de desarrollo (I)
Hay que dar impresión de simplicidad. ¡Imposible!Miles de líneas de código. Atajar con reutilización (de código, diseños reutilizables-patrones)Abordar complejidad por “divide y vencerás” obtener módulosAún así, cientos o miles de módulos.
![Page 35: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/35.jpg)
35
La dificultad de controlar el proceso de desarrollo (y II)
Se necesita un equipo de desarrolladores Gestión de Personal
Cuanto más cercanos entre sí, ¡¡mejor!!
![Page 36: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/36.jpg)
36
Los problemas para caracterizar sistemas discretos (I)
El software trabaja con sistemas con estados discretos:
Conjunto de variables.Flujos de control.Eventos externos.
Los valores de cada uno dan el estado del sistema.Sin embargo, el mundo real es analógico se puede describir por funciones continuas.
![Page 37: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/37.jpg)
37
Los problemas para caracterizar sistemas discretos (y II)
En sistemas discretos la transición entre estados no puede modelarse con funciones continuas.Cada evento externo puede cambiar el estado del sistema. ¿Al estado correcto y previsible?Necesidad de pruebas
complejo, costoso y en ocasiones imposible que sean exhaustivas
Ejercicio: Identificar estados (situaciones diferentes) en un reloj digital
![Page 38: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/38.jpg)
38
EjercicioUn reloj digital tiene una pantalla y dos botones para accionarlo, el botón A y el botón B. El reloj tiene dos modos de operación, visualizar la hora y establecerla. En el modo de visualización aparecen las horas y los minutos separados por dos puntos (:) intermitentes. El modo de establecer la hora tiene dos submodos: poner las horas y poner los minutos. El botón A se utiliza para seleccionar el modo de operación. Cada vez que se aprieta, el modo avanza en secuencia: visualizar la hora, poner hora, poner minutos, visulizar la hora, etc. Dentro de los submodos, el botón B se utiliza para avanzar una hora o un minuto cada vez que se aprieta. Prepare un diagrama de estados del reloj.
![Page 39: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/39.jpg)
39
Solución
![Page 40: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/40.jpg)
40
1.1. Introducción
1.2. La complejidad inherente del software
1.3. El ciclo de vida del software
![Page 41: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/41.jpg)
41
Introducción al Ciclo de vidaProcesos: Conjunto de actividades para la producción de softwareActividades: Conjunto de tareasTarea: Acción que transforma E en S
Ciclo de desarrollo (Requisitos, análisis, diseño, implementación y pruebas).
Requisitos <-> EntregaCiclo de vida (Adquisición, suministro, desarrollo, explotación y mantenimiento del sw (IEEE 1074)).
Concepción <-> Retirada
tConc
epció
n
Retir
ada
Requ
isito
s
Entre
ga
![Page 42: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/42.jpg)
42
UN EJEMPLO:El Proceso Unificado de Desarrollo
The unified software development process, Ivar Jacobson, Grade Booch, James Rumbaug, Ed. Addison Wesley, 1999
El proceso unificado de desarrollo, Ivar Jacobson, Grade Booch, James Rumbaug, Ed. Addison Wesley, 1999
![Page 43: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/43.jpg)
43
Introducción
Sistemas más complejos y más grandes.Objetivo: Desarrollo más rápido y software de calidad.
Es necesario un proceso que integre todas las facetas de un desarrollo software:
De una guía para ordenar las actividades del equipo.Dirija las tareas individuales y del equipo.Especifique los productos que hay que desarrollar.Ofrezca criterios para monitorizar y medir los productos y actividades.
![Page 44: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/44.jpg)
44
El Proceso Unificado (UP)
Unificación de tres metodologías de desarrollo basadas en el paradigma orientado a objetos.
OOSE: Object Oriented Software Engineering(Casos de Uso) Jacobson, I.
Booch (Diseño) Booch, G.
OMT: Object Modeling Technique (Análisis) Rumbaugh, J.
![Page 45: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/45.jpg)
45
El Proceso Unificado (UP)
Es un proceso de desarrollo software.Un pds es un conjunto de actividades para transformar los requisitos de usuario en un sistema software.Usa UML - Unified Modeling LanguageEstá caracterizado por:
Dirigido por casos de uso.Centrado en la arquitectura.Iterativo e incremental.
![Page 46: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/46.jpg)
46
Dirigido por casos de uso
Actor: alguien o algo.Una interacción con el usuario es un caso de uso. (ejemplo cajero)Un caso de uso:
Es una función del sistema que da al usuario un resultado útil.Captura los requisitos funcionales.
¿Qué debe hacer el sistema para cada actor?Modelo de casos de uso.
![Page 47: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/47.jpg)
47
Dirigido por casos de uso
Conducen el proceso de desarrollo:Los desarrolladores crean modelos de diseño e implementación que realizan los casos de uso.Los encargados de pruebas aseguran que los componentes implementan los casos de uso.
Los casos de uso se especifican, se diseñan y sirven de base para construir los casos de prueba.Se desarrollan junto a la arquitectura del sistema.Ambos evolucionan paralelamente.
![Page 48: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/48.jpg)
48
Iterativo - IncrementalDivisión del proyecto.Una iteración produce un incremento.Iteraciones controladas.Factores para la selección en una iteración:
La iteración trata un grupo de casos que extienden la funcionalidad.La iteración trata los riesgos más importantes.
Cada iteración:casos relevantes-diseño guiado por arquitectura- implementar-verificar
Beneficios.
![Page 49: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/49.jpg)
49
Modelo Incremental
Análisis Diseño e Implantación GeneralizaciónPrueba
Análisis Diseño e Implantación GeneralizaciónPrueba
Análisis Diseño e Implantación GeneralizaciónPrueba
Grupo 1
Grupo 2
Grupo n
Tiempo
Tiempo T
![Page 50: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/50.jpg)
50
Ciclo de vida
...
Entrega
Ciclos
Concepción Elaboración TransiciónConstrucciónIter.
1Iter.
2 ... ...... ... ... ... Iter.n
FasesIterac.
Varios ciclos que concluyen con un producto.Código fuente, manuales y documentos.Hitos por fases
![Page 51: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/51.jpg)
51
El productoModelo de
análisis
Modelo de diseño
Modelo de despliegue
Modelo de implementación
Modelo de pruebas
Modelo de casos de uso
Especificado por
Soportado por
Distribuido por
Implementado por
Verificado por
![Page 52: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWAREIS3_0910... · DEL SOFTWARE Bloque I. Tema 1. Ingeniería del Software 3º curso de ITIG. 2 1.1. Introducción 1.2. La complejidad inherente](https://reader033.vdocuments.mx/reader033/viewer/2022042803/5f48876bd32e6025f8734c7b/html5/thumbnails/52.jpg)
52
Fases en un ciclo
Requisitos
Diseño
Implementación
Prueba
Análisis
PlanificaciónAnál. RiesgosPreparación
Elaboración ConstrucciónVerificación
Transición
FASESWorkflow
Iteración-esInicial-es
Iter. #1
Iter. #2
Iter. #3
Iter. #4
Iter. #5
Iter. #6
Iter. #7
(Adaptado de Jacobson, 1999)
Iteración en Fase de Elaboración