0% encontró este documento útil (0 votos)
11 vistas16 páginas

Proyecto SO

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas16 páginas

Proyecto SO

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 16

”Año de la unidad, la paz y el desarrollo”

Universidad Nacional de Ingenierı́a


Facultad de Ciencias
Escuela Profesional de Ciencia de la Computación

Curso: CC222, Sistemas Operativos


Reingenierı́a Personal y Social para la vida y Obra (RPSVO) - Guı́a
Git y Github
Integrantes Código
Chevarria Rodriguez, Abraham 20160373D
Iman Noriega, Melissa 20224041G
Merchan Torres Bianca 20220425E
Pumayauli Evangelista Bryan 20212209E
Arevalo Gambini, Alois 20172759J

Docente: Bazan Cabanillas, Carlos Alberto

2024

1
Índice
1. Resumen 3

2. Introducción 3
2.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1. Descripción del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3. Estado del Arte 4


3.1. Trabajos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Conceptos Teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. Otras Herramientas Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4. Desarrollo 6
4.1. Paso1: Descripción del caso de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1.1. Problemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1.2. Objetivo del caso de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1.3. Evaluación de solución del caso de estudio . . . . . . . . . . . . . . . . . . . . . 8
4.2. Paso2: Metodologı́a de desarrollo de la solución . . . . . . . . . . . . . . . . . . . . . . 8
4.2.1. Especificación de Requerimentos para la efectividad de la guı́a . . . . . . . . . 8
4.2.2. Herramientas Complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5. Diseño de Arquitectura de Desarrollo 10

6. Proceso de Desarrollo 14
6.1. Diseño del Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

7. Evaluación de Frameworks 15

8. Trabajo futuro 16

2
1. Resumen
El presente documento es una guı́a del manejo de Git y Github dirigida a un público con un en-
tendimiento medianamente técnico. Presentamos el desarrollo de software colaborativo como objetivo
principal que deseamos ejecutar de manera satisfactoria. De este modo, se presenta una perspectiva
conceptual, clara y concisa de lo que significa realizar un proyecto colaborativo. Ası́ podemos com-
prender que supone una tarea compleja, sin embargo utilizando las herramientas adecuadas, esto nos
puede facilitar de manera significativa y eficiente el desarrollo de software colaborativo.

Además, ofrecemos un amplio rango de aplicaciones donde es adecuado y provechoso usar una
herramienta de manejo de versiones como Git. El presente documento es parte de un proyecto, por
tanto también es versionado con Git y almacenado en GitHub para dar muestra de manera real cómo
es colaborar y hacer uso de estas herramientas útiles.

Por último, esta guı́a es un proyecto en desarrollo y además es parte de un proyecto ambicioso
denominado Reingenierı́a Personal y Social para la vida y Obra (RPSVO).

2. Introducción
La colaboración en proyectos de desarrollo de software ha evolucionado significativamente con el
advenimiento de plataformas como GitHub. GitHub, basado en el sistema de control de versiones
Git, se ha convertido en un pilar fundamental para desarrolladores de todo el mundo, facilitando la
colaboración, el seguimiento de cambios y la gestión de proyectos de manera eficiente.

Al adentrarnos en el mundo de GitHub, es esencial comprender el funcionamiento básico de Git,


el sistema de control de versiones subyacente. A diferencia de los enfoques tradicionales de desarrollo,
donde los archivos suelen residir exclusivamente en las computadoras locales, Git adopta un enfoque
distribuido, lo que significa que cada colaborador de un proyecto tiene una copia completa del re-
positorio en su propia máquina. Esto asegura una mayor independencia y capacidad de trabajo sin
conexión a Internet.

Sin embargo, antes de sumergirnos en el mundo de Git y GitHub, es crucial comprender cómo
instalar y configurar adecuadamente el software en nuestras computadoras locales. A diferencia de
algunas herramientas de control de versiones que ofrecen interfaces gráficas intuitivas, Git se centra
en una experiencia de lı́nea de comandos, lo que puede resultar intimidante para algunos usuarios al
principio. Pero no te preocupes, en este informe te guiaremos a través del proceso de instalación y
te proporcionaremos los conocimientos necesarios para comenzar a utilizar Git y GitHub de manera
efectiva

