lunes, 29 de febrero de 2016

Análisis Proyecto Kobra Management

Requerimientos Funcionales

MODULO 1: REGISTRO

*    Submódulo: Registro Administrador
Al inicio el software registrará un único administrador requiriendo los siguientes datos:
  1. Nombre
  2. Correo
  3. Contraseña


Con estos datos, el sistema dará de alta al administrador y le proporcionará su ID, el cual no se podrá cambiar pero si lo desea podrá cambiar sus datos accediendo al submódulo cambio de información.

*    Submódulo: Registro de Clubs
El administrador podrá registrar a todos los clubs y para ello se pedirán los siguientes datos:
                           1.     Nombre del club
                           2.     Dirección  club
                           3.     Nombre del entrenador principal
                           4.     “Ocupaciones
                           5.     Correo
                           6.     Contraseña

*    Submódulo: Registro de Jueces
Se crearán cuentas para los jueces pidiendo los sigui8entes datos:
                         1.     Nombre
                         2.     Contraseña

*    Submódulo: Registro tesorero
El administrador registrará al  tesorero con los siguientes datos:
                        1.     Nombre
                        2.     Dirección
                        3.     Teléfono
                        4.     Correo
                        5.     Contraseña


MóDULO 2: COMPETENCIAS
*    Submódulo: Registro de competencias
El administrador registrará las competencias con los siguientes datos:
                  1.     Nombre de la competencia
                  2.     Lugar
                  3.     Jueces que calificarán

*    Submódulo: Registro participantes
Cada club registrará a sus participantes con los siguientes datos:
                 1.     Apellido paterno
                 2.     Apellido materno
                 3.     Nombre
                 4.     Fecha de nacimiento
                 5.     Clase (nivel)
El sistema determinará automáticamente su clasificación


MODULO 3: CALIFICACIONES

*    Submódulo:  Asignación de calificaciones
Cada juez deberá ir guardando la calificación de cada participante en los siguientes aparatos: Piso, viga, barras, salto.

    Submódulo: Suma total de calificaciones (All Around)
El sistema sumará las calificaciones de todas las participantes

*    Submódulo: Obtención de primeros lugares
El sistema, de acuerdo a como se especifique obtendrá los primeros 6 lugares ya sea por aparato o sólo por el (All around)

*    Submódulo; Impresión de las memorias


Requerimientos NO funcionales

   Para un mejor manejo, entendimiento y calidad de Kobra Management se tienen que tener en cuenta los siguientes puntos

*    Se debe capacitar al cliente acerca del funcionamiento del sistema para un mejor entendimiento del mismo
*    El sistema debe contar con un manual de usuario para la consulta de las funciones del sistema así como de su manejo
*    El sistema debe de ejecutarse en  todos los navegadores, tanto para dispositivos móviles o computadoras
*    Debe de tener un entorno gráfico adecuado al ambiente del gimnasio
*    Su uso debe de ser lo más sencillo posible para los usuarios
*    Debe de almacenar, consultar, actualizar la información que se requiera sin que se afecte el tiempo de respuesta
*    Debe  estar disponible en cualquier momento que se le solicite en el periodo de tiempo en el que el gimnasio esté abierto
             


Requerimientos de sistema

Para la instalación de Kobra Management se necesitará de un computador con las siguientes especificaciones

*    Sistema operativo indistinto
*    Procesador de 64 bits
*    Memoria RAM 2.00 GB
*    Memoria de disco libre: 50 MB
*    Navegador Google® Chrome™ Versión 45.0.2454.101 m
*    NetBeans IDE 8.0.2
*    MYSQL® Server Versión 5.6
*    Java Virtual Machine
*    JDK 1.8.0_60
*    Java EE 7
*    Servidor Apache Tomcat 8.0.15.0 o GlassFish 4.1


Asimismo, para su instalación en dispositivos móviles se requerirá de:

·        Sistema operativo Android® LoliPop
·        Procesador Dual Core
·        Memoria de disco Disponible: 15 MB
·        Memoria interna: 4 GB EMMC + 512 MB RAM

Justificación

Hemos decidido realizar este proyecto debido a que podemos terminarlo con éxito y calidad, además, estamos trabajando para una institución gubernamental que hasta ahora no cuenta con un eficiente sistema de administración para controlar el registro de sus afiliados,  así como sus registros de campeonatos y calificaciones.


Objetivo general

