0% encontró este documento útil (0 votos)
6 vistas27 páginas

Sitio Web para Agencia de Turismo

El documento presenta un plan para implementar una versión modificada del videojuego Pac-Man que incluye inteligencia artificial mejorada para los fantasmas. El objetivo es crear una experiencia de juego más entretenida mediante el uso de técnicas de aprendizaje por refuerzo.

Cargado por

victor valdez
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)
6 vistas27 páginas

Sitio Web para Agencia de Turismo

El documento presenta un plan para implementar una versión modificada del videojuego Pac-Man que incluye inteligencia artificial mejorada para los fantasmas. El objetivo es crear una experiencia de juego más entretenida mediante el uso de técnicas de aprendizaje por refuerzo.

Cargado por

victor valdez
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

Implementación de un Sitio

Web para una Agencia de


Turismo
Grupo 4

Grupo 4

Integrantes Código
Barra Juli Julio Harold
Quispe Lopez Jhojan Roy
Valdez Huanacuni Vı́ctor Raúl
Vilca Uturunco Pedro Joel 195015

Tutor: Zanabria Gálvez Aldo Hernán

Universidad Nacional del Altiplano


Puno, 15 de julio de 2022
Perú
Índice

1 INICIO DEL PLAN DE SOFTWARE 1


1.1 Análisis de la Necesidad del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Identificación del Alcance del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Determinación de Responsables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 DEFINICIÓN Y ORGANIZACIÓN DEL PROYECTO 4


2.1 Especificación del Ámbito y Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Organización del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Definición del Plan de Trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 ESTUDIO DE LA INFORMACIÓN RELEVANTE 6


3.1 Selección y Análisis de Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 IDENTIFICACIÓN DE REQUISITOS 8
4.1 Estudio de los Procesos del Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2 Catalogación de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

5 ESTUDIO DE SOFTWARE ACTUALES 9


5.1 Alcance y Objetivos del Estudio de Software Actuales . . . . . . . . . . . . . . . . . . . . 9
5.2 Análisis de Software Actuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.3 Valoración de los Software Actuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

6 DISEÑO DEL MODELO DE SOFTWARE 10


6.1 Diagnóstico de la Situación Actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.2 Definición del Modelo de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.3 Modelado UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

7 DEFINICIÓN DE LA ARQUITECTURA TECNOLÓGICA 13


7.1 Identificación de la Necesidades de Infraestructura tecnológica . . . . . . . . . . . . . . . . 13
7.2 Selección de Arquitectura Tecnológica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.3 Prototipado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

8 DEFINICIÓN DEL PLAN DE ACCIÓN 24


8.1 Definición de Proyectos a Realizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.2 Elaboración del Plan de Mantenimiento del Proyecto . . . . . . . . . . . . . . . . . . . . . 24

9 REVISIÓN Y APPROBACIÓN DEL PROYECTO 25


9.1 Convocatoria de la Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.2 Evaluación y Mejora de la Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.3 Aprobación del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

1 | INICIO DEL PLAN DE SOFTWARE


1.1 | Análisis de la Necesidad del Proyecto
La pandemia de COVID-19 está desencadenando una crisis de desarrollo humano sobre muchas, por no
decir todas, de las métricas para el desarrollo humano, las condiciones actuales son equivalentes a los
niveles de privación vistos por última vez a mediados de los años ochenta.

Pac-Man es un videojuego que fue lanzado al mercado en 1980. El juego consiste en guiar a un personaje
amarillo a través de un laberinto mientras se trata de evitar a cuatro fantasmas que intentan atraparlo.
El objetivo es comer los pequeños puntos llamados Pacdot que hay repartidos por todo el laberinto para
ası́ transcurrir al siguiente nivel. Este fue uno de los primeros videojuegos en hacer uso de la inteligencia
artificial.

Al ser un videojuego bastante antiguo, la inteligencia artificial de los fantasmas es bastante limitada y su
estrategia consiste en la mayorı́a de los casos en ir hacia el lugar donde se encuentra Pac-Man. Por lo
tanto, estos agentes son conscientes en todo momento del lugar donde se encuentra su presa, a diferencia
de en juegos más modernos. En este proyecto se ha querido cambiar este aspecto del juego, creando para
ello una versión modificada del videojuego que se explicará más adelante.