¡Prepárate para explorar el emocionante mundo de la colaboración en desarrollo de software con


GitHub!

Esta introducción brinda una visión general del tema y establece el tono para el informe, enfatizan-
do la importancia de comprender tanto Git como GitHub y cómo instalar Git en tu computadora local.

2.1. Motivación
Nuestro principal interés reside en la necesidad de organizar y documentar el proceso de desarrollo
de proyectos, i.e. en su mayorı́a de software los cuáles son complejos en sı́ mismos.

3
Podemos afirmar que el desarrollo de software significa un reto pues implica manejar correctamente
la manera en que un grupo se organizará para lograr satisfactoriamente un software con requerimientos
propuestos previamente. Para ello, Git y GitHub son herramientas que nos permitirán alcanzar dicho
objetivo. Por consiguiente, elaborar una guı́a técnica, concisa y simple que nos permita administrar y
registrar la evolución de una pieza de software es de sumo interés.

2.2. Objetivos
Elaborar una guı́a amigable y de utilidad para el usuario interesado en desarrollar un proyecto
colaborativo de software.

Comprender los conceptos básicos de control de versiones.

Dominar el flujo de trabajo básico con Git.

Comprender GitHub y sus cualidades colaborativas.

Promover el Software Libre y su uso en proyectos que beneficien a la comunidad.

2.2.1. Descripción del Problema


Para dar una estructura detallada del problema, a continuación presentamos algunos puntos a
tomar en cuenta:

Dificultad para colaborar de manera eficiente: Colaborar entre miembros activos de un proyecto
puede significar una tarea tediosa si no se hace uso de un sistema centralizado. Además del con-
flicto que puede ocurrir cuando dos o más usuarios están trabajando en una misma funcionalidad
o lı́neas de código.

Gestión compleja de las versiones de un software colaborativo: Mientras el proyecto evoluciona


en el tiempo y hay varios usuarios colaborando, es tedioso y engorroso mantener un orden en
cuanto a los cambios adicionados.

Dificultad en la trazabilidad: A lo largo del tiempo resulta importante tener un historial de la


evolución del software, pues es común encontrar bugs en el software que se desarrolla. De este
modo sin un sistema de versiones y un software enorme, es complicado corregir dicho problema.

Seguridad y almacenamiento del proyecto: Sin un sistema de versionado seguro y aislado, los
proyectos están expuestos a la pérdida de los datos. Ası́ como también el problema de quién
modifica el software. Sin un establecimiento de roles resulta complicado confiar en la seguridad.

3. Estado del Arte


3.1. Trabajos relacionados
Tanto GitHub como GitLab son sistemas de control de versiones, herramientas que hacen que
los programadores puedan trabajar en equipo sin querer matarse entre ellos. Vamos a hablar de su
historia, diferencias, ventajas y desventajas.
Como muchas de las grandes cosas en esta vida, Git comenzó con un poco de destrucción creativa
y una gran polémica. El kernel de Linux es un proyecto de software de código abierto con un alcance
bastante amplio. Durante la mayor parte del mantenimiento del kernel de Linux (1991-2002), los
cambios en el software se realizaban a través de parches y archivos. En el 2002, el proyecto del kernel
de Linux empezó a usar un DVCS propietario llamado BitKeeper. En el 2005, la relación entre la
comunidad que desarrollaba el kernel de Linux y la compañı́a que desarrollaba BitKeeper se vino abajo
y la herramienta dejó de ser ofrecida de manera gratuita. Esto impulsó a la comunidad de desarrollo

