SlideShare ist ein Scribd-Unternehmen logo
1 von 155
Taller: Ingeniería de Software ¿Para qué complicarnos si podemos hacerlo fácil?
Talleristas Hernán Guzmán Cristian Aroca Sorey García Apoyo Orlando Contreras David Ramirez Cubrimiento Angelo Cardona (Streaming) Jenny Chica (Fotografía) Pavel Espitia (Twitter y Chat) Asesor Tecnoparque Julián Guevara
¿Qué es Avanet? Avanet(Academia Virtual Altruista) es una comunidad virtual abierta orientada a generar mecanismos de proyección y capacitación profesional, a través de la difusión y gestión de conocimiento, por medio de herramientas de autoaprendizaje dinámicas que faciliten la apropiación y conservación de este, de y hacia todas las personas que desean adquirir o fortalecer las habilidades necesarias para el desarrollo de sus actividades profesionales y laborales.
Muchos se preguntan ¿Por qué academia? La siguiente definición nos inspira a usar el término "Academia" como parte de nuestro lema y nombre:  “Asociación de personas cuyo objeto es el cultivo y el progreso de las artes, las letras, ciencia, tecnología, etc.”
Sensibilización Sorey García (@soreygarcia)
El por qué de este taller La ingeniería de software y la calidadnos resultan temas apasionantes… Ser humanamente responsable  nos resulta un reto Intentar hacer las dos primeras sin la última es claramente un despropósito
Con este taller no pretendemos enseñarle a ser “humanamente responsable” Lo único que queremos es darle algunas ideas de “por qué debería serlo”  si se dedica usted al tema de  “hacer software”
¿Qué es Ingeniería de Software? Busquemos una definición
La Ingeniería de Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada requerida para construirlos, operarlos y mantenerlos.  Bohem - 1976.
Ingeniería del Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software.  Zelkovitz - 1978
La Ingeniería de Software es la aplicación de un enfoque sistemático, disciplinado, y cuantificable al desarrollo, operación, y mantenimiento del software.  IEEE - 1993.
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.Wikipediahttp://es.wikipedia.org/wiki/Ingenier%C3%ADa_del_software
Todo eso parece un concepto muy elevado  para algo que parece ser tan simple como  “hacer software”
Si, es cierto… Es tan simple que puedes aprenderlo en internet, incluso trabajar en ello  y ganar mucho más,  que muchos de los que estudian física,  matemáticas y ética…
¡Ups!... Un momento, nadie dijo que lo hicieras bien, solo que también podías hacerlo, hacer lo simple… y… ¿Por qué conformarse con eso?
Quizá la Ingeniería de Software no tiene tantos años como la física, matemáticas o arquitectura…
Pero créanos, tampoco se la inventaron ayer…
Para empezar a entender todo esto hagamos una pequeña reflexión Se han preguntado alguna vez¿Dónde hay software?
¿Quién es un ingeniero de software? En este taller, cuando hablamos de un ingeniero de software no hablamos de un ingeniero titulado, hablamos de una persona involucrada en el proceso  de construcción de cualquier producto de software…  ¡Hablamos de usted!
¿Lo duda?Veamos que tanto lo involucra todo estoIntente responder un par de preguntas típicas
¿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 estas preguntas le producen un tanto de risa o duda, lo invitamos a replantearse… El tema de que nuestra profesión sea un chiste, ha sido comparado con este video: ¿Qué pasaría si los programadores construyeran aviones? http://www.youtube.com/watch?v=UZq4sZz56qM
Gracioso¿No?¡Pues NO! No es gracioso que siendo un profesional tu trabajo  sea tomado en broma…El problema es ¿Qué pasa si nosotros mismos nos tomamos nuestro trabajo en broma?
Comparemos…¿Dudan los enfermos del corazón de sus médicos cirujanos?
¿Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
¿Dudan los acusados del abogado que defenderá su inocencia?
¿Dudan las personas de los contadores que les ayudan a llevar sus finanzas?
Esto es una invitación a cuestionarse ¿Dudas de ti? ¿Dudas de tu equipo de trabajo?
Aquí va una propuesta de una definición menos formal La ingeniería de software es una idea casi ética (no solo ética) de como hacer el software de forma correcta (software de calidad)
Y hacer las cosas bien, siempre va a requerir un poco más de esfuerzo, que hacerlas de cualquier otro modo No hacerlo, siempre va a tener consecuencias…
¿Qué consecuencias?¿Acaso en software no importa es básicamente que funcione?Veamos algunas respuestas a esa pregunta… (Ojo, lassiguientesimagenes son meramenteilustrativa, no todaspertenecen al hechodescrito)
Therac-25  (1985 – 1987) Era una máquina empleada en terapia de radiación, producida por AtomicEnergy of CanadaLimited, 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
¿Qué tal las respuestas? ¡Nada agradables si me permiten decirles!
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.
Usemos otra analogía para entender de que estamos hablando…
Si una edificación fuera nuestro proyecto… ¿Qué necesitaríamos para construirlo?
Veamos… ,[object Object]
Personas
Tiempo
Dinero
Recursos
Estrategia,[object Object]
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, planificary establecer, qué es lo que va a desarrollarse, cómo, con cuantos recursos, en cuanto tiempo e incluso a que nivel de calidad, es lo que conocemos como el Proceso Software
El Proceso de Software es el conjunto de 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 retiro final del sistema.
Practicas y Principios Actividades Herramientas Personas Proceso de Software Notación Roles Artefactos Pressman
Proceso de Software Hernan Guzmán (@hernandgr)
Ciclo de Vida Clásico El ciclo de vida describe los estados por los que pasa un producto de software, desde su concepción hasta su muerte.
Ciclo de Vida Clásico Análisis Diseño Construcción Pruebas Operación y Mantenimiento
Existe una gran la variedad de propuestas de proceso de software, sin embargo el conjunto de actividades fundamentales definidas en el Ciclo de Vida Clásico se encuentran presentes en todos ellos. Conozcamos algunas…
MétodologíasEstructuradas
RUP
Microsoft  Solutions Framework MSF
MétodologíasÁgiles
SCRUM AUP Manifiesto Ágil Individuos e Interacciones Procesos y herramientas sobre XP Software que funciona Documentación exhaustiva sobre Colaboración con el cliente Negociación de contratos sobre Responder ante el cambio Seguimiento de un plan sobre
No existe un proceso de desarrollo de software universal que sea efectivo para todos los contextos de proyectos de desarrollo, de allí que sea necesario elegir cual de ellos es más conveniente, teniendo en cuenta algunos criterios…
Criterios de  selección
Complejidad
Costo/BeneficioEconómico
Robustez del software
Conocimiento disponible
Roles del Proceso Hernan Guzmán (@hernandgr)
El desarrollo de software es una actividad que, dada su complejidad, debe desarrollarse en grupo.  Además, esta actividad requiere de distintas capacidades, las que no se encuentran todas en una sola persona. Por ello, se hace necesario formar el grupo de desarrollo con las personas que cubran todas las capacidades requeridas. Cada una de esas personas aportará al grupo parte del total de las capacidades necesarias para llevar a cabo con éxito el desarrollo.
Con el tema de los roles tampoco debemos permitir que nos suceda esto…
Gerente de Proyectos
Analista Funcional
Arquitecto de Software
Analista Diseñador
Analista Programador
Analista de Pruebas
Revisor par Usuario Otros Roles Líder técnico
Dinámica Vivencial (Procesos y Roles) Orlando Contreras (@magicovercast)
Dinámica de Grupos ,[object Object]
 Cada grupo recibirá unos materiales (hoja de números, resaltador, marcador y unas tijeras) y un conjunto de instrucciones a seguir
 Cada grupo debe leer sus instrucciones en silencio y sin conversar entre los integrantes a menos que así lo indique la hoja de instrucciones.
 Los equipos deben seguir la estrategia definida en la hoja de instrucciones sin modificarla, no debe copiarse la estrategia de otro grupo.
 A la señal los equipos deben iniciar con las tareas que se estarán proyectando. La proyección no se devolverá.Idea original de la dinámica: Luis Fernando Londoño
