SlideShare ist ein Scribd-Unternehmen logo
1 von 100
Estrategias  Ava net  Ingeniería de Software (Sensibilización)
¿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
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?
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
Si sabes algo que no sabemos, ayúdanos a entenderlo
Recuerda! Ava net  no pretende reemplazar la academia, solo dejarte la inquietud de que  siempre  hay  una mejor forma de hacer las cosas .
¿Qué es Ingeniería de software?
"Ingeniería del Software es el estudio de los  principios  y  metodologías  para  desarrollo y mantenimiento  de sistemas de software" Zelkovitz 1978.
“ 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.
“ 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.
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.
¿Se entendió? Busquemos una definición…
Ha pensado alguna vez, Donde hay software?
 
 
 
 
 
 
Parece que son más  responsabilidades  de las que esperábamos no? Bueno, y que tal si nos hacemos un par de preguntas…
Iría en un viaje alrededor de la tierra en globo, sabiendo que este esta controlado por una computadora?
Viajaría usted en un avión cuyo software ha sido construido por usted?
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…
Dudan los enfermos del corazón de sus médicos cirujanos?
Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
¿En que parte de las definiciones está nuestro  que hacer  como personas?
La  ingeniería de software  es una idea casi ética sobre como hacer el software de  forma correcta
Una idea personal Ser ingeniero tiene que ver con  “ ser humanamente responsable”
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
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
Reemplacemos entonces la frase  “ hacer software de forma correcta ” por  “ hacer software de  calidad ”
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 ”
Hacer las cosas bien, siempre va a requerir  un poco más de esfuerzo,  que hacerlas de cualquier otro modo
Con el fin de tener un acercamiento común a las ideas que intentamos transmitir, haremos algunas analogías usando el sentido común
¿Y si este fuera nuestro proyecto?
¿Qué necesitaríamos para construirlo?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Parece  Intuitivo no?
Sin embargo sabemos que en realidad, es un poco más difícil de lo que imaginamos
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
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 ?
Si? Pues bien, los  clientes   y  usuarios   de los proyectos de software, esperan  exactamente lo mismo !
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)
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
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
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
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=_EM0hDchVlY
Que tal las respuestas? Nada agradables si me permiten decirles!
Y quien dice que  siempre   sale mal? A pues no,  no siempre  sale mal… Solo algunas veces… Veamos…
CHAOS Report 1995:  http://net.educause.edu/ir/library/pdf/NCP08083B.pdf
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
¿Qué errores se comenten?
Falta de comunicación
Ausencia de objetivos y metas claras durante la ejecución del proyecto
Mala estimación de tiempos
Falta de planificación
Requisitos poco claros y falta de acceso a la información
Indefinición del alcance y las responsabilidades de las partes
Falta de identificación y gestión de los riesgos
Carencia de habilidades en la ejecución de un rol
Falta de seguimiento al avance del proyecto
Falta de control del presupuesto
Recursos Insuficientes
No poseer o seguir una arquitectura
Falta de conocimiento e interés en la aplicación de mejores prácticas
Y es que no es lo mismo construir esto…
Que esto!
O esto!
Que se necesita para construir algo asi?
Que tal esto?
Y esto?
O esto?
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?
 
Lo mismo sucede con el software, todos los proyectos son distintos, por lo cual cada uno debe ser considerado individualmente
Los cambios en las  primeras etapas  son más costosos que en las  últimas
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
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.
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 .
Veamos que tal estamos ahora…
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
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 .
¿Y como se hace?
Empecemos entonces por hablar de las etapas básicas propuestas por el  ciclo de vida clásico del software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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…
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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?
De ti depende que tan lejos quieres llegar
 
Antes de intentar aprender algo  ten presente… lo complejo, alguna vez… fue  simple , entiende primero lo simple.
Algunas tareas…
Explora!
Investiga!
Cuestiona!
Crea!
Aprende!
Sueña!
Gracias!
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

Weitere ähnliche Inhalte

Was ist angesagt?

No hay bala de plata
No hay bala de plataNo hay bala de plata
No hay bala de plataJulio Huamán
 
Presentación Modelo sistemático para testeo con usuarios en Startups
Presentación Modelo sistemático para testeo con usuarios en StartupsPresentación Modelo sistemático para testeo con usuarios en Startups
Presentación Modelo sistemático para testeo con usuarios en StartupsGustavo Soto Miño
 