4
de Linux (y en particular a Linus Torvalds, el creador de Linux) a desarrollar su propia herramienta
basada en algunas de las lecciones que aprendieron mientras usaban BitKeeper. En el 2005, la relación
entre la comunidad que desarrollaba el kernel de Linux y la compañı́a que desarrollaba BitKeeper se
vino abajo y la herramienta dejó de ser ofrecida de manera gratuita. Esto impulsó a la comunidad
de desarrollo de Linux (y en particular a Linus Torvalds, el creador de Linux) a desarrollar su propia
herramienta basada en algunas de las lecciones que aprendieron mientras usaban BitKeeper. Una
cronologia antes que aparezca Git.

Sistema Año Desarrollador Descripción


SCCS 1972 Marc J. Rochkind Primer sistema de control de versiones conocido, basado en
el manejo individual de archivos. Requerı́a bloqueos para la
concurrencia.
RCS 1982 Walter Tichy Parte del proyecto GNU, mejoró a SCCS permitiendo blo-
queos de archivos para evitar cambios concurrentes.
CVS 1986 Dick Grune Evolución de RCS que permitı́a a los desarrolladores traba-
jar de manera más independiente en copias del proyecto que
se sincronizaban con el general.
TeamWare 1990 Sun Microsystems Sistema distribuido que avanzó en la gestión de historiales
y actualizaciones atómicas.
Git 2005 Linus Torvalds Creado para el mantenimiento del kernel de Linux, rápido y
eficiente con un sistema robusto de ramificación para desa-
rrollo no lineal.

3.2. Conceptos Teóricos


Git es un sistema de control de versiones que te ayuda a rastrear los cambios en tus archivos a lo
largo del tiempo. Te permite trabajar en colaboración con otras personas en proyectos de software.
Conceptos clave:
Repositorio: Es un lugar donde se almacenan tus archivos y las versiones de los mismos. Puede ser
local (en tu computadora) o remoto (en un servidor en la nube, como GitHub).
Commit: Es una instantánea de tus archivos en un momento especı́fico. Realizas commits para
guardar tus cambios en el repositorio.
Branch (rama): Es una versión separada de tu código. Puedes crear ramas para trabajar en nuevas
caracterı́sticas o solucionar problemas sin afectar la rama principal (generalmente llamada ”main.o
”master”).
Merge (fusionar): Es el proceso de combinar los cambios de una rama en otra. Por ejemplo, fusionas
una rama de caracterı́sticas en la rama principal una vez que la nueva caracterı́stica está completa y
probada.
Pull Request (solicitud de extracción): Es una forma de proponer cambios en un repositorio. Lo
usas para solicitar que alguien revise y apruebe tus cambios antes de fusionarlos en la rama principal.
GitHub, por otro lado, es una plataforma de alojamiento de código que utiliza Git como su sistema
de control de versiones. Te permite almacenar repositorios de código de forma remota, colaborar con
otros desarrolladores, realizar seguimiento de problemas y mucho más.

5
3.3. Otras Herramientas Utilizadas
Herramienta Descripción Integración con Git/GitHub
GitLab Plataforma de control Se puede conectar con GitHub.
de versiones y CI/CD
que ofrece un enfoque
integrado para el ciclo
de desarrollo.
Bitbucket Servicio de hospedaje Compatibilidad con Git y se integra
de proyectos que ofrece mediante add-ons.
control de versiones co-
laborativo.
SourceTree Interfaz gráfica para Complementa a Git.
manejar repositorios
Git que simplifica el
proceso de desarrollo.
Jenkins Servidor de automatiza- Puede extraer código de GitHub y
ción para CI/CD. ejecutar flujos de trabajo definidos.
Travis CI Servicio de integración Se integra con GitHub activando
continua para construir builds con cada push o pull request.
y probar proyectos de
software.
JIRA Herramienta de segui- Se integra con GitHub para enla-
miento de proyectos y zar seguimiento de problemas con el
problemas que ayuda en código fuente.
la gestión ágil del desa-
rrollo.