En el Perú el desarrollo de videojuegos como el Pac-Man es muy importante balancear apropiadamente los
parámetros del juego. Este debe adecuarse a cada usuario de acuerdo a sus habilidades y sus expectativas
de entretenimiento. En este documento se propone el uso de técnicas de aprendizaje por refuerzo para el
ajuste de los parámetros del juego con el objetivo de aumentar el entretenimiento recibido por el usuario.
Se desarrolló un videojuego sencillo de plataforma móvil con diferentes parámetros configurables y un
estimador del entretenimiento recibido por el usuario de acuerdo a su rendimiento y comportamiento en el
juego. El valor estimado se utiliza como recompensa en un algoritmo de aprendizaje por refuerzo que a
partir de experiencias previas propone nuevos valores a los parámetros del juego. Usando este sistema se
encontraron resultados favorables, con un incremente en la diversión percibida por los usuarios.

Para la realización de este proyecto colaboramos todos los compañeros del grupo, y también tratamos
el tema de la inteligencia artificial centrándonos en la inteligencia de los fantasmas. Para esto hemos
colaborado para modificar la versión original de David Reilly, separando el código en diferentes archivos y
añadiendo nuevas caracterı́sticas. Después, hemos creado diferentes versiones de inteligencia artificial para
nuestros agentes de manera individual, haciendo que compitan entre ellas. Por último, hemos cooperado
para diseñar y realizar las pruebas de las diferentes versiones.

1.2 | Identificación del Alcance del Proyecto


El objetivo principal de los videojuegos es generar experiencias atractivas y/o entretenidas para los
usuarios, para lo que el alcance se hace internacional gracias a la WEB. Un estudio realizado por P.
Sweetser y P. Wyeth basado en el concepto de flujo propone un modelo llamado GameFlow para evaluar el
entretenimiento de un juego. Este consiste en ocho elementos: la concentración, el desafı́o, las habilidades,
el control, objetivos claros, la retroalimentación, la inmersión y la interacción social; cada uno de estos
elementos tiene diferentes criterios que determinan la adquisición de entretenimiento. Es entonces respons-
abilidad del desarrollador del juego ofrecer estos elementos de una manera balanceada y orientada al usuario.

Obtener este balance en un juego es un gran reto para los desarrolladores, pues los usuarios son con-
siderablemente diversos en sus habilidades, su concentración y su noción de entretenimiento. Algunos
jugadores buscan experiencias difı́ciles y retadoras, lo cual puede ser frustrante para otros usuarios que
prefieren jugar casualmente como una manera para relajarse. Lograr el balance es aún más complicado
para pequeños desarrolladores que no tienen los recursos necesarios para realizar las grandes pruebas de
usuario que requiere balancear todos los parámetros de un juego.

Página 1
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

1.3 | Objetivos
1.3.1 | Objetivo General
■ Desarrollar el juego para ampliar nuestros conocimientos y de esta manera los usuarios puedan tener
una forma divertida de entretenerse y demostrar ciertas habilidades.
■ Una parte importante del proyecto consiste en aprender técnicas usadas en inteligencia artificial.

1.3.2 | Objetivos Especı́ficos


■ Desarrollar un videojuego sencillo de plataforma con parámetros configurables que permitan variar
la dificultad del juego en selectos aspectos.
■ Desarrollar un controlador de niveles que permita configurar el nivel de manera procedimental a
partir de los parámetros de dificultad y evaluar el rendimiento del usuario en cada nivel.
■ Construir un sistema de aprendizaje de máquina que encuentre los valores apropiados para los
parámetros de dificultad dependiendo del interés esperado del usuario.
■ Validar el sistema por medio de pruebas de usuario que comparen la satisfacción del usuario usando
el sistema desarrollado y un sistema tı́pico de dificultad predeterminada.
■ Modelar el movimiento de los objetos, mediante traslaciones y rotaciones.

■ Diseñar un algoritmo para el movimiento de los fantasmas con inteligencia artificial.


■ Permitir que el usuario controle a Pac-Man y los fantasmas.

1.3.3 | Caracterı́sticas del Software


■ Nuestro proyecto debe contar con una interfaz de fácil acceso y uso para todos nuestros usuarios.
■ Tener la capacidad de entretener, desestresar y mejorar las habilidades manuales, dando ası́ una
mejor experiencia al usuario
■ Brindar un juego con diferentes niveles, sin que estos se pierdan al cerrar la aplicación.

1.4 | Determinación de Responsables


La metodologı́a SCRUM es un proceso para llevar a cabo un conjunto de tareas de forma regular con
el objetivo principal de trabajar de manera colaborativa, es decir, para fomentar el trabajo en equipo
obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección
tiene origen en un estudio de la manera de trabajar de equipos altamente productivos.

SCRUM permite abordar proyectos complejos desarrollados en entornos dinámicos y cambiantes de un


