Metodologías más sofisticadas del software libre
Metodologías más sofisticadas del software libre
PRUEBAS
Ø eXtreme programming
Ø Métrica v3
eXtreme programming: la metodología más próxima a la forma de organización y participación en proyectos de software libre.
Considerada una metodología ágil para el desarrollo de software basada en los principios básicos de desarrollo de software toma en cuenta aspectos como:
Ø Simplicidad
Ø Comunicación
Ø Retroalimentación
Ø Coraje
Métrica v3: una metodología clásica considerada como imprescindible para realizar proyectos con la administración española.
® Conceptos
· Gestión de proyectos
La gestión de proyectos abarca desde que es lo que s quiere realizar hasta todas las actividades necesarias para cumplir con un objetivo determinado.
Incluye:
Ø Planificación
Ø Definición
Ø Ordenamiento
Ø Gestión
· Ciclo de vida del software
Fases de desarrollo por las cuales nuestro proyecto se va concibiendo.
Ø Toma de requisitos
Ø Análisis
Ø Diseño
Ø Desarrollo
Ø Pruebas
Ø Instalación
Ø Uso
Ø Mantenimiento
Ø Obsolescencia
· Análisis de requisitos
Considerada la primera fase del ciclo de vida de un proyecto es donde uno como desarrollador de software necesita desde un inicio tomando en cuenta todas las necesidades del usuario para llevar a cabo una planeación.
· Estimación de Costos
Esta suele realizarse basándose en parte al que tan grande y de que tantos recursos dependa el proyecto así como un estimado de tiempo que se tendrá que invertir para llevar acabo dicho proyecto.
· Diseño
Fase en la que se definen distintos puntos en base a los requisitos del usuario y los componentes con los que contamos en el que se emplean diagramas, arquitectura, interfaz etc.
· Documentación
Formatos en los cuales debemos describir detalladamente toda la arquitectura del proyecto desde código fuente, manuales de uso, documentos de seguimiento etc.
· Pruebas y Calidad
Anticiparnos a cualquier tipo de falla en el proyecto para que este tenga el mayor éxito tanto para uno como desarrollador y mucho más para el usuario o cliente y sobre todo que cumpla con los requisitos estipulados por el usuario. Todo esto llevando a cabo documentación de pruebas en las cuales se haya verificado que todo se encuentre en orden.
· Seguridad
Principios básicos tomados en el punto de seguridad:
Ø Confidencialidad
Ø Integridad
Ø Disponibilidad
® Conclusión
Sin duda un gran aporte en cuanto al desarrollo de sistemas ya que nos da una pauta detallada de cómo es que debe llevarse a cabo un proyecto con este enfoque. Tomando en cuenta los conceptos y las metodologías llevadas a cabo en la lectura muchas de las cuales desconocía veo como el desarrollo de un proyecto es un contexto bastante amplio para su desarrollo.
Ahora hablaremos de la metodología eXtreme Pregramming o programación extrema para el desarrollo de proyectos de software libre es una metodología de las llamadas “Agiles”. Se basa en los principios de simplicidad, la comunicación, la retroalimentación, y el coraje que implica a todo el equipo y a los usuarios o clientes.
Las metodologías agiles proponen una implicación total del cliente en el proyecto. Primeramente se realiza un plan de proyecto basados en versiones del producto acordadas a partir de funcionalidades concretas después Se realiza el desarrollo para las funcionalidades concretas finalmente una vez que se entregan la versión del proyecto cumpliendo con lis requisitos el proceso vuelve a iniciarse con un conjunto mayor de funcionalidades Los procesos y prácticas de esta metodología están basados en la experiencia del equipo de desarrollo y en los errores cometidos.
El eXtreme Programmind se puede dividirse en cuatro fases.
· Planeación
· Diseño
· Desarrollo
· Pruebas
En la primera fase que es la planificaron se empieza con la confeccione de las “Historias de usuario” que son breves frases en la que se describe una prestación o proceso sin ningún tipo de tecnicismos. Para cada historia deberíamos de poder estimar su tiempo ideal de desarrollo que debería de ser de 1,2 o 3 semanas como máximo (Si el tiempo es mayor se debe de partir la historia en trozos que no excedan las estimaciones). A continuación se pasa a la planificación de la siguiente fase, en la reunión de planificación de las fases se deben de implicar al cliente, desarrolladores y al gestor del proyecto. El objetivo será planificar las siguientes fases así el cliente será quien dicte el orden de las historias de usuario, y los desarrolladores quienes estimen el tiempo.
Para planificar se pueden tomar dos criterios:
· Tiempo para pasar a la siguiente fase.
· Alcance que deseamos que tenga.
El método de planificación rápida y adaptativa nos permite hace dos historias mientras que otras metodologías tardarían en documentar, planificar y realizar una estimación completa, que quizá no será tan fiable a esto se le denomina velocidad de proyecto mientras más cantidad de historias se completen en el menor tiempo posible mayor será la velocidad del proyecto esto implica que se terminara más rápido.
Una de las tareas de los desarrolladores es convertir las historias del usuario en tareas de una duración de tres días como máximo para la programación de cada una de ellas.Es posible que las historias del usuario o cliente diferentes tengan las mismas tareas así la fase de planificación nos permite filtrar esas tareas.
Metodología próxima al software libre:
eXtreme Programming eXtreme Programming o programación eXtrema, es una de las metodologías llamadas “ágiles”, para el desarrollo de proyectos de software .
Se basa en los principios de simplicidad, la comunicación, la retroalimentación y el coraje para implicar a todo el equipo (y a los usuarios o clientes) en la gestión del proyecto.
DISEÑO
La simplicidad es la clave de esta metodología.
- Un diseño complejo siempre tarda más en desarrollarse que un simple.
- Es más fácil añadir complejidad a un diseño simple que quitarla de uno complejo.
Se deben hacer las cosas lo más sencillas posible, evitando añadir funcionalidad no contemplada.
Es importante encontrar una metáfora para definir el sistema, un proceso que todos conozcan.
Al encontrar una buena metáfora nos ayudará a tener:
- Visión común. Todos conocen el núcleo del problema y en cómo funciona la solución.
- Vocabulario compartido. Dependiendo de la metáfora escogida, el vocabulario puede ser altamente técnico o muy común.
- Generalización. Sugerir nuevas ideas o soluciones.
- Arquitectura. Identificar los objetos clave y sugerir características de sus interfaces.
Se sugiere llevas acabo reuniones entre todos los desarrolladores implicados, donde se toman las decisiones mediante el uso de tarjetas CRC (class, responsabilities y colaboratión).
Este mecanismo ayuda a que todos participen y aporten sus ideas en el diseño.
Un punto clave es la refactorización, es decir el hecho de realizar cambios necesarios en las partes del código que lo requieran, sin modificar su funcionalidad o su interacción con el resto del sistema, dejándolo igual de simple pero con la nueva funcionalidad añadida.
CODIFICACIÓN
La diferencia entre esta metodología y la tradicional es la disponibilidad del cliente
El cliente debe participar en:
- Reuniones de planificación
- Toma de decisiones
- Estar disponible durante los test (pequeños trozos de código que prueban la funcionalidad de un objetos) funcionales y de aceptación
Es de vital importancia acordar estándares de codificación y respetarlos en el desarrollo. Se debe ser tan concreto como sea posible.
Al someter a prueba nuestro código en pequeños test que deberá pasar, tendremos una idea más clara de lo que debemos codificar y nos guiaremos por ello, implementando únicamente lo que nos permitirá pasar los test.
Una característica diferencial de eXtreme Programming es el pair programing o la programación por parejas ya que el resultado obtenido es de mucha calidad, esto reduce el número de errores y los problemas de integración posteriores.
Designar dueños para cada objeto, que conozca todos los tests unitarios y de integración que debe pasar y se ocupe de integrarlos en cada reléase.
De este modo se añadirá al paradigma reléase-often (distribuye o implementa a menudo) el integrate-often (integra a menudo) reduciendo problemas de integración.
PRUEBAS
La construcción de las pruebas unitarias va a ahorrarnos mucho tiempo del que se invierte programando, buscando pequeños fallos.
Cuanto más complicada sea la prueba, más necesaria es para asegurar que después del desarrollo hace lo que se requiere.
- Los tests unitarios aseguraran que los cambios introducidos no afecten la funcionalidad.
- En un fallo o Bug con el cliente o durante el uso, debemos crear un test unitario que lo compruebe.
- Los tests se crearan a partir del historial de usuario.
- El cliente es responsable de definir los tests de aceptación.
- Estos tests son del tipo “caja negra”
- Los tests que no tengan éxito afectan la velocidad del proyecto.
CONCLUSIONES
Las pruebas unitarias, los historiales de usuario, la refactorización son recursos que también pueden ser aplicados a otras metodologías.
Lo verdaderamente destacable de eXtreame Programing es la forma de ordenar el ciclo de vida del proyecto y la involucración con el cliente.
Sus principales características lo hacen muy adecuado para proyectos de software libre.
No hay comentarios:
Publicar un comentario