Capítulos 8,9 y 10

210 views

Published on

un pequeño resumen de los capitulos 8, 9 y 10 del libro Fábricas de software: Experiencias tecnológicas y organización

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
210
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Capítulos 8,9 y 10

  1. 1. Capítulos 8,9 y 10 Ugarte Vera, Nilton 09200067
  2. 2. 1. Gestión de la Configuración de Software(SCM) • Cómo estructurar la producción de software y cómo sacar provecho de las economías de alcance en una verdadera fábrica de software. (Greenfield,2004). • Un porcentaje elevado de empresas, incluyendo fábricas de software, no utilizan ningún tipo de sistema o no suelen pasar de un uso muy primitivo. • La responsabilidad de SCM es identificar: • Cúando se produce el cambio. • Por qué se produce el cambio. • Quién introduce el cambio.
  3. 3. 1.1 SCM y Construcción De Software • Entre el 30 y el 70 % del tiempo de un proyecto se invierte en la fase de contrucción (McConnell, 2005). • En Software todo es diseño por lo que la construcción es una fase del diseño detallado (Martin, 2002). • Como herramientas indispensables tenemos: • Editores y compiladores. • Depuradores, profilers y controles de versiones. • Herramientas de control e incidencias.
  4. 4. 1.2 Mitos de la SCM • Solo es importante en equipos grandes. • Caso : patrón branch per task (Berczuck, 2002) eficaz incluso con un solo desarrollador. • Control de versiones limitado es suficiente. • Caso : Pérdida de oportunidades, productividad, eficacia, y control.
  5. 5. 1.3 Problemas debidos a la no utilización de las herramientas y técnicas SCM adecuadas • Problema de software perdido . • Destrucción de código. • Enlaces desaparecidos. • Desestabilización de la línea principal. • Identificación incorrecta de los elementos que componen una entrega concreta. • Imposibilidad de conocer qué cambios desencadenó una incidencia o bug concreto.
  6. 6. 1.4 Pilares básicos en construcción de software • Control de versiones.- Para coordinar el trabajo y gestionar cambios. • Control de tareas y defectos.- cada cambio tendrá asociado una tarea, una descripción adecuada, imputaciones de horas, registro de quién hace el cambio, versión detectada, prioridad, entre otros. • Pruebas sistemáticas.- • Tests unitarios: verifican tareas individuales de los programadores. • Tests de integración: Aplicadas cuando se crea una nueva línea base o release. • Tests manuales: dirigidas por guiones de prueba (sistemáticas).
  7. 7. 1.5 Desarrollo paralelo vs. Desarrollo en serie • Desarrollo serializado.- Implica realizar cambios bloqueantes, tiene un elevado impacto negativo sobre la productividad del desarrollo, así como no es capaz de permitir la evolución del software en líneas paralelas reales. Presenta falta de estabilidad en la línea principal. • Desarrollo paralelo.- Posee una línea principal, línea de mantenimiento y una serie de ramas secundarias de menor duración que se corresponden con tareas, principales ventajas: • El programador puede realizar check ins como considere necesario, durante el tiempo que resuelva la tarea. • Los cambios no pasan mucho tiempo fuera del control de versiones. • El desarrollar podrá subir todos los cambios a la ramas incluso si no están terminados y podrá retomarlos o reasignarlos. • La integración ahora es un proceso controlado y centralizado.
  8. 8. 1.6 Integración continua vs. controlada • Integración continua.- asociada al desarrollo serializado, donde el código ya está en la línea principal, que ha sido desestabilizada. • Integración controlada.- más adecuada en fábricas de software, siempre hay un responsable de la entrada de elementos en la línea principal que cuidará que no se desestabilice. • Herramientas que comparten tanto la integración continua y la controlada: • Disparar una compilación cuando se termina una tarea. • El integrador usará el sistema para hacer pruebas sobre la rama principal cuando cree nuevas versiones.
  9. 9. 1.7 Conclusión • A pesar de que la gestión de la configuración de software es importante en la construcción de software, muchas empresas hacen un uso deficiente de la misma o simplemente la ignoran. • SCM puede mejorar sensiblemente la productividad de los equipos de desarrollo y el control de proyectos.
  10. 10. 2. Desarrollo Global de Software (GSD) • Lo que tradicionalmente era un equipo que se reunía periódicamente para conversar y debatir cara a cara, ha pasado a ser un equipo virtual, una red de sub equipos. Misma Organización Diferente Organización Mismo lugar Desarrollo co-localizado. Desarrollo co-localizado con subcontratación (outsourcing). Mismo país Desarrollo distribuido (DSD) Desarrollo distribuido (DSD) con sub contratación (outsourcing). Otro país Deslocalización Desarrollo global (GSD) (offshoring) Subcontratación deslocalizada Desarrollo global (GSD)(offshore outsourcing). Tabla de propia elaboración, tomando como referencia la tabla 9.1 del libro “Fábricas de software: Experiencias tecnológicas y organización”.
  11. 11. 2.1 Beneficios de GSD • Aprovechar la diferencia horaria para lograr jornadas laborales más largas y conseguir mayor productividad. • Minimizar costes de desarrollo. • Localización de desarrolladores más cerca del cliente. • Obtener ventajas de la diversidad de experiencias de stakeholders distribuidos.
  12. 12. 2.2 Los desafíos de GSD • Comunicación inadecuada.- la comunicación informal genera bajos niveles de confianza entre colegas. • Diversidad cultural.- al no compartir lenguaje nativo debe utilizarse un lenguaje alternativo(inglés), otro problema es diversos significados para la misma palabra, así como algunas expresiones o comportamientos pueden parecer ofensivas o bruscas para otras. • Diferencia horaria.- Falta de comunicación sincrónica.
  13. 13. 2.3 Herramientas de apoyo al trabajo en grupo distribuido (groupware) • Emails . • Listas de correos. • Grupos de noticias. • Foros de discusión. • Documentos compartidos. • Mensajería instantánea. • Pizarras de dibujo compartidas. • Chat. • Videoconferencias.
  14. 14. Estrategias para minimizar problemas en GSD Necesidad Motivación Prácticas

×