Blog creado para las materias de Ingeniería Básica de Software y Métodos Ágiles de Programación para su uso y revisión dentro del curso corrspondiente al grupo 6IM7.
domingo, 28 de febrero de 2016
sábado, 20 de febrero de 2016
Practica 4
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.
Preguntas
¿Qué
es la Programación Extrema?
La programación extrema es una metodología de desarrollo ágil que tiene
como principal objetivo aumentar la productividad a la hora de
desarrollar un proyecto software. Da prioridad a los trabajos que dan un
resultado directo y en los cuales se reduce la burocracia que pueda
existir en el entorno de trabajo.
[REFERENCIA]
[REFERENCIA]
¿Cuáles
son los valores y principios de la
Programación Extrema?
- Comunicación
- Simplicidad
- Realimentación
- Coraje
[REFERENCIA]
¿Cuáles
son las actividades, recursos y prácticas de la Programación Extrema?
- Retroalimentación
- Principio de Pruebas
- Planificación
- El cliente forma parte del equipo de desarrollo
- Programación por parejas
- Proceso Continuo
- Integración Progresiva
- Eliminar código duplicado o inútil
- Entregables pequeños
- Propiedad intelectual
- Entendimiento
- Diseño Simple
- Visión evolutiva
- Todos son dueños del código
- Sin embargo, se debe aplicar un estandar para mantener un código uniforme
- La semana se ajusta a 40 horas
¿Cuál
son las fases del proceso de desarrollo de XP?
- Planificación: El primer paso de cualquier proyecto que siga la metodología X.P es definir las historias de usuario con el cliente. Las historias de usuario tienen la misma finalidad que los casos de uso pero con algunas diferencias: Constan de 3 ó 4 líneas escritas por el cliente en un lenguaje no técnico sin hacer mucho hincapié en los detalles; no se debe hablar ni de posibles algoritmos para su implementación ni de diseños de base de datos adecuados, etc.
- Diseño: La metodología X.P sugiere que hay que conseguir diseños simples y sencillos. Hay que procurar hacerlo todo lo menos complicado posible para conseguir un diseño fácilmente entendible e impleméntable que a la larga costará menos tiempo y esfuerzo desarrollar.
- Codificación: La codificación debe hacerse ateniendo a estándares de codificación ya creados. Programar bajo estándares mantiene el código consistente y facilita su comprensión y escalabilidad.
- Pruebas: Uno de los pilares de la metodología X.P es el uso de test para comprobar el funcionamiento de los códigos que vayamos implementando.
[REFERENCIA]
¿Qué es una historia de usuario?
[REFERENCIA]
Son descripciones cortas y simples de una funcionalidad, escritas desde la perspectiva de la persona que necesita una nueva capacidad de un sistema, por lo general el usuario, área de negocio o cliente.
Típicamente las historias siguen una plantilla simple: Yo como un [Rol], necesito [Descripción de la funcionalidad], con la finalidad de [Descripción de la consecuencia].
PRESENTACIÓN
MAPA CONCEPTUAL
¿Qué es una historia de usuario?
[REFERENCIA]
Son descripciones cortas y simples de una funcionalidad, escritas desde la perspectiva de la persona que necesita una nueva capacidad de un sistema, por lo general el usuario, área de negocio o cliente.
Típicamente las historias siguen una plantilla simple: Yo como un [Rol], necesito [Descripción de la funcionalidad], con la finalidad de [Descripción de la consecuencia].
PRESENTACIÓN
MAPA CONCEPTUAL
Práctica 3
MiniQuest
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?
Las metodologías ágiles son una serie de técnicas para la gestión de proyectos en lo que se desea es minimizar el impacto de las tareas que no son
totalmente imprescindibles para conseguir el objetivo del proyecto. [Referencia]
¿Cuáles son las características
en las que se basan las metodologías ágiles?
Un proceso es ágil cuando el desarrollo de software es:
- Incremental. Entregas pequeñas de software, con ciclos rápidos.
- Cooperativo. Cliente y desarrolladores trabajan juntos constantemente con una cercana comunicación.
- Sencillo. El método en sí mismo es simple, fácil de aprender y modificar.
- Permite realizar cambios de último momento. [Referencia]
¿Cuáles son las ventajas y
desventajas del empleo de las metodologías ágiles respecto a las tradicionales?
Ventajas
- Las entregas son frecuentes
- El proceso omite pasos que puedan atrasar el desarrollo
- Los cambios pueden ser efectuados en cualquier etapa del proyecto
- Como el cliente tiene mayor comunicación con el equipo, los malentendidos disminuyen
- Los procesos pueden mejorar
Desventajas
- Al no haber documentación, el diseño suele tener pocas bases para trabajar y es muy dificil que pueda ser reusable
- Se limita a proyectos pequeños
¿Cuándo es recomendable utilizar
metodologías ágiles en el desarrollo de
software?
Debido a su naturaleza, no es conveniente para proyectos grandes, ya que el proceso podría tener muchos fallos, por hacerlo "al aventón" es por ello que conviene analizar algunas situaciones en las que conviene aplicarlos:
- Procesos con poca documentación o con cortos alcancesProgramas orientados a objetosProgramas en los que no sea importante la eficiencia y la eficienciaProgramas con herencia
¿Cuáles son algunos tipos de
metodologías ágiles?
- Dynamic Systems Development Method (DSDM): Metodología ágil más veterana y la que más se aproxima a los métodos tradicionales, su implantación incluso permitiría alcanzar un nivel 2 de madurez según CMMI.
- Extreme Programming (XP): La metodología ágil más radical y popular. XP se centra en el ciclo de vida del desarrollo de software.
- Agile Modeling: Metodología para el modelado y la generación de documentación que se encuentra alineado con los principios del desarrollo ágil y que puede ser utilizado como substituto del UML estándar.
- Feature Driven Development (FCC): Metodología de desarrollo de software orientada a la generación de valor para el cliente.
Presentación
Metodos agiles from Max Power
Mapa Conceptual
Suscribirse a:
Entradas (Atom)