3.4. Conclusiones
Git es el gestor de código fuente que domina el panorama desde hace años y que la práctica mayorı́a
de desarrolladores y empresas utilizan hoy en dı́a. Git ofrece varias ventajas frente a otros sistemas
tradicionales:
• Sistema distribuido, sin un punto central de fallo, que permite el trabajo incluso sin conexión.
• Superrápido y ligero, optimizado para hacer operaciones de control muy rápidas.
• Crear ramas y mezclarlas es rápido y poco propenso a problemas, al contrario que en otros
sistemas tradicionales.
• La integridad de la información está asegurada gracias a su modelo de almacenamiento, que
permite predecir este tipo de problemas. En sistemas tradicionales este era un problema grave.
• Permite flujos de trabajo muy flexibles.
• El concepto de área de preparación o staging permite versionar los cambios como nos convenga,
no todo o nada.
• ¡Es gratis! y de código abierto.

4. Desarrollo
4.1. Paso1: Descripción del caso de estudio
Introducción a GitHub: Breve descripción de qué es GitHub y su importancia en el desarrollo
de software colaborativo.

6
Contexto del caso de estudio: Explica por qué elegiste el tema de la guı́a de GitHub como
caso de estudio. ¿Qué problemas o desafı́os enfrentan los desarrolladores en relación con el uso
de GitHub?

Objetivos del caso de estudio: Detalla los objetivos especı́ficos que esperas lograr al estudiar
GitHub. ¿Qué esperas aprender o mejorar al completar la guı́a de GitHub?

Público objetivo: Describe a quién está dirigido este caso de estudio. ¿Son desarrolladores
principiantes que recién están aprendiendo sobre control de versiones, o son equipos de desarrollo
que desean mejorar su flujo de trabajo con GitHub?

Metodologı́a: Si estás siguiendo una guı́a especı́fica o utilizando recursos particulares para
aprender sobre GitHub, menciona cuál es tu enfoque de estudio.

Alcance del caso de estudio: Define los lı́mites de tu estudio. ¿Qué aspectos especı́ficos de
GitHub vas a cubrir en tu informe y qué aspectos vas a dejar fuera?

Beneficios esperados: Explica por qué crees que es importante aprender sobre GitHub y cómo
esperas que este conocimiento beneficie a los desarrolladores o equipos de desarrollo.

Consideraciones éticas y legales: Si corresponde, menciona cualquier consideración ética o


legal relacionada con el uso de GitHub, como el respeto a los derechos de autor o la privacidad
de los datos.

4.1.1. Problemática
Gestión ineficiente de versiones:Muchos equipos de desarrollo luchan con la gestión de
versiones de su código, lo que puede resultar en conflictos, pérdida de cambios importantes o
dificultades para mantener un historial claro de los cambios realizados en el código.

Colaboración remota y distribuida: Con el aumento del trabajo remoto, los equipos ne-
cesitan herramientas efectivas para colaborar en proyectos de software de manera remota y
distribuida. Esto puede incluir desafı́os relacionados con la comunicación, la sincronización de
cambios y la coordinación del trabajo entre miembros del equipo ubicados en diferentes lugares.

Documentación y seguimiento de problemas: Mantener una documentación clara y ges-


tionar eficazmente los problemas y errores en un proyecto de software puede ser complicado. Los
equipos pueden enfrentarse a dificultades para organizar y seguir el progreso de los problemas
reportados, ası́ como para documentar adecuadamente las caracterı́sticas y cambios del proyecto.

Integración continua y despliegue continuo (CI/CD): La implementación de prácticas


de integración continua y despliegue continuo puede ser desafiante para algunos equipos, es-
pecialmente si no tienen experiencia previa en la configuración de pipelines de CI/CD o en la
automatización de pruebas y despliegues.

Seguridad y cumplimiento: Garantizar la seguridad del código y cumplir con los requisitos de
cumplimiento puede ser un desafı́o para los equipos de desarrollo. Esto puede incluir preocupa-
ciones sobre la protección de datos sensibles, la gestión de acceso y permisos, y la implementación
de prácticas de seguridad en el desarrollo y despliegue de software.

4.1.2. Objetivo del caso de estudio


Objetivo Principal
Proporcionar a los usuarios una comprensión completa y práctica de cómo utilizar eficazmente
GitHub como plataforma para la gestión de versiones, colaboración en proyectos de software y auto-
matización de procesos de desarrollo.