Optimizar el proceso que se lleva a cabo en las competencias así como facilitar el proceso de la obtención de los primeros lugares evitando así que los capturistas cometan errores.

Objetivos Específicos

  1. Cada club podrá inscribir a sus participantes para tener un mayor control sobre los registros
  2. Se creará una sección para que los jueces puedan ir enviando las calificaciones de cada participante.
  3. El sistema obtendrá los primeros lugares de acuerdo a cómo se especifique.
Alcance


MODULO 1: REGISTRO
*    Registro Administrador
*    Registro Jueces
*    Registro de clubs
*    Registro tesorero
MODULO 2: COMPETENCIAS
*    Registro de competencias
*    Registro de participantes
*    Aceptación de las participantes
*    Designación de Jueces

MODULO 3: CALIFICACIONES
*    Asignación de calificaciones
*    Suma total de calificaciones (All Around).
*    Obtención de primeros lugares
*    Impresión de las memorias


Proceso de negocio


domingo, 28 de febrero de 2016

Programación Extrema - Una visión general

La agencia espacial ha decidido utilizar el método de Programación Extrema por lo que a continuación se dará una explicación acerca de lo que es la programación extrema, principios, proceso de desarrollo, entre otros.

¿Qué es la Programación Extrema?

Es una metodología ágil de programación que nació como un intento de establecer un conjunto de practicas que facilitasen la finalización de los proyectos con requisitos imprecisos, cambiantes y con alto riesgo técnico


¿Cuáles son los valores y principios de la  Programación Extrema?

  • La relaciones interpersonales entre el equipo de desarrollo es la clave del éxito.
  • Se preocupa por el aprendizaje de los desarrolladores
  • Se necesita coraje para enfrentar los cambios

¿Cuáles son las actividades, recursos y prácticas de la Programación Extrema? 

Roles:

  • Cliente: Escribe las historias de usuario y las pruebas funcionales para validar su implementación
  • Programador: El programador escribe las pruebas unitarias y produce el código del sistema
  • Encargado de pruebas (Tester): Ejecuta las pruebas regularmente, transmite los resultados de las pruebas y mantiene las herramientas
  • Encargado de segumiento (rastreador, tracker): Proporciona realimentación al equipo, también se encarga de realizar el seguimiento de las iteraciones 
  • Entrenador:Es responsable del proceso global. guía al equipo para que se se sigan las practicas XP correctamente
  • Consultor: Miembro externo que tiene conocimientos acerca de algo del proyecto y guía las soluciones a los problemas
  • Gestor (Manager o Big boss): Es el que administra el proyecto


Practicas:


  • El juego de la planificación: Hay una comunicación frecuente el cliente y los programadores
  • Historias de usuario: Requerimientos del sistema explicados en un lenguaje simple
  • Cortas y pequeñas iteraciones: Producir rápidamente versiones del sistema que sean operativas
  • Metáforas: Una metáfora es una historia compartida que describe cómo debería funcionar el sistema
  • Diseño Simple: Se debe de dar la solucion más simple posible
  • Restructuración del sistema para eliminar funciones duplicadas
  • Programación por pares: Toda la producción de código debe realizarse con trabajo en parejas de rogramadores
  • Propiedad colectiva: Cualquier programador puede cambiar cualquier parte del código en cualquier momento.
  • Integración continua: Cada pieza de código es integrada en el sistema una vez que esté lista
  • Cliente in-situ: El cliente tiene que estar presente y disponible todo el tiempo para el equipo
  • Estándares de codificación: es indispensable que se sigan ciertos estándares de programación para mantener el código legible
  • 40 horas de trabajo: Se debe trabajar un máximo de 40 horas por semana

¿Cuál son las fases del proceso de desarrollo de XP?

*Fase de exploración: En esta fase los usuarios escriben las tarjetas de historia que ellos quieren que sean incluidas en la primera versión. Cada una de las tarjetas de historia describen una funcionalidad que será añadida al programa.

*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 duración de esta fase no suele exceder el plazo de unos pocos días

*Fase de iteraciones: Esta fase incluye la realización de diferentes fases antes de liberar la primera versión del producto:


  1. El cliente define el valor de negocio a implementar.
  2. El programador estima el esfuerzo necesario para su implementación.
  3. El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones de tiempo.
  4. El programador construye ese valor de negocio.
  5. Se vuelve al primer paso