El tema que tiene que ver con procesos es como el habito de comer, uno puede comer de dos maneras, bien o mal en ultima instancia el fin "para muchas personas" es llenarse…  Uno puede comer comida sana o comida chatarra y vive, puede vivir con mas dificultades pero vive,…  Sin embargo "el que se alimenta bien tiene más posibilidades de sobrevivir“ Luis Fernando Londoño
Calidad de Software Cristian Aroca (@caroca315)
¿Quéescalidad? “Quality is Value  to some person” Gerald Weinberg
¿Les ha ocurridoesto? Lo sentimos por un error en el sistema, no podemos darle la información que necesita. Por favor regrese otro día…
¿Siempre vamos a vivir con estos errores?  ¿Nos tenemos que acostumbrar?  ¿Qué están haciendo para corregirlo?
“Cambiar la primeraimpresiónesmuydifícil” “Perder la confianzaesfácil, volverla a recuperarcuesta” Dichospopulares
¿Cuáles son lascaracterísticas de calidadparaproductos de software? } Portabilidad Mantenibilidad Eficiencia Usabilidad Confiabilidad Funcionalidad ISO / IEC 9126
Funcionalidad ¿Las funciones y propiedadessatisfacenlasnecesidadesexplícitas e implícitas?
{ Funcionalidad Adecuación Exactitud Interoperabilidad Conformidad Seguridad
Confiabilidad ¿Puedemantener el nivel de rendimiento, bajociertascondiciones y porciertotiempo?
{ Confiabilidad Nivel de Madurez Tolerancia a Fallas Recuperación
Usabilidad ¿El software esfácil de usar y aprender?
{ Usabilidad Comprensibilidad FacilidadparaAprender Operabilidad
Eficiencia ¿Es rápido y minimalista en cuanto al uso de recursos?
¿Cuáles son lascaracterísticas de calidadparaproductos de software? { Eficiencia Comportamiento con respecto al tiempo Comportamiento con respecto a recursos
Mantenibilidad ¿Es fácil de modificar y verificar?
{ Capacidad de Análisis Capacidad de Modificación Mantenibilidad Estabilidad Facilidad de Pruebas
Portabilidad ¿Es fácil de transferir de un sistema a otro?
{ Portabilidad Adaptabilidad Facilidad de Instalación Conformidad Capacidad de Reemplazo
¿Cómomejoramosla calidad? Acceptance Testing Requirement Analysis System Testing System Design Architecture Design Proceso Producto Integration Testing Module Design Coding Unit Testing
Conclusiones La calidad no se debedejarpara el final, esunaactividad transversal a todo el proceso
Conclusiones Es muyvaliosa la percepción del usuario, puesesquientrabaja y recibenuestroproducto. Es comúnver software hechosparaquienes lo desarrollaron y no paraquienes lo van a usar
Conclusiones El ser humanocuenta con unagrancapacidadparacrearhábitos.  Creemoshábitosparaconstruir software con calidad
Conclusiones ¿La ingeniería de software está en pañales? No tanto, yaexistenmuchostrabajos y estudios en torno a ella, de nosotrosdependesuadopción, paraqueestadisciplinasigamadurando.
La calidad es exigida por todas las partes.  Si la exigimos debemos colaborar con ella.
Dinámica Vivencial (Calidad de Software) Orlando Contreras (@magicovercast)
¿Qué atributos de calidad tendrían los siguientes elementos? Estas imágenes son usadas con propósitos exclusivamente educativos Idea original de la dinámica: @betancur
Errores Típicos Sorey García (@soreygarcia)
Los principios y practicas que pueden seguirse en la Ingeniería de Software, buscan garantizar un mejor resultado y uso de los recursos Pero, por alguna razón el comportamiento de los proyectos no es “aún” el esperado…
¿Quién dice que siempresale mal?A pues no, no siempre sale mal…Solo algunas veces
CHAOS Report  (Estudio de Resultado de Ejecución de los Proyectos de Software) Fuente: http://vidanp.wordpress.com/2010/02/01/estandares-de-medida/
Seguimos cayendo en los mismos errores una y otra vez…
Pues bien, muchos de estos errores son aducidos principalmente a falta de planeación y buenanálisis, cosa que tiene mucho sentido pero que sin embargo, no es la única razón…Como seres humanos involucrados en el Proceso de Software, 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
Falta de planificación
Falta de análisis y entendimiento de las necesidades del cliente
Requisitos poco claros y falta de acceso a la información
Mala estimación de tiempos
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
Tratar de construir sin tener una arquitectura definida
Falta de conocimiento e interés en la aplicación de mejores prácticas
Hasta ahora hemos hablando de conceptos generales, en la primera etapa, la etapa de análisis, hay muchas tareas por hacer… Para poner manos a la obra empezaremos por una tarea muy importante, la identificación de las necesidades del cliente
Ingeniería de Requisitos Sorey García (@soreygarcia)
La ingeniería de software comprende una serie de actividades lo suficientemente diversas como para poder considerar la necesidad de otras ingenierías dentro de la propia Ingeniería de software, la Ingeniería de Requisitos es una de ellas.
Si, Ingeniería de Requisitosy NO de Requerimientos
Un requisito por definición es: una condición necesaria para algo. Podemos entenderlo en nuestro caso como un enunciado que identifica una capacidad, característica o factor de calidad de un sistema con el fin de que tenga utilidad para un cliente o usuario.
¿Les ha ocurrido?¿De quien es el error?
#OffTopic ¡Aquí otro ejemplo de problemas en la definición de requisitos!
“La parte más difícil de construir de un sistema software es decidir qué construir. [..] Ninguna otra parte del trabajo afecta más negativamente al sistema final si se realiza de manera incorrecta. Ninguna otra parte es más difícil de rectificar después” Roger S. Pressman
“No se puede conocer la solución de un problema si antes no se conoce el problema.” Mirador - Monterrey,  México 1994
Importancia de los Requisitos Mostrar que resultados quieren los participantes Dar a los participantes oportunidad de decir que quieren Representar diferentes puntos de vista Probar el diseño Medir el progreso Aceptar productos contra criterios precisos
Elicitación de Requisitos Especificación de todos los requisitos de un sistema, restricciones y condiciones definidas por los usuarios para el correcto, eficiente, y eficaz funcionamiento del sistema a construir.
Técnicas de Elicitación de Requisitos ,[object Object]
Cuestionarios y encuestas
Observación
Entrevistas
Lluvia de Ideas
JAD (JointApplicationDesign - Desarrollo Conjunto de Aplicaciones)
Modelos y/o prototipado

Weitere ähnliche Inhalte

Was ist angesagt?

Orientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDOrientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDD
Cesar Gomez
 
PRESUPUESTO MANTENIMIENTO PREVENTIVO
PRESUPUESTO MANTENIMIENTO PREVENTIVOPRESUPUESTO MANTENIMIENTO PREVENTIVO
PRESUPUESTO MANTENIMIENTO PREVENTIVO
Diover Castrillon
 
La quinta disciplina pensamiento sistemico
La quinta disciplina pensamiento sistemicoLa quinta disciplina pensamiento sistemico
La quinta disciplina pensamiento sistemico
Giovanni Abanto
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
aics-1986-13-saraguro
 
Analisis y diseño de sistemas kendall y kendall, preguntas de repaso
Analisis y diseño de sistemas kendall y kendall,  preguntas de repasoAnalisis y diseño de sistemas kendall y kendall,  preguntas de repaso
Analisis y diseño de sistemas kendall y kendall, preguntas de repaso
Alejandro Rivera Santander
 
Unidad 3 estrategias en accion y matriz mcpe
Unidad 3 estrategias en accion y matriz mcpeUnidad 3 estrategias en accion y matriz mcpe
Unidad 3 estrategias en accion y matriz mcpe
Jeanet Meza Jara
 
Modulo cadena de valor
Modulo cadena de valorModulo cadena de valor
Modulo cadena de valor
Piedad Rojas
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
triana25
 
Analisis y diseño algoritmos
Analisis y diseño algoritmosAnalisis y diseño algoritmos
Analisis y diseño algoritmos
Enrique Y Ch
 

Was ist angesagt? (20)

Programación del curso - Estructura de Datos I
Programación del curso - Estructura de Datos IProgramación del curso - Estructura de Datos I
Programación del curso - Estructura de Datos I
 
Mantenimiento correctivo
Mantenimiento correctivoMantenimiento correctivo
Mantenimiento correctivo
 
APLICACIÓN DE SCRUM Y UML PARA EL DESARROLLO DE UN SISTEMA DE VENTAS
APLICACIÓN DE SCRUM Y UML PARA EL DESARROLLO DE UN SISTEMA DE VENTASAPLICACIÓN DE SCRUM Y UML PARA EL DESARROLLO DE UN SISTEMA DE VENTAS
APLICACIÓN DE SCRUM Y UML PARA EL DESARROLLO DE UN SISTEMA DE VENTAS
 
Orientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDOrientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDD
 
PRESUPUESTO MANTENIMIENTO PREVENTIVO
PRESUPUESTO MANTENIMIENTO PREVENTIVOPRESUPUESTO MANTENIMIENTO PREVENTIVO
PRESUPUESTO MANTENIMIENTO PREVENTIVO
 
Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
La quinta disciplina pensamiento sistemico
La quinta disciplina pensamiento sistemicoLa quinta disciplina pensamiento sistemico
La quinta disciplina pensamiento sistemico
 
Taxonomía de Malware
Taxonomía de MalwareTaxonomía de Malware
Taxonomía de Malware
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicional
 
Metodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasMetodologías para el Diseño de Sistemas
Metodologías para el Diseño de Sistemas
 
Plan de iteracion
Plan de iteracionPlan de iteracion
Plan de iteracion
 
Analisis y diseño de sistemas kendall y kendall, preguntas de repaso
Analisis y diseño de sistemas kendall y kendall,  preguntas de repasoAnalisis y diseño de sistemas kendall y kendall,  preguntas de repaso
Analisis y diseño de sistemas kendall y kendall, preguntas de repaso
 
Diapositivas principio de w5 hh
Diapositivas principio de w5 hhDiapositivas principio de w5 hh
Diapositivas principio de w5 hh
 
Modelo espiral
Modelo espiralModelo espiral
Modelo espiral
 
Unidad 3 estrategias en accion y matriz mcpe
Unidad 3 estrategias en accion y matriz mcpeUnidad 3 estrategias en accion y matriz mcpe
Unidad 3 estrategias en accion y matriz mcpe
 
Modulo cadena de valor
Modulo cadena de valorModulo cadena de valor
Modulo cadena de valor
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
Tema 07 metodologia asd
Tema 07   metodologia asdTema 07   metodologia asd
Tema 07 metodologia asd
 
Analisis y diseño algoritmos
Analisis y diseño algoritmosAnalisis y diseño algoritmos
Analisis y diseño algoritmos
 

Andere mochten auch

Pràctico 1 Taller de Sofware C.A.T
Pràctico 1 Taller de Sofware C.A.TPràctico 1 Taller de Sofware C.A.T
Pràctico 1 Taller de Sofware C.A.T
Maria Valenzuela
 
tpnro1-tallerdeinformática-turnonoche
tpnro1-tallerdeinformática-turnonochetpnro1-tallerdeinformática-turnonoche
tpnro1-tallerdeinformática-turnonoche
Erica Barrio
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de software
UVM
 
Intoduccion A La Ingenieria Del Software
Intoduccion A La Ingenieria Del SoftwareIntoduccion A La Ingenieria Del Software
Intoduccion A La Ingenieria Del Software
guest9ad165
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
Julio Pari
 
Mia software mdday2010
Mia software mdday2010Mia software mdday2010
Mia software mdday2010
MD DAY
 
Das Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimierenDas Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimieren
Matthias Stürmer
 

Andere mochten auch (20)

Ingeniería del Software de Gestión. Tema 1
Ingeniería del Software de Gestión. Tema 1Ingeniería del Software de Gestión. Tema 1
Ingeniería del Software de Gestión. Tema 1
 
Pràctico 1 Taller de Sofware C.A.T
Pràctico 1 Taller de Sofware C.A.TPràctico 1 Taller de Sofware C.A.T
Pràctico 1 Taller de Sofware C.A.T
 
tpnro1-tallerdeinformática-turnonoche
tpnro1-tallerdeinformática-turnonochetpnro1-tallerdeinformática-turnonoche
tpnro1-tallerdeinformática-turnonoche
 
Trabajo practico
Trabajo practicoTrabajo practico
Trabajo practico
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de software
 
Intoduccion A La Ingenieria Del Software
Intoduccion A La Ingenieria Del SoftwareIntoduccion A La Ingenieria Del Software
Intoduccion A La Ingenieria Del Software
 
TERCERA PATE - Resumen ingenieria-del-software
TERCERA PATE - Resumen ingenieria-del-softwareTERCERA PATE - Resumen ingenieria-del-software
TERCERA PATE - Resumen ingenieria-del-software
 
Ingeniería del Software de Gestión. Tema 2.
Ingeniería del Software de Gestión. Tema 2.Ingeniería del Software de Gestión. Tema 2.
Ingeniería del Software de Gestión. Tema 2.
 
Partes del computador
Partes del computadorPartes del computador
Partes del computador
 
Curso Uml 1 Introduccion
Curso Uml   1 IntroduccionCurso Uml   1 Introduccion
Curso Uml 1 Introduccion
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
 
Micotoxinas
MicotoxinasMicotoxinas
Micotoxinas
 
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
 
Mia software mdday2010
Mia software mdday2010Mia software mdday2010
Mia software mdday2010
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
 
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenWertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-Systemen
 
Präsentation PM Forum - Social Software
Präsentation PM Forum  - Social SoftwarePräsentation PM Forum  - Social Software
Präsentation PM Forum - Social Software
 
Einsatz von Social Software für Online-Marketing und virtuelle Zusammenarbeit...
Einsatz von Social Software fürOnline-Marketing und virtuelle Zusammenarbeit...Einsatz von Social Software fürOnline-Marketing und virtuelle Zusammenarbeit...
Einsatz von Social Software für Online-Marketing und virtuelle Zusammenarbeit...
 
Das Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimierenDas Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimieren
 
Software Academy 10 Erreurs Rh Par Altaide Et Moovement
Software Academy 10 Erreurs Rh Par Altaide Et MoovementSoftware Academy 10 Erreurs Rh Par Altaide Et Moovement
Software Academy 10 Erreurs Rh Par Altaide Et Moovement
 

Ähnlich wie Taller ingenieria de software

Estrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de SoftwareEstrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de Software
Avanet
 
La responsabilidad social de la Ingeniería de Software
La responsabilidad social de la Ingeniería de SoftwareLa responsabilidad social de la Ingeniería de Software
La responsabilidad social de la Ingeniería de Software
Avanet
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josue
Josue Zelaya
 
Sistemas operativos 3ro.
Sistemas operativos 3ro.Sistemas operativos 3ro.
Sistemas operativos 3ro.
Patricia Ferrer
 
Diferencia entre Viable y Factible
Diferencia entre Viable y FactibleDiferencia entre Viable y Factible
Diferencia entre Viable y Factible
bettyrondon123
 
Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgos
Melissa Burgos
 

Ähnlich wie Taller ingenieria de software (20)

Estrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de SoftwareEstrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de Software
 
Intruducción de la Ingeniería de Software
Intruducción de la Ingeniería de SoftwareIntruducción de la Ingeniería de Software
Intruducción de la Ingeniería de Software
 
La responsabilidad social de la Ingeniería de Software
La responsabilidad social de la Ingeniería de SoftwareLa responsabilidad social de la Ingeniería de Software
La responsabilidad social de la Ingeniería de Software
 
Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
Ingenieria de Software
Ingenieria de Software Ingenieria de Software
Ingenieria de Software
 
Integrantes
IntegrantesIntegrantes
Integrantes
 
Integrantes
IntegrantesIntegrantes
Integrantes
 
Diapocitivas preguntas
Diapocitivas preguntasDiapocitivas preguntas
Diapocitivas preguntas
 
Diapocitivas preguntas
Diapocitivas preguntasDiapocitivas preguntas
Diapocitivas preguntas
 
Diapocitivas preguntas
Diapocitivas preguntasDiapocitivas preguntas
Diapocitivas preguntas
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josue
 
Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)Tarea 1 (actividades del libro)
Tarea 1 (actividades del libro)
 
Sistemas operativos 3ro.
Sistemas operativos 3ro.Sistemas operativos 3ro.
Sistemas operativos 3ro.
 
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
 
Guia1omar
Guia1omarGuia1omar
Guia1omar
 
Integrantes
IntegrantesIntegrantes
Integrantes
 
Diferencia entre Viable y Factible
Diferencia entre Viable y FactibleDiferencia entre Viable y Factible
Diferencia entre Viable y Factible
 
Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgos
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 

Mehr von Avanet

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
 

Taller ingenieria de software

  • 1. Taller: Ingeniería de Software ¿Para qué complicarnos si podemos hacerlo fácil?
  • 2. Talleristas Hernán Guzmán Cristian Aroca Sorey García Apoyo Orlando Contreras David Ramirez Cubrimiento Angelo Cardona (Streaming) Jenny Chica (Fotografía) Pavel Espitia (Twitter y Chat) Asesor Tecnoparque Julián Guevara
  • 3. ¿Qué es Avanet? Avanet(Academia Virtual Altruista) es una comunidad virtual abierta orientada a generar mecanismos de proyección y capacitación profesional, a través de la difusión y gestión de conocimiento, por medio de herramientas de autoaprendizaje dinámicas que faciliten la apropiación y conservación de este, de y hacia todas las personas que desean adquirir o fortalecer las habilidades necesarias para el desarrollo de sus actividades profesionales y laborales.
  • 4. Muchos se preguntan ¿Por qué academia? La siguiente definición nos inspira a usar el término "Academia" como parte de nuestro lema y nombre: “Asociación de personas cuyo objeto es el cultivo y el progreso de las artes, las letras, ciencia, tecnología, etc.”
  • 6. El por qué de este taller La ingeniería de software y la calidadnos resultan temas apasionantes… Ser humanamente responsable nos resulta un reto Intentar hacer las dos primeras sin la última es claramente un despropósito
  • 7. Con este taller no pretendemos enseñarle a ser “humanamente responsable” Lo único que queremos es darle algunas ideas de “por qué debería serlo” si se dedica usted al tema de “hacer software”
  • 8. ¿Qué es Ingeniería de Software? Busquemos una definición
  • 9. La Ingeniería de Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada requerida para construirlos, operarlos y mantenerlos. Bohem - 1976.
  • 10. Ingeniería del Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software. Zelkovitz - 1978
  • 11. La Ingeniería de Software es la aplicación de un enfoque sistemático, disciplinado, y cuantificable al desarrollo, operación, y mantenimiento del software. IEEE - 1993.
  • 12. 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.Wikipediahttp://es.wikipedia.org/wiki/Ingenier%C3%ADa_del_software
  • 13. Todo eso parece un concepto muy elevado para algo que parece ser tan simple como “hacer software”
  • 14. Si, es cierto… Es tan simple que puedes aprenderlo en internet, incluso trabajar en ello y ganar mucho más, que muchos de los que estudian física, matemáticas y ética…
  • 15. ¡Ups!... Un momento, nadie dijo que lo hicieras bien, solo que también podías hacerlo, hacer lo simple… y… ¿Por qué conformarse con eso?
  • 16. Quizá la Ingeniería de Software no tiene tantos años como la física, matemáticas o arquitectura…
  • 17. Pero créanos, tampoco se la inventaron ayer…
  • 18. Para empezar a entender todo esto hagamos una pequeña reflexión Se han preguntado alguna vez¿Dónde hay software?
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. ¿Quién es un ingeniero de software? En este taller, cuando hablamos de un ingeniero de software no hablamos de un ingeniero titulado, hablamos de una persona involucrada en el proceso de construcción de cualquier producto de software… ¡Hablamos de usted!
  • 27. ¿Lo duda?Veamos que tanto lo involucra todo estoIntente responder un par de preguntas típicas
  • 28. ¿Iría en un viaje alrededor de la tierra en globo, sabiendo que este esta controlado por una computadora?
  • 29. ¿Viajaría usted en un avión cuyo software ha sido construido por usted?
  • 30. Si estas preguntas le producen un tanto de risa o duda, lo invitamos a replantearse… El tema de que nuestra profesión sea un chiste, ha sido comparado con este video: ¿Qué pasaría si los programadores construyeran aviones? http://www.youtube.com/watch?v=UZq4sZz56qM
  • 31. Gracioso¿No?¡Pues NO! No es gracioso que siendo un profesional tu trabajo sea tomado en broma…El problema es ¿Qué pasa si nosotros mismos nos tomamos nuestro trabajo en broma?
  • 32. Comparemos…¿Dudan los enfermos del corazón de sus médicos cirujanos?
  • 33. ¿Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
  • 34. ¿Dudan los acusados del abogado que defenderá su inocencia?
  • 35. ¿Dudan las personas de los contadores que les ayudan a llevar sus finanzas?
  • 36. Esto es una invitación a cuestionarse ¿Dudas de ti? ¿Dudas de tu equipo de trabajo?
  • 37. Aquí va una propuesta de una definición menos formal La ingeniería de software es una idea casi ética (no solo ética) de como hacer el software de forma correcta (software de calidad)
  • 38. Y hacer las cosas bien, siempre va a requerir un poco más de esfuerzo, que hacerlas de cualquier otro modo No hacerlo, siempre va a tener consecuencias…
  • 39. ¿Qué consecuencias?¿Acaso en software no importa es básicamente que funcione?Veamos algunas respuestas a esa pregunta… (Ojo, lassiguientesimagenes son meramenteilustrativa, no todaspertenecen al hechodescrito)
  • 40. Therac-25 (1985 – 1987) Era una máquina empleada en terapia de radiación, producida por AtomicEnergy of CanadaLimited, 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. ¿Qué tal las respuestas? ¡Nada agradables si me permiten decirles!
  • 45. 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.
  • 46. Usemos otra analogía para entender de que estamos hablando…
  • 47. Si una edificación fuera nuestro proyecto… ¿Qué necesitaríamos para construirlo?
  • 48.
  • 53.
  • 54. Sin embargo sabemos que en realidad, es un poco más difícil de lo que imaginamos
  • 55. Pues bien lo mismo sucede con la construcción de software…Para desarrollar software existen una serie de roles asociados, encargados de analizar, planificary establecer, qué es lo que va a desarrollarse, cómo, con cuantos recursos, en cuanto tiempo e incluso a que nivel de calidad, es lo que conocemos como el Proceso Software
  • 56. El Proceso de Software es el conjunto de 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 retiro final del sistema.
  • 57. Practicas y Principios Actividades Herramientas Personas Proceso de Software Notación Roles Artefactos Pressman
  • 58. Proceso de Software Hernan Guzmán (@hernandgr)
  • 59. Ciclo de Vida Clásico El ciclo de vida describe los estados por los que pasa un producto de software, desde su concepción hasta su muerte.
  • 60. Ciclo de Vida Clásico Análisis Diseño Construcción Pruebas Operación y Mantenimiento
  • 61. Existe una gran la variedad de propuestas de proceso de software, sin embargo el conjunto de actividades fundamentales definidas en el Ciclo de Vida Clásico se encuentran presentes en todos ellos. Conozcamos algunas…
  • 63. RUP
  • 64. Microsoft Solutions Framework MSF
  • 66. SCRUM AUP Manifiesto Ágil Individuos e Interacciones Procesos y herramientas sobre XP Software que funciona Documentación exhaustiva sobre Colaboración con el cliente Negociación de contratos sobre Responder ante el cambio Seguimiento de un plan sobre
  • 67. No existe un proceso de desarrollo de software universal que sea efectivo para todos los contextos de proyectos de desarrollo, de allí que sea necesario elegir cual de ellos es más conveniente, teniendo en cuenta algunos criterios…
  • 68. Criterios de selección
  • 73. Roles del Proceso Hernan Guzmán (@hernandgr)
  • 74. El desarrollo de software es una actividad que, dada su complejidad, debe desarrollarse en grupo. Además, esta actividad requiere de distintas capacidades, las que no se encuentran todas en una sola persona. Por ello, se hace necesario formar el grupo de desarrollo con las personas que cubran todas las capacidades requeridas. Cada una de esas personas aportará al grupo parte del total de las capacidades necesarias para llevar a cabo con éxito el desarrollo.
  • 75. Con el tema de los roles tampoco debemos permitir que nos suceda esto…
  • 82. Revisor par Usuario Otros Roles Líder técnico
  • 83. Dinámica Vivencial (Procesos y Roles) Orlando Contreras (@magicovercast)
  • 84.
  • 85. Cada grupo recibirá unos materiales (hoja de números, resaltador, marcador y unas tijeras) y un conjunto de instrucciones a seguir
  • 86. Cada grupo debe leer sus instrucciones en silencio y sin conversar entre los integrantes a menos que así lo indique la hoja de instrucciones.
  • 87. Los equipos deben seguir la estrategia definida en la hoja de instrucciones sin modificarla, no debe copiarse la estrategia de otro grupo.
  • 88. A la señal los equipos deben iniciar con las tareas que se estarán proyectando. La proyección no se devolverá.Idea original de la dinámica: Luis Fernando Londoño
  • 89. El tema que tiene que ver con procesos es como el habito de comer, uno puede comer de dos maneras, bien o mal en ultima instancia el fin "para muchas personas" es llenarse… Uno puede comer comida sana o comida chatarra y vive, puede vivir con mas dificultades pero vive,… Sin embargo "el que se alimenta bien tiene más posibilidades de sobrevivir“ Luis Fernando Londoño
  • 90. Calidad de Software Cristian Aroca (@caroca315)
  • 91. ¿Quéescalidad? “Quality is Value to some person” Gerald Weinberg
  • 92. ¿Les ha ocurridoesto? Lo sentimos por un error en el sistema, no podemos darle la información que necesita. Por favor regrese otro día…
  • 93. ¿Siempre vamos a vivir con estos errores? ¿Nos tenemos que acostumbrar? ¿Qué están haciendo para corregirlo?
  • 94. “Cambiar la primeraimpresiónesmuydifícil” “Perder la confianzaesfácil, volverla a recuperarcuesta” Dichospopulares
  • 95. ¿Cuáles son lascaracterísticas de calidadparaproductos de software? } Portabilidad Mantenibilidad Eficiencia Usabilidad Confiabilidad Funcionalidad ISO / IEC 9126
  • 96. Funcionalidad ¿Las funciones y propiedadessatisfacenlasnecesidadesexplícitas e implícitas?
  • 97. { Funcionalidad Adecuación Exactitud Interoperabilidad Conformidad Seguridad
  • 98. Confiabilidad ¿Puedemantener el nivel de rendimiento, bajociertascondiciones y porciertotiempo?
  • 99. { Confiabilidad Nivel de Madurez Tolerancia a Fallas Recuperación
  • 100. Usabilidad ¿El software esfácil de usar y aprender?
  • 101. { Usabilidad Comprensibilidad FacilidadparaAprender Operabilidad
  • 102. Eficiencia ¿Es rápido y minimalista en cuanto al uso de recursos?
  • 103. ¿Cuáles son lascaracterísticas de calidadparaproductos de software? { Eficiencia Comportamiento con respecto al tiempo Comportamiento con respecto a recursos
  • 104. Mantenibilidad ¿Es fácil de modificar y verificar?
  • 105. { Capacidad de Análisis Capacidad de Modificación Mantenibilidad Estabilidad Facilidad de Pruebas
  • 106. Portabilidad ¿Es fácil de transferir de un sistema a otro?
  • 107. { Portabilidad Adaptabilidad Facilidad de Instalación Conformidad Capacidad de Reemplazo
  • 108. ¿Cómomejoramosla calidad? Acceptance Testing Requirement Analysis System Testing System Design Architecture Design Proceso Producto Integration Testing Module Design Coding Unit Testing
  • 109. Conclusiones La calidad no se debedejarpara el final, esunaactividad transversal a todo el proceso
  • 110. Conclusiones Es muyvaliosa la percepción del usuario, puesesquientrabaja y recibenuestroproducto. Es comúnver software hechosparaquienes lo desarrollaron y no paraquienes lo van a usar
  • 111. Conclusiones El ser humanocuenta con unagrancapacidadparacrearhábitos. Creemoshábitosparaconstruir software con calidad
  • 112. Conclusiones ¿La ingeniería de software está en pañales? No tanto, yaexistenmuchostrabajos y estudios en torno a ella, de nosotrosdependesuadopción, paraqueestadisciplinasigamadurando.
  • 113. La calidad es exigida por todas las partes. Si la exigimos debemos colaborar con ella.
  • 114. Dinámica Vivencial (Calidad de Software) Orlando Contreras (@magicovercast)
  • 115. ¿Qué atributos de calidad tendrían los siguientes elementos? Estas imágenes son usadas con propósitos exclusivamente educativos Idea original de la dinámica: @betancur
  • 116. Errores Típicos Sorey García (@soreygarcia)
  • 117. Los principios y practicas que pueden seguirse en la Ingeniería de Software, buscan garantizar un mejor resultado y uso de los recursos Pero, por alguna razón el comportamiento de los proyectos no es “aún” el esperado…
  • 118.
  • 119. ¿Quién dice que siempresale mal?A pues no, no siempre sale mal…Solo algunas veces
  • 120. CHAOS Report (Estudio de Resultado de Ejecución de los Proyectos de Software) Fuente: http://vidanp.wordpress.com/2010/02/01/estandares-de-medida/
  • 121. Seguimos cayendo en los mismos errores una y otra vez…
  • 122. Pues bien, muchos de estos errores son aducidos principalmente a falta de planeación y buenanálisis, cosa que tiene mucho sentido pero que sin embargo, no es la única razón…Como seres humanos involucrados en el Proceso de Software, cometemos errores que de no ser corregidos a tiempo, van aumentando su costo y consecuencias
  • 123. ¿Qué errores se comenten?
  • 125. Ausencia de objetivos y metas claras durante la ejecución del proyecto
  • 127. Falta de análisis y entendimiento de las necesidades del cliente
  • 128. Requisitos poco claros y falta de acceso a la información
  • 130. Indefinición del alcance y las responsabilidades de las partes
  • 131. Falta de identificación y gestión de los riesgos
  • 132. Carencia de habilidades en la ejecución de un rol
  • 133. Falta de seguimiento al avance del proyecto
  • 134. Falta de control del presupuesto
  • 136. Tratar de construir sin tener una arquitectura definida
  • 137. Falta de conocimiento e interés en la aplicación de mejores prácticas
  • 138. Hasta ahora hemos hablando de conceptos generales, en la primera etapa, la etapa de análisis, hay muchas tareas por hacer… Para poner manos a la obra empezaremos por una tarea muy importante, la identificación de las necesidades del cliente
  • 139. Ingeniería de Requisitos Sorey García (@soreygarcia)
  • 140. La ingeniería de software comprende una serie de actividades lo suficientemente diversas como para poder considerar la necesidad de otras ingenierías dentro de la propia Ingeniería de software, la Ingeniería de Requisitos es una de ellas.
  • 141. Si, Ingeniería de Requisitosy NO de Requerimientos
  • 142. Un requisito por definición es: una condición necesaria para algo. Podemos entenderlo en nuestro caso como un enunciado que identifica una capacidad, característica o factor de calidad de un sistema con el fin de que tenga utilidad para un cliente o usuario.
  • 143. ¿Les ha ocurrido?¿De quien es el error?
  • 144. #OffTopic ¡Aquí otro ejemplo de problemas en la definición de requisitos!
  • 145. “La parte más difícil de construir de un sistema software es decidir qué construir. [..] Ninguna otra parte del trabajo afecta más negativamente al sistema final si se realiza de manera incorrecta. Ninguna otra parte es más difícil de rectificar después” Roger S. Pressman
  • 146. “No se puede conocer la solución de un problema si antes no se conoce el problema.” Mirador - Monterrey, México 1994
  • 147. Importancia de los Requisitos Mostrar que resultados quieren los participantes Dar a los participantes oportunidad de decir que quieren Representar diferentes puntos de vista Probar el diseño Medir el progreso Aceptar productos contra criterios precisos
  • 148. Elicitación de Requisitos Especificación de todos los requisitos de un sistema, restricciones y condiciones definidas por los usuarios para el correcto, eficiente, y eficaz funcionamiento del sistema a construir.
  • 149.
  • 154. JAD (JointApplicationDesign - Desarrollo Conjunto de Aplicaciones)
  • 156.
  • 157. Hay una serie de condiciones que debe cumplir un requisito, para ser considerado un buen requisito
  • 158.
  • 165. Anotado con Importancia y Estabilidad
  • 166.
  • 167.
  • 168. ¿Conocen el juego?Si lo conocen, vamos a recordar, si no, vamos a aprender, ¡Como niños!
  • 169. Escaleras y Serpientes Esta es la “Especificación” que se da a un niño de 5 años para que participe en el juego. Los jugadores se sitúan en la casilla de salida. Empieza a jugar quien mayor puntuación obtenga. El turno avanza de derecha a izquierda. Cada jugador lanza por turnos y avanza con su ficha tantas casillas como puntos saque. Si cae en una casilla situada al pie de las escaleras, avanza hasta el final de la misma. Si cae en la casilla ocupada por la cabeza de la serpiente, retrocede hasta la cola.
  • 171.
  • 172. De acuerdo a la “Especificación” ¿Cual es el objetivo del juego? ¿Cual es la casilla de salida? ¿Cual es la ultima casilla? ¿Con cuantos dados se juega? Y es que, ¿Quién dijo que eran dados? ¿Hacia que dirección se avanza? ¿Cuantos jugadores pueden participar? Si se para en la cabeza ¿Retrocede hasta la cola?
  • 173. ¡Ouch! Lo mismo sucede con las especificaciones de requisitos cuando son entregadas a los desarrolladores para que estos construyan los sistemas. Los desarrolladores no tienen la información suficiente para poder llevar a cabo bien su tarea, y si para colmo, cometen el error de suponer aquello que no saben, tenemos un problema mayor. “El sentido común, el es menos común de los sentidos”, y tiene una alta probabilidad de no coincidir con las necesidades de los usuarios.
  • 174. ¿Lo intentamos? Workshop de Requisitos
  • 175. Quedan muchos temas por aprender… Análisis, Modelamiento, Diseño y Arquitectura, Mejores Practicas de Codificación, Integración Continua, Pruebas de Software y más. Esperamos haber sembrado en ustedes la inquietud de aprender mucho más sobre Ingeniería de Software