Your SlideShare is downloading. ×
Clase 11
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Clase 11

289
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
289
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ingeniería de Software Prof. Santiago Mena Zorrilla
  • 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.