Was ist angesagt? (6)

Trabajo
TrabajoTrabajo
Trabajo
 
No Silver Bullet
No Silver BulletNo Silver Bullet
No Silver Bullet
 
No hay bala de plata
No hay bala de plataNo hay bala de plata
No hay bala de plata
 
Resumen patrones
Resumen patronesResumen patrones
Resumen patrones
 
Entregable 1..
Entregable 1..Entregable 1..
Entregable 1..
 
Presentación Modelo sistemático para testeo con usuarios en Startups
Presentación Modelo sistemático para testeo con usuarios en StartupsPresentación Modelo sistemático para testeo con usuarios en Startups
Presentación Modelo sistemático para testeo con usuarios en Startups
 

Ähnlich wie Estrategias Avanzadas Ingeniería Software

Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para DummiesSorey García
 
El Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un EnsayoEl Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un EnsayoIng-D-SW-TorresKhano--ME
 
Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruizjhonatanalex
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanjhonatanalex
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueJosue Zelaya
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software Luis Valeriano
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)emmanuelsolis16
 

Ähnlich wie Estrategias Avanzadas Ingeniería Software (20)

Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
El Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un EnsayoEl Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un Ensayo
 
Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1
 
Integrantes
IntegrantesIntegrantes
Integrantes
 
Integrantes
IntegrantesIntegrantes
Integrantes
 
Ada 30
Ada 30Ada 30
Ada 30
 
Integrantes
IntegrantesIntegrantes
Integrantes
 
Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruiz
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatan
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josue
 
Ciclovida
CiclovidaCiclovida
Ciclovida
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software
 
V2n2a1 (1)
V2n2a1 (1)V2n2a1 (1)
V2n2a1 (1)
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
El software
El softwareEl software
El software
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)
 

Mehr von Avanet

Azure en entornos empresariales
Azure en entornos empresarialesAzure en entornos empresariales
Azure en entornos empresarialesAvanet
 
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .net
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .netDesarrollo de aplicaciones móviles (ios,android,windows phone) con .net
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .netAvanet
 
Flujos de trabajo en servidores virtuales de Azure Implementando Process Maker
Flujos de trabajo en servidores virtuales de Azure Implementando Process MakerFlujos de trabajo en servidores virtuales de Azure Implementando Process Maker
Flujos de trabajo en servidores virtuales de Azure Implementando Process MakerAvanet
 
Uso de html5 + webcomponents
Uso de html5 + webcomponentsUso de html5 + webcomponents
Uso de html5 + webcomponentsAvanet
 
Novedades en Windows Server 2012 R2
Novedades en Windows Server 2012 R2Novedades en Windows Server 2012 R2
Novedades en Windows Server 2012 R2Avanet
 
Intro a HTML5 Apps con Windows 8.1
Intro a HTML5 Apps con Windows 8.1Intro a HTML5 Apps con Windows 8.1
Intro a HTML5 Apps con Windows 8.1Avanet
 
Hardening De Servidores GNU/Linux
Hardening De Servidores GNU/LinuxHardening De Servidores GNU/Linux
Hardening De Servidores GNU/LinuxAvanet
 
Desarrollo de aplicaciones Django con Python 2.0 en Azure
Desarrollo de aplicaciones Django con Python 2.0 en AzureDesarrollo de aplicaciones Django con Python 2.0 en Azure
Desarrollo de aplicaciones Django con Python 2.0 en AzureAvanet
 
Microsoft Azure.- IAAS
Microsoft Azure.- IAASMicrosoft Azure.- IAAS
Microsoft Azure.- IAASAvanet
 
Enseñar a programar a los más chicos
Enseñar a programar a los más chicosEnseñar a programar a los más chicos
Enseñar a programar a los más chicosAvanet
 
Desarrollo de aplicaciones PHP con Azure
Desarrollo de aplicaciones PHP con AzureDesarrollo de aplicaciones PHP con Azure
Desarrollo de aplicaciones PHP con AzureAvanet
 
Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Avanet
 
Pair Programming - Discute con tu compañero, no con tu teclado
Pair Programming - Discute con tu compañero, no con tu tecladoPair Programming - Discute con tu compañero, no con tu teclado
Pair Programming - Discute con tu compañero, no con tu tecladoAvanet
 
