Está en la página 1de 19

Universidad Autónoma del Estado de México

Centro Universitario UAEM Atlacomulco

“Ingeniería de Software”

Presenta:

Brayam Teófilo Jiménez

Revisa:

M. en T.I. Linda Angélica Duran López

Unidad de Aprendizaje:

Teoría de Sistemas

Fecha de entrega:

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Teoría de sistemas

1. Introducción

Git es un software de control de versiones. El control de versiones, resumiéndolo


mucho, es la gestión de los diversos cambios que se realizan sobre un repositorio
(un repositorio es el nombre que recibe el lugar donde se aloja el código de un
proyecto de desarrollo en algún lenguaje de programación o en general un proyecto
de desarrollo de software).

Git usa cadenas de 40 caracteres llamadas SHA para identificar los cambios
realizados. Ej: 74be3c2b93c8267de64e6dfde8658d31d7d2fe6c

Por otro lado, GitHub sigue la misma función que Git, pero lo que se diferencian es
su entorno gráfico y distribuido como una red social especial para los
programadores siguiendo esto a un sistema de información.

2. Objetos de Git.

Hay 4 tipos de objetos en git (el más importante a entender es el commit).

1. Blob: se usa para almacenar datos de archivos, es generalmente un archivo.

2. Tree: es, básicamente, como un directorio, hace referencia a un conjunto de


otros trees y/o blobs (por ej. archivos y subdirectorios).

3. Commit: apunta a un determinado tree, marcando como era en un momento


determinado (quien no haya entendido lo que es un tree, sustituya la
palabra tree por archivo). Contiene información sobre ese momento
determinado, los cambios del autor desde el último commit, el commit anterior
(conocido como parent), etc. También se puede entender un commit, de una
forma más imprecisa y coloquial, como la modificación o el conjunto de
modificaciones a uno o varios archivos del repositorio. Otra forma de
entenderlo también sería, como una "foto" de uno o varios archivos del
repositorio en un momento determinado.

4. Tag: es una forma de marcar un commit como específico de alguna forma.


Se usa normalmente para marcar algunos commits como releases
específicos o algo destacable en esas lineas.

3. Qué es GitHub?

Github es una plataforma de desarrollo colaborativo de software para alojar


proyectos usando el sistema de control de versiones Git. El código se almacena de
Ingeniería en Computación Centro Universitario UAEM
Atlacomulco
Página 2 de 19
Teoría de sistemas

forma pública, aunque también se puede hacer de forma privada, creando una
cuenta de pago. También se pueden obtener repositorios privados (de pago) si se
es estudiante.

Github no sólo ofrece alojamiento del código si no muchas más posibilidades


asociadas a los repos como son, forks, issues, pull requests, diffs, etc. Se verán
todos con detalle más adelante.

4. ¿Qué es una metodología de desarrollo de software en el mundo de la


programación y de qué forma vamos a aplicarla?

Citaré a wikipedia aquí: Metodología de desarrollo de software en ingeniería de


software es un marco de trabajo usado para estructurar, planificar y controlar el
proceso de desarrollo en sistemas de información.

Básicamente el punto aquí es controlar el proceso de desarrollo para que sea


ordenado y de esta forma lo más productivo posible.

Esto a primera vista es algo muy simple pero se complica extremadamente dando
lugar a diversas metodologías y hay libros muy extensos sobre ello además de
mucha controversia sobre cual es la mejor. A nosotros esto nos importa más bien
poco pero a donde quiero llegar con esto es a la implementación de una
metodología de desarrollo del emulador.

Este método de desarrollo estaría basado en Git y Github ofreciéndonos una


enorme versatilidad y posibilitando que todo el equipo de desarrollo esté al día en
cuanto a novedades en el desarrollo así como multitud de ventajas que más
adelante explicaré. Esta metodología estaría basada en las branches y pull request.

Para concluir esta introducción o presentación de la guía me gustaría mencionar


que todo esto que he resumido arriba es en lo que se basan todos los proyectos de
desarrollo de software profesionales con unas bases firmes.

5. Sistema de Control de Versiones

Git, es un software de control de versiones diseñado por Linus Torvalds. La pregunta


es ¿qué es control de versiones? Pues bien, se define como control de versiones a
la gestión de los diversos cambios que se realizan sobre los elementos de algún
producto o una configuración del mismo es decir a la gestión de los diversos
cambios que se realizan sobre los elementos de algún producto o una configuración,
y para los que aún no les queda claro del todo, control de versiones es lo que se

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 3 de 19
Teoría de sistemas

hace al momento de estar desarrollando un software o una página web.


Exactamente es eso que haces cuando subes y actualizas tu código en la nube, o
le añades alguna parte o simplemente le editas cosas que no funcionan como
deberían o al menos no como tú esperarías.

Y, entonces ¿a que le llamamos sistema de control de versiones? Muy sencillo, son


todas las herramientas que nos permiten hacer todas esas modificaciones antes
mencionadas en nuestro código y hacen que sea más fácil la administración de las
distintas versiones de cada producto desarrollado; es decir Git.

6. Qué es Sistema de información:

Un sistema de información es un conjunto de datos que interactúan entre sí con


