domingo, 28 de febrero de 2016

Historias de Usuario

Baja Usuario
3                                                      Baja de Usuario
El administrador del sistema podrá dar de baja a los usuarios que pertenezcan a su empresa, llenando un formulario que pedirá el ID del usuario. Contar con un tipo de cuenta administrador necesarios para dar de baja algún usuario por primera vez.
ESTIMACIÓN: 1 día
PRIORIDAD: 6
DEPENDENCIA: 1(Alta)



-         No se permiten caracteres especiales.
-         Mandar error si el material no existe.
-         Mostrar error al no introducir los campos obligatorios.
-         Eliminar información de la base de datos

Consulta Usuario
4                                                 Consulta de Usuario
Un usuario con permisos podrá consultar todos los usuarios registrados por nombre, id, o fecha de registro, llenará un pequeño formulario para poder establecer el criterio de búsqueda
ESTIMACIÓN: 1 día
PRIORIDAD: 6
SIN DEPENDENCIA




-         No se permiten caracteres especiales.
-         Mandar mensaje si el material no existe.
-         Mostrar error al no introducir los campos obligatorios.
-         Mostrar consulta con parámetros establecidos





Consulta de Materiales
5                                                Consulta de Material
Un trabajador o un usuario que tenga permitido consultar el material, ingresa en el formulario un carácter o letra para buscar un material. El sistema le proporciona las coincidencias y le muestra la información relacionada a cada coincidencia encontrada por el sistema.
ESTIMACIÓN: 1 día
PRIORIDAD: 30
SIN DEPENDENCIA

-         El almacenista no está al tanto de los cambios o ingresa mal los datos del objeto a buscar y el sistema muestra error.
-         Mostrará error si se ingresa caracteres especiales, o no asignados.
-         Consultar el material y que los datos proporcionados por el sistema coincidan con el de las operaciones realizadas de alta y baja en contraste con el inventario.



Ingreso de materiales
5                                              INGRESO DE MATERIAL
El administrador del sistema podrá dar de alta los materiales que su empresa provee a terceros, llenando un formulario con algunos datos que indicarán las características del material. Estos datos son estrictamente necesarios para dar de alta algún material por primera vez.
ESTIMACIÓN: 1 día
PRIORIDAD: 6
SIN DEPENDENCIA


-         No se permiten caracteres especiales.
-         Mandar error si el material ya existe.
-         Mostrar error al no introducir los campos obligatorios y no permitir la alta.
-         Guardar la información del material en la base de datos.


domingo, 21 de febrero de 2016

Programación Extrema (XP) 4

1.- ¿Qué es la Programación Extrema?
Es el método ágil más conocido, tiene un enfoque que fue desarrollado utilizando buenas practicas reconocidas, como el desarrollo iterativo, y con la participación de cliente en niveles extremos. Todos los requerimientos se expresan como escenarios, los cuales se implementan directamente como una serie de tareas, se trabaja en parejas y desarrollan pruebas para cada tarea antes de escribir código.
2.- ¿Cuáles son los valores y principios de la Programación Extrema?
Principios
·         El desarrollo incremental se lleva a cabo a través de entregas del sistema pequeñas y frecuentes y por medio de un enfoque para la descripción de requerimientos basados en las historias del cliente.
·         La participación del cliente se lleva a cabo a través del compromiso a tiempo completo del cliente en el equipo de desarrollo. Los representantes de los clientes participan en el desarrollo y son los responsables de definir las pruebas de aceptación de sistema.
·         El interés en las personas, en vez de en los procesos, se lleva a cabo a través de la programación en parejas, la propiedad colectiva del código del sistema, y un proceso de desarrollo sostenible que no implique excesivas jornadas de trabajo.
·         El cambio de lleva a cabo a través de las entregas regulares del sistema, un desarrollo previamente probado la integración continua.
·         El mantenimiento de la simplicidad se lleva a cabo a través de la refactorización constante para mejorar la calidad del código y la utilización de diseños sencillos que no prevén cambios futuros en el sistema.
Valores
El proceso de desarrollo descrito en la sección anterior está fundamentado en una serie de valores y principios que lo guían. Los valores representan aquellos aspectos que los autores de XP han considerado como fundamentales para garantizar el éxito de un proyecto de desarrollo de software. Los cuatro valores de XP son:

·         comunicación
·         simplicidad
·         realimentación
·         coraje
3.- ¿Cuáles son las actividades, recursos y prácticas de la Programación Extrema?
Planificación incremental, entregas pequeñas, diseño sencillo, desarrollo previamente probado, refactorización, programación en parejas, propiedad colectiva, integración continua, ritmo sostenible, cliente presente.
4.- ¿Cuál son las fases del proceso de desarrollo de XP?
1.      Seleccionar las historias de usuario para la entrega.
2.      Dividir la historia en tareas
3.      Planificar la entrega
4.      Desarrollar/Integrar/Probar el software
5.      Entrega de software
5.- ¿Qué es una historia de usuario?
Las historias de usuario son utilizadas en las metodologías de desarrollo ágiles para la especificación de requisitos (acompañadas de las discusiones con los usuarios y las pruebas de validación). Cada historia de usuario debe ser limitada, ésta debería poderse escribir sobre una nota adhesiva pequeña. Es una representación de un requisito escrito en una o dos frases utilizando el lenguaje común del usuario. 




Programacion extrema from Cesar Juarez


Bibliografía
Robles, G., & ferrer, J. (10 de cotubre de 2002). Programación Extrema y Software Libre. Recuperado el 26 de marzo de 2012, de TLDP: http://es.tldp.org/Presentaciones/200211hispalinux/ferrer/robles-ferrer-ponencia-hispalinux-2002.html


Valverde, D. (06 de septiembre de 2007). Introducción a la Programación Extrema. Recuperado el 2012 de marzo de 26, de davidvalverde.com: http://www.davidvalverde.com/blog/introduccion-a-la-programacion-extrema-xp/

Metodologías ágiles 3

Las metodologías ágiles se han aplicado a varios proyectos medianos y pequeños, ya que algunos de estos no requieren se un arduo análisis del proyecto, además muchos llegan a sufrir cambios en los requerimientos por lo que es más costoso hacer cambios en un modelo en el que no se deben de hacer muchos cambios como en el de cascada.

1. ¿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 que han surgido como contraposición a los métodos clásicos de gestión como CMMI.
Todas las metodologías que se consideran ágiles cumplen con el manifiesto ágil que no es más que una serie de principios que se agrupan en 4 valores:
-       Los individuos y su interacción, por encima de los procesos y las herramientas.
-       El software que funciona, frente a la documentación exhaustiva.
-       La colaboración con el cliente, por encima de la negociación contractual.
-       La respuesta al cambio, por encima del seguimiento de un plan.
2. ¿Cuáles son las características en las que se basan las metodologías ágiles?
Hay participación del cliente, éstos están fuertemente implicados en todo el proceso de desarrollo, proporcionan y priorizan nuevos requerimientos del sistema y evalúan las iteraciones del sistema.
El software se desarrolla en incrementos, donde el cliente especifica los requerimientos a incluir e cada incremento.
Se deben reconocer y explotar las habilidades del equipo de desarrollo.
Aceptar el cambio y contar con los requerimientos del sistema que cambian.
Se debe mantener la simplicidad tanto en el software a desarrollar como en el proceso de desarrollo.
3. ¿Cuáles son las ventajas y desventajas del empleo de las metodologías ágiles respecto a  las tradicionales?
La participación del cliente permite que el software se desarrolle como el cliente desea pero su éxito depende de tener un cliente que esté dispuesto y pueda pasar el tiempo con el equipo de desarrollo y que pueda representar a todos los stakeholders del sistema.
Los miembros individuales del equipo pueden no tener personalidad apropiada para la participación intensa, por lo que es posible que no se relacionen adecuadamente con los otros miembros del equipo. Sin embargo, si se tiene un buen equipo, se pueden realizar proyectos buenos y rápidamente.
Priorizar los cambios puede ser extremadamente difícil, especialmente en sistemas en los que existen muchos stakeholders, debido a que cada uno proporciona prioridades distintas a diferentes cambios.
Mantener la simplicidad requiere un trabajo extra.
Los métodos ágiles tienen que depender de contratos donde el cliente paga por el tiempo necesario para el desarrollo del sistema en vez de por el desarrollo de un conjunto de requerimientos  específicos. Si todo va bien, esto beneficia tanto al cliente como al desarrollador, sin embargo, si surgen problemas puede haber disputas sobre quién es el culpable y quién debe pagar por el tiempo extra y recursos necesarios para resolver los problemas.
4. ¿Cuándo es recomendable utilizar metodologías ágiles  en el desarrollo de software?
Los métodos ágiles son sólo apropiados para algunos tipos de desarrollo de sistemas, son idóneos para desarrollar sistemas de negocio pequeños y de tamaño medio y para ordenadores personales.
No se deben de utilizar los métodos ágiles para el desarrollo de sistemas críticos en lso que es necesario un análisis detallado de todos los requerimientos del sistema para comprender sus implicaciones de seguridad o protección.
5. ¿Cuáles son algunos tipos de metodologías ágiles?
Programación extrema (XP), programación en parejas, SCRUM y KANBAN





