1 / 35

Tema 1: Introducción a la Ingeniería de Software

Tema 1: Introducción a la Ingeniería de Software. Ingeniería de Sistemas 2012. Índice. Introducción La complejidad inherente del software Algunos principios de la ingeniería del software Sistemas de Información. Introducción Qué es ingeniería?. Introducción ¿Qué es ingeniería?.

bryant
Download Presentation

Tema 1: Introducción a la Ingeniería de Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tema 1: Introducción a la Ingeniería de Software Ingeniería de Sistemas 2012

  2. Índice • Introducción • La complejidad inherente del software • Algunos principios de la ingeniería del software • Sistemas de Información

  3. IntroducciónQué es ingeniería?

  4. Introducción¿Qué es ingeniería? • Es el conjunto de conocimientos y técnicas científicas aplicadas a la invención, perfeccionamiento y utilización de la técnica industrial para la resolución u optimización de problemas.

  5. Qué es ser Ingeniero? • Saber realizar de diseños y soluciones tecnológicas a necesidades sociales, industriales o económicas. • Saber identificar y comprender los obstáculos más importantes para poder realizar un buen diseño (limitaciones físicas o técnicas, de coste, de flexibilidad, estéticas y comerciales). • Saber utilizar el conocimiento de la ciencia y la experiencia apropiada para encontrar las mejores soluciones a los problemas concretos

  6. IntroducciónQué es software?

  7. IntroducciónQué es software? • Conjunto de programas que proporcionan una función y un rendimiento esperados. • Conjunto de estructuras de datos que permiten a los programas manipular adecuadamente la información. • Conjunto de documentos que describen el funcionamiento del SI (Sistema de Información). • Tipos: • ◦Genéricos: Productos de uso genérico (procesadores, bases de datos, etc.) • ◦A medida: Productos específicos para un cliente particular

  8. IntroducciónQué es software? Características: • No tiene forma física • Se desarrolla, no se fabrica. • Los costes del SW son de ingeniería. No de fabricación • El SW no se rompe, se deteriora. • La complejidad del mantenimiento del SW es mucho más grande que la del HW. • Si el HW se rompe se cambia por otro y listo Hay piezas de recambio. • Si el SW se deteriora, con cada cambio que se realiza se deteriore aún más No hay piezas de recambio.

  9. Introducción ¿Qué es Ingeniería del Software? • Definición: “La Ingeniería del Software es la disciplina de ingeniería encargada de todos los aspectos relacionados 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.” Ingeniería del Software – Ian Sommerville

  10. Introducción ¿Qué es Ingeniería del Software? • Disciplina de ingeniería • Los ingenieros de software usan las métodos, herramientas, procedimientos y paradigmas para solucionar los problemas que aparecen. • Incluso teniendo en cuenta restricciones económicas y de organización • Producción de software • Planificación de proyectos • Administración de proyectos software • Procesos técnicos de desarrollo de software • Dirección de proyectos

  11. Introducción ¿Qué es Ingeniería del Software? • Proceso Software: procedimiento formal para producir algún resultado.

  12. Introducción ¿Qué es Ingeniería del Software? • Herramienta: instrumento para realizar algo de mejor manera.

  13. Introducción ¿Qué es Ingeniería del Software? • Paradigma: Representa una filosofía para la construcción de software

  14. Introducción ¿Quién hace Ingeniería del Software?

  15. Introducción¿ Por qué surge la Ing. del Software? • Para superar la crisis del software y terminar con los mitos del software hasta ahora existentes. • Para acabar con las malas prácticas de desarrollo y mantenimiento de software llevadas a cabo por las empresas. • Crear software de calidad.

  16. Introducción Crisis del Software • Dificultad en escribir programas libres de defectos, fácilmente comprensibles, y que sean verificables (Dijkstra–1968) • Causas: • Los proyectos no terminaban en plazo • Los proyectos no se ajustaban al presupuesto inicial • Software que no cumplía las especificaciones • Código inmantenible que dificultaba la gestión y evolución del proyecto • Consecuencias: • Baja Calidad del Software • Tiempo y Presupuesto Excedido • Confiabilidad Cuestionable • Altos requerimientos del personal para el desarrollo y el mantenimiento

  17. Introducción Crisis del Software • Diferencia entre error defecto y fallo.

  18. Introducción Mitos del SW –Sobre la gestión

  19. Introducción Mitos del SW –Sobre la gestión

  20. Introducción Mitos del SW –Sobre la gestión

  21. Introducción Mitos del SW –Sobre el cliente

  22. Introducción Mitos del SW –Sobre el cliente

  23. Introducción Mitos del SW –Sobre desarrolladores

  24. Introducción Mitos del SW –Sobre desarrolladores

  25. IntroducciónMalas prácticas de desarrollo y mantenimiento • Planificación y estimaciones imprecisas: • No se recopilan datos de proyectos pasados. • Se invierte más dinero en mantenimiento que en formación de los ingenieros en las nuevas tecnologías de desarrollo. • No se documenta lo suficiente. • Se pasa directamente a la codificación.

  26. IntroducciónMalas prácticas de desarrollo y mantenimiento • Procesos software improvisados • No se siguen rigurosamente las especificaciones • No se hace planificación de riesgos. • Se resuelven crisis inmediatas Se apagan fuegos • Se sacrifica funcionalidad y calidad del producto para cumplir plazos. • No se planifica debidamente. • No se realizan pruebas, verificaciones o revisiones del SW

  27. IntroducciónMalas prácticas de desarrollo y mantenimiento • Síntomas: • Baja calidad del software desarrollado • Alto grado de desconfianza e insatisfacción en el cliente • Empresas inmaduras En fase artesanal. • Se exceden en los plazos y presupuestos previstos • 90% de los proyectos no consiguen los objetivos propuestos • 40% fracasan completamente • 29% nunca se entregan

  28. Introducción¿Qué propone la IS? ¡ser Ingenieros! • Artesano Ingeniero. • Para ello se debe: • Aplicar métodos, técnicas y herramientas de desarrollo • Adoptar estándares de desarrollo • Utilizar la experiencia acumulada • Documentación

  29. Introducción¿Qué propone la IS? ¡usar Estándares! • ¿Qué conseguimos adoptando estándares de desarrollo? • Mejorar el proceso: • Reducción de costes • Reducción del tiempo de desarrollo • Reducción de riesgos • Mejora de la calidad del producto • Protección del cliente • Protección de la organización Aumenta su competitividad

  30. Índice • Introducción • La complejidad inherente del software • Algunos principios de la ingeniería del software • Sistemas de Información

  31. Complejidad del SW • ¿Por qué es complejo el Software? • Brooks (1987): “La complejidad del Software es una propiedad esencial y no accidental” • Complejidad accidental: se debe a la manera en que intentamos solucionar el problema • Complejidad esencial: es inherente al problema en sí mismo. • Tres motivos: • La complejidad del dominio del problema • La dificultad de controlar el proceso de desarrollo • Los problemas para caracterizar sistemas discretos

  32. Complejidad del SW

  33. Complejidad del SWComplejidad del dominio del problema • Los problemas del mundo real son complejos (miles de requisitos compitiendo y quizás contradictorios) • Se añaden requerimientos no funcionales: eficiencia, coste, fiabilidad, robustez... • Diferente perspectiva del mismo problema entre los usuarios y los desarrolladores • Modificación de los requisitos / Inserción de nuevos requisitos • ¡Los requisitos cambian durante el desarrollo!

  34. Complejidad del SWDificultad de controlar el proceso de desarrollo • Surgen incidencias • Algunas previstas y otras no • Miles de líneas de código • Intentar la reutilización • Surgen diferentes versiones del producto • Disminuir la complejidad mediante el “divide y vencerás” • División en módulos • Aún así, la creación de muchos módulos puede ser inmanejable

  35. Complejidad del SWDificultad de controlar el proceso de desarrollo

More Related