viernes, 28 de noviembre de 2008

Cierre del Foro Calidad y Pruebas del Software

1. La calidad del software se mide usualmente en términos de rendimiento (tiempo de respuesta), respuesta esperada a determinadas acciones (confiabilidad), accesibilidad (facilidad de acceso), seguridad (control de acceso), etc.
2. El plan de pruebas consiste en la elaboración de un conjunto de test y listas de chequeo que los usuarios aprueban una vez se apliquen en el software en evaluación.
3. Todo proyecto de software debe integrar dentro de su ciclo de desarrollo procesos de control de calidad y pruebas.
4. Existen varios modelos de gestión de la calidad del software. Según la norma ISO 9126 las características son portabilidad, eficiencia, confiabilidad, usabilidad, funcionabilidad y mantenibilidad (ver más detalle en: http://es.wikipedia.org/wiki/ISO_9126).
5. Los modelos son generales y deben ser particularizados a cada caso.
6. Los proyectos mientras más complejos y ambiciosos menos posibilidades tienen de implementarse exitosamente. Pueden ser concebidos desde la globalidad, pero su desarrollo e implementación debe ser progresivo y esta es una de las banderas del Software Libre, liberar versiones frecuentes del producto, utilizando estrategias que aseguren la escalabilidad e interoperabilidad del software gracias al uso de estándares abiertos.
7. El criterio de usabilidad debe garantizarse desde la concepción del proyecto, se fortalece en el diseño y cristaliza en el desarrollo.
8. Si el usuario es un miembro activo del equipo de trabajo en todas las fases de desarrollo del mismo, al momento de realizar las pruebas ya estará familiarizado con el aplicativo. Lo esperado es que la aplicación responda a las especificaciones de funcionamiento dadas por el usuario.
9. Un software de calidad es el resultado de un trabajo en equipo donde cada miembro hace bien su trabajo y la comunicación es constante, fluída y basada en un lenguaje común.
10. Los proyectos de software requieren de testeadores o probadores responsables de validar el funcionamiento de los productos de software.
11. Es responsabilidad del desarrollador entregar código depurado, así que las pruebas se focalizan en la integración, eficiencia y aceptación de usuarios.

Cierre del Foro Conceptualización de la Ingeniería del Software Libre

1. La Ingeniería del Software suministra metodologías, procesos y herramientas, es decir un marco común de trabajo para la comunidad de desarrolladores, administradores y usuarios.
2. El Ciclo de Vida del desarrollo del Software debe pasar por todas las fases (requerimientos, análisis, diseño, desarrollo, pruebas, implantación, uso, mantenimiento y obsolescencia) utilizando un Modelo Iterativo que permita que los productos se mantengan en constante construcción y crecimiento.
3. Conformación de un Comité de Gestión del proyecto, quienes toman decisiones que dan inicio al desarrollo de producto y delegan en grupos de trabajo el desarrollo. La aprobación sigue el proceso inverso hasta llegar al comité, quién decide si los cambios o nuevos productos se incorporan al proyecto o no.
4. Establecimiento de un claro esquema de Comunicación, que integre a usuarios y desarrolladores en la comunidad de desarrollo.
5. Uso de metodologías ágiles de desarrollo tales como eXtreme Programming, que faciliten la publicación frecuente de nuevas funcionalidades y versiones.
6. La Colaboración y la Planificación son factores claves en el éxito del sistema.
7. Uso intensivo de Internet como plataforma de comunicación y distribución del software.
8. La Flexibilidad de la Ingeniería del Software para adaptarse a las particularidades del Software Libre, brindando un basamento teórico y metodológico que respeta las 4 libertades del SL (ERA, LV,
9. Ambientes colaborativos de desarrollo que estimulan la Creatividad y el Trabajo en equipo facilitando la participación activa de usuarios y programadores.
10. Énfasis en Pruebas y Calidad. Liberación de versiones para evaluación y pruebas agilizan a través del trabajo colaborativo la obtención de productos de calidad.
11. Estimaciones basadas en proyectos similares y técnicas de descomposición en paquetes de trabajo para reducir la incertidumbre y mejorar la precisión de la planificación.
12. Uso de métodos de análisis como el FODA (Fortalezas, Oportunidades, Debilidades y Amenazas) fortalecen el estudio y comprensión del sistema.
13. Realizar estudios de factibilidad holísticos e integrales que consideren aspectos funcionales, técnicos y económicos para garantizar la viabilidad del proyecto y establecer claramente el alcance del desarrollo del software.
14. Usar diagramas como casos de uso y diagramas de actividad de procesos ayudan en la comunicación y entendimiento de las especificaciones a ser desarrollada.
15. La documentación es un tema de debate en Software Libre, dado que requiere recursos que compiten con los recursos de desarrollo de productos y es fundamental para garantizar la comunicación, validación y calidad de los productos. Debe ser concreta y concisa (asertiva), y con mecanismos de generación eficientes (a lo largo del ciclo de desarrollo utilizando por ejemplo historias de usuario) donde se logren sus objetivos dentro de un balance positivo de costo-beneficio.
16. Tecnologías para la ejecución de pruebas unitarias o modelos como el pair-programming o el peer-testing (programación y pruebas en parejas), ayudan a mantener una disciplina en el desarrollo y a aumentar la calidad del resultado del proyecto.
17. Agilidad y libertad son los principios que deben respetar las metodologías que soporten el desarrollo de SL. La Ingeniería del Software ofrece métodos y herramientas que otorgan un marco común de trabajo orientado al logro de la Calidad del Software. Un reto importante es incorporar la "Ingeniería" en el desarrollo del SL, manteniendo en primer lugar estos preceptos y contribuyendo además a la conformación de equipos de trabajo de alto desempeño que generen productos estables y etiquetados de excelente calidad.