BIBLIOGRAFÍA
ISSI. (2003). Metodologías Ágiles en el Desarrollo de Software. JISBD (pág. 51). Alicante-España: ISSI.

http://blog.leanmonitor.com/es/que-son-las-metodologias-agiles/

sábado, 13 de febrero de 2016

El Proceso del Software

Introducción
Los procesos de software han evolucionado para explotar las capacidades personales de una organización, así como las características específicas de los sistemas que se están desarrollando. Para algunos sistemas, como los sistemas críticos, se requiere un proceso de desarrollo muy estructurado. Para sistemas de negocio, con requerimientos rápidamente cambiantes, un proceso flexible y ágil probablemente más efectivo.
A continuación se representa en un mapa algunos procesos así como sus etapas:
Conclusión
Como todos sabemos la tecnología y la industria cambian constantemente, así mismo lo hacen los proyectos de software, afortunadamente, la ingeniería del software estará buscando soluciones para los constantes cambios de requerimientos, la falta de tiempo así como otros problemas que en un futuro puedan surgir.


Evaluación

1.    ¿Qué es el proceso del software?
a)    Es la recopilación de los requerimientos del software.
b)    Es la generación de programas y códigos en un lenguaje específico.
c)    Son las actividades que guían la elaboración del software
d)    Es la metodología en el generación de código
e)    Es la aplicación del modelo vista controlador del desarrollo de software

2.    Los modelos de  proceso del software:
a)    Muestran las necesidades del cliente
b)    Son una abstracción del proceso del software
c)    Se utilizan en proyectos extensos de más de 6 meses
d)    Son un modelo ágil de programación
e)    Son diagramas que muestran el proceso de la ingeniería.

3.    No es una actividad común en el proceso del software
a)    Especificación de software
b)    Diseño e implementación del software.
c)    Validación del software.
d)    Soporte de software
e)    Evolución del software

4.    Son considerados modelos iterativos
a)    Modelo de cascada.
b)    Incremental
c)    Ingeniería de software basada en componentes
d)    Desarrollo en Espiral
e)    Incisos b y d
f)     Ninguno de los anteriores

5.    Utiliza  o adapta software comercial de ser posible
a)    Modelo de cascada.
b)    Incremental
c)    Desarrollo Evolutivo.
d)    Ingeniería de software basada en componentes
e)    Desarrollo en Espiral

6.    Modelo que tiene que finalizar una etapa para poder acceder a otra
a)    Modelo de cascada.
b)    Incremental
c)    Desarrollo Evolutivo.
d)    Ingeniería de software basada en componentes
e)    Desarrollo en Espiral

7.    Son desarrollos evolutivos
a)    Modelo de cascada.
b)    Desarrollo Exploratorio.
c)    Prototipos desechables
d)    Incisos a y b
e)    Incisos  b y c
f)     Ninguno de los anteriores

sábado, 6 de febrero de 2016

Métodos Ágiles de Programación

Métodos Ágiles de Programación

Introducción

Esta década ha comenzado con un creciente interés en metodologías de desarrollo debido a que la anterior ya había sido postergada. Así es como emergen las metodologías ágiles, como una posible respuesta para llenar ese vacío metodológico. Están especialmente orientados para proyectos pequeños con plazos reducidos, requisitos volátiles, y/o basados en nuevas tecnologías. Las metodologías ágiles constituyen una solución a medida para ese entorno, aportando una elevada simplificación que a pesar de ello no renuncia a las prácticas esenciales para asegurar la calidad del producto.
Los métodos ágiles permiten a los equipos de desarrollo enfocarse en el software mismo en vez de en su diseño y documentación. Se diseñaron para apoyar al desarrollo de aplicaciones de negocios donde los requerimientos del sistema cambian rápidamente durante el proceso de desarrollo. Están pensados para entregar software funcional de forma rápida a los clientes, quienes pueden entonces proponer que se incluyan iteraciones posteriores del sistema nuevos requerimientos o cambios en los mismos. 