7
Objetivos Especı́ficos

Capacitar a los usuarios en el uso básico de GitHub: Incluyendo la creación de reposito-


rios, la clonación de proyectos, y la realización de cambios locales y remotos.

Enseñar a los usuarios a colaborar eficazmente en proyectos: Utilizando funciones como


ramas, solicitudes de extracción, revisión de código y comentarios.

Explicar cómo utilizar caracterı́sticas avanzadas de GitHub: Como integración continua,


despliegue continuo, gestión de problemas y proyectos, y automatización de tareas con GitHub
Actions.

4.1.3. Evaluación de solución del caso de estudio


El análisis se centra en verificar si la solución propuesta en la guı́a de GitHub cumple con los
objetivos establecidos, incluyendo la cobertura de los puntos clave y el logro de objetivos especı́ficos.
Se evalúa la eficiencia y efectividad de la solución en mejorar el flujo de trabajo, la colaboración y
la productividad en proyectos de software, ası́ como su facilidad de implementación y la calidad del
contenido en términos de precisión y relevancia. Además, se considera la usabilidad y accesibilidad de
la guı́a para los usuarios, incluyendo la estructura y el formato del contenido, ası́ como la disponibilidad
de recursos adicionales. Se recopila y analiza el feedback de los usuarios para entender su experiencia
y percepción de utilidad. Finalmente, se busca determinar el impacto y los beneficios de la solución
en términos de mejora del rendimiento, eficiencia del equipo y calidad del trabajo en el desarrollo de
software.

4.2. Paso2: Metodologı́a de desarrollo de la solución


4.2.1. Especificación de Requerimentos para la efectividad de la guı́a
Para asegurar que una guı́a de Git y GitHub sea efectiva en la enseñanza del tema, es importante
considerar una serie de requisitos:

Claridad y Estructura: La guı́a debe estar bien organizada y presentar la información de


manera clara y concisa. Debe seguir una estructura lógica que facilite la comprensión del lector,
comenzando desde conceptos básicos hasta avanzados.

Ejemplos Prácticos: Es fundamental incluir ejemplos prácticos y ejercicios que permitan al


lector aplicar los conceptos aprendidos. Estos ejemplos deben ser relevantes y representativos de
situaciones comunes en el uso de Git y GitHub.

Explicación detallada de comandos y funciones: Cada comando y función de Git y GitHub


debe ser explicado de manera detallada, incluyendo su sintaxis, opciones disponibles y ejemplos
de uso. Esto ayuda al lector a comprender cómo utilizar estas herramientas de manera efectiva.

Contextualización: Es importante contextualizar el uso de Git y GitHub en el desarrollo de


software, explicando su importancia y ventajas en la gestión de versiones y colaboración en
proyectos.

Enfoque gradual: La guı́a debe seguir un enfoque gradual, comenzando desde los conceptos
más básicos y avanzando de forma progresiva hacia temas más complejos. Esto permite que el
lector construya una base sólida antes de abordar conceptos avanzados.

Recursos adicionales: Se deben proporcionar recursos adicionales, como enlaces a documenta-


ción oficial, tutoriales en lı́nea y comunidades de usuarios, para que el lector pueda profundizar
en el tema si ası́ lo desea.

8
Análisis de necesidades y objetivos:
- Identifica qué se espera lograr con la guı́a de GitHub y quiénes son los usuarios objetivo,
ası́ como sus necesidades especı́ficas.
Investigación y recopilación de información:
- Investiga las caracterı́sticas y mejores prácticas de GitHub, recopilando información de
fuentes confiables.
Diseño de la guı́a:
- Diseña la estructura y contenido de la guı́a, definiendo temas y subtemas, ası́ como el
formato del contenido.
Desarrollo del contenido:
- Crea el contenido de la guı́a, asegurándote de que sea claro, conciso y fácil de entender,
proporcionando ejemplos prácticos.
Revisión y retroalimentación:
- Solicita comentarios de expertos y usuarios, ajustando el contenido según sea necesario.
Desarrollo de recursos complementarios:
- Crea recursos adicionales para ayudar a los usuarios a profundizar en temas especı́ficos.
Pruebas y validación:
- Realiza pruebas exhaustivas para asegurarte de que la guı́a funcione correctamente y sea
precisa.
Lanzamiento y difusión:
- Lanza la guı́a y difúndela entre la comunidad objetivo utilizando diversos canales de
comunicación.
Evaluación y mejora continua:
- Recopila comentarios y métricas sobre el uso de la guı́a, utilizando esa información para
mejorar continuamente su contenido.