Introducción a la Programación Web con Django
Introducción a la Programación Web con DjangoIntroducción a la Programación Web con Django
Introducción a la Programación Web con DjangoAvanet
 
Html5.- Desarrollo y Buenas Prácticas con JavaScript
Html5.- Desarrollo y Buenas Prácticas con JavaScriptHtml5.- Desarrollo y Buenas Prácticas con JavaScript
Html5.- Desarrollo y Buenas Prácticas con JavaScriptAvanet
 
Webmatrix.- Web Apps con Kendo UI
Webmatrix.- Web Apps con Kendo UIWebmatrix.- Web Apps con Kendo UI
Webmatrix.- Web Apps con Kendo UIAvanet
 
Los errores más comunes de los programadores novatos
Los errores más comunes de los programadores novatosLos errores más comunes de los programadores novatos
Los errores más comunes de los programadores novatosAvanet
 
Preprocesadores CSS con LessCSS
Preprocesadores CSS con LessCSSPreprocesadores CSS con LessCSS
Preprocesadores CSS con LessCSSAvanet
 
Responsive Design
Responsive DesignResponsive Design
Responsive DesignAvanet
 
Ruby desde cero
Ruby desde ceroRuby desde cero
Ruby desde ceroAvanet
 

Mehr von Avanet (20)

Azure en entornos empresariales
Azure en entornos empresarialesAzure en entornos empresariales
Azure en entornos empresariales
 
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .net
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .netDesarrollo de aplicaciones móviles (ios,android,windows phone) con .net
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .net
 
Flujos de trabajo en servidores virtuales de Azure Implementando Process Maker
Flujos de trabajo en servidores virtuales de Azure Implementando Process MakerFlujos de trabajo en servidores virtuales de Azure Implementando Process Maker
Flujos de trabajo en servidores virtuales de Azure Implementando Process Maker
 
Uso de html5 + webcomponents
Uso de html5 + webcomponentsUso de html5 + webcomponents
Uso de html5 + webcomponents
 
Novedades en Windows Server 2012 R2
Novedades en Windows Server 2012 R2Novedades en Windows Server 2012 R2
Novedades en Windows Server 2012 R2
 
Intro a HTML5 Apps con Windows 8.1
Intro a HTML5 Apps con Windows 8.1Intro a HTML5 Apps con Windows 8.1
Intro a HTML5 Apps con Windows 8.1
 
Hardening De Servidores GNU/Linux
Hardening De Servidores GNU/LinuxHardening De Servidores GNU/Linux
Hardening De Servidores GNU/Linux
 
Desarrollo de aplicaciones Django con Python 2.0 en Azure
Desarrollo de aplicaciones Django con Python 2.0 en AzureDesarrollo de aplicaciones Django con Python 2.0 en Azure
Desarrollo de aplicaciones Django con Python 2.0 en Azure
 
Microsoft Azure.- IAAS
Microsoft Azure.- IAASMicrosoft Azure.- IAAS
Microsoft Azure.- IAAS
 
Enseñar a programar a los más chicos
Enseñar a programar a los más chicosEnseñar a programar a los más chicos
Enseñar a programar a los más chicos
 
Desarrollo de aplicaciones PHP con Azure
Desarrollo de aplicaciones PHP con AzureDesarrollo de aplicaciones PHP con Azure
Desarrollo de aplicaciones PHP con Azure
 
Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5
 
Pair Programming - Discute con tu compañero, no con tu teclado
Pair Programming - Discute con tu compañero, no con tu tecladoPair Programming - Discute con tu compañero, no con tu teclado
Pair Programming - Discute con tu compañero, no con tu teclado
 
Introducción a la Programación Web con Django
Introducción a la Programación Web con DjangoIntroducción a la Programación Web con Django
Introducción a la Programación Web con Django
 
Html5.- Desarrollo y Buenas Prácticas con JavaScript
Html5.- Desarrollo y Buenas Prácticas con JavaScriptHtml5.- Desarrollo y Buenas Prácticas con JavaScript
Html5.- Desarrollo y Buenas Prácticas con JavaScript
 
Webmatrix.- Web Apps con Kendo UI
Webmatrix.- Web Apps con Kendo UIWebmatrix.- Web Apps con Kendo UI
Webmatrix.- Web Apps con Kendo UI
 