un fin común.

En informática, los sistemas de información ayudan a administrar, recolectar,


recuperar, procesar, almacenar y distribuir información relevante para los procesos
fundamentales y las particularidades de cada organización.

La importancia de un sistema de información radica en la eficiencia en la correlación


de una gran cantidad de datos ingresados a través de procesos diseñados para
cada área con el objetivo de producir información válida para la posterior toma de
decisiones.

7. GIT

Git fue creado 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, es decir Git nos proporciona las herramientas para desarrollar un
trabajo en equipo de manera inteligente y rápida y por trabajo nos referimos a algún
software o página que implique código el cual necesitemos hacerlo con un grupo de
personas.

Algunas de las características más importantes de Git son:

 Rapidez en la gestión de ramas, debido a que Git nos dice que un cambio
será fusionado mucho más frecuentemente de lo que se escribe
originalmente.
 Gestión distribuida; Los cambios se importan como ramas adicionales y
pueden ser fusionados de la misma manera como se hace en la rama local.
 Gestión eficiente de proyectos grandes.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 4 de 19
Teoría de sistemas

 Re almacenamiento periódico en paquetes.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 5 de 19
Teoría de sistemas

8. Procesos

Ilustración 1. Entorno de Git.

A formato general git se trabaja en formato de línea de comando, aquí se muestra


lo siguiente:

 Se mostraron los arhivos a modo general de la carpeta actual, fecha de


creación, archivos ocultos, archivos del sistema, su descripción.
 Las letras verdes: “Brayam@brayamlap” indica el usuario (Brayam) y el
nombre de la laptop (brayamlap)
 Mingw64 es el entorno donde se esta trabajando
 -/perros, indica la capeta acutal donde se esta trabajando, y los caracteres
en azul es en un commit especifico donde se esta trabajando

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 6 de 19
Teoría de sistemas

Ilustración 2. Información del usuario.

En este caso con el comando “git config –global –list” nos manda la información del
registro, esto nos sirve al momento de trabajar, y es el mas importante de todos, ya
que con este esta identificado el nombre y el correo, se pueden agregar mas
opciones, pero esto depende del desarrollador.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 7 de 19
Teoría de sistemas

Ilustración 3. Entorno de trabajo de git.

Cuando se aplica el comando “git log” ya de un repositorio creado y con avances de


desarrollo se puede ver el historial. Y esto como sistema de control es donde se ve
ma enfocado explicado de la siguiente manera:

 Commit, y el resto de los caracteres, en total 40, es nuestro identificador, y


esto nos sirve si en algún momento quieres regresar y ver el detalle del
cambio generado.
 Head, hace referencia a la cabecera principal de nuestro repositorio, es decir,
el último cambio hecho.
 Las letras en rojo hacen referencia a la ramas que se generaron en el
proyecto, haciendo la simulación de un desarrollo independiente para no
afectar el trabajo principal, esto se le conoce como merge, (rama en español)
y es aquí cuando mas se nota un trabajo en equipo.
 Autor, como se veía anteriormente, son los datos de la persona que estuvo
trabajando, claro que únicamente están mis datos, pero en el supuesto de
trabajar con alguien mas se notaria su información.
 Date, en este apartado, como git todo lo registra, también la fecha, que
incluye: dia de la semana, dia, mes, año, hora y zona horaria.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 8 de 19
Teoría de sistemas

 La descripción, apartado importante, de esta forma quien este trabajando


permite dejar un resumen de su cambio para hacer mas fácil al resto del
equipo en que consistía el cambio.

Ilustración 4. Entorno grafico en Git.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 9 de 19
Teoría de sistemas

 Esta es una forma más visual de cómo funciona la estructura del flujo de
trabajo de Git, y las líneas resaltadas indican el momento en el que se
ramifico el proyecto, entendiendo esto como crear una modificación que no
afecte los archivos originales con el objetivo de combinarlos o dejarlos para
seguir orientando el trabajo.

Ilustración 5. Formato grafico independiente de cmd.

En el entorno de trabajo de Git, cuando se introduce el siguiente comando “gitk” por


defecto nos abre este entorno de trabajo visual, que, como anteriormente se veía lo
hace de una forma más representativa y entendible para conocer el detalle del
trabajo que se este realizando a través de la historia, además de verlo más
estructurado.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 10 de 19
Teoría de sistemas

Por lo tanto, se entiende que funciona como sistema de colaboración empresarial.


Al final ellos son los que más lo usan.

Los sistemas de Colaboración empresarial proporcionan herramientas que nos


ayudan en la colaboración de comunicación de ideas, compartir recursos y coordinar
nuestros esfuerzos de trabajo en colaboración como miembros de los muchos
procesos formales e informales y equipos de proyectos y grupos de trabajo que
conforman muchas de las organizaciones de hoy.

Los sistemas de colaboración empresarial tienen como objetivo principal permitirnos


trabajar juntos en forma más fácil y efectiva, al ayudarnos a:

 Comunicar. Compartir información entre sí.

 Coordinar. Coordinar nuestros esfuerzos de trabajo individual y utilizar los


recursos entre sí.

 Colaborar. Trabajar juntos en colaboración en proyectos y misiones


conjuntos.

Ahora a modo general se continuará con el entorno de trabajo con GitHub, se aclara
que se mostrara exactamente lo mismo que se vio anteriormente, pero desde el
entorno web, porque ambos son independientes, pero trabajan en conjunto.
Recordando que GitHub es una red social de desarrolladores y es de código abierto,
y recientemente adquirido por Microsoft.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 11 de 19
Teoría de sistemas

Ilustración 6. Página de inicio de GitHub.

Página de inicio de GitHub, es importante que debemos tener una cuenta de acceso,
es gratis y fácil de usar, porque al ser una red social es fácil asociarlo con otros
entornos.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 12 de 19
Teoría de sistemas

Ilustración 7. Perfil de GitHub.

Cuando se inicia sesión, asi se ve un perfil de inicio, entre ellos se pueden notar las
siguientes características:

 Nombre de usuario y Nickname, esto nos sirve para identificar que la persona
sea exactamente con quien se trabaja o para identificar nuestro perfil
personal.
 Descripción, se coloca detalles del usuario para saber mas, así como anexar
un correo de contacto y etiquetar una pagina web persona, en este caso un
blog.
 Repositorios, en la sección derecha se muestra los repositorios creados y en
este caso colocar específicamente los que se requieran tener mas presencia,

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 13 de 19
Teoría de sistemas

 Historial de contribución, aquí se muestra la actividad del usuario que ha


tenido en el entorno, y entre mas marcados los cuadros significa mayor
actividad.

A modo ejemplar, podemos ver esto para el caso de otro perfil.

Ilustración 8. Perfil de Elías.

Para ver un ejemplo preciso, se muestra el perfil de un compañero llamado Elías, y


de la misma forma, se muestran los datos que se mostraban como el perfil anterior,
se puede notar el enfoque que tiene este sitio como red social, solo que en vez de
“agregar amigos” es mas como twitter, de seguidor y tener seguidores, tener un
feed, etc.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 14 de 19
Teoría de sistemas

Ilustración 9. Perfil de Freddy Vega.

Para este caso particular se nota mas detalles de un perfil con mejor enfoque,
porque nos sirve entender mas el funcionamiento de esta red social, esto preciso
para personas que con enfoque de negocios, porque al final el objetivo de GitHub
es la contribución, como ya se veía en los sistemas de información.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 15 de 19
Teoría de sistemas

Ilustración 10. Entorno de trabajo ligado con Git.

En este punto se muestra el desarrollo que se tenia en Git, a forma general, se hace
mediante comando de línea, así es como se genera la conexión y se pueden ver los
cambios. Los 24 commit son los que se generaron en el entorno local, así como los
branches, se aclara que también se puede hacer en GitHub.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 16 de 19
Teoría de sistemas

Ilustración 11. historial por parte de GitHub.

Como se mencionaba, se puede visualizar también el historial, y aunque su forma


de mostrarlo es diferente, no dejan de ser lo mismo en contenido y detalles por
trabajar en conjunto.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 17 de 19
Teoría de sistemas

9. Conclusiones

Al ser open source se aclara que los costos en producción no existen, dado que no
hay cobros por el uso de servicios, incluso empresas pueden meterse en este tipo
de asuntos y si requieren mejoramientos, eso ya se puede negociar.

Al ser una red social lo que se diferencia del resto, es el enfoque específico para los
desarrolladores, incluso para los reclutadores de trabajo en el área de tecnología

Git y GitHub a pesar de ser diferente trabajan ligados al momento de trabajar en


equipo, y esto conlleva a aplicarse con diferentes sistemas, como ya se notó, los
sistemas de información, sistemas de informática, sistemas de colaboración
empresarial, todo esto se debe a que se puede trabajar como uno quiere, además
que Microsoft adquirió

En el caso de este sistema cuenta como función de dos tipos de sistemas a forma
general cuando se realizar un trabajo personal o en equipo, pero cuando se
contribuye en la plataforma de GitHub al ser una red social donde se comparten
dichas contribuciones si la persona o el equipo, o mejor dicho el dueño lo hace
publico para que mas personas vean tal contenido.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 18 de 19
Teoría de sistemas

9. Referencias Bibliográficas:
1. Introducción a Git y Github, 2015, Israel Alcázar. Recuperado de:
https://desarrolloweb.com/articulos/introduccion-git-github.html
2. Blischak JD, Davenport ER, Wilson G (2016) A Quick Introduction to Version
Control with Git and GitHub. PLoS Comput Biol 12(1): e1004668.
https://doi.org/10.1371/journal.pcbi.1004668
3. Azouley, P., Graff Zivin, J. S., & Sampat, B. N. Funcion de GitHub como
entorno de red social y empresarial. NBER Working Paper Series (2011).
4. L. A. Dabbish, H. C. Stuart, J. Tsay, and J. D. Herbsleb, "GitHub como
entorno social para desarrolladores de código," in CSCW, 2012, pp. 1277-
1286.

Ingeniería en Computación Centro Universitario UAEM


Atlacomulco
Página 19 de 19

También podría gustarte