Estrategias Avanet: Ingeniería de Software

2.090 visualizaciones

Publicado el

0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.090
En SlideShare
0
De insertados
0
Número de insertados
76
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Estrategias Avanet: Ingeniería de Software

  1. 1. Estrategias Ava net Ingeniería de Software (Sensibilización)
  2. 2. ¿Qué es Ava net ? Ava net es una comunidad altruista orientada a generar mecanismos de capacitación y proyección profesional, a través de la formación de comunidades que aplican metodologías y procesos estructurados en la ejecución de proyectos, generando experiencias reales de aprendizaje, a través del uso del emprendimiento, motivación y conocimiento empírico disponible en los profesionales y entusiastas que participan activamente en la Web 2.0
  3. 3. El primer proyecto de Ava net es Ava net . El conjunto de elementos que apoyan los procesos de aprendizaje e interaccion de la comunidad, se basan en la construccion y evolucion de una herramienta de software, desarrollada como un proyecto que sigue los principios propuestos ¿Porqué Ingeniería de Software?
  4. 4. Los conceptos consignados en esta presentación están expresados en términos “simples” y tan solo pretenden transmitir una idea “sencilla” acerca de los temas relacionados con ellos
  5. 5. Si sabes algo que no sabemos, ayúdanos a entenderlo
  6. 6. Recuerda! Ava net no pretende reemplazar la academia, solo dejarte la inquietud de que siempre hay una mejor forma de hacer las cosas .
  7. 7. ¿Qué es Ingeniería de software?
  8. 8. "Ingeniería del Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software" Zelkovitz 1978.
  9. 9. “ Ingeniería del Software es la aplicación practica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada requerida para desarrollar, operar(funcionar) y mantenerlos. Se conoce también como desarrollo de software o producción de software ” Bohem 1976.
  10. 10. “ Ingeniería del Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable que sea fiable y trabaje en maquinas reales ” Fritz Bauer 1972.
  11. 11. 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 Ingeniería del Software. IEEE 1993.
  12. 12. ¿Se entendió? Busquemos una definición…
  13. 13. Ha pensado alguna vez, Donde hay software?
  14. 20. Parece que son más responsabilidades de las que esperábamos no? Bueno, y que tal si nos hacemos un par de preguntas…
  15. 21. Iría en un viaje alrededor de la tierra en globo, sabiendo que este esta controlado por una computadora?
  16. 22. Viajaría usted en un avión cuyo software ha sido construido por usted?
  17. 23. Si su respuesta a estas preguntas ha presentado un poco de duda o quizá le ha parecido gracioso lo que usted piensa al respecto , vale la pena cuestionarse algunas cosas…
  18. 24. Dudan los enfermos del corazón de sus médicos cirujanos?
  19. 25. Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
  20. 26. ¿En que parte de las definiciones está nuestro que hacer como personas?
  21. 27. La ingeniería de software es una idea casi ética sobre como hacer el software de forma correcta
  22. 28. Una idea personal Ser ingeniero tiene que ver con “ ser humanamente responsable”
  23. 29. La ingeniería es el conjunto de conocimientos y técnicas científicas aplicadas, que se dedica a la resolución u optimización de los problemas que afectan directamente a la humanidad Wikipedia
  24. 30. En ella, el conocimiento, manejo y dominio de las matemáticas y física, obtenido mediante estudio, experiencia y práctica, se aplica con juicio para desarrollar formas eficientes de utilizar los materiales y las fuerzas de la naturaleza para beneficio de la humanidad y del ambiente. Wikipedia
  25. 31. Reemplacemos entonces la frase “ hacer software de forma correcta ” por “ hacer software de calidad ”
  26. 32. Si calidad !!, La calidad determina el camino a seguir de todas las disciplinas asociadas a la ingeniería de software ,… aunque para algunos resultan “ excesivas y engorrosas ”
  27. 33. Hacer las cosas bien, siempre va a requerir un poco más de esfuerzo, que hacerlas de cualquier otro modo
  28. 34. Con el fin de tener un acercamiento común a las ideas que intentamos transmitir, haremos algunas analogías usando el sentido común
  29. 35. ¿Y si este fuera nuestro proyecto?
  30. 36. ¿Qué necesitaríamos para construirlo?
  31. 37. <ul><li>Veamos… </li></ul><ul><li>Herramientas </li></ul><ul><li>Personas </li></ul><ul><li>Tiempo </li></ul><ul><li>Dinero </li></ul><ul><li>Recursos </li></ul>
  32. 38. ¿Parece Intuitivo no?
  33. 39. Sin embargo sabemos que en realidad, es un poco más difícil de lo que imaginamos
  34. 40. Pues bien lo mismo sucede con la construcción de software… Para desarrollar software existen una serie de roles asociados , encargados de analizar , planificar y establecer , que es lo que va a desarrollarse, como , con cuantos recursos , en cuanto tiempo e incluso a que nivel de calidad
  35. 41. Y es que, si tuviera dinero para enviar a construir su propia casa…. No le gustaría que quien va a construirla le garantizara la calidad del trabajo que va a realizar y le demostrara que cuenta con el conocimiento , materiales y equipo necesarios para hacer un trabajo perfecto ?
  36. 42. Si? Pues bien, los clientes y usuarios de los proyectos de software, esperan exactamente lo mismo !
  37. 43. Pero… y que importa la calidad? Acaso en software no importa es básicamente que funcione ? Veamos algunas respuestas a esa pregunta… (Ojo, las siguientes imagenes son meramente ilustrativa, no todas pertenecen al hecho descrito)
  38. 44. Therac-25 (1985 – 1987) Era una máquina empleada en terapia de radiación, producida por Atomic Energy of Canada Limited , notoria por haber sido objeto del error de software, causando al menos seis accidentes y que le costó la vida al menos a cinco personas
  39. 45. Mariner 1 (28 de Julio de 1962) Un guión en las instrucciones del programa de guiado del cohete provocó la desviación del Atlas y tuvo que enviarse un comando para su autodestrucción a los 4 minutos y 53 segundos de su lanzamiento
  40. 46. Vuelo 501 del ARIANE-5 (4 de Junio de 1996) Otro ejemplo documentado sobre el daño ocasionado por software mal diseñado es el de la explosión de la lanzadera Ariane-5, cuando a 40 segundos después de la iniciación de la secuencia de vuelo, la lanzadera se desvió de su ruta, se partió y explotó. En el proyecto global se invirtieron 10 años de construcción y 7 mil millones de euros, lo que supuso un duro golpe para la Agencia Espacial Europea (ESA) http://www.youtube.com/watch?v=IONcgYzVFlg
  41. 47. A-320 de Air France ( 26 de junio de 1988) Durante una presentación en el meeting de Habsheim, cerca de Mulhouse (Francia), un A-320 de Air France se estrella en el bosque, al final de la pista. Habrá tres muertos y una centena de heridos. Justo después, el mundo se pregunta las causas del accidente del avión anunciado como &quot;el más seguro del mundo&quot;. Una de las causas se le atribuye a un error en el software de navegación http://www.youtube.com/watch?v=_EM0hDchVlY
  42. 48. Que tal las respuestas? Nada agradables si me permiten decirles!
  43. 49. Y quien dice que siempre sale mal? A pues no, no siempre sale mal… Solo algunas veces… Veamos…
  44. 50. CHAOS Report 1995: http://net.educause.edu/ir/library/pdf/NCP08083B.pdf
  45. 51. Pues bien, muchos de estos errores son aducidos principalmente a falta de planeación y buen análisis , cosa que tiene mucho sentido pero que sin embargo, no es la única razón… Como seres humanos involucrados en el proceso de desarrollo , cometemos errores que de no ser corregidos a tiempo, van aumentando su costo y consecuencias
  46. 52. ¿Qué errores se comenten?
  47. 53. Falta de comunicación
  48. 54. Ausencia de objetivos y metas claras durante la ejecución del proyecto
  49. 55. Mala estimación de tiempos
  50. 56. Falta de planificación
  51. 57. Requisitos poco claros y falta de acceso a la información
  52. 58. Indefinición del alcance y las responsabilidades de las partes
  53. 59. Falta de identificación y gestión de los riesgos
  54. 60. Carencia de habilidades en la ejecución de un rol
  55. 61. Falta de seguimiento al avance del proyecto
  56. 62. Falta de control del presupuesto
  57. 63. Recursos Insuficientes
  58. 64. No poseer o seguir una arquitectura
  59. 65. Falta de conocimiento e interés en la aplicación de mejores prácticas
  60. 66. Y es que no es lo mismo construir esto…
  61. 67. Que esto!
  62. 68. O esto!
  63. 69. Que se necesita para construir algo asi?
  64. 70. Que tal esto?
  65. 71. Y esto?
  66. 72. O esto?
  67. 73. Cada escenario plantea retos , condiciones y necesidades diferentes! Que tal si los vemos otra vez, mientras nos preguntamos… Que herramientas , personas , presupuesto , conocimiento y tiempo necesitamos para cada escenario?
  68. 75. Lo mismo sucede con el software, todos los proyectos son distintos, por lo cual cada uno debe ser considerado individualmente
  69. 76. Los cambios en las primeras etapas son más costosos que en las últimas
  70. 77. Bueno, una primera forma de pensar en las actividades que se involucra el proceso de desarrollo de software es preguntarse acerca de Que se construirá? Como se hará? Y De que forma evolucionará? O bien, como veíamos en la gráfica anterior, La Definición , El Desarrollo y El Mantenimiento
  71. 78. En la mayoría de proyectos de desarrollo, los costes de mantenimiento, superan por un amplio margen los costos de desarrollo, se habla de un 30% en Desarrollo y un 70% en Mantenimiento.
  72. 79. Pues bien, aunque actualmente existen muchas personas que construyen software con conocimiento empírico , tal como si fuera arte , lo que debe diferenciar un trabajo bien hecho ( profesional o empírico ), es los métodos y la evidente forma de hacer el trabajo teniendo en mente la calidad de los procesos ejecutados y de los productos desarrollados .
  73. 80. Veamos que tal estamos ahora…
  74. 81. Que es la ingeniería de software ? Ingeniería de software es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad . Wikipedia http://es.wikipedia.org/wiki/Ingenier%C3%ADa_del_software
  75. 82. De acuerdo a lo que hemos hablado entonces, los Ingenieros de software no solo deben considerar aspectos técnicos: Deben tener una visión más amplia, en lo ético , social y profesional .
  76. 83. ¿Y como se hace?
  77. 84. Empecemos entonces por hablar de las etapas básicas propuestas por el ciclo de vida clásico del software <ul><li>Análisis </li></ul><ul><li>Diseño </li></ul><ul><li>Construcción </li></ul><ul><li>Pruebas </li></ul><ul><li>Puesta en Producción </li></ul><ul><li>Evolución </li></ul>
  78. 85. Ahora que conocemos las actividades que deben desarrollarse dentro de un proyecto de desarrollo de software, es un poco más claro el por que se necesitan diferentes roles que ejecuten distintas actividades y tengan distintas responsabilidades .
  79. 86. Las personas vinculadas a estos roles en un proyecto , son conocidos como los participantes . Conozcamos algunos de ellos…
  80. 87. <ul><li>Administrador o Gerente de Proyectos </li></ul><ul><li>Analista Funcional </li></ul><ul><li>Analista Diseñador </li></ul><ul><li>Arquitecto </li></ul><ul><li>Programador </li></ul><ul><li>Tester o Ingeniero de Pruebas </li></ul><ul><li>Asegurador de Calidad </li></ul><ul><li>Administrador de la Configuración </li></ul><ul><li>Ingeniero de Validación y Verificación </li></ul><ul><li>Documentador </li></ul><ul><li>Ingeniero de Manutención </li></ul><ul><li>Cliente </li></ul><ul><li>Usuario </li></ul>
  81. 88. Aprender sobre Ingeniería de Software es mucho más que un reto académico… Cuanto estas dispuesto a perder a cambio de no aprender?
  82. 89. De ti depende que tan lejos quieres llegar
  83. 91. Antes de intentar aprender algo ten presente… lo complejo, alguna vez… fue simple , entiende primero lo simple.
  84. 92. Algunas tareas…
  85. 93. Explora!
  86. 94. Investiga!
  87. 95. Cuestiona!
  88. 96. Crea!
  89. 97. Aprende!
  90. 98. Sueña!
  91. 99. Gracias!
  92. 100. Todas las imágenes de esta presentación fueron tomadas de Office Online Altruismo Digital al Servicio de la Comunidad 2.0 ¿Preguntas? Visítanos: http://avanet.org

×