Cuadro 2: Proceso de desarrollo de la guı́a de GitHub

Pruebas de conocimiento: Al final de cada sección o capı́tulo, se pueden incluir pruebas


de conocimiento, como cuestionarios o ejercicios de revisión, para ayudar al lector a evaluar su
comprensión y retención de los conceptos aprendidos.

Actualización constante: Dado que Git y GitHub son herramientas en constante evolución,
la guı́a debe ser actualizada periódicamente para reflejar los cambios y nuevas caracterı́sticas
que se introduzcan en estas plataformas.

Al cumplir con estos requisitos, una guı́a de Git y GitHub puede garantizar que el lector aprenda de
manera eficiente y efectiva sobre estos temas fundamentales en el desarrollo de software.

4.2.2. Herramientas Complementarias


Para mejorar aún más la guı́a de Git y GitHub, se pueden utilizar diversas herramientas de apren-
dizaje que complementen el contenido principal y brinden una experiencia más interactiva. Algunas
de estas herramientas incluyen:

Videos tutoriales: Crear videos cortos que acompañen a los conceptos explicados en la guı́a
puede ser muy útil para aquellos lectores que prefieren aprender a través de contenido audiovisual.
Estos videos pueden mostrar demos de cómo utilizar diferentes comandos y funciones.

Plataformas de aprendizaje en lı́nea: Publicar la guı́a en plataformas de aprendizaje en


lı́nea, como Coursera, Udemy o Khan Academy, permite a los lectores seguir el contenido de
manera estructurada y acceder a funciones interactivas, como cuestionarios y foros de discusión.

9
Simuladores y sandbox: Utilizar simuladores o entornos de práctica (sandbox) donde los
lectores puedan experimentar con Git y GitHub en un entorno controlado y sin riesgos. Esto les
permite aplicar lo que aprenden de manera práctica y sin temor a cometer errores en un proyecto
real. Ejemplo: https://learngitbranching.js.org/
Al incorporar estas herramientas de aprendizaje, la guı́a de Git y GitHub se enriquecerá y proporcio-
nará una experiencia de aprendizaje más completa y efectiva para los lectores.

5. Diseño de Arquitectura de Desarrollo


Integración e Interfaces
Se diseñará la estructura del proyecto, estableciendo:
Aspecto Descripción
Se utilizará una estructura modular que permita la expan-
Arquitectura
sión y actualización de temas.
Los módulos se integrarán a través de enlaces y referencias
Integración
cruzadas.
Se creará una interfaz amigable en la web para navegar por
Interfaces de Usuario
los contenidos de la guı́a.

Se utilizará como base el modelo de aprendizaje para temas complejos, pero orientado al aprendi-
zaje autodidacta, con un enfoque práctico en la guı́a que incluya conceptos teóricos, diagramas para
visualizar la estructura, ası́ como ejemplos y ejercicios en cada lección para reforzar y verificar lo
aprendido.
Además la página web tendrá una vista experiencia e interfaz de usuario adecuada para el público
objetivo, que son estudiantes y profesionales de las áreas de computación.
Se puede visualizar cómo estarı́a conformado el inicio de la vista del curso, este fue diseñado en
figma siguiendo los principios básicos de diseño.
Los colores están basados en el público objetivo, los cuales tienen significados que impactan psi-
cológicamente en el usuario Claro, aquı́ te explico el significado de cada color en tu paleta y cómo
pueden impactar en los usuarios de tu plataforma de aprendizaje:

