viernes, 8 de junio de 2018

Proyecto con GitHub sobre la metodología RAD



INTRODUCCIÓN


La metodología RAD comprende el desarrollo interactivo, la construcción de prototipos y el uso de utilidades CASE.
La metodología RAD surge como predecesora a las metodologías ágiles y con ella se desarrollaron distintas herramientas automatizadas basadas en sus características y beneficios.
Una de estas herramientas es GitHub la cual es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git..
El proyecto a desarrollar es una aplicación móvil para sistema operativo Android la cual permita visualizar el menú y platillos de la cafetería de la UPIICSA así como habilitar una valoración con estrellas (1 a 5) y comentarios para cada platillo.
La metodología RAD se aplica al elaborar los modelos de gestión, proceso y datos comprendidos dentro de la estructura, así como el desarrollo iterativo y la generación de prototipos y el uso de varias herramientas CASE.
GitHub es usado como la plataforma para el desarrollo iterativo y colaborativo del proyecto, creando además varios branch que se ajustan a el trabajo por módulos de RAD.



Índice


Metodología RAD. 4
Herramientas usadas. 4
Fases del Proyecto. 5
Generación de la aplicación con el uso de GitHub. 15
CONCLUSIONES. 20
BIBLIOGRAFÍA.. 21




Metodología RAD.


RAD significa por sus siglas en inglés: rapid application development.
El método comprende el desarrollo interactivo, la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución.

La metodología comprende entre sus elementos cuatro componentes importantes, la definición de los requerimientos, el diseño o realización de prototipos, la codificación y el testing.

Finalmente podemos definir que la metodología comprende ciertas etapas consecutivas iniciando por el modelado de gestión, modelado de datos y de procesos, siguiendo con la generación de las aplicaciones y la aplicación de pruebas a estas, todo esto en un periodo de entre 60 y 90 días.

Herramientas usadas.


RAD hace énfasis en el uso de herramientas CASE y de desarrollo visual para agilizar los procesos y actividades que tengan que ver con el desarrollo general del proyecto, algunas de las herramientas utilizadas para este proyecto fueron:

Git: es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Su propósito es llevar registro de los cambios en archivos de computadora y coordinar el trabajo que varias personas realizan sobre archivos compartidos.

GitHub: es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git. Se utiliza principalmente para la creación de código fuente de programas de computadora. El software que opera GitHub fue escrito en Ruby on Rails. Desde enero de 2010, GitHub opera bajo el nombre de GitHub, Inc. Anteriormente era conocida como Logical Awesome LLC. El código de los proyectos alojados en GitHub se almacena típicamente de forma pública, aunque utilizando una cuenta de pago, también permite hospedar repositorios privados.

StarUML: Es muy útil para la creación de diseños y diagramas UML. Mediante una interfaz sencilla, se pueden crear diagramas de clases, uso, secuencias, composición, y componentes, entre otros.

Adobe illustrator CS6: Es un editor de gráficos vectoriales en forma de taller de arte que trabaja sobre un tablero de dibujo, conocido como «mesa de trabajo» y está destinado a la creación artística de dibujo y todo tipo de ilustraciones.


Fases del Proyecto


Planeación.
La problemática consiste en la ignorancia de los platillos que conforman el menú general y los eventuales menús del día de la cafetería “come y piensa” de la UPIICSA la cual únicamente muestra su menú en al interior. Los estudiantes y trabajadores demuestran preferir salir de las instalaciones a comer ya que de los negocios del exterior conocen ampliamente la oferta de alimentos.
Secundariamente el problema de nivel de satisfacción de los clientes en cuanto a algunos platillos ha generado opiniones variadas en cuanto a la calidad de estos, así como la justificación de sus precios.
Por lo tanto, se define como solución la creación de una aplicación móvil para sistema operativo Android que muestre los menús del día de la cafetería así como los platillos y que permita la valoración tipo cinco estrellas y comentario de cada uno de los platillos.
Caso de uso.

 Requerimientos funcionales

       Consulta de menú general de la cafetería
       Consulta de menú del día de la cafetería
       La aplicación funcionará sobre la plataforma Android
       Alojamiento del servidor en digital ocean
       Conexión a base de datos
       Relacionar comentarios tipo muchos a uno a un platillo del menú
       Uso de la aplicación sin necesidad de registro de usuario
       Para realizar un comentario no se necesita registro

Requerimientos no funcionales

       Análisis de comentarios para evitar spam
       Análisis de comentarios para evitar ofensas
       Respuesta del servidor en tiempo real
       Teléfonos con versión Android superior a la 5.0 (Lolipop)
       Uso de Framework Phoenix para la aplicación web
       Peso de la aplicación deberá ser menor a 50 Mb



Análisis

Diferentes cafeterías cuentan con sistema que mejora la eficiencia y productividad, pero al momento de organizar por categorías en ocasiones se puede tornar algo complicado y decrementa las ganancias, la manera más sencilla es contar con un apoyo ya sea un nuevo sistema o en otro caso tener un excelente manejo de alguna herramienta que cuente con las características que se buscan para cumplir con los requerimientos y los objetivos que se plantean inicialmente con la finalidad de cumplir con dichas metas, primero es necesario definir los alcances y como se utilizará una base de datos es importante definir de manera apropiada los campos con los que se va a trabajar, organizar la comida y los platillos en pocas categorías para hacer más entendible y claro las opciones con las que se cuentan y de ésta manera elegir la mejor opción.

En primera instancia la forma de organizar el menú consiste en desayuno en diferentes presentaciones, dentro del cual tienes la opción de escoger entre diferentes platillos y acompañarlo con fruta o jugo y en la cuanto a bebidas café o té, en el horario de la comida se cuenta con múltiples platillos cada uno tiene de manera específica y clara el precio, o bien elegir entre un menú con un precio determinado previamente, así como añadir un postre. Y en la última categoría se encuentran los antojitos y snack que son los platillos ligeros o más rápidos de entregar entre ellos podemos encontrar, hamburguesas, quesadillas, entre otros.
El procedimiento es el siguiente al momento de entrar y elegir lo que se comprará el primer paso es pagar en la caja te proporcionan un ticket, posteriormente llevas dicho ticket a la barra y esperas unos minutos a qué tu pedido sea completado, la deficiencia de dicho procedimiento es que si cualquier usuario se encuentra en algún edificio lejano de la cafetería se complicaría ir para saber el menú del día por tal razón dicho proyecto se enfoca en reducir tiempos y mantener al usuario al tanto del menú del día, y de no contar con la comida de su preferencia no es necesario que se desplace hasta la cafetería para conocer dicha información.
Implementaremos una opción para que si tienes un consumo frecuente cada dos meses aplicas para una comida gratis, con el fin de tener un plus contra la competencia y contar con un espacio cómodo para que los alumnos puedan comer sus almuerzos o refrigerios


Desayunos

Platillo
Jugo o Fruta
Café o té

Menú predeterminado

Menú de $50
Menú de $60

Comidas
Enchiladas
Ensaladas
Pechuga de pollo
          

Antojitos y Snacks
Hamburguesas
Sándwich
Quesadillas
Tortas
Hot Dog





Diagrama de secuencia

Diagrama de login.
 



Diagrama de subir una reseña




Diagrama de calificación de platillo




Diseño

 


Se generan diseños de pantalla sobre el aspecto preliminar y funciones con las que contará la aplicación, así se desarrolla el primer prototipo para instalar el proyecto en un dispositivo.
  
Este diseño está claramente sujeto a cambios futuros tras las revisiones, iteraciones en el avance o cambio de funciones y requisitos.

También se diseño el logotipo de la aplicación, utilizando el nombre de la cafetería: “Come y Piensa”:



El logotipo está compuesto por varios elementos, al centro un círculo que podría simular la forma de un plato, con sus cubiertos a un lado. Dentro del círculo hay varios alimentos lo que nos indica que en la cafetería de la UPIICSA podemos encontrar una gran variedad de comida, para todo tipo de gustos. El color principal del logotipo es el naranja, específicamente es:
#FF9900
R: 255   G:153   B:0

De igual manera, se hizo el diseño del menú del día, el cual va aparecer  dentro de la aplicación. 

 
Modelado de gestión.



Modelado de datos

La aplicación manejara y almacenará una gran cantidad de información, ya que tendría una gran cantidad de usuarios (los estudiantes de la UPIICSA), por eso es importante mostrar la forma en que estarán almacenados los datos.
La aplicación constará únicamente de dos clases: alumno y supervisor. El alumno tiene la opción de registrarse en la aplicación por lo tanto, si decide registrarse tendría los atributos que se indican en el diagrama. Tiene tres métodos para registrarse, ver el menú disponible en la cafetería cada día, y para calificar los alimentos de la cafetería por medio de comentarios.
Del supervisor únicamente es necesario conocer el id. Y cuenta con tres métodos para subir el menú de cada día, ver el menú que se ha subido y para poder visualizar los comentarios que han puesto los alumnos.



Modelado de proceso.

Es necesario comprender que es un modelo de procesos, el cual se explicará a continuación.
Está conectado con las pruebas que se realizan para ver las posibilidades que trae cada proceso. Permite un conocimiento más profundo de las pruebas y los resultados, estableciendo un sólido comienzo para la optimización de procesos, por lo que es posible y más fácil de ver los obstáculos y puntos ineficientes. De igual manera, un modelo de procesos es utilizado por la mayoría de las empresas, esto para realizar una abstracción de todos los procesos que se deben seguir.

En dicho proyecto utilizamos BPMN (Business Process Modeling Notation (BPMN).) que es una notación gráfica estandarizada que permite el modelado de procesos de negocio, en un formato de flujo de trabajo (workflow).

El objetivo principal de BPMN es proporcionar una notación que pueden comprender de inmediato todos los usuarios del negocio, desde los analistas de negocio que crean los borradores iniciales de los procesos, hasta los desarrolladores técnicos responsables de la implementación de la tecnología que realizará estos procesos.Otro objetivo es asegurar que los lenguajes XML diseñados para la ejecución de procesos de negocio, tales como BPEL4WS (Business Process Execution Language for Web Services) y BPML (Business Process Modeling Language), puedan visualizarse con una notación común.

Nuestra aplicación contará con múltiples fases, las cuales deben de ser optimizadas en procesos, esto servirá para un mejor manejo de la información, así como una mejor comprensión de estos, logrando que sea entendible para cualquier persona.

Se mostrarán los procesos por los cuales pasará la aplicación para que le usuario pueda acceder a la aplicación y pueda interactuar con esta.


Generación de la aplicación con el uso de GitHub.


Generación del repositorio
Con la cuenta de Aquiles se generó el repositorio en la plataforma de GitHub en la cual después de crear el repositorio es agregar a los cuatro integrantes en como colaboradores del proyecto para así poder generar los branches y generar lo que es el esqueleto de la aplicación.

     Inicialización de un repositorio
           
            Después de generar nuestro repositorio en GitHub en el entorno git usamos el comando git clone junto con la URL que nos proporciona la plataforma es:
git@github.com:Aquiles2016601505/Cafeteria-UPIICSA.git para que el comando quede de la siguiente manera:
git clone git@github.com:Aquiles2016601505/Cafeteria-UPIICSA.git
después de poder generar nuestros archivos ya al ingresar a la carpeta de trabajo ya tendremos el repositorio listo para trabajar y crear nuestra aplicación.

Por el lado de android studio después de  clonar nuestro repositorio habrá que hacer un nuevo proyecto sobre android studio y que su carpeta de raiz del proyecto sea la carpeta que nos genera git para guardar nuestros documentos.



Después ya que se genero el esqueleto básico de la aplicación se tendrá que que ir a la línea de comandos git y generar nuestros primer commit a master
para esto es necesitamos ejecutar los siguientes comandos
           
            git add .
            git commit -m”boiler plate”
            git push origin master



haciendo mención a que se usa la palabra origin para poder actualizar el repositorio de GitHub junto con el repositorio local.
           
           
     Creando la arquitectura MVP

El presentador
El presentador es responsable de actuar como intermediario entre la vista y el modelo. Recupera datos del modelo y lo devuelve formateado a la vista. Pero a diferencia del MVC típico, también decide qué sucede cuando se interactúa con la vista.

La vista

La vista, generalmente implementada por una Actividad (puede ser un Fragmento, una Vista ... dependiendo de cómo esté estructurada la aplicación), contendrá una referencia al presentador. El presentador será idealmente proporcionado por un inyector de dependencia como Dagger.
Lo único que llamará la vista es del presentador cada vez que hay una acción de interfaz (un clic de botón, por ejemplo).


El modelo
En una aplicación con una buena arquitectura en capas, este modelo solo sería la puerta de entrada a la capa de dominio o lógica de negocios. Si utilizáramos la arquitectura limpia del Tío Bob, el modelo probablemente sería un interactor que implemente un caso de uso.




     Creandos Branches

            Para la creación de branches se utilizan los comandos git checkout -b [nombre de la rama] de las cuales nuestro proyecto por funcionalidad se integra en tres módulos que son el sign In , menu shop y send review en los cuales se establece las pantallas de inicio de sesión, la pantalla principal y el enviar la reseña de un platillo.

            

            para que al subir las versiones el proyecto se quede organizado de la siguiente manera.



     Hacer merge
           
            Después de que ya se trabajó sobre el modelado de las vistas y agregar los componentes es hora de hacer un merge de las ramas para conjuntar y mandarlo al entorno de producción(master)

los comandos a usar son git merge [nombre de la rama a fusionar] para que se puedan utilizar  por lo que el grafo quedó de la siguiente manera



           
     Definir siguiente iteraciones

            Ya que solo se en la primera iteración se generó lo que son las vistas y muy poca funcionalidad en la versión actual se vuelve a crear esas tres ramas y se pueden seguir trabajando en lo que son las siguientes modulos que es ya conectar la aplicación con un servicio web que se encargue de mandar las peticiones para saber el menú de la cafetería y poder consultar si hay nuevos productos en la cafetería disponibles



CONCLUSIONES


La elaboración de proyectos mediante la metodología RAD comprende un trabajo iterativo que permite realizar cambios inmediatos y detectar fallas o ausencias en los modelos generados y ajustarlos. Otro factor que remarca RAD es el uso de herramientas CASE lo cual facilita mucho todo tipo de actividades y como hoy en día algunas de estas permiten un trabajo colaborativo online el desarrollo de los proyectos por equipos es más fructuoso.
Para este proyecto se hace uso de la herramienta GitHub, esta cumple con elementos de RAD, pero para poder desarrollar mejor la aplicación se utiliza Android Studio que además tiene opciones para trabajar con repositorios GutHub.
El desarrollo de aplicaciones o soluciones informáticas haciendo uso de la metodología RAD nos permite un trabajo iterativo y ágil que se ajusta fácilmente a las necesidades de los clientes o del proyecto mismo.

BIBLIOGRAFÍA





No hay comentarios:

Publicar un comentario