Ingenieria De Software Para Dummies

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

2 comments

Comments 1 - 2 of 2 previous next Post a comment

  • + FastTiger Carlos Arango 2 months ago
    Felicitaciones por esta presentación, se ve agradable y sencilla, eso hace de la expo. algo en l ocual uno pueda concentrarse y disfrutar ;)
  • + gueste7b553 gueste7b553 7 months ago
    bastante interesante (y)
Post a comment
Embed Video
Edit your comment Cancel

18 Favorites

Ingenieria De Software Para Dummies - Presentation Transcript

  1. Ingeniería de Software Sorey Bibiana García Zapata Ingeniera Informática Politécnico Jaime Isaza Cadavid Especialista en Desarrollo de Software Universidad EAFIT
  2. Algunos discutirán mi forma de explicar la ingeniería de software, mi argumento es simple… No puedes hacer bien algo de lo que no tienes conciencia, y saber de memoria un concepto de un libro pocas veces genera conciencia
  3. Este es un curso para principantes, y también para personas de vieja guardia, que aun no entienden ahora por que nos “complicamos tanto”. Los que todo lo saben, aquí tampoco encontrarán nada nuevo, o de pronto si, un poquito de conciencia.
  4. Ok? Veamos, para mí… La ingeniería de software es una idea casi ética sobre como hacer el software de forma correcta
  5. Por más simple que parezca es idea, la justificación esta argumentada de este punto, en adelante… El problema radica en que como casi todas las cosas en la vida, existen visiones diferentes de cómo hacer las cosas de forma correcta No obstante, existen unos principios generales
  6. Reemplacemos entonces la frase “hacer software de forma correcta” por “hacer software de calidad”
  7. 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”
  8. Yo diría que, hacer las cosas bien, siempre va a requerir un poco más de esfuerzo, que hacerlas de cualquier otro modo
  9. … pues bien, la mayoría de los críticos acerca del por que la ingeniería de software añade más cantidad de trabajo, resultan ser personas que desconocen las motivaciones y el propósito de la labor que realizan…
  10. Pues bien, vamos a conocer un poco de eso. Ha pensado alguna vez, Donde hay software?
  11. Parece que son más responsabilidades de las que esperábamos no? Bueno, y que tal si nos hacemos un par de preguntas…
  12. Iría en un viaje alrededor de la tierra en globo, sabiendo que este esta controlado por una computadora?
  13. Viajaría usted en un avión cuyo software ha sido construido por usted?
  14. Si su respuesta a estas preguntas ha presentado un poco de duda, vale la pena cuestionarse alguna cosas…
  15. Dudan los enfermos del corazón de sus médicos cirujanos?
  16. Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
  17. Bueno, y es que no es carpintero por tener madera, clavos y martillo… Como no se es desarrollador de software por saber programar.
  18. Ha visto el gracioso video de… Que pasaría si los programadores hicieran aviones? Si, no lo invito a verlo antes de continuar… http://www.youtube.com/watch?v=UZq4sZz56qM
  19. Gracioso, no? Pues no! No es gracioso que siendo un profesional tu trabajo sea tomado en broma… El problema es, que pasa si nosotros mismos nos tomamos nuestro trabajo en broma?
  20. Pues bien, si no se toma su trabajo en serio, lo que pasará es que usted mismo no será tomado en serio. Si usted sabe programar pero desconoce las motivaciones asociadas a su trabajo, las responsabilidades que implica y las consecuencias que acarrea su mal desempeño… es decir, si no sabe ingeniería de software o le importa poco lo que significa, pues usted no sabe hacer software, solo sabe programar.
  21. Si comparamos saber hacer software, con saber hacer edificios, lo que usted sabe hacer básicamente es “pegar ladrillos”
  22. Y si bien los ladrillos y demás estructuras, conforman el producto final; existen una serie de roles asociados a la construcción, sin los cuales las admirables construcciones modernas no podrían ser construidos.
  23. Es el caso de los maestros de obra, arquitectos, ingenieros civiles… Solo por mencionar algunos de los más obvios.
  24. Un programador es solo un rol del conjunto de roles implicados en el proceso de desarrollo de software
  25. Pues bien, 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
  26. 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?
  27. Si? Pues bien, los clientes y usuarios de los proyectos de software, esperan exactamente lo mismo!
  28. 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)
  29. 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
  30. 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
  31. 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=ION cgYzVFlg
  32. 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 \"el más seguro del mundo\". Una de las causas se le atribuye a un error en el software de navegación http://www.youtube.com/watch?v=_E M0hDchVlY
  33. Que tal las respuestas? Nada agradables si me permiten decirles!
  34. 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.
  35. Bueno, hasta aquí hemos mencionado una serie de palabras que necesitamos dejar explicitas antes de continuar… Veamos…
  36. Que es un proceso? Un proceso (del latín processus) es un conjunto de actividades o eventos que se realizan o suceden con un determinado fin. Este término tiene significados diferentes según la rama de la ciencia o la técnica en que se utilice. Wikipedia
  37. Que es Desarrollo de Software? El desarrollo de software es una actividad colaborativa en la cual diversos roles son desempeñados por los participantes: el cliente, especialistas en pruebas, analistas, diseñadores, jefes de proyecto, etc., usando principios, metodologías, modelos, patrones y técnicas en busca de la construcción de un producto de software.
  38. Que es el Proceso de Desarrollo? Actividades que se realizan para la construcción, liberación y evolución de un producto de software, comenzando con el estudio de una idea y finalizando con el implementación final del sistema.
  39. El proceso de desarrollo de software no es único. No existe un proceso de desarrollo de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil por ejemplo, automatizar todo un proceso de desarrollo de software y aun más unificar a los profesionales del área sobre la ejecución de algún tipo de proceso en particular.
  40. Que es Ingeniería? La ingeniería se define como la profesión en la cual los conocimientos de las matemáticas y las ciencias naturales obtenidos a través del estudio, la experiencia y la práctica, son aplicados con criterio y con conciencia al desarrollo de medios para utilizar económicamente con responsabilidad social y basados en una ética profesional, los materiales y las fuerzas de la naturaleza para beneficio de la humanidad. Wikipedia
  41. 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
  42. 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.
  43. Bueno, y si es que parece que la ingeniería de software establece tan claramente lo que hay que hacer… Cual es el problema? Acaso no todos lo hacemos así? Pues no, a veces pasa que…
  44. Y quien dice que siempre sale mal? A pues no, no siempre sale mal… Solo algunas veces… Veamos…
  45. CHAOS Report (Estudio de Resultado de Ejecución de los Proyectos de Software) Exitoso Fallido Cancelado 33 46 49 51 53 53 40 15 28 23 18 31 34 29 28 27 26 16 1994 1996 1998 2000 2002 2004 CHAOS Report 1995: http://net.educause.edu/ir/library/pdf/NCP08083B.pdf
  46. 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
  47. Los cambios en las primeras etapas son más costosos que en las últimas
  48. 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
  49. 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. Esto se debe claro esta a que el software requiere día a día ser adecuado a las cambiantes necesidades de un negocio, pero también a que en el mantenimiento se corrigen muchos errores del desarrollo o se incurre en graves problemas al intentar hacer cambios para los que el sistema desarrollado no se encuentra preparado.
  50. Algunos de los problemas típicos son por tanto, que los proyectos no terminan en las fechas previstas, ni tampoco costando lo presupuestado, algunos de los sistemas terminan por no ser usados jamás o bien hay un alto grado de insatisfacción en los usuarios de los sistemas, lo que redunda finalmente en exorbitantes costos de mantenimiento.
  51. Una buena forma de mitigar los problemas asociados al proceso de desarrollo, es conocer las etapas y actividades que lo conforman, sus diferentes propuestas de ejecución, los roles implicados y sus distintas responsabilidades, pero aun más que eso ejecutar las actividades y ejercer los roles coherentemente, teniendo presente el aprendizaje y evolución tenido durante años de errores conocidos en los proyectos de software.
  52. Empecemos entonces por hablar de las etapas básicas propuestas por el ciclo de vida clásico del software Análisis Diseño Construcción Desarrollo Pruebas Puesta en Producción Evolución
  53. Lo siento, aun estoy terminando esta presentación, regresa pronto… Próximos temas: Explicación básica de las etapas del proceso de desarrollo de software.
  54. 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. Las personas vinculadas a estos roles en un proyecto, son conocidos como los participantes. Conozcamos algunos de ellos…
  55. Administrador o Gerente de Proyectos Analista Funcional Analistas Diseñador Arquitecto Programador Tester o Ingeniero de Pruebas Asegurador de Calidad Administrador de la Configuración Ingeniero de Validación y Verificación Documentador Ingeniero de Manutención Cliente Usuario
  56. Lo siento, aun estoy terminando esta presentación, regresa pronto… Próximos temas: Explicación de los Roles
SlideShare Zeitgeist 2009

+ Sorey GarciaSorey Garcia Nominate

custom

3157 views, 18 favs, 11 embeds more stats

Las imagenes usadas en esta presentación tiene un more

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 3157
    • 3058 on SlideShare
    • 99 from embeds
  • Comments 2
  • Favorites 18
  • Downloads 0
Most viewed embeds
  • 36 views on http://soreygarcia.blogspot.com
  • 27 views on http://blog.soreygarcia.me
  • 23 views on http://soreygarcia.zobyhost.com
  • 3 views on http://www.soreygarcia.me
  • 2 views on http://servetpa.blogspot.com

more

All embeds
  • 36 views on http://soreygarcia.blogspot.com
  • 27 views on http://blog.soreygarcia.me
  • 23 views on http://soreygarcia.zobyhost.com
  • 3 views on http://www.soreygarcia.me
  • 2 views on http://servetpa.blogspot.com
  • 2 views on http://soreygarcia.me
  • 2 views on http://tec-calidad-sw.wikispaces.com
  • 1 views on http://localhost:58085
  • 1 views on http://feeds2.feedburner.com
  • 1 views on http://www.slideshare.net
  • 1 views on http://www.blog.deitek.com

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories