2. ¿Que hace un Ingeniero?
• Construir artefactos dentro de unas limitaciones
de coste, utilizando el conocimiento y las
teorías de la ciencia sobre la cual se basa el
artefacto.
3. ¿Qué ingeniería de software?
Según la IEEE, la ingeniería de software:
• La aplicación de un enfoque sistemático,
disciplinado y cuantificable al desarrollo,
operación y mantenimiento del software, es
decir, la aplicación de la ingeniería al
software.
• El estudio de enfoques.
• La Ingeniería del software es una tecnología
multicapa
4. Pasos de desarrollo de un sistema de software
Justificación
• Es realmente necesario?
• Se necesita desarrollar el software?
• Análisis
• ¿Cuáles son lo procesos que se necesitan?
• ¿Qué datos están disponibles y qué información se requiere?
• ¿Cómo debe ser la interacción entre usuarios y sistema para llevar a cabo
las tareas necesarias?
• Casos de uso
• Escenarios de interacción entre los usuarios y el sistema, indicándose el
flujo de datos y de información, para cada tarea necesaria.
• Prototipo
• Diseño de interfaces para la interacción de los usuarios con el sistema,
correspondiente a sus tareas.
• Estimación de tiempo y costos
• requiere una estimación lo más formal posible.
• Estudio costo vs beneficio.
5. Diseño
• Solución de problema.
Generalmente se diseña el sistema en una arquitectura MVC [Model View Controller]‐ ‐
• Model
Modelado de los datos en el programa.
Modelado de la base de datos.
• View
Modelado de las interfaces.
• Controller
Modelado de las funciones de almacenamiento de datos y recuperación de
información.
Programación
Automatización de la solución determinada en el diseño.
Pruebas
Determinar que el sistema funciona adecuadamente, cumpliendo con las necesidades.
Tipos de pruebas
• Prueba de desempeño: que haga lo que tiene que hacer y no otra cosa.
• Prueba de estrés: que soporte situaciones críticas [número de usuarios].
• Prueba de usabilidad: que los usuarios puedan llevar a cabo sus tareas de manera
eficiente.
6. Mantenimiento
• Actualización del software de acuerdo a los cambios de la
organización de los requerimientos.
• El mantenimiento solamente es posible si se tiene la
documentación completa y los programas están
codificados claramente y con comentarios.
Migración
• Proceso de cambiar el software elaborado en un lenguaje
de programación ya obsoleto a un lenguaje de
programación actual.
Crear una pagina web en Faceboock
7. Técnicas básicas usadas en las
ingenierías
• Históricamente se han utilizado técnicas
como:
– El modelado
– División del Producto
– División del Proceso
• En principio se deberían utilizar estas técnicas,
también en informática .
8. El modelado.
• Simplificación del objeto en el mundo real,
pero que es suficientemente realista como
para dar una idea de lo que ocurrirá en la
realidad y usarse como base del desarrollo.
9. 3. El proceso de desarrollo de software 9
Ciclos de Vida del Software
– Se han propuesto muchos ciclos de vida para el
desarrollo del software, pero estos son los más
representativos:
– Poner la cola al burro.
– Ciclo de vida clásico o en cascada.
– Construcción rápida de Prototipos Desechables
– Incremental
– Evolución de prototipos
– Reutilización de Software
– Síntesis automática de software
– En espiral.
10. 3. El proceso de desarrollo de software 10
Reutilización de Software
• Tiene como objetivos:
– reducir el coste del software.
– Producir sistemas de mayor calidad.
• Se basa en reutilizar Diseños, programas,
módulos y datos.
• Es compatible con el prototipo evolutivo.
11. 3. El proceso de desarrollo de software 11
Síntesis automática de software
Requerimientos
Informales Análisis de
Requerimientos
Especificación Formal
(Prototipo)
Validación
Mantenimiento Optimización
Mecánica
Desarrollo
Formal
Ajuste
(tuning)
Programa
Fuete
Racionalidad y
Decisiones
12. 3. El proceso de desarrollo de software 12
Metodologías de Desarrollo del
Software
• Métodos informales
• Métodos Semiformales
• Métodos Formales
13. 3. El proceso de desarrollo de software 13
CMM (Capability Maturity Model)
• Proporciona una Guía sobre como
– controlar los procesos:
• de desarrollo del software.
• de mantenimiento.
– Hacer evolucionar hacia una cultura de:
• Ingeniería del software.
• Gestión eficiente.
14. 3. El proceso de desarrollo de software 14
Resumen
• Hemos visto:
– Como trabajan los ingenieros,
– Definiciones de ingeniería del software,
– El ciclo de vida del software,
– Metodológicas de desarrollo
– Madurez del proceso de desarrollo.