modo flexible. Está basada en entregas parciales y regulares del producto final, hasta lograr un trabajo
que satisfaga completamente las necesidades del cliente.

SCRUM se basa en el empirismo y el pensamiento Lean. El empirismo lo confirma, el conocimiento


proviene de la experiencia y de la toma de decisiones basadas en observaciones. El pensamiento Lean
ayuda a reducir el desperdicio y centrarse en lo que se necesita.

SCRUM emplea un enfoque lean (ligero) iterativo e incremental con un control de procesos empı́rico, y es
el método ágil para gestión de proyectos más usado en el mundo, el desarrollo se organiza en ciclos, en
SCRUM estos ciclos se llaman sprints.

[Link]

Página 2
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

1.4.1 | Responsables Primarios


■ Product Owner: Es el representante del cliente, por lo que conoce las prioridades del proyecto y
prioriza el trabajo a realizar.
■ Asesor del software: Evaluará la planificación y el producto de software.
■ Scrum Master: Es responsable de garantizar el cumplimiento de la metodologı́a, dirigir a los
demás para cumplir los objetivos del equipo para cada sprint y organizar las reuniones determinadas.

■ SCRUM Team: Diseñadores y programadores, esta no es muy grande ya que es descentralizado y


autodirigido. El tamaño ideal es entre cuatro a ocho personas.

SCRUM
Product Owner Vı́ctor Raúl Valdez Huanacuni
Asesor del Software Ing. Aldo Hernán Zanabria Galvez
Scrum Master Pedro Joel Vilca Uturunco
SCRUM Team
Diseñador Julio Harold Barra Juli
Programadores Vı́ctor Raúl Valdez Huanacuni
Pedro Joel Vilca Uturunco
Analista de Sistemas Jhojan Roy Quispe Lopez

Table 1.1: Determinación de Responsables

1.4.2 | Responsables Secundarios


■ Proveedores de hosting.
■ Proveedores de dominio.
■ Proveedores de bases de datos.

■ Sitios de juegos online.


■ Jugadores de videojuegos.

Página 3
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

2 | DEFINICIÓN Y ORGANIZACIÓN DEL PROYECTO


2.1 | Especificación del Ámbito y Alcance
En el Perú el desarrollo de videojuegos como el PAC-MAN es muy importante balancear apropiadamente
los parámetros del juego. Este debe adecuarse a cada usuario de acuerdo a sus habilidades y sus expecta-
tivas de entretenimiento. En este documento se propone el uso de técnicas de aprendizaje por refuerzo
para el ajuste de los parámetros del juego con el objetivo de aumentar el entretenimiento recibido por el
usuario. Se desarrollo un videojuego sencillo de plataforma móvil con diferentes parámetros configurables
y un estimador del entretenimiento recibido por el usuario de acuerdo a su rendimiento y comportamiento
en el juego. El valor estimado se utiliza como recompensa en un algoritmo de aprendizaje por refuerzo que
a partir de experiencias previas propone nuevos valores a los parámetros del juego. Usando este sistema
se encontraron resultados favorables, con un incremente en la diversión percibida por los usuarios.

El objetivo principal de los videojuegos es generar experiencias atractivas y/o entretenidas para los
usuarios, para lo que el alcance se hace internacional gracias a la WEB. Nuestro juego estará disponible
en diversas plataformas de la Red, para ası́ de esta manera ser una forma de entretenimiento dando una
experiencia agradable al usuario.

2.1.1 | Definición de la Empresa


Este proyecto de software esta basado en la creación de Toru Iwatani quien creo y presento este videojuego
(Pac-Man) el 22 de mayo de 1980. Su diseño se basó en la forma de una pizza que le falta una rebanada,
el hecho de ser un producto bien conocido en todo el mundo hizo posible su expansión y éxito entre todos
los sectores infantiles y juveniles en el mundo.

Nuestra decisión por hacer este proyecto fue debido al inevitable estado de pandemia que se decreto a
nivel mundial con la llegada de la COVID-19, de esto nació la idea den recrear el juego más popular de la
década de los 80, para de esta forma brindar una nueva manera de diversión, relajación y conocimiento de
los primeros juegos que llevaron a desarrollar los actuales con más personajes y gráficos que los llevan a la
realidad virtual e incluso a la misma realidad.

Misión: Brindar una alternativa de diversión, entretenimiento, estimular los reflejos y de esta manera in-
centivar a que los programadores jóvenes sientan interés por este mundo que es el desarrollo de videojuegos.

