Professional Documents
Culture Documents
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA INFORMTICA
i
6 Diseo del Sistema ........................................................................................................................ 39
6.1 Diagramas de Casos de Uso y Casos de Usos Narrativos ............................................... 39
6.2 Diagramas de Actividad..................................................................................................... 49
6.3 Diagramas de interaccin .................................................................................................. 39
6.4 Diagramas de clases ........................................................................................................... 39
6.5 Diagramas de objetos ......................................................................................................... 39
6.6 Diagramas de secuencia ..................................................................................................... 39
6.7 Diagramas de procesos....................................................................................................... 39
8 Anexos ........................................................................................................................................... 40
ii
Resumen
GitHub es una de las plataformas virtuales ms populares y utilizadas en la actualidad
centrada en el desarrollo de software en modo individual como cooperativo. En el presente
informe se centrara en explicar el anlisis realizado en los procesos Registro de Usuario,
Ajustes de Usuario y Administracin de Repositorio, analizndolos de forma funcional,
desglosando cada proceso elegido. Adems de que esto vendr acompaado con diagramas
de flujo de datos, modelos de entidad-relacin, prototipos de las ventanas y diccionario de
datos.
iii
Lista de Figuras
iv
Figura 6.12: Diagrama de Interaccin de Modulo de Ajustes de Usuario ................................. 51
Figura 6.13: Diagrama de Interaccin de Modulo de Administracin de Repositorio ............. 52
Figura 6.14: Diagrama de Clases ................................................................................................... 53
Figura 6.15: Diagrama de Objetos................................................................................................. 54
Figura 6.16: Diagrama secuencia SistemaSesion-Cuenta ............................................................ 55
Figura 6.17: Diagrama secuencia Cuenta-ListarContenido ........................................................ 56
Figura 6.18: Diagrama secuencia Cuenta-Repositorio ................................................................ 57
Figura 6.19: Diagrama secuencia Cuenta-SubirContenido ........................................................ 58
Figura 6.20: Diagrama secuencia Cuenta-ConfigCuenta ............................................................ 59
Figura 6.21: Diagrama secuencia Repositorio-AdmninRepo ...................................................... 60
v
Lista de Tablas
vi
Tabla 4.26: Diccionario de Modelo Entidad-Relacin ................................................................. 24
Tabla 4.29: Diccionario de Modelo Entidad-Relacin ................................................................. 24
Tabla 4.30: Diccionario de Modelo Entidad-Relacin ................................................................. 24
Tabla 6.1: Casos de Usos Narrativos ............................................................................................. 43
vii
Tabla 6.2: Casos de Usos Narrativos ............................................................................................. 43
Tabla 6.3: Casos de Usos Narrativos ............................................................................................. 43
Tabla 6.4: Casos de Usos Narrativos ............................................................................................. 43
Tabla 6.5: Casos de Usos Narrativos ............................................................................................. 43
Tabla 6.6: Casos de Usos Narrativos ............................................................................................. 43
Tabla 6.7: Casos de Usos Narrativos ............................................................................................. 44
Tabla 6.8: Casos de Usos Narrativos ............................................................................................. 44
Tabla 6.9: Casos de Usos Narrativos ............................................................................................. 44
Tabla 6.10: Casos de Usos Narrativos ........................................................................................... 44
Tabla 6.11: Casos de Usos Narrativos ........................................................................................... 45
Tabla 6.12: Casos de Usos Narrativos ........................................................................................... 45
Tabla 6.13: Casos de Usos Narrativos ........................................................................................... 45
Tabla 6.14: Casos de Usos Narrativos ........................................................................................... 45
Tabla 6.15: Casos de Usos Narrativos ........................................................................................... 45
Tabla 6.16: Casos de Usos Narrativos ........................................................................................... 46
Tabla 6.17: Casos de Usos Narrativos ........................................................................................... 46
Tabla 6.18: Casos de Usos Narrativos ........................................................................................... 46
Tabla 6.19: Casos de Usos Narrativos ........................................................................................... 46
Tabla 6.20: Casos de Usos Narrativos ........................................................................................... 46
Tabla 6.21: Casos de Usos Narrativos ........................................................................................... 46
Tabla 6.22: Casos de Usos Narrativos ........................................................................................... 47
Tabla 6.23: Casos de Usos Narrativos ........................................................................................... 47
Tabla 6.24: Casos de Usos Narrativos ........................................................................................... 47
Tabla 6.25: Casos de Usos Narrativos ........................................................................................... 47
Tabla 6.26: Casos de Usos Narrativos ........................................................................................... 47
Tabla 6.27: Casos de Usos Narrativos ........................................................................................... 48
Tabla 6.28: Casos de Usos Narrativos ........................................................................................... 48
Tabla 6.29: Casos de Usos Narrativos ........................................................................................... 48
Tabla 6.30: Casos de Usos Narrativos ........................................................................................... 48
Tabla 6.31: Casos de Usos Narrativos ........................................................................................... 48
i
1 Introduccin
GitHub es una plataforma virtual de desarrollo de software de manera cooperativa
fundada el 8 de febrero del 2008 y lanzada el 10 de abril del mismo ao por Tom Preston-
Wermer y Chris Wanstrah, PJ Hytte. Mediante el sistema el sistema de control Git, permite
albergar proyectos, revisar cdigo, administrarlos y crear software. Adems, brinda el control
de versiones distribuidas y la funcionalidad de gestin de cdigo fuente (SCM o Source Code
Management) de Git, tanto la suma de sus propias propiedades. Por otra parte, provee control
de acceso y varias funciones de colaboracin como seguimiento de errores, solicitudes de
caractersticas, administracin de tareas y wikis. Tambin, permite la posibilidad de utilizar
repositorios privados como gratuitos en una misma cuenta (utilizados comnmente para
alojar proyectos de software de cdigo abierto). Su objetivo es permitir al usuario desarrollar
software en forma individual y abierta, al igual que en grupos y tambin privada.
1
2 Objetivos del Trabajo:
El desarrollo de un informe en cualquier rea, es necesario reconocer los objetivos
que le darn forma y guiaran al equipo, para cumplir ciertas metas, tanto generales como
especficas.
2
3 Planificacin:
Una planificacin es necesaria de hacer, antes del anlisis, para poder lograr los
objetivos propuestos.
3
o ser necesario una mejor arquitectura, implementacin, al igual que la planificacin este
viene conectada al tiempo de realizacin, interfaz, la usabilidad e interaccin y si ser
necesario un mayor estudio. Por ltimo en el lado del negocio, la estrategia, que no llegue a
cumplir con la idea de la compaa y la mantencin de los recursos asignados.
4.2 Justificacin:
La inexistencia de una plataforma que ofrezca el servicio de desarrollo de software
en lnea que permita la interaccin entre los desarrolladores. Adems de la necesidad de
servicios que permitan pedir ayuda a otros usuarios, hasta desarrollar proyecto en grupos o
4
en empresas. Facilitando la interaccin y actualizacin del programa a medida que se va
trabajando.
4.3 Implementacin:
Se realizar el modelado de un sistema que aporte a la solucin de esta problemtica,
para el cual se basar ser GitHub, analizando la plataforma existente, obteniendo un modelo
con el cual se pretende acercar al desarrollador a crear un sistema con similares
caractersticas. Para la primera etapa, se obtendrn los requerimientos para conocer lo que
ser necesario realizar. Adems, se generarn diagramas (DFD) que permitan al desarrollador
del sistema tener una idea de cmo se mueven los datos dentro del sistema teniendo nociones
generales de cmo funcionan sus procesos, a travs de las especificaciones de estos.
5
Diagrama de contexto:
6
DFD0:
7
DFD1 GitHub:
8
DFD1 Sistemas de sesin:
9
DFD2 Administrar repositorio:
10
DFD3 Listar contenido:
11
4.3.2 Especificacin de Procesos:
Nivel: Contexto
Nombre: GitHub
PRE-CONDICIN 1:
Ocurre Datos sesin tras el usuario haya ingresado a cuenta GitHub por
medio de su contrasea o alguna de las propiedades de ella, ya estando en
ingresado.
POST-CONDICIN 1:
Se presenta los datos seleccionados por el usuario.
PRE-CONDICIN 2:
Ocurre Proyecto va git despus que el usuario ingreso un proyecto por
medio de Git a GitHub.
POST-CONDICIN 2:
Se genera el proyecto.
PRE-CONDICIN 3:
Ocurre Datos Nueva sesin si el usuario haya creado una nueva cuenta en
Github, ingresando una nueva contrasea, su email y nuevo nombre de
usuario.
POST-CONDICIN 3:
Se genera una nueva cuenta de GitHub.
PRE-CONDICIN 4:
Ocurre Parmetros de ajuste de usuario tras se haya ingresado a ajustes
de usuario.
POST-CONDICIN 4:
Se emiten las Opciones para ajuste de usuario al usuario.
PRE- CONDICIN 5:
Ocurre Parmetros de bsqueda tras haberse realizados alguna bsqueda
en GitHub.
POST-CONDICIN 5:
Se emiten los Listar resultados de bsqueda.
PRE-CONDICIN 6:
Ocurre Parmetros de administracin de repositorios despus que se haya
ingresado en administracin de repositorios.
POST-CONDICIN 6:
Se emiten las Opciones de administracin de repositorios al usuario.
PRE-CONDICIN 7:
Ocurre el listar el contenido.
12
POST-CONDICIN 7:
Se emite el Repositorio completo.
PRE-CONDICIN 8:
Ocurre el listar el contenido.
POST-CONDICIN 8:
Se emiten Lista de Repositorios.
PRE-CONDICIN 9:
Ocurre el listar el contenido.
POST-CONDICIN 9:
Se emiten Lista de elementos de repositorio.
Nivel: 0
Nombre: GitHub
PRE-CONDICIN 1:
Ocurre Parmetros de peticin de contenido tras que se haya solicitado el
contenido de GitHub.
POST-CONDICIN 1:
Se emite Contenido requerido.
PRE-CONDICIN 2:
Ocurre Direccin de que cuenta mostrar tras haberse emitido del proceso
Sistema de sesin.
POST-CONDICIN 2:
Se emite Contenido de la cuenta.
Nivel: 0
Nombre: Sistema de sesin
PRE-CONDICIN 1:
Ocurre Datos de registro tras haberse ingresado los datos necesarios para el
registro de usuario.
POST-CONDICIN 1:
Se genera Direccin de que cuenta mostrar.
PRE-CONDICIN 2:
Ocurre Datos de sesin tras haberse ingresado los datos para iniciar la
sesin de la cuenta.
POST-CONDICIN 2:
Se emite Direccin de que cuenta mostrar.
13
Nivel: 1 (GitHub)
Nombre: Subir contenido
Numero: 1
PRE-CONDICIN 1:
Ocurre Contenido repositorio tras ingresarse la informacin de del
repositorio.
POST-CONDICIN 1:
Se emite Contenido repositorio y se almacena en Almacn de
repositorios.
Nivel: 1 (GitHub)
Nombre: Administrar repositorio
Numero: 2
PRE-CONDICIN 1:
Ocurre Instrucciones de administracin despus darse la instrucciones de
administracin por parte del usuario.
POST-CONDICIN 1:
Se almacena Contenido de repositorio en el Almacn de repositorios.
PRE-CONDICIN 2:
Ocurre Contenido de repositorio tras generarse las Instrucciones de
administracin.
POST-CONDICIN 2:
Se almacena Contenido de repositorio en el Almacn de repositorios.
Nivel: 1 (GitHub)
Nombre: Listar contenido
Numero: 3
PRE-CONDICIN 1:
Ocurre Direccin de repositorios del usuario tras haberse emitido del
Almacn de cuentas.
POST-CONDICIN 1:
Se alista el contenido.
PRE-CONDICIN 2:
Ocurre Repositorios del usuario tras emitirse del Almacn de repositorios.
POST-CONDICIN 2:
Se alista el contenido.
14
Nivel: 1 (GitHub)
Nombre: Configurar cuenta
Numero: 4
PRE-CONDICIN 1:
Ocurre Parmetros de configuracin tras ingresar a configuraciones de
cuenta.
POST-CONDICIN 1:
Se emite Lista configuracin.
PRE-CONDICIN 2:
Ocurre Parmetros aceptados tras haberse aceptado los parmetros.
POST-CONDICIN 2:
Se emite Lista configuracin actual despus de haber pasado Parmetros
aceptados por Almacn de cuentas.
PRE-CONDICIN 1:
Ocurre Datos de inicio de sesin tras ingresarse los parmetros especficos
para el inicio de sesin.
POST-CONDICIN 1:
Se genera Datos de sesin validados despus de ser validados los
parmetros ingresados.
PRE-CONDICIN 2:
Ocurre Datos de registro de nueva sesin tras ingresarse los parmetros
especficos para registrar una nueva cuenta.
POST-CONDICIN 2:
Se genera Datos de registro validados despus de ser validados los
parmetros ingresados.
PRE-CONDICIN 1:
Ocurre Datos de registro validados despus de ser validados en Validador
de caracteres.
POST-CONDICIN 1:
Se genera Datos de cuenta vlidos.
15
PRE-CONDICIN 2:
. Ocurre Datos de inicio de sesin despus de ser validados en Validador
de caracteres.
POST-CONDICIN 2:
Se genera Datos vlidos.
PRE-CONDICIN 1:
Ocurre Datos de cuenta vlidos despus de ser validados en Validador
existencia.
POST-CONDICIN 1:
Se genera Direccin de cuenta mostrar.
PRE-CONDICIN 1:
Ocurre Datos validados despus de ser validados en Validador existencia.
POST-CONDICIN 1:
Se genera Direccin de cuenta mostrar.
16
Tabla 4.2: Diccionario de Flujo de Datos
Diccionario de Datos
Nombre de Campo: Datos Nueva sesin
Alias: Datos de registro
Composicin:
Usuario + Contrasea + Email
Notas:
Datos necesarios para registrarse
17
Tabla 4.6: Diccionario de Flujo de Datos
Diccionario de Datos
Nombre de Campo: Contrasea
Alias: Ninguno
Composicin:
[ A-Z | a-z | 0-9 | | - |
Notas:
Almacena la contrasea del usuario
18
4.3.4 Modelo Entidad-Relacin:
A continuacin se presenta el modelo entidad relacin de la plataforma GitHub,
representando entidades del sistema, al igual interrelaciones y propiedades.
19
Tabla 4.10: Diccionario de Modelo Entidad-Relacin
Diccionario de Datos
Nombre de Entidad: Usuario
Alias: Ninguno
Composicin:
idUsuario
Notas:
Es el usuario o cliente
20
Tabla 4.15: Diccionario de Modelo Entidad-Relacin
Diccionario de Datos
Nombre de Campo: Contrasea
Alias: Ninguno
Composicin:
[ A-Z | a-z | 0-9 | | - |
Notas:
Almacena la contrasea del usuario
21
Nombre de Entidad: Repositorio
Alias: Ninguno
Composicin:
RepositoryName + Descripcin
Notas:
Los repositorios que el usuario crea
22
Nombre de Campo: BranchName
Alias: Ninguno
Composicin:
[ A-Z | a-z | 0-9 | | - |
Notas:
Contiene el nombre identificador de la rama
23
Nombre de Campo: IdPregunta
Alias: Ninguno
Composicin:
[ A-Z | a-z | 0-9|
Notas:
Contiene cdigo identificador nico de la pregunta
5 Especificacin de requerimientos:
En cualquier sistema es necesario definir sus requerimientos funcionales, los cuales
son necesarios para que el programa consiga sus objetivos y no funcionales refirindose a
todo aquel que complementa y restringe la aplicacin, en los tres mdulos escogidos.
24
5.1.1 Requerimientos:
Se definen los requerimientos funcionales y no funcionales del mdulo Sistema de
registro, enumerndolos, explicando sus requerimientos y describindolos.
25
RF-2.1 El usuario tendr 2 opciones
de plan a elegir.
RF-2.2 Si el usuario elige el plan
pagado se desplegar el
mtodo de pago.
RNF-8 Se podr pagar con tarjeta de
crdito y cuenta PayPal
RF-2.2.1 Se podr elegir entre 2
mtodos de paga.
RF-2.2.2 Se podrn ingresar los datos N tarjeta, expiracin, CVV, pas
de la tarjeta de crdito. y cdigo postal.
26
Figura 5.1: Prototipo 1, Modulo Sistema de registro
27
Figura 5.1: Prototipo 3, Modulo Sistema de registro
5.2.1 Requerimientos:
Se definen los requerimientos funcionales y no funcionales del mdulo Ajustes de
Usuario, enumerndolos, explicando sus requerimientos y describindolos.
28
Facturacin (Billing), Seguridad
(Security), Usuarios bloqueados
(Blocked user), Repositorios
(Repositories), Organizaciones
(Organizations), Respuestas
guardadas (Saved replies), OAuth
Apps autorizados (Authorized
OAuth Apps), GitHub Apps
autorizados (Authorized GitHub
Apps), GitHub Apps instalados
(Installed OAuth Apps), SSH and
GPG keys, y configuraciones de
desarrollador, Aplicaciones
OAuth (AOuth applications),
GitHub Apps y Accesos a fichas
personales (Personal acces token).
29
usuario a travs de usuario puede ingresar, eliminar
configuraciones de perfil, el (si este ya existe) o editar su
cual se hace en ajustes de nombre, en un casilla bajo de un
cuenta.
subttulo Name.
30
contrasea y las ltimas dos con la
nueva.
31
Figura 5.4: Prototipo 1, Modulo Ajuste de Usuario
32
Figura 5.6: Prototipo 3, Modulo Ajuste de Usuario
5.3.1 Requerimientos:
Se definen los requerimientos funcionales y no funcionales del mdulo
Administracin de repositorio, enumerndolos, explicando sus requerimientos y
describindolos.
33
RF-4.2 Cada archivo ser mostrado
en forma de link, este al ser
pulsado podr ser
visualizado.
RNF-12 Debe mostrarse la carpeta en
que se encuentra mientras se
navega por los archivos del
repositorio.
RNF-13 La segunda pestaa debe ser
Issues
RF-5 La segunda pestaa ser un
foro donde los usuarios que
han interactuado con el
repositorio del usuario
podrn manifestar
inquietudes y reporte de
errores para que el usuario
tenga conocimiento de
estos.
RF-5.1 El usuario y otros usuarios
podrn crear hilos o
publicaciones donde
planteen sus
preocupaciones.
RF-5.1.1 Debe haber un editor de
texto donde se crear la
publicacin.
RF-5.1.2 Para hacer una publicacin
se deber poner un ttulo y el
texto correspondiente al
comentario.
RF-5.2 El usuario y otros usuarios
podrn responder a
cualquier publicacin que
desee a travs de un editor
de texto.
RNF-15 Se deber responder bajo el
comentario anterior o
comentario inicial.
RF-6 El usuario podr subir
archivos al repositorio.
RF-6.1 El usuario podr adicionar
comentarios al commit
RF-6.1.1 El usuario podr hacer un
comentario corto y adems
34
podr aadir una
descripcin ms extensa.
RF-6.2 El usuario podr elegir subir
el archivo a la rama actual o
crear una nueva.
RF-6.2.1 Si el usuario quiere subir el
archivo a una rama nueva
debe colocar el nombre de
esta.
RF-6.3 Habr un botn para
finalizar la operacin, luego
de presionado el usuario ser
redirigido a una pantalla que
mostrar los cambios
realizados.
RNF-16 El usuario podr subir el o
los archivos arrastrndolos
directamente de la carpeta a
la zona marcada en la
pgina.
RNF-17 El usuario podr elegir el o
los archivos presionando un
link que lo llevar a un
explorador donde los podr
seleccionar.
RNF-18 El botn para confirmar la
subida ser verde haciendo
alusin a un proceso
constructivo.
RNF-19 El botn cancelar ser rojo,
que indica que tenga
cuidado al presionarlo ya
que descarta cambios.
35
Figura 5.7: Prototipo 1, Modulo Administracin de repositorio
36
Figura 5.9: Prototipo 3, Modulo Administracin de repositorio
37
Figura 5.10: Prototipo 4, Modulo Administracin de repositorio
38
6 Diseo del sistema:
GitHub Nivel 0:
39
Registrar Cuenta Nivel 1:
40
Ajustes de Usuario Nivel 1:
Un Usuario ingresa a los ajustes de usuario, donde puede modificar las distintas
propiedades de su perfil o su cuenta. Ajustes que despus tienen que ser validados y
autorizados.
41
Administracin de Repositorio Nivel 1:
Un Usuario al administra su repositorio, puede administrar los archivos
pertenecientes a este, ingresar al foro para interactuar con otros usuarios, para responder
preguntas, hacer preguntas o corregir errores, y subir archivos al repositorio.
42
GitHub Nivel 0:
Tabla 6.1: Casos de Uso Narrativos 1
Caso de Uso Registrar Cuenta
Actores Usuario (iniciador)
Tipo Principal
Descripcin Un Usuario registra o crea una cuenta en la
aplicacin GitHub.
43
Descripcin Un Usuario puede escoger o no tener un
repositorio privado a travs del pago de una
suma de dinero.
44
Ingresar Campos Nivel 2:
Tabla 6.11: Casos de Uso Narrativos 11
Caso de Uso Datos
Actores Usuario (iniciador)
Tipo Principal
Descripcin Un usuario inicia el ingreso de los datos para el
registro.
45
Tabla 6.16: Casos de Uso Narrativos 16
Caso de Uso Ajustes de Perfil
Actores Usuario (iniciador)
Tipo Principal
Descripcin Un Usuario ajusta o cambia propiedades o
caractersticas del perfil de usuario.
46
Descripcin Un Usuario agrega o cambia, el nombre del
usuario.
47
Subir Archivos al Repositorio Nivel 2:
Tabla 6.27: Casos de Uso Narrativos 27
Caso de Uso Archivo
Actores Usuario (iniciador)
Tipo Principal
Descripcin Un Usuario sube un archivo al repositorio.
48
6.2 Diagramas de Actividad:
Los diagramas de actividades muestran el flujo de trabajo desde el punto de inicio
hasta el punto final detallando muchas de las rutas de decisiones que existen en el progreso
de eventos contenidos en la actividad.
Sistema de Registro:
Ajustes de Usuario:
49
Administracin de Repositorio:
50
Figura 6.11: Diagrama de Interaccin Modulo Ajustes de Usuario
51
Figura 6.13: Diagrama de Interaccin Modulo Administracin de Repositorio 2
52
6.4 Diagramas de clases:
53
6.5 Diagramas de objetos:
54
6.6 Diagramas de secuencia:
55
Figura 6.17: Diagrama secuencia Cuenta-ListarContenido
56
Figura 6.18: Diagrama secuencia Cuenta-Repositorio
57
Figura 6.19: Diagrama secuencia Cuenta-SubirContenido
58
Figura 6.20: Diagrama secuencia Cuenta-ConfigCuenta
59
Figura 6.21: Diagrama secuencia Repositorio-AdmninRepo
60
6.7 Diagramas de procesos:
61
7 Conclusin:
En este proyecto se present el modelamiento, la aplicacin web GitHub, una
plataforma centrada en el desarrollo de software, que puede usarse de forma cooperativa,
posibilita gestionar el avance de proyectos gracias a la utilizacin del sistema de control de
versiones Git. Adems de administrar tales proyectos permite visualizar, editar y crear
archivos. Tambin otorga la posibilidad de emplear repositorios privados como gratuitos y
pblicos en una misma cuenta (utilizados comnmente para alojar proyectos de software de
cdigo abierto). Su objetivo es permitir al usuario desarrollar software en forma individual,
grupal y abierta.
En base a esto podemos concluir que a pesar de ser un sistema complicado de modelar
si es que se hace ordenadamente, priorizando los mdulos ms importantes se puede llegar a
obtener resultados que consideramos satisfactorios para una plataforma de esta envergadura.
8 Anexos:
Anexo 1 Carta Gantt Actualizada
62
1