viernes, 19 de febrero de 2016

Mapa conceptual: Proceso de software


Presentación: Proceso de software















XP (programación extrema)

Definición

El autor de la XP es Kent Beck, entre otros, que con su larga experiencia como programador eligió las mejores características de las metodologías y profundizó en las relaciones de éstas y como se reforzaban unas a otras.
Nace como un intento de establecer un conjunto de tecnicas que faciliten la finalizacion de proyectos, se llama extremo por que las practicas que usan son llevadas a lo extremo, le da máxima prioridad a la obtención de resultados


En XP dos personas trabajan juntas en una sola computadora. La programación en parejas aumenta la calidad del software y sin impactar tiempo .  Al aumentar la calidad viene un gran ahorro adelante en el proyecto. 
Siguen estos 4 conceptos:
1.Comunicacion
2.Simplicidad
3.Realimentacion
4.Coraje

Fases
XP se divide en fases:

Fase de exploración. En esta fase los usuarios escriben las tarjetas de historia, cada una de las tarjetas de historia describen una funcionalidad que será añadida al programa. El equipo de desarrollo en esta fase se dedica a familiarizarse con las tecnologías y herramientas que utilizaren el proyecto esta fase puede durar unas semanas o hasta meses

 Fase de planificación. En esta fase se establece la prioridad de las diferentes historias y se acuerda el contenido de la primera entrega del proyecto. La estimación temporal se basa en un cálculo estimado por parte de los desarrolladores de cada una de las historias, esta fase solo dura unos dias

 Fase de iteraciones. Esta fase incluye la realización de diferentes fases antes de liberar la primera versión del producto. La planificación se divide en diferentes iteraciones, de una duración variable entre una semana y cuatro. en la primer semana tambien se incluye la creacion de la arquitectura de todo el sistema y en el final de cada iteracion se incluye pruebas funcionales

Fase de producción. En esta fase se llevan a cabo se llevan a cabo un conjunto de pruebas extras, de rendimiento y funcionamiento que son necesarias antes de poder entregar el producto al cliente, en esta fase se debe de analizar si se va a hacer mas cambios y si se incluyen en esta version o en una proxima

 Fase de mantenimiento. Una vez se ha liberada la primera versión a los usuarios, el proyecto se debe mantener en el entorno de producción siempre y cuando aún hayan iteraciones en fase de producción. 

Fase de cierre del proyecto. Es la fase en que los clientes ya no tienen más historias que deban ser implementadas, la documentación del proyecto se realiza en esta fase y se debe confirmar que el cliente esta conforme con el proyecto final


Historia de usuario
Son descripcionas cortas y simples de una funcionalidad, escritas por el cliente o el usuario, y presentan una nueva funcion que se requiere.


Metodologías Ágiles


¿Qué son las metodologías ágiles de desarrollo de software?
Son técnicas para la gestión de proyectos en las que se entregan avances en iteraciones, son fácilmente adaptables y se colabora con el cliente.

¿Cuáles son las características en las que se basan las metodologías ágiles?
El cliente es parte del equipo de desarrollo, se entregan avances en iteraciones, le dan mas importancia a la comunicación entre miembros del equipo y cumplen con el manifiesto ágil

¿Cuáles son las ventajas y desventajas del empleo de las metodologías ágiles respecto a  las tradicionales?
Desventaja, con los metodos agiles debe ser un proyecto pequeño
Desventaja es que se debe trabajar en un proyecto a corto plazo
Una ventaja es que el proyecto se puede adaptar fácilmente a los cambios que pida el cliente
Otra ventaja es que como el cliente es parte del equipo de desarrollo se ahorra tiempo en la documentación
Los métodos ágiles dependen mucho de las personas asi que es facil que puedan fracasar

¿Cuándo es recomendable utilizar metodologías ágiles  en el desarrollo de software?
Cuando se tiene un equipo de desarrollo pequeño, es un proyecto pequeño, cuando se tiene la certeza de que el cliente tendrá la disposición de facilitar los requerimientos del sistema y cuando se debe de entregar un proyecto en poco tiempo

¿Cuáles son algunos tipos de metodologías ágiles?
Adaptative Software Development
 Agile Modeling
 Agile Model Driven Development 
Agile Project Management 
Agile Unified Process 
Crystal Methods 
Dynamic Systems development methods 
Feature driven development 
Internet Speed Development 
Lean development 
Pragmatic programming 
Scrum 
Test Driven Development
 XBreed 
Extreme Programming
Win Win Spiral.

lunes, 8 de febrero de 2016

Resumen, Mapa Conceptual y Cuestionario: Métodos Ágiles de Programación

Introducción

Como antecedentes se puede destacar que en el pasado se tenía un estándar que definía que para garantizar la calidad del software mediante métodos de análisis y diseños soportados por herramientas CASE (Ingeniería de Software Asistida por Computador) sin embargo estas metodologías tenían una carga pesada en la planificación, diseño y documentación dedicándole menos tiempo al desarrollo del sistema.

Sin embargo a principios de los años 90 se proponen nuevos métodos agiles de programación, los cuales se enfocan en el software y le dedican menos tiempo al diseño y documentación, entre algunos métodos de programación ágil se encuentran XP (extreme programming), LSD (Lean Software Development), Scrum.

Desarrollo

El manifiesto resalta que se debe buscar una relación ideal en el equipo de trabajo, que se debe trabajar con el cliente, enfocar el tiempo en el desarrollo del software y no en la documentación del mismo, también se debe tener la habilidad de adaptar el proyecto y no estar sujetos a un plan.

Los métodos agiles de programación se refieren se basan en el modelo de desarrollo de software iterativo el cual busca mejorar el modelo de desarrollo en cascada el cual se lleva a cabo en una iteración, que es una unidad de tiempo la cual dura entre una y 4 semanas y en cada una de ellas se planifica, se analizan los requisitos, se diseña, se codifica, se revisa y se realiza la documentación, el propósito de esto es que al final de cada iteración se debe obtener el programa sin errores, funcional y que pueda ser adaptable si el cliente desea modificar algo.

Conclusión

A manera de conclusión podemos destacar como en los inicios el desarrollo de la informática y el desarrollo de software se enfocaba solamente en el producto final siguiendo planes rigurosos y estrictos que eran necesarios para garantizar la calidad del producto final, sin embargo a través del tiempo este enfoque se fue cambiando hacia mejorar el desarrollo sin perder en vista la calidad y satisfacción del cliente, esto fue un cambio necesario y todo esto se ha hecho para mejorar el software que se entrega y satisfacer al cliente.



Mapa Conceptual

Cuestionario

 Bibliografia

http://www.i2btech.com/blog-i2b/tech-deployment/5-beneficios-de-aplicar-metodologias-agiles-en-el-desarrollo-de-software/
http://carlosreynoso.com.ar/archivos/arquitectura/Metodos-Agiles.PDF
http://www.agilemanifesto.org/iso/es/manifesto.html
http://www.agilemanifesto.org/iso/es/principles.html