*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. Las iteraciones de esta fase no deben durar más de tres semanas.

*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 proyeto: Es la fase en que los clientes ya no tienen más historias que deban ser implementadas. Es la fase en que los clientes ya no tienen más historias que deban ser implementadas.


¿Qué es una historia de usuario?

Es una ténica que especifica los requisitos del sistema formulados en una o dos sentencias, en el lenguaje común delcliente. Se trata de tarjetas de papel en las cuales el cliente describe brevemente las características que el sistema debe poseer, seanrequisitos funcionales o no funcionales y pueden ser de una a tres semanas de tiempo de programación.

Mapa Conceptual




FUENTES CONSULTADAS: 


  • Canós, J. H.. (2003). Metodologías Ágiles en el Desarrollo de Software. Recuperado en Febrero 25, 2016, de Grupo ISSI Sitio web: http://issi.dsic.upv.es/archives/f-1069167248521/actas.pdf
  • Riola, J.. (2008). Metodologías Ágiles: HERRAMIENTAS Y MODELO DE DESARROLLO PARA APLICACIONES JAVA EE COMO METODOLOGÍA EMPRESARIAL. Recuperado en Febrero 25, 2016, de Up Commons Sitio web: http://upcommons.upc.edu/bitstream/handle/2099.1/5608/50015.pdf?sequence=1





Nuevo Proyecto**

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.

Nuestra empresa "El Pato Volador" 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.

A continuación daré información acerca de las metodologías ágiles de programación que existen (características, ventajas y desventajas, tipos de metodologías ágiles) para poder dar propuestas a nuestro cliente acerca de la metodología a utilizar.


¿Qué son las metodologías ágiles de desarrollo de software?

Son aquellas que surgen como una alternativa, una reacción a las metodologías tradicionales tales como el plumbing (pesadez en inglés refiriendose al exceso de documentación y lentitud de reacción), y el incomplimiento de las expectativas de las metodologías existentes para poder desarrollar sofware de manera rápida  no renunciando a las prácticas escenciales para asegurar la calidad del producto. 

¿Cuáles son las características en las que se basan las metodologías ágiles?

-desarrollo iterativo
- reducción de artefactos intermedios
- alto grado de comunicación entre el equipo
- se colabora con el cliente
- se adapta a cambios

¿Cuáles son las ventajas y desventajas del empleo de las metodologías ágiles respecto a  las tradicionales? 


Ventajas 


Están prearadas para cambios drante el proyecto
Usa Grupos pequeños, de menos de 10 integrantes
Es muy flexible (no hay contrato)
Se es más sencillo la identificación de presuntos problemas con el sistema ya que el cliente está siempre trabajando al lado del desarrollador

Desventajas

No es aplicable cuando se trata de proyectos grandes
Se hace menos enfasis en la arquitectura del software
En consecuencia de lo anterior hay una deficiencia en el análisis

¿Cuándo es recomendable utilizar metodologías ágiles  en el desarrollo de software?

Cuando el entorno del sistema es muy cambiante y donde se exige reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad o cuando los proyectos son pequeños

¿Cuáles son algunos tipos de metodologías ágiles?

* Scrum

Está especialmente indicada para proyectos con un rápido cambio de requisitos. Sus principales características se pueden resumir en dos. El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. La segunda característica importante son las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración.

* Extreme programming

es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo

* Test Driven development

Basado en pruebas de desarrollo (TDD) es una técnica avanzada de la utilización de pruebas unitarias automatizadas para impulsar el diseño de software y la fuerza de desacoplamiento de las dependencias. El resultado del uso de esta práctica es un conjunto completo de pruebas de unidad que se pueden ejecutar en cualquier momento para proporcionar información que el software todavía está trabajando. Esta técnica está fuertemente enfatizada por los que utilizan metodologías ágiles de desarrollo.

* Crystal methodologies

Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la  reducción al máximo del número de artefactos producidos

* Agile Project Management

reduce la complejidad al descomponer los muchos meses de duración del ciclo de los requisitos de construcción de todo el proyecto, la construcción de todo el producto y luego las pruebas para encontrar cientos de defectos del producto



MAPA CONCEPTUAL




Presentación




