![Page 1: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/1.jpg)
1
¿Qué es la Ingeniería del Software?
“(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento del software; es decir la aplicación de la Ingeniería al software.
(2) El estudio de enfoques como (1).”
[IEEE, 1993]
![Page 2: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/2.jpg)
2
Aspectos clave en la IS• Escala del problema• Calidad y productividad• Consistencia• Manejo del cambio
• Desafío: Lograr consistentemente alta calidad y productividad en problemas cuya escala puede ser grande y donde pueden ocurrir cambios continuamente es el principal desafío de la Ingeniería del Software.
![Page 3: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/3.jpg)
3
¿Qué es el Software?
• Producto que construyen y diseñan los Ingenieros de Software.
• Comprende:– Programas
– Datos (texto, números, imágenes, sonidos, video)
– Documentación.
![Page 4: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/4.jpg)
4
Características del Software
• Producto y vehículo.
• Lógico, no físico.
• Se desarrolla, no se fabrica.
• No se desgasta, se deteriora.
• Mayoría hecho a medida, tendencia a reusar.
![Page 5: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/5.jpg)
5
Aplicaciones del Software
• SW de Sistemas
• SW de Tiempo Real
• SW de Negocio o Gestión
• SW de Ingeniería o Científico
• SW Embebido o Empotrado
• SW de PC
• SW de IA
• SW basado en la Web
![Page 6: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/6.jpg)
6
Mitos del Software
• Propagaron confusión e información errónea.
Del administrador del proyecto
Mitos del SW Del usuario final o cliente
Del desarrollador
![Page 7: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/7.jpg)
7
Mitos del Administrador
• Los estándares y procedimientos son toda la guía que los
Ing. de software necesitan.
• Si contamos con la última generación de computadoras
tenemos todas las herramientas necesarias.
• Si fallamos en la planificación, podemos añadir más
programadores y adelantar el tiempo perdido.
![Page 8: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/8.jpg)
8
Mitos del Cliente
• Una declaración general de los objetivos del cliente es
todo lo necesario para empezar a programar.
• Los requisitos cambian continuamente, pero los cambios pueden acomodarse fácilmente porque el software es flexible.
Definición Desarrollo Después de la Entrega
Coste
1x1,5 – 6x
60 – 100x
![Page 9: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/9.jpg)
9
Mitos del Desarrollador
• Una vez que se escribió el programa y se lo hizo funcionar, el trabajo del Ing. de software está terminado.
• No hay forma de comprobar la calidad del software hasta no poder ejecutarlo en alguna máquina.
• Lo único que se entrega al terminar el proyecto es el programa funcionando.
![Page 10: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/10.jpg)
10
El Proceso de Desarrollo de Software
• ¿Qué es?Marco de trabajo de tareas a realizar para desarrollar SW de
alta calidad.
• ¿Es sinónimo de Ingeniería de Software?
Define un enfoque para desarrollar software en forma ingenieril pero la Ing. de Soft. comprende, además, Métodos y Herramientas.
![Page 11: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/11.jpg)
11
• Tecnología multicapa (Pressman)
¿ Qué es la Ingeniería del Software?
Capa fundamental
Un enfoque de calidad
Proceso
Métodos
Herramientas
![Page 12: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/12.jpg)
12
El Proceso – Visión Genérica
Ing. Sistemas
Planificación
Análisis de req.
Diseño
G. de Código
Prueba
Definición(QUE)
Desarrollo(COMO)
Soporte(CAMBIOS)
Mant. Correctivo
Mant. Adaptativo
Mant. Perfectivo
Mant. Preventivo o Reingeniería del Software
![Page 13: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/13.jpg)
13
Modelo Lineal Secuencial
• Ciclo de vida clásico, modelo en cascada
• + antiguo, + usado• Enfoque sistemático
secuencial
![Page 14: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/14.jpg)
14
Modelo Lineal Secuencial
• Críticas:– Proyectos reales raras veces se ajustan al modelo.
– Raras veces cliente expone todos los req. de entrada.
– Producto operativo al final • Paciencia (cliente) alta.
• Todo o nada.
• Consejo: Usar cuando todos los requerimientos han sido establecidos claramente de entrada o la organización está familiarizada con el dominio.
![Page 15: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/15.jpg)
15
Modelo de Construcción de Prototipos
• No están claros de entrada los requisitos. – Sistemas nuevos, poco conocimiento del dominio
• Reduce el riesgo.• Iterativo. Hasta cuando se itera?• Working prototype, desechar y empezar con desarrollo de sistema.
Escuchar al cliente
Validar prototipo
Construir prototipo
![Page 16: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/16.jpg)
16
Modelo de Construcción de Prototipos
• Críticas:– Producto de mala calidad. Cliente cree que es el sistema.
– Peligro de familiarización con malas elecciones iniciales (quick and dirty).
• Consejo:– Usar cuando inicialmente no están claros los requisitos.
– Definir claramente al inicio las reglas de juego con el cliente.
– No ceder a presión del cliente.
![Page 17: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/17.jpg)
17
Modelo de Desarrollo Rápido de Aplicaciones (DRA)
• Lineal secuencial con ciclo extremadamente corto.
• Candidatos: sistemas que se pueden modularizar =>
equipos de desarrollo paralelos.
• Basado en el uso de componentes y T4G.
![Page 18: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/18.jpg)
18
Equipo # 1
Modelo de Negocio
Modelo de Datos
Modelo de Proceso
Generación de Aplicación
Prueba y Entrega
Equipo # 2
Modelo de Negocio
Modelo de Datos
Modelo de Proceso
Generación de Aplic.
Prueba y Entrega
Equipo # n
Modelo de Negocio
Modelo de Datos
Modelo de Proceso
Generación de Aplic.
Prueba y Entrega
Tiempo
¿Qué información?¿Quién la genera?¿A dónde va?
Descripciones de procesos de negocio para ABM de objetos de MD
T4G + Reusabilidad de Componentes
Prueba de componentes nuevos e interfaces.
Identificación de objetos y relaciones
Modelo DRA
<-------------------------------60-90 días------------------------>
![Page 19: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/19.jpg)
19
Modelo DRA
• Críticas:– Proyectos grandes => gran nro. de personas.
– Alto compromiso en tiempo.
– No apto para todo tipo de sistema (ej. no modularizable, bajo reuso de componentes).
– Desaconsejable cuando existen riesgos tecnológicos altos.
![Page 20: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/20.jpg)
20
Modelos Evolutivos
• Se adaptan más fácilmente a los cambios introducidos a lo largo del desarrollo.
• Iterativos
• En cada iteración se obtienen versiones más completas del SW.
• Modelos Evolutivos:– Modelo Incremental
– Modelo en Espiral
– Modelo de Desarrollo Basado en Componentes
– …
![Page 21: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/21.jpg)
21
Modelo Incremental
• Combina lineal secuencial (aplicado repetidamente) con filosofía interactiva de construcción de prototipos.
• Cada iteración devuelve un “Incremento” o versión operativa.
• Útil cuando no se está seguro de cumplir con plazos de tiempo o se tiene una fecha imposible de cambiar.
![Page 22: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/22.jpg)
22
Modelo Incremental
Tiempo
Análisis Diseño PruebaCodif. Entrega 1er Inc.
Inc1
Análisis Diseño PruebaCodif. Entrega 2do Inc.
Inc2
Análisis Diseño PruebaCodif. Entrega 3er Inc.
Inc3
![Page 23: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/23.jpg)
23
Modelo en Espiral
![Page 24: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/24.jpg)
24
Modelo en Espiral
• Permite usar el prototipado en todas las etapas de la evolución para reducir el riesgo.
• Mantiene el enfoque sistemático de los pasos sugeridos por el lineal secuencial, pero lo incorpora dentro de un marco iterativo más real.
• Críticas: – Difícil de convencer a los clientes de que es controlable.
– Requiere mucha habilidad para el análisis de riesgos y de esta habilidad depende su éxito.
![Page 25: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/25.jpg)
25
Desarrollo Basado en Componentes
• Basado en modelo en Espiral (evolutivo e iterativo) + Tecnologías de Objetos.
• Enfatiza la Reusabilidad.Planificación
Análisis de Riesgos
Ingeniería, Construcción y Entrega
Evaluación del Cliente
Comunicación con el Cliente
Ident. Comps. candidatos
Buscar Comps. en biblioteca
Construir Extraer
Colocar en biblioteca
Construir iteración
VF
![Page 26: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/26.jpg)
26
Modelo de Métodos Formales
• Usan notación rigurosa.
• Especificaciones sin ambigüedades.
• Útiles para sistemas críticos.
• Demostraciones formales de propiedades.
• Dificulta validación con cliente => combinación con otras técnicas semi-formales.
• Buen nivel de manejo de Lógica y Algebra.
![Page 27: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/27.jpg)
27
Técnicas de Cuarta Generación (T4G)
• Herramientas que facilitan la realización de especificaciones a alto nivel código fuente.
• Basadas en Lenguajes de 4ta Generación (L4G).• Ventajas: Reducción en tiempo de desarrollo.
Lenguaje de Consulta a BD
Generador de Pantallas
Planillas de Cálculo
Generador de Informes
Sistema de Administración de Base de Datos
Un entorno de desarrollo de software basado en Técnicas de 4ta Generación
Generador de Código
![Page 28: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/28.jpg)
28
Técnicas de Cuarta Generación (T4G)
• Críticas:
– Código ineficiente.
– No mas fáciles de usar que L3G.
– Mantenimiento cuestionable.
• Consejo: En sistemas grandes, aunque se usen T4G se
debe hacer análisis, diseño y pruebas.
![Page 29: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/29.jpg)
29
![Page 30: 1 ¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento](https://reader035.vdocuments.site/reader035/viewer/2022062323/5665b4b31a28abb57c93511a/html5/thumbnails/30.jpg)
30
El Proceso Modelo de Madurez de Capacidad (CMM)
http://www.sei.cmu.edu
• Nivel 1: Inicial
• Nivel 2: Repetible
• Nivel 3: Definido
• Nivel 4: Gestionado
• Nivel 5: Optimizado