Figura 1: Colores utilizados en la Interfaz de Usuario

Background - #F1F4F8 (Gris claro): Al ser un fondo claro y discreto, facilita la concentración
y la lectura prolongada, lo que es ideal para una plataforma educativa donde los usuarios pasan
mucho tiempo aprendiendo y leyendo contenido en pantalla.

10
Primary - #007BFF (Azul brillante): Utilizarlo como el color primario capta la atención de
manera efectiva sin ser agresivo. Es ideal para botones de acciones principales, ayudando a
motivar a los estudiantes a iniciar y continuar con sus estudios.

Secondary - #8FF08A (Verde pastel): Este tono secundario puede ser usado para destacar ele-
mentos interactivos menos prioritarios pero aún importantes, como sugerencias de módulos adi-
cionales. Invita a la interacción de forma amigable y estimulante, facilitando un ambiente de
aprendizaje relajado.

Accent - #174A4A (Azul petróleo): Como color de acento, es excelente para destacar información
crı́tica o elementos de navegación en la interfaz. Proporciona un excelente contraste con el azul
primario y el verde secundario, ayudando a organizar y jerarquizar visualmente la información.

Estos colores juntos crean una paleta equilibrada que es visualmente atractiva y funcional, adecuada
para mantener la atención de los estudiantes y mejorar su experiencia de aprendizaje. La combinación
ayuda a establecer una jerarquı́a visual clara, lo cual es crucial para guiar al usuario a través de las
interacciones deseadas en la plataforma.

11
Figura 2: Diseño de la interfaz del inicio de la plataforma de aprendizaje

12
Figura 3: Diseño de la interfaz de aprendizaje (contenido)

13
Análisis de Datos
El análisis se centrará en:

Datos Herramientas Proceso


Monitoreo y evaluación de
Contribuciones GitHub Insights
contribuciones.
Análisis de la interacción del
Uso de la Guı́a Google Analytics
usuario con la guı́a.

Al ser una plataforma de aprendizaje, es realizar un seguimiento de el usuario cuando está en la


plataforma, analizar cuánto tiempo le dedica al dı́a al aprendizaje, o en qué momento abandona la
lección, además de obtener una reseña por su parte.
Con respecto al seguimiento de el equipo utilizamos el repositorio de github donde podemos hacer
un seguimiento de nuestras contribuciones al proyecto.

6. Proceso de Desarrollo
6.1. Diseño del Proceso
El proceso se organizará de la siguiente manera:

Metodologı́a Herramientas Proceso


Seguimiento del progreso en
Agile GitHub Projects
sprints semanales.
Revisión por pares y merge
Revisiones de Código GitHub Pull Requests
tras aprobación.

Como parte del proceso de esta guı́a, la cual es alimentar semanalmente con información relevante
y concisa. Se creó el espacio de trajo ”Proyecto-SO-UNI”donde se encuentran los repositorios y avance
del proyecto.

Figura 4: Repositorio donde se almacena el contenido de la guı́a

Módulo 1: Conceptos Básicos de Git

Objetivos Tecnologı́as Responsabilidades


Creación de contenidos
Explicar fundamentos Markdown, Git
didácticos y ejemplos.

Para la estructura de aprendizaje se incorporarán conceptos teóricos, diagramas de visualización,


además de ejemplos y ejercicios para reforzar lo aprendido.

14
Módulo 2: Uso Avanzado y Flujos de Trabajo en GitHub

Objetivos Tecnologı́as Responsabilidades


Desarrollo de tutoriales y ca-
Profundizar en flujos Markdown, GitHub Actions
sos de uso.

La segunda parte de Github tendrá la misma estructura de aprendizaje que git.


Para la plataforma de aprendizaje propuesta, que combina contenido estático con interactividad
en la sintaxis de comandos, se priorizan los siguientes aspectos:

Rendimiento y carga inicial: Es crucial que la plataforma cargue rápidamente para mejorar
la experiencia del usuario, especialmente en entornos educativos donde la atención es limitada.