Fuentes consultadas


  1. Canós, J. H.. (2003). Metodologías Ágiles en el Desarrollo de Software. Recuperado en Febrero 25, 2016, de Grupo ISSI Sitio web:  http://issi.dsic.upv.es/archives/f-1069167248521/actas.pdf
  2.  Riola, J. (2008). Metodologías Ágiles: HERRAMIENTAS Y MODELO DE DESARROLLO PARA APLICACIONES JAVA EE COMO METODOLOGÍA EMPRESARIAL. Recuperado en Febrero 25, 2016, de Up Commons Sitio web: http://upcommons.upc.edu/bitstream/handle/2099.1/5608/50015.pdf?sequence=1
  3. Version One. (2012). Agile Project Management. Recuperado en Febrero 25, 2016, de VersionOne Sitio web: https://www.versionone.com/agile-project-management/ (En inglés)
  4. Palermo J. (2006). Guidelines for Test-Driven Development. Recuperado en Febrero 25, 2016, de Microsoft Developer Network Sitio web: https://msdn.microsoft.com/en-us/library/aa730844(v=vs.80).aspx (En inglés)


**IMPORTANTE
Este proyecto es meramente ficticio y el post no tiene otro objetivo mas que el de dar una visión general acerca de las metodologías ágiles de programación. Cualquier parecido con la realidad es únicamente coincidencia

Ruta Critica

El objetivo principal de la ruta crítica o CPM (Critical Path Method por sus siglas en inglés) es determinar la duración de un proyecto, entendiéndolo como una secuencia de actividades relacionadas entre sí, dónde cada una de ellas tiene una duración estimada. En ese sentido, el principal supuesto que tiene CPM es que cada actividad tiene tiempos conocidos, por lo que no existe incertidumbre. I


Una ruta es la trayectoria desde el inicio hasta el final del proyecto, y la ruta crítica es la trayectoria más larga del proyecto.

Para utilizar este método se necesitan seguir estos pasos:


  • Definir el proyecto con todas sus actividades o partes principales
  • Establecer la relacione entre cada una de las actividades
  • Dibujar un diagrama conectando las diferentes actividades en base a sus relaciones de precedencia
  • Definir el tiempo y costo estimado de cada actividad
  • Identificar la trayectoria más larga del proyecto. Ésta determinará la duración del proyecto
  • Utilizar el diagrama como ayuda para planear, supervisar y controlar el proyecto
Para facilitar la representación de cada actividad se utiliza la siguiente notación:


Donde

IC = Inicio cercano (el tiempo más corto en el que puede comenzar  la actividad)
IL = Inicio lejano (el tiempo más tarde que puede comenzar una actividad sin retrasar el término proyecto)
TC = Término más cercano (el tiempo más corto en el cual puede empezar la actividad)
TL = Término más lejano (lo más tarde que se puede realizar una actividad sin retrasar el proyecto)


Holgura: Se define holgura como el tiempo máximo que se puede atrasar el cominenzo de una actividad sin que se retrase la finalización del misno y se obtiene como

Holgura = IL  IC
Holgura = TL - TC





FUENTES:


  • Investigación de Operaciones. (2010). Método de la Ruta Crítica - Gestión de Proyectos. Febrero 27, 2016, de Investigación de Operaciones Sitio web: http://www.investigaciondeoperaciones.net/cpm.html

Guión del Sketch acerca del proyecto Kobra Management

En el post anterior, subí el storyboard relacionado al proyecto KobraManagement del equipo NoLimitBit. En esta ocasión subo el guión del sketch que el profesor Juan Manuel ya vió como quedó. Así que disfrútenlo






¡Muchas Gracias!





StoryBoard de Proyecto KobraManagement

En este storyboard se da a conocer la problemática de nuestro cliente y la solución que NoLimitBit
propone. Espero lo disfruten





De lo anterior, podemos observar que se comenten muchos errores tanto para saber quien ha sido inscrito en las competentes, así como también es tardada la forma que se utiliza para saber cual participante fue el ganador de la competencia. NoLimitBit propone hacer estos procesos algo más sencillo para los administradores del gimnasio, implementando nuestro sistema llamado KobraManagement


martes, 23 de febrero de 2016

WebQuest

Este post está destinado para complementar los dos post anteriores que son acerca de los métodos ágiles y los procesos de desarrollo de software.
Son dos web quest que se nos aplicó en clase, pero que no me enteré que tenia que publicarlo en
un post.

Web quest de Métodos ágiles




Web Quest de Procesos de Desarrollo de software.




                                              Bueno, esto es todo amigos.