Principios de los métodos ágiles

En febrero de 2001, tras una reunión celebrada en Utah-EEUU, nace el término “ágil” aplicado al desarrollo de software. Tras esta reunión se creó The Agile Alliance3, ésta organización tomó como punto de partida el Manifiesto Ágil, un documento que resume la filosofía “ágil”.
Según el manifiesto existen principios básicos, los cuales están presentes en todos los métodos ágiles, los cuales son:
-       La participación del cliente debido a que estos deben estar fuertemente implicados en todo el proceso de desarrollo
-       La gente como principal factor de éxito de un proyecto de software después de un buen entorno.
-       Aceptar el cambio, ya que los requerimientos del sistema cambian constantemente.
-       Desarrollar un software que funcione y no concentrarse mucho en la documentación así como mantener la simplicidad tanto en el desarrollo como en el proceso.

Algunos tipos de métodos ágiles

Programación Extrema (XP)

Es el método ágil más conocido y ampliamente utilizado, su nombre se debe a que el enfoque  fue desarrollado utilizando buenas prácticas reconocidas, como el desarrollo iterativo, y con la participación del cliente en niveles “extremos”.

Programación en parejas

En éste método los programadores trabajan en parejas para desarrollar el software.

SCRUM

Aquí el desarrollo del software se realiza mediante iteraciones, denominadas sprints, cada sprint es un incremento ejecutable que se muestra al cliente.

Crystal Methodologies


Se centra en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos.

Mapa conceptual



Conclusiones

No existe una metodología universal para hacer frente con éxito a cualquier proyecto de desarrollo de software. Toda metodología debe ser adaptada al contexto del proyecto (recursos técnicos y humanos, tiempo de desarrollo, tipo de sistema, etc.).
Una de las cualidades más destacables en una metodología ágil es su sencillez, tanto en su aprendizaje como en su aplicación, reduciéndose así los costos de implantación en un equipo de desarrollo.
Sin embargo, hay que tener presente una serie de inconvenientes y restricciones para su aplicación, tales como: están dirigidas a equipos pequeños o medianos, el entorno físico debe ser un ambiente que permita la comunicación y colaboración entre todos los miembros del equipo durante todo el tiempo, cualquier resistencia del cliente o del equipo de desarrollo hacia las prácticas o principios puede llevar al fracaso, entre otros.

Evaluación

1.    Los métodos ágiles se utilizan en:
a)    Programación Orientada a Objetos
b)    Desarrollo de software
c)    Soporte de Software
d)    Programación estructurada
e)    Calidad de Software

2.    ¿Qué modelo de desarrollo de software utilizan los métodos ágiles?
a)    Cascada
b)    Lineal
c)    Iterativo
d)    Espiral
e)    Evolutivo

3.    ¿Cuáles son las principales características en las que se basa el método ágil?
a)    Trabajo en equipo, adaptable, avances funcionales
b)    Satisfacción del cliente, reduce tiempo, una sola entrega final.
c)    Comunicación, no se adapta a los cambios, no es interactivo.
d)    Orientado a resultados, no hay comunicación, no hay trabajo en equipo

4.    ¿Cuáles son las características que  diferencian al método ágil del convencional?
a)    El cliente participa en el equipo de desarrollo
b)    Trabajo en equipo
c)    Satisfacción del cliente
d)    Presenta avances incrementales del proyecto al cliente
e)    Adaptable en cualquier etapa del proyecto

5.    En los métodos ágiles el cliente:
a)    Desarrolla Software
b)    Se incorpora al equipo de trabajo
c)    Trabaja en otros proyectos de software
d)    Resuelve problemas de comunicación del equipo
e)    Proporciona los recursos materiales

Bibliografía

ISSI. (2003). Metodologías Ágiles en el Desarrollo de Software. JISBD (pág. 51). Alicante-España: ISSI.

Sommerville, I. (2005). Ingeniería del Software. Madrid: Pearson.