Los errores más comunes de los programadores novatos
Los errores más comunes de los programadores novatosLos errores más comunes de los programadores novatos
Los errores más comunes de los programadores novatos
 
Preprocesadores CSS con LessCSS
Preprocesadores CSS con LessCSSPreprocesadores CSS con LessCSS
Preprocesadores CSS con LessCSS
 
Responsive Design
Responsive DesignResponsive Design
Responsive Design
 
Ruby desde cero
Ruby desde ceroRuby desde cero
Ruby desde cero
 

Estrategias Avanzadas Ingeniería Software

  • 1. Estrategias Ava net Ingeniería de Software (Sensibilización)
  • 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. 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. 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. Si sabes algo que no sabemos, ayúdanos a entenderlo
  • 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. ¿Qué es Ingeniería de software?
  • 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. “ 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. “ 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. 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. ¿Se entendió? Busquemos una definición…
  • 13. Ha pensado alguna vez, Donde hay software?
  • 14.  
  • 15.  
  • 16.  
  • 17.  
  • 18.  
  • 19.  
  • 20. Parece que son más responsabilidades de las que esperábamos no? Bueno, y que tal si nos hacemos un par de preguntas…
  • 21. Iría en un viaje alrededor de la tierra en globo, sabiendo que este esta controlado por una computadora?
  • 22. Viajaría usted en un avión cuyo software ha sido construido por usted?
  • 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…
  • 24. Dudan los enfermos del corazón de sus médicos cirujanos?
  • 25. Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
  • 26. ¿En que parte de las definiciones está nuestro que hacer como personas?
  • 27. La ingeniería de software es una idea casi ética sobre como hacer el software de forma correcta
  • 28. Una idea personal Ser ingeniero tiene que ver con “ ser humanamente responsable”
  • 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
  • 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
  • 31. Reemplacemos entonces la frase “ hacer software de forma correcta ” por “ hacer software de calidad ”
  • 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 ”
  • 33. Hacer las cosas bien, siempre va a requerir un poco más de esfuerzo, que hacerlas de cualquier otro modo
  • 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
  • 35. ¿Y si este fuera nuestro proyecto?
  • 37.
  • 39. Sin embargo sabemos que en realidad, es un poco más difícil de lo que imaginamos
  • 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
  • 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 ?
  • 42. Si? Pues bien, los clientes y usuarios de los proyectos de software, esperan exactamente lo mismo !
  • 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)
  • 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
  • 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
  • 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
  • 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 "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=_EM0hDchVlY
  • 48. Que tal las respuestas? Nada agradables si me permiten decirles!
  • 49. Y quien dice que siempre sale mal? A pues no, no siempre sale mal… Solo algunas veces… Veamos…
  • 50. CHAOS Report 1995: http://net.educause.edu/ir/library/pdf/NCP08083B.pdf
  • 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
  • 52. ¿Qué errores se comenten?
  • 54. Ausencia de objetivos y metas claras durante la ejecución del proyecto
  • 57. Requisitos poco claros y falta de acceso a la información
  • 58. Indefinición del alcance y las responsabilidades de las partes
  • 59. Falta de identificación y gestión de los riesgos
  • 60. Carencia de habilidades en la ejecución de un rol
  • 61. Falta de seguimiento al avance del proyecto
  • 62. Falta de control del presupuesto
  • 64. No poseer o seguir una arquitectura
  • 65. Falta de conocimiento e interés en la aplicación de mejores prácticas
  • 66. Y es que no es lo mismo construir esto…
  • 69. Que se necesita para construir algo asi?
  • 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?
  • 74.  
  • 75. Lo mismo sucede con el software, todos los proyectos son distintos, por lo cual cada uno debe ser considerado individualmente
  • 76. Los cambios en las primeras etapas son más costosos que en las últimas
  • 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
  • 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.
  • 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 .
  • 80. Veamos que tal estamos ahora…
  • 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
  • 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 .
  • 83. ¿Y como se hace?
  • 84.
  • 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 .
  • 86. Las personas vinculadas a estos roles en un proyecto , son conocidos como los participantes . Conozcamos algunos de ellos…
  • 87.
  • 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?
  • 89. De ti depende que tan lejos quieres llegar
  • 90.  
  • 91. Antes de intentar aprender algo ten presente… lo complejo, alguna vez… fue simple , entiende primero lo simple.
  • 96. Crea!
  • 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