SEO: Dado el enfoque en el aprendizaje práctico de Git y GitHub, no se prioriza la optimización


para motores de búsqueda, ya que el tráfico se generarı́a principalmente a través de canales
educativos especı́ficos.

Facilidad de desarrollo: Es importante que el framework elegido permita a los desarrolladores


iterar rápidamente y añadir nuevas funcionalidades sin complicaciones excesivas.

7. Evaluación de Frameworks
Se evaluaron cuatro frameworks principales: React, Astro, Next.js y Remix, teniendo en cuenta
sus caracterı́sticas, ventajas y desventajas.

Framework Caracterı́sticas Ventajas Desventajas


React Librerı́a de JavaScript pa- Amplia comunidad y Requiere configuración
ra construir interfaces de ecosistema. Flexibili- adicional para optimiza-
usuario. dad en la integración ción y SSR.
con otras bibliotecas.
Astro Framework que permite Optimización de car- Menos maduro, comunidad
construir sitios web más ga mediante entrega más pequeña.
rápidos utilizando menos de HTML estático e
JavaScript en el cliente. hidratación parcial.
Next.js Framework de React con Facilidad para SEO, Puede ser excesivo para
capacidades de renderizado optimización de ren- proyectos más simples sin
del lado del servidor y ge- dimiento integrada, requerimientos de SSR.
neración de sitios estáticos. y fácil escalabilidad.
Remix Framework basado en Mejoras en el mane- Relativamente nuevo, pue-
React que enfatiza las con- jo de carga de datos de tener menos recursos y
venciones y la simplicidad y transiciones de es- ejemplos que otros frame-
para acelerar el desarrollo. tado sin necesidad de works establecidos.
bibliotecas adiciona-
les.

Cuadro 8: Comparación de frameworks

Dada la naturaleza educativa del proyecto y las necesidades identificadas, se recomienda utilizar
Next.js como el framework principal para desarrollar la plataforma de aprendizaje de Git y GitHub.
Aunque Remix también es una opción sólida, Next.js ofrece una combinación única de caracterı́sticas
que se alinean con los requisitos del proyecto:

15
Rendimiento y carga inicial: Next.js proporciona optimización de rendimiento integrada y
facilita la entrega de contenido estático para una carga rápida.

Facilidad de desarrollo: La amplia comunidad y la documentación exhaustiva de Next.js


permiten a los desarrolladores iterar rápidamente y resolver problemas de manera eficiente.

SEO: Aunque no es una prioridad para el proyecto, la capacidad de Next.js para optimizar el
SEO puede ser beneficiosa para futuras expansiones o para mejorar la visibilidad en buscadores
educativos.

8. Trabajo futuro
Como trabajo futuro serı́a completar la guı́a de github e implementar esto a producción en la web
para que sea abierta al público en general, además de presentarlo a la feria de proyectos como parte
del proyecto Reingenierı́a Personal y Social para la vida y Obra (RPSVO)”.

Referencias
[1] Medidas de la Complejidad del Software https://www.dit.upm.es/˜fsaez/intl/libro_
complejidad/14-medidas-de-la-complejidad-del-software.pdf

[2] W3Schools. (s/f). Git Tutorial. Recuperado de https://www.w3schools.com/git/


default.asp?remote=github

[3] freeCodeCamp. (s/f). Git and GitHub for Beginners - Crash Course. Recuperado de https:
//www.freecodecamp.org/news/git-and-github-for-beginners/

[4] Codecademy. (s/f). Learn Git. Recuperado de https://www.codecademy.com/learn

[5] Git SCM. (s/f). Getting Started - About Version Con-


trol. Recuperado de https://git-scm.com/book/en/v2/
Getting-Started-About-Version-Control https://davidjguru.wordpress.com/
2010/06/02/sistemas-de-control-de-versiones-ix-workflow-basico-de-svn/

[6] Libro Pro Git , Scoot Chacon y Ben Straub

16

También podría gustarte