Visión: Asegurar a futuro nuestra participación en el mercado de los videojuegos, teniendo como primera
meta ser una de las grandes plataformas de videojuegos para ası́ posteriormente llegar a participar de los
deportes electrónicos ESPORTS.

2.1.2 | Objetivo General


El objetivo principal de los videojuegos es generar experiencias atractivas y/o entretenidas para los
usuarios, y el de este videojuego es controlar nuestro personaje a través de un laberinto mientras él va
comiendo puntos. Cuando todos los puntos son comidos se pasa al siguiente nivel.

2.1.3 | Objetivos Especı́ficos


■ Presentar un juego que se factible y divertido de jugar.
■ Establecer una caracterización del segmento de consumidores de videojuegos.
■ Desarrollar las estrategias del marketing, determinando las caracterı́sticas del producto.

■ Al finalizar un juego el sistema debe permitirle al usuario calificar su entretenimiento obtenido y la


dificultad presenciada.
■ El videojuego debe tener niveles con configuración predeterminada para usar como referencia a la
hora de evaluar la solución propuesta.

Página 4
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

2.2 | Organización del Proyecto


Aquı́ los participantes del proyecto serán seleccionados a partir de la información recopilada relevante
para ellos, como estudios y otros.

Participantes
Asesor del Software Ing. Aldo Hernán Zanabria Galvez
Responsable de la dirección del proyecto Pedro Joel Vilca Uturunco
SCRUM Team
Diseñadores Julio Harold Barra Juli
Jhojan Roy Quispe Lopez
Programadores Vı́ctor Raúl Valdez Huanacuni

Table 2.1: Participantes

2.3 | Definición del Plan de Trabajo


El proyecto entero puede dividirse en tres fases principales, las cuales son:

Mediante los roles asignados realizaremos la planificaci´on con respecto al tiempo. El proyecto comienza
a aplicar la metodolog´ıa ´agil SCRUM desde la fase n´umero 2 (Desarrollo del Proyecto), a partir de la
cual se contar´a con Sprint Dailies cada d´ıa y Sprint Reviews al finalizar el respectivo Sprint.

La duraci´on de cada Sprint ser´a de una semana al tratarse de un proyecto de desarrollo que no es
excesivamente grande, se procede a dar una breve definici´on de los Sprints con los que se contar´a.

Se amplia más en la Defunción of Done de los sprints en la sección Definición de Los Proyectos a Realizar

Página 5
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

3 | ESTUDIO DE LA INFORMACIÓN RELEVANTE


3.1 | Selección y Análisis de Antecedentes
En los últimos años muchos autores han elogiado las virtudes de los videojuegos como vehı́culo para
la enseñanza y se han hecho muchos desarrollos, estudios y pruebas. Pese a que algunos resultados
conseguidos son buenos, aún estamos lejos de las expectativas generadas.

3.1.1 | Toru Iwatani, 1980


El fundador del juego más popular en los años 80 y en la historia de los videojuegos, diseñó Pac-Man,
el cual consiste en mover un cı́rculo que recorre un laberinto en busca de alimento como puntos, frutas
e incluso bonus, éste es perseguido por cuatro fantasmas los cuales se distinguen por caracterı́sticas
especiales, en este orden de ideas, Blinky (fantasma rojo) aumenta su velocidad después de quePac-Man
haya llegado a cierta cantidad de puntos, Pinky (fantasma rosa) solo rodea obstáculos en contra delas
manecillas del reloj, Inky (fantasma azul) es lento y puede ser peligroso debido a que sus movimientos son
impredecibles, ası́ que puede que persiga o huya de Pac-Man y por último Clyde (fantasma naranja) que
es el único inofensivo ya que no persigue a Pac-Man; en algunos casos los fantasmas tienen definidos los
territorios en los que desenvuelven su tarea de perseguir y acabar con el jugador. Por otra parte en la
mayorı́a de las versiones de este juego, dos de los fantasmas se encuentran encerrados en una jaula ubicada
en el centro del laberinto y los otros dos están libres, por lo general los fantasmas libres son Blinky y
Pinky ya que generan una probabilidad de daño más alta que los otros.

Los fantasmas hacen el juego más entretenido gracias a sus movimientos, exponen en el juego una
inteligencia artificial más complicada en niveles superiores debido que además de ser mas rápidos, se
vuelven más inteligente para capturar al Pac-Man.

3.1.2 | Ellis, 2004


La situación invita a la reflexión, ¿sabemos lo que se aprende realmente jugando? Si nos dijeran que
jugando al clásico comecocos se aprende fı́sica, ¿nos encajarı́a con nuestro modelo de enseñanza? En
ese artı́culo explicamos cómo los videojuegos nos enseñan conocimiento tácito, lo que solemos llamar
práctica o, incluso, experiencia, y detallamos como Pac-Man y muchos otros videojuegos nos enseñan
fı́sica, entre otras cosas. También detallamos los que consideramos los errores más comunes en el diseño
de videojuegos educativos, junto con una explicación de qué es exactamente la diversión y cuál es su papel
en el aprendizaje. Finalmente, resumimos las lecciones más importantes que hemos aprendido diseñando
videojuegos educativos.

3.1.3 | Prensky M, 2010


El mundo de los videojuegos era muy distinto hace cuatro décadas, lejos de las consolas de última generación,
las computadoras que cuestan más que un auto y los smartphones que cocinan/compran/hablan por ti.
Aquel periodo fue escenario de la aparición de juegos que, pese a su modestia técnica, se convirtieron en
tı́tulos de culto. Dentro de esa lista, pocos podrı́an dudar que Pac-Man tiene un sitio más que privilegiado.

3.1.4 | Freitas S, 2006


Es un videojuego arcade creado por el diseñador de videojuegos Toru Iwatani de la empresa Namco, y
distribuido por Midway Games al mercado estadounidense a principios de los años 1980. Desde que
Pac-Man fue lanzado el 22 de mayo de 1980.

3.1.5 | Illanas Vila, 2008


La premisa del juego, como la de casi todos los tı́tulos de esa época, era sencilla: el usuario controlaba un
pequeño cı́rculo amarillo, el cual se movı́a por un pequeño laberinto en el que debı́a ’devorar’ todos los
puntos repartidos en la zona, lo que permitı́a llegar al siguiente nivel. Los enemigos que lo impedı́an eran
cuatro fantasmas que solo podı́an ser derrotados (temporalmente) cuando Pac-Man tragaba los puntos de
mayor tamaño, ubicados en puntos estratégicos del mapa.

Página 6
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

3.1.6 | Ana Isabel, 2008


Las razones del éxito fulminante del Pac-Man fueron varias, podı́a ser jugado tanto por hombres como
mujeres, y su formato era más humorı́stico y menos violento, lo que terminó de conquistar a todos los
usuarios, algunos de los cuales descubrirı́an por medio de la reiterada práctica varios secretos para avanzar
cada vez más en el juego (Para engañar mejor a los fantasmas habı́a que girar a un lado y luego al contrario
rápidamente; los ojos de los fantasmas indicaban la dirección que tomaban en su próximo giro; la parte
más peligrosa de la pantalla era la lı́nea inferior, ya que los fantasmas intentaban arrinconar al jugador,
mientras que la parte más segura era cerca de la casa de los fantasmas, que ofrecı́a múltiples caminos de
escape; cada fantasma, por lo demás, tenı́a su personalidad y una esquina en la que era más efectivo; y,
finalmente, el Pac-Man era más rápido en un camino despejado de puntos, algo bastante útil cuando el
jugador intentaba despistar a los implacables fantasmas).

3.1.7 | Clark C, 1970


Hoy, a 35 años de su nacimiento, Pac-Man ya es parte de la cultura occidental y parte del inconsciente
colectivo de millones de personas. La prestigiosa revista norteamericana “Time”, por lo pronto, hizo
hace un tiempo un ranking (donde los usuarios votaban por el videojuego que más lo habı́a marcado
en su infancia) con los mejores videojuegos de todos los tiempos, con tı́tulos que abarcaban juegos de
PC, consola y teléfonos móviles, según su importancia e influencia en cada década ¿Adivine quién ganó?
Exacto. Pac-Man se impuso con comodidad en el primer lugar, seguido consecutivamente por “Super
Mario Bros” (1985), “Pong” (1972) y “Space Invaders” (1978).

Página 7
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

4 | IDENTIFICACIÓN DE REQUISITOS
4.1 | Estudio de los Procesos del Software
4.2 | Catalogación de Requisitos

Página 8
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

5 | ESTUDIO DE SOFTWARE ACTUALES


5.1 | Alcance y Objetivos del Estudio de Software Actuales
5.2 | Análisis de Software Actuales
5.3 | Valoración de los Software Actuales

Página 9
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

6 | DISEÑO DEL MODELO DE SOFTWARE


6.1 | Diagnóstico de la Situación Actual
El proyecto de software actual está pensado para motivar a las nuevas generaciones con cualidades positivas
de los software ya mencionados y desechando aquellas falencias en su servicio o implementación.
Situación actual del proyecto:

■ Falta la implementación del Frontend


■ Falta la implementación del Backend (niveles)
■ El sistema en web no cuenta con SEO adecuado

■ Se viene realizando la elaboración del documento de planeamiento para la mejora del producto
Debido a la temprana etapa en la que se encuentra el proyecto, es pues de vital importancia el presente
documento para la llegada exitosa a las siguientes etapas de desarrollo.

6.2 | Definición del Modelo de Software

ELEMENTO DESCRIPCIÓN
Pantalla de Para poder mostrar una presentación del software y contener un
inicio botón de inicio o ingreso
Formulario Pantalla donde se muestra un formulario para que los usuarios
de Registro puedan registrarse con sus datos de facebook
Una ventaja practica de los niveles es que dividen el juego en
secciones manejables, dando a los jugadores la oportunidad de
Lista de Nive-
descansar en intervalos periódicos. Los juegos pueden guardarse
les
automáticamente en esos en esos intervalos y además que ayudan
a crear un ambiente de suspenso.

■ Variables
□ Up - [0..1]
□ Down - [0..1]
□ Left - [0..1]
□ Right - [0..4]
Los valores del dominio corresponden a los valores que pueden tomar las variables. Se asignará 1 si
esta en movimiento. PacMan tenga que moverse en esa dirección y 0 en caso de lo contrario.
■ Constantes

□ CurrentX
□ CurrentY
□ mv
□ moviment
□ cont

■ Restricciones
□ Restricción 1: Esta restricción aplica si PacMan tiene pı́ldoras, pı́ldoras de poder o no pı́ldoras
en los 3 casilleros siguientes a la derecha, puede avanzar a la derecha.
□ Restricción 2: Esta restricción aplica si PacMan tiene pı́ldoras, pı́ldoras de poder o no pı́ldoras
situadas en los 3 casilleros siguientes en forma de ”L” hacia la derecha y abajo, puede moverse
a la derecha.

Página 10
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

□ Restricción 3: Esta restricción aplica si PacMan tiene pı́ldoras, pı́ldoras de poder o no pı́ldoras
situadas en los 3 casilleros siguientes en forma de ”L” hacia la derecha y arriba, puede moverse
a la derecha.
□ Restricción 4: Esta restricción aplica si PacMan tiene pı́ldoras, pı́ldoras de poder o no pı́ldoras
en las 2 posiciones siguientes y muro en la tercera posición a la derecha, puede moverse hacia
esa dirección.
□ Restricción 5: Esta restricción aplica si PacMan tiene un casillero con pı́ldora, pı́ldora de poder
o no pı́ldora y los 2 siguientes con muro hacia la derecha, puede avanzar hacia esa dirección.
□ Restricción 6: Esta restricción aplica si PacMan tiene pı́ldoras, pı́ldoras de poder o no pı́ldoras
y fantasma situados en los 3 casilleros siguientes en forma de ”L”hacia la izquierda y abajo, no
puede avanzar y debe moverse en la dirección contraria.
□ Restricción 7: Esta restricción aplica si PacMan tiene pı́ldoras, pı́ldoras de poder o no pı́ldoras
y fantasma situados en los 3 casilleros siguientes en forma de ”L” hacia la izquierda y arriba,
no puede avanzar y debe moverse en la dirección contraria.
□ Restricción 8: Esta restricción aplica si PacMan tiene fantasmas en alguna de las siguientes
posiciones hacia la izquierda, no puede avanzar y debe moverse en la dirección contr

6.3 | Modelado UML

Figure 6.1: diagrama de las restricciones

Página 11
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Figure 6.2: diagrama de las acciones

Página 12
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

7 | DEFINICIÓN DE LA ARQUITECTURA TECNOLÓGICA


7.1 | Identificación de la Necesidades de Infraestructura tecnológica
Dado el proyecto de Software que se planea realizar, éste necesitará de diversas tecnologı́as para su correcto
funcionamiento e implementación, ası́ como para facilitar el desarrollo del mismo.

Ya que se planea realizar una página web para el juego de PAC-MAN, necesitaremos los lenguajes de
programación con los que éstas se elaboran. Es también común en la era moderna del desarrollo web,
para este propósito también es popular la utilización de una tecnologı́a que nos permita juntar nuestros
módulos de modo que funcionen en los navegadores, también conocidos como bundlers.

Necesitaremos además, un servidor web que actúe como Backend y que nos permita comunicarnos con la
base de datos, ası́ como exponer una API que el Frontend pueda consumir. Para esto, por el lado del
Backend necesitaremos una forma de crear la API y por el lado del Frontend necesitaremos una manera
de conectarlos a ella y utilizarla.

Necesitaremos un Sistema de Gestión de Base de datos que nos permita almacenar información tal como
los usuarios, para los cuales necesitaremos escoger un método de almacenamiento de información. También
debemos de definir el paradigma de base de datos que utilizaremos.

Para el desarrollo eficaz del proyecto necesitaremos contar con un Editor de Código o IDE con el cual
modificaremos el código fuente, además necesitaremos de un Sistema de Control de Versiones que nos
permita una interacción sencilla. Ya que el proyecto no es individual o personal, se debe de tener una
manera de compartir el código que se integre con el Sistema de Control de Versiones para mantener un
control sobre estas.

Deberemos, además de contratar servicios para el despliegue de la aplicación web, tales como el hosting
de la página web(HostGator) y la compra de un nombre de dominio, y que también tenga Cpanel para la
gestión de base de datos y la compra del peso computacional que esta conlleva.

Ası́, las necesidades tecnológicas de nuestro Sistema de Información para la página web del juego de
Pac-Man se pueden dividir en las siguientes categorı́as:

■ Frontend: Necesidades para la implementación de la página por el lado del usuario y con el cual el
usuario interactuará.
■ Backend: Necesidades para el servidor web que se conectará a la base de datos y será consumido
por el frontend.
■ Base de Datos: El sistema para el almacenamiento de datos.

■ Herramientas: Utilidades que son principalmente usadas por los desarrolladores del Sistema de
Información.
■ Despliegue: Servicios que nos permitirán tener el sistema funcionando globalmente y no solo en la
máquina local.

Se procederá a definir las necesidades especı́ficas para cada una de las categorı́as anterior mente mencionadas,
ası́ como las alternativas actualmente disponibles en el mercado:

■ Frontend:
□ Lenguajes de programación, como estándar se utilizan HTML, CSS y Javascript y es muy raro
encontrar una página construida con otros lenguajes. usualmente más rápidos en la mayor
parte de casos.
□ Framework, como alternativas se pueden utilizar: React, Angular y Vue; siendo estas las
alternativas m´as populares del mercado. También se puede utilizar opciones más recientes y
novedosas como SolidJS o Svelte.

Página 13
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

□ Bundler, podemos escoger principalmente entre Webpack, Parcel, Snowpack y Vite. Siendo
Webpack la alternativa más popular para react, Parcel conocido por su simplicidad y Vite
conocido por ser veloz gracias al hot module replacement.
□ Conexión al Backend, la librerı́a más popular es Axios, pero se puede lograr conexiones HTTP
con la API Fetch nativa de Javascript o con otras librerı́as como Jquery y AJAX.
■ Backend:
□ Lenguaje de programación, existen muchas opciones para escoger. Es posible utilizar Javascript/Typescript,
Python, PHP, Java, Go, Rust, entre otros. La opción habitual es Js/Ts; sin embargo, lenguajes
como Go y Rust son conocidos por ser usualmente ms rápidos en la mayor parte de casos.
□ Elección de API, las opciones actualmente disponibles son la API REST, GraphQL entre otros
menos usados; alternativamente podemos ir por una arquitectura Serverless utilizando servicios
como AWS, Firebase o Supabase.
□ Construcción del API, para la API más utilizada que es REST, tenemos como opciones Express
para Js/Ts, Django para Python, gorilla/mux para Go, Rocket para Rust, Spring Boot para
Java.
■ Base de Datos:
□ Paradigma de Base de Datos, por lo general tenemos como elección a las bases de datos
relacionales, y no relacionales.
□ Base de datos especı́fica, podemos utilizar MySQL, OracleDB, PosgtreSQL, SQL Server.
Mientras que para las no relacionales tenemos a NoSQL, MongoDB, Redis , como opciones
populares.
■ Herramientas:

□ Editor de código/IDE, podemos escoger entre Visual Studio Code, Sublime Text, PHPStorm,
Atom entre otros.
□ Sistema de Gestión de Versiones, Git es la opción más popular.
□ Hosting de Código Fuente, se puede escoger entre Github o Gitlab.
■ Despliegue:

□ Para Frontend, tenemos opciones como Vercel y Netlify o servicios pagados como en Solo10.
□ Para Backend y BD, podemos usar Heroku, AWS, Firebase, etc.
□ Nombre de dominio: Tenemos a Solo10, GoDaddy, [Link] entre otros.

Página 14
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

7.2 | Selección de Arquitectura Tecnológica


De entre las posibles opciones para la definición final de la arquitectura para el desarrollo del software, se
escogieron las siguientes opciones mostradas en un diagrama de componentes:

Figure 7.1: Diagrama de Componentes Arquitectura

Los servicios, herramientas y servicios escogidos para suplir las necesidades tecnológicas son los previamente
mencionados, se procederá a detallar el motivo de la elección que cubre cada necesidad definida en la tarea

Página 15
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Página 16
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Página 17
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

7.3 | Prototipado

Figure 7.2: Página (principal)

Página 18
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Figure 7.3: Página (Registro)

Figure 7.4: Página (Niveles)

Página 19
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Figure 7.5: primer nivel, empezando juego

Figure 7.6: Comiendo Bocados

Página 20
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Figure 7.7: Chocando con la fantasma y menos una vida

Figure 7.8: Comiendo Bocado grande y convirtiendo fantasmas en vulnerables

Página 21
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Figure 7.9: Comiendo fantasma

Figure 7.10: Ganado el Nivel Uno

Página 22
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

Figure 7.11: Contando Puntos

Figure 7.12: Perdiendo el Nivel

Página 23
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

8 | DEFINICIÓN DEL PLAN DE ACCIÓN


8.1 | Definición de Proyectos a Realizar
Para concluir con el proyecto satisfactoriamente se deberá de concluir con diversos proyectos, por lo cual
se presenta a continuación la Definition of Done de los Scrum Sprints:

■ Primer Scrum Sprint


□ Se utilizó y configuró el bundler Vite
□ Se crearon las rutas
□ Se implementaron todas las distintas vistas

■ Segundo Scrum Sprint


□ Se tiene un Backend express.
□ Se cuenta con los varios Endpoints.
□ Se tiene varios controladores con un sistema ORM.

■ Tercer Scrum Sprint


□ Se definieron las tablas en la Base de Datos
□ Se implementaron las tablas de la Base de Datos
□ Se desplegó la Base de Datos en Heroku

■ Cuarto Scrum Sprint


□ Se conectó Backend con la Base de Datos con node-postgres
□ Se conectó Frontend a Backend mediante Axios
■ Quinto Scrum Sprint

□ El software funciona en las pruebas locales


□ El software funciona el las pruebas por internet
□ Se desplegó de Backend en Heroku
□ Se desplegó el Frontend en Vercel
□ Se realizó la compra de nombre de dominio en Solo10
□ Se adquirió un Certificado SSL
□ Se acordó el mantenimiento del sistema

8.2 | Elaboración del Plan de Mantenimiento del Proyecto


El presente proyecto se debe de mantener actualizado y por esta razón, con periodicidad de 3 meses, se
iterara´ y se vera´ el avance de los proyectos para poder mantener el proyecto conforme con los últimos
cambios y versiones realizadas para el proyecto.

Los encargados de mantener el proyecto actualizado serán todos los participantes del desarrollo del proyecto
de la página web para la agencia. En caso de surgir algún cambio de requisitos a lo largo del proyecto, se
actualizará el documento. Se informará con la misma periodicidad con que se actualiza el documento a
los participantes del proyecto acerca de los avances y cambios en el desarrollo.

Además, durante el desarrollo del proyecto de software, se realizarán Sprint Reviews al final de cada
Sprint, en las cuales se revisará la Definición de Hecho del sprint y se realizarán cambios para el Sprint
próximo en caso de ser necesario.

Página 24
Universidad Nacional del Altiplano Proyecto de Software - Videojuego Pac-Man

9 | REVISIÓN Y APPROBACIÓN DEL PROYECTO


9.1 | Convocatoria de la Presentación
El catálogo de requisitos y el estudio de los sistemas de información actuales se recolec- taron, ası́ como la
arquitectura tecnológica escogida actualmente para la revisión de los componentes proyecto que el sistema
de información llevará a desarrollo.

9.2 | Evaluación y Mejora de la Propuesta


Las siguientes propuestas de mejora, antes no incluidas se añaden a razón de la evaluación de las tareas
del proyecto las fechas de las tareas y proyectos a realizar, se realizan cambios añadiendo legibilidad al
presente documento, ası́ como a la arquitectura seleccionada para la realización e implementación del
sistema.

9.3 | Aprobación del Proyecto


Una vez concluida la mejora en cuanto a las tareas del proyecto previamente realizadas y corregidas en
el mismo documento, los miembros participantes del proyecto de desarrollo del sistema de información
del juego de Pac-Man acuerdan en la aprobación del proyecto que se utilizará durante el desarrollo del
software.

Página 25

También podría gustarte