1 Petición de Casa
|
Mi cliente
quiere construir una casa, que conste de dos pisos, en la planta baja desea
cuatro cuartos: la sala, el comedor la cocina y un medio baño. En el piso
superior desea cinco cuartos que son:
Tres recamaras,
un baño y un estudio. El cliente desea que todos los cuartos tengan al menos
una ventana, para que la casa sea luminosa.
Prioridad:
85 Estimación:5 Dependencia
|
miércoles, 22 de abril de 2015
Historia de Usuario
lunes, 20 de abril de 2015
Programacion Extrema
Escenario
La empresa el Pato
Volador en la que usted labora ha sido contratada por una Agencia Espacial para
desarrollar el software de un satélite que se desarrollará en 3 meses como
máximo, ya que es el tiempo en que será el lanzamiento del satélite para
ponerlo en órbita. El satélite auxiliará el retorno de una las naves espaciales
que regresan a la tierra. La Agencia Espacial ha puesto a su disposición a los
ingenieros encargados de proporcionar los requerimientos del software de tiempo
completo, así como los recursos e instalaciones necesarios para lograr el
desarrollo del software en el tiempo establecido. El Pato Volador ha propuesto
a los directivos de la Agencia Espacial la metodología de Programación Extrema
(XP por sus siglas en ingles) para la realización del software, ya que es
indispensable terminar en tiempo el proyecto. Usted debe utilizar la
metodología XP para organizar a su equipo de trabajo y a los ingenieros de la
Agencia, explicándoles la metodología XP y las funciones que deben realizar en
las diferentes fases del proceso de desarrollo del software.
¿Qué es la Programación Extrema?
La programación extrema es una metodología
de desarrollo ligera (o ágil) basada en una serie de valores y de prácticas de
buenas maneras que persigue el objetivo de aumentar la productividad a la hora
de desarrollar programas.
¿Cuáles son los
valores y principios de la Programación Extrema?
Los valores originales de la programación extrema son:
simplicidad, comunicación, retroalimentación (feedback) y coraje. Un
quinto valor, respeto, fue añadido en la segunda edición de Extreme
Programming Explained. Los cinco valores se detallan a continuación:
Simplicidad La simplicidad es la base de la
programación extrema. Se simplifica el diseño para agilizar el desarrollo y
facilitar el mantenimiento. Un diseño complejo del código junto a sucesivas
modificaciones por parte de diferentes desarrolladores hacen que la complejidad
aumente exponencialmente.
Para mantener la simplicidad es necesaria la refactorización
del código, ésta es la manera de mantener el código simple a medida que crece.
También se aplica la simplicidad en la documentación,
de esta manera el código debe comentarse en su justa medida, intentando eso sí
que el código esté autodocumentado. Para ello se deben elegir adecuadamente los
nombres de las variables, métodos y clases. Los nombres largos no decrementan
la eficiencia del código ni el tiempo de desarrollo gracias a las herramientas
de autocompletado y refactorización que existen actualmente.
Aplicando la simplicidad junto con la autoría colectiva del
código y la programación por parejas se asegura que cuanto más grande se haga
el proyecto, todo el equipo conocerá más y mejor el sistema completo.
Comunicación La comunicación se realiza de diferentes
formas. Para los programadores el código comunica mejor cuanto más simple sea.
Si el código es complejo hay que esforzarse para hacerlo inteligible. El código
autodocumentado es más fiable que los comentarios ya que éstos últimos pronto
quedan desfasados con el código a medida que es modificado. Debe comentarse
sólo aquello que no va a variar, por ejemplo el objetivo de una clase o la
funcionalidad de un método.
Las pruebas unitarias son otra forma de comunicación ya que
describen el diseño de las clases y los métodos al mostrar ejemplos concretos
de como utilizar su funcionalidad. Los programadores se comunican
constantemente gracias a la programación por parejas. La comunicación con el
cliente es fluida ya que el cliente forma parte del equipo de desarrollo. El
cliente decide qué características tienen prioridad y siempre debe estar
disponible para solucionar dudas.
Realimentación Al estar el cliente integrado en
el proyecto, su opinión sobre el estado del proyecto se conoce en tiempo real.
Al realizarse ciclos muy cortos tras los cuales se muestran
resultados, se minimiza el tener que rehacer partes que no cumplen con los
requisitos y ayuda a los programadores a centrarse en lo que es más importante.
Considérense los problemas que derivan de tener ciclos muy
largos. Meses de trabajo pueden tirarse por la borda debido a cambios en los
criterios del cliente o malentendidos por parte del equipo de desarrollo. El
código también es una fuente de retroalimentación gracias a las herramientas de
desarrollo. Por ejemplo, las pruebas unitarias informan sobre el estado de
salud del código. Ejecutar las pruebas unitarias frecuentemente permite descubrir
fallos debidos a cambios recientes en el código.
Coraje o valentía
Muchas de las prácticas implican valentía. Una de ellas es
siempre diseñar y programar para hoy y no para mañana. Esto es un esfuerzo para
evitar empantanarse en el diseño y requerir demasiado tiempo y trabajo para
implementar el resto del proyecto. La valentía le permite a los desarrolladores
que se sientan cómodos con reconstruir su código cuando sea necesario. Esto
significa revisar el sistema existente y modificarlo si con ello los cambios
futuros se implementaran más fácilmente. Otro ejemplo de valentía es saber
cuando desechar un código: valentía para quitar código fuente obsoleto, sin
importar cuanto esfuerzo y tiempo se invirtió en crear ese código. Además,
valentía significa persistencia: un programador puede permanecer sin avanzar en
un problema complejo por un día entero, y luego lo resolverá rápidamente al día
siguiente, sólo si es persistente.
RespetoEl respeto se manifiesta de varias formas. Los
miembros del equipo se respetan los unos a otros, porque los programadores no
pueden realizar cambios que hacen que las pruebas existentes fallen o que
demore el trabajo de sus compañeros. Los miembros respetan su trabajo porque
siempre están luchando por la alta calidad en el producto y buscando el diseño
óptimo o más eficiente para la solución a través de la refactorización del
código. Los miembros del equipo respetan el trabajo del resto no haciendo menos
a otros, una mejor autoestima en el equipo eleva su ritmo de producción.
¿Cuáles son las actividades, recursos y prácticas de la
Programación Extrema?
1.- liberación limitada: los productos deben liberarse con
rapidez, cuando los programadores no puedan implementar, todas las
características en una sola pieza de software, la versión debe liberarse de acuerdo
con el programador.
2.- semana de trabajo de 40 hrs: los equipos de desarrollo
de xp fomentan una práctica cultural en la que el equipo trabaja de manera
intensa durante una semana típica de 40 hrs.
3.- cliente en el sitio: llega al extremo al insistir en que
un experto en el negocio debe trabajar en el sitio durante todo el proceso de
desarrollo.
4.- programación en parejas: significa que dos programadores
ejecutan las pruebas y conversan acerca de formas de hacer eficiente y
eficazmente el trabajo.
¿Cuál son las fases
del proceso de desarrollo de XP?
1ª Fase: Planificación del proyecto.
......o Historias de usuario.
......o Release planning.
......o Iteraciones:
......o Velocidad del proyecto.
......o Programación en pareja.
......o Reuniones diarias.
• 2ª Fase: Diseño.
......o Diseños simples.
......o Glosarios de términos.
......o Riesgos.
......o Funcionalidad extra.
......o Tarjetas C.R.C.
• 3ª Fase: Codificación.
• 4ª Fase: Pruebas.
......oEl uso de los test en X.P es el siguiente.
......oTest de aceptación.
......o Historias de usuario.
......o Release planning.
......o Iteraciones:
......o Velocidad del proyecto.
......o Programación en pareja.
......o Reuniones diarias.
• 2ª Fase: Diseño.
......o Diseños simples.
......o Glosarios de términos.
......o Riesgos.
......o Funcionalidad extra.
......o Tarjetas C.R.C.
• 3ª Fase: Codificación.
• 4ª Fase: Pruebas.
......oEl uso de los test en X.P es el siguiente.
......oTest de aceptación.
¿Qué es una historia
de usuario?
Es una representación de un requisito de software escrito
en una o dos frases utilizando el lenguaje común del usuario.
lunes, 13 de abril de 2015
Actividad
Escenario
La Agencia Espacial en días anteriores ha
perdido un satélite de comunicación debido al fallo del software del mismo. La
investigación indicó que la falla fue porque no se cubrieron los requisitos de
programación del sistema especificados por la propia agencia.
La Agencia Espacial tiene que remplazarlo lo
más pronto posible, ya que las comunicaciones con las naves espaciales dependen
del mismo. Afortunadamente para la agencia, existe un nuevo satélite ya
construido que estaba programado para ser lanzado.
En un año, el inconveniente es que si se carga
el mismo software el satélite se volverá a perder.
La empresa el Pato Volador en la que usted
labora ha sido contratada para desarrollar el software del satélite en un
proyecto de 3 meses como máximo, ya que es el tiempo en que retornará la
próxima nave espacial que necesita los servicios del satélite para poder
retornar a la tierra.
La Agencia pone a su disposición a los
ingenieros encargados de proporcionar los requerimientos del software de tiempo
completo, así como los recursos e instalaciones necesarios para lograr el
desarrollo del software en el tiempo establecido. No es indispensable entregar
la documentación formal del análisis y diseño del software, sin embargo debe
haber evidencia que permita el entendimiento del sistema y el funcionamiento
del mismo.
Usted debe proponer una metodología de
desarrollo de software que permita organizar a su equipo de trabajo y a los
ingenieros de la Agencia, mencionando los beneficios y riesgos que puedan existir.
¿Qué
son las metodologías ágiles de desarrollo de software?
Son los valores y principios que permiten a
los equipos de desarrollo de software hacerlo más rápidamente, respondiendo a
los cambios que puedan surgir en el proyecto
¿Cuáles
son las características en las que se basan las metodologías ágiles?
Debe definir con precisión los artefactos,
roles y actividades involucrados, junto con prácticas y técnicas recomendadas,
guías de adaptación de la metodología al proyecto, guías para uso de herramientas
de apoyo, etc.
¿Cuáles son las ventajas y desventajas del
empleo de las metodologías ágiles respecto a las tradicionales?
Son la alternativa rápida, que evita una documentación
severa del sistema. El problema es que no sirve con proyectos grandes
¿Cuándo
es recomendable utilizar metodologías ágiles en el desarrollo de software?
Cuando se quiere realizar un proyecto corto.
¿Cuáles
son algunos tipos de metodologías ágiles?
Programacion
extrema, Srum, Adaptive Software Development, Crystal Methodologies, Feature
Driven development
viernes, 10 de abril de 2015
Suscribirse a:
Entradas (Atom)