Trabajo Práctico Número 1

Objetivos

Que el alumno logre:

  • Adquirir habilidades y conocimiento de las principales características y capacidades de las diferentes tecnologías y herramientas para el desarrollo y construcción de aplicaciones informáticas actuales.
  • Aplicar criterios de selección de software en base a características y necesidades de un sistema.
  • Adquirir habilidades en búsqueda y organización de información.

Modalidad de Desarrollo

Grupal: en grupos de entre 4 y 7 alumnos.

Formato de Presentación

Individual con coloquio en máquina e informe impreso y digital (formato .odt .doc .pdf).

Fecha de Entrega

19/05/2022

Exposición Grupal

19/05/2022

Contenido del Informe de Presentación

  • Formato de hoja: A4.
  • Carátula: Nombre de la materia, año de cursado, número de grupo, nombre completo de los integrantes. Correo electrónico de cada integrante.
  • Índice de contenidos: índice temático de contenidos, organizado por lenguaje o herramientas de programación.
  • Informe comparativo: Descripción de cada sistemas de control de versiones / plataforma evaluando cada una de las características seleccionadas.
  • Extensión de No más de tres páginas por herramienta.
  • Cuadro Comparativo: Cuadro sinóptico resumen de doble entrada (característica x herramienta) conteniendo los principales ítems y cuantificaciones.
  • Bibliografía: Citación de Fuentes de referencia de la documentación o bibliografía consultada.

Aspectos de Evaluación

  • Cumplimiento de actividades propuestas y fechas indicadas.
  • Investigación y desarrollo del material.
  • Presentación.
    1. La correcta redacción de los textos, su ortografía y puntuación.
    2. La relación y coherencia en cuanto a los tipos de letras utilizados para los capítulos, partes o secciones componentes del informe.

Actividad 1: Informe de investigación de Sistema de Control de Versiones

  • Investigar y elaborar un breve informe de sistemas de control de versiones disponibles en el mercado, tanto del tipo centralizado como descentralizado (entre 5 y 8, ejemplo git, mercurial, svn, cvs, bitkeeper, etc). Indicar los siguientes ítems:
  1. Tipos de versionado soportados.
  2. Licencia
  3. Costo (gratuito / propietario)
  4. Quien lo mantiene.
  5. Plataformas soportadas (Windows, Unix, etc)
  6. Extras
    1. Elaborar un cuadro comparativo que resuma los puntos antes mencionados
    2. Realizar el mismo cuadro con plataformas comerciales de sistemas de control de versiones (entre 5 y 8, por ejemplo Atlassian, Github, etc) agregando la columna sistemas de control de versiones que soporta mencionadas en el punto anterior. Además mencionar que herramientas adicionales incluyen (por ejemplo wiki, herramientas de gestión de proyectos, etc).
  • Investigar y elaborar un breve informe sobre React contemplando:
  1. Qué es React?
  2. Explicar como funciona React Virtual DOM. Ventajas y desventajas.
  3. Conceptos generales: SPA, componentes, rutas, estado, flujo de datos, ciclo de vida de los componentes.

Actividad 2: Análisis y utilización de un Sistema de Control de Versiones Centralizado

  • Investigar un SCV Centralizado o Descentralizado (distinto de git) y explicar las principales características brevemente.
  • Enumerar ventajas y desventajas, y comparación con SCV Descentralizados (cuadro comparativo).
  • Seleccionar un servidor que se encuentre en la nube/web gratuito para realizar un ejemplo.
  • Realizar un ejemplo iniciar el repositorio, clonarlo, modificarlo y generar conflictos, crear ramas y realizar merge de las mismas con el trunk principal, en un pequeño equipo por lo menos 3 miembros del grupo.
  • Utilizar de ser necesario una herramienta cliente (gráfico o consola) o IDE.
  • Documentar el ejemplo con capturas de commits de los miembros del equipo sobre un mismo archivo y otro ejemplo de branch y merge.

Actividad 3: Actividad práctica sobre Git y Github

Utilizando Git por línea de comandos o desde la Web de Github (según corresponda) realizar el siguiente ejercicio (ir evidenciando documentando los pasos ver nota al final):

  1. Un miembro del equipo va a clonar el siguiente repositorio y va a crear una rama para el grupo (la misma va a tener la forma GX/principal donde X es el número de grupo).
  2. En su repositorio local el usuario va a crear un va a crear una carpeta de grupo (grupoX) y dentro de la misma va crear un proyecto en React. Commitear los cambios en el repositorio y subir la rama al servidor remoto. Les dejo un link de ayuda:
  3. Una vez creada la rama del grupo en el servidor uno de los miembros del grupo va hacer un fork de la rama. Clona el fork, va a insertar una función del tutorial Filtrando Listado con React, commit.> push y pull request al repositorio del grupo. Nota Cada pull request debe tener una versión sin errores de compilación.
  4. Los demás miembros del grupo: Clonar el repositorio y toman la rama del grupo. A partir de la rama del grupo, crean una rama personal (gXiniciales grupo X e 2 iniciales) donde realizar una modificación en código (insertar una función de modo de llegar a la funcionalidad final por parte de los diferentes integrantes del equipo) y realizar un commit y push, (Generar un conflicto y resolverlo). Ponerse de acuerdo en el grupo.
  5. Realizar un pull request de la rama personal a la principal de grupo.
  6. Aceptar / confirmar los pull request en la web, obtener a la funcionalidad completa del programa. Generar un tag para la versión con el nombre gX-V-1.0.0 X número de grupo (por línea de comando) y subir al repositorio remoto.
  7. Realizar un cambio en el programa sobre la rama principal del grupo y subir el cambio (que introduce un error al programa, por ejemplo, que no funcione un filtro).
  8. Revertir los cambios al commit del tag creado anteriormente y subir los cambios rama principal.
  9. A partir de la rama principal (del grupo) crear una rama de test (para cambios futuros) introducir un par de commits que tengan nuevas funcionalidades/o estilos CSS y llevar a la rama principal solo el commit que se agregó anterior al head de la rama test.
  10. Subir archivo de informe al repositorio y Etiquetar versión final.

Nota: El informe final y el código fuente generado debe ser subido a la rama del equipo y etiquetado a la fecha de presentación del TP.