Está en la página 1de 6

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERIA EN SISTEMAS ELECTRONICA E INDUSTRIAL


CARRERA DE SOFTWARE

I. INFORMACION GENERAL

TEMA: Proyecto Patrones

ASIGNATURA Patrones de Software NIVEL Quinto “A”


Abril 2023 –
UOC Profesionalizante CICLO ACADEMICO
Septiembre 2023
DOCENTE Ing. Marco Guachimboza, Mg. FECHA: 15-07-2023

INTEGRANTES Cifuentes Esteban – López Christian


II. DESARROLLO

Patrones Utilizados

Nombre: Patrón Singleton

Clasificacion: Patrón Creacional.

Proposito: Este es un patrón creacional que nos garantiza que solo haya
una instancia de una clase. El proposito principal de este patron es el de
restringir la creacion de objetos en uno solo pero permitiendo un punto de
accesso global. [1]

Motivación:
 Problema: Dentro de la realizacion del proyecto, nos surgio dos
inconvenientes, con respecto a la conexión a la base de datos,
puesto que esta se utilizaria en mas de una ocasión, y se deseaba
que solo se instancia una unica vez, a su vez, se previo el inicio de
sesion de los usuarios, ya que se busca solo un usuario a la vez
pueda utilizar el sistema.
 Solucion: La solucion que encontramos, fue el de poder
implementar el patron Singleton dentro del sistema el cual nos
permitira tener una instanciacion unica de ambos objetos, facilitando
enormemente el desarrollo del proyecto.

Implementación:
 Conexion: Creamos una clase denominada SingletonConexion el
cual se encargara de instanciar una unica vez la conexión a la base
de datos. Esta clase permitira que la conexión se realice una unica
vez, y que sea llamada cada que se le necesite a traves de su
instanciacion y la obtencion de su conexión (getConexion()).
 Sesion: Creamos una clase demominada SingletonSession el cual
se encargara de de instanciar una unica sesion dentro de todo el
sistema, lo cual permitira que solo un usuario pueda utilizar el
sistema.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERIA EN SISTEMAS ELECTRONICA E INDUSTRIAL
CARRERA DE SOFTWARE

Estructura:

Nombre: Patrón Strategy

Clasificacion: Patrón Estructural.

Proposito: Este es un patron estructural que se utiliza para definir un


bloque de codigo intercambianle. Permite que el codigo utilizado varie
independientemente de la forma en como lo utiliza el cliente, brindando
felixibilidad al diseño. [2]

Motivación:
 Problema: Al momento de desarrollar el proyecto, se encontro el
inconveniente a futuro, que en el caso de que el usuario quiera
ingresar al sistema con una cuenta directa o relacionarse a otra ya
existente como gmail, se desarrolle una estructura que permita esto.
 Solución: La solucion que se encontro a este inconveniente es que
se cree una estructura que prevea la evolucion del sistema, y en el
caso de que se deseara implementar mejoras, esta estructura
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERIA EN SISTEMAS ELECTRONICA E INDUSTRIAL
CARRERA DE SOFTWARE

permita esa accion, por lo que la mejor opcion para solucionar esto,
es el uso del patron Strategy.

Implementación:
 AuthenticateDatabase: Esta clase tiene la intencion de proveer un
metodo o forma de logueo a traves de la base de datos creada, en
el caso de que el logueo quiera realizarse a partir de otra forma, se
incrementara esta caracteristica.
 Authenticator: Creamos una clase denominada Authenticator el
cual actua como autenticador de usuarios que es proporcionada por
la interfaz. Permite establecer la estrategia de autenticacion que se
utilizara.
 AuthenticationStrategy: Creamos la interfaz
AuthenticationStrategy la cual se encargara de definir el metodo
que permitira la autenticacion de usuarios.
 Singlentons: Dentro de la implementacion del patron hacemos uso
de las clases singleton creadas con anterioridad, lo que nos
permitira fortalecer el codigo, y en este caso, mejorar la
funcionalidad de conexión e inicio de sesion de usuarios.

Estructura:

Patron Template

Clasificacion: Patrón de Comportamiento.

Proposito: Este es un patrón de comportamiento que es utilizado para


definir el esqueleto de un sistema a partir de una clase base, donde se
delega la implementacion de ciertos pasos o bloques de codigo a las
subclases. El proposito principal de este patron es el de brindar una
estructura comun para el sistema. [3]

Motivacion:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERIA EN SISTEMAS ELECTRONICA E INDUSTRIAL
CARRERA DE SOFTWARE

 Problema: Al momento de tener avanzado el proyecto, se dio el


problema de que las paginas se encontraban mal estructuradas, y
habia secciones de codigo que se repetian, por lo que se vio
necesario mejorar estos problemas.
 Solucion: Teniendo en cuenta la problemática anterior, se decide
utilizar el patron Plantilla, el cual nos permitira mejorar la
estructuracion de las paginas presentes en el sistema, al mismo
tiempo que con ayuda del llamado a ciertos metodos, se reutilizara
codigo, el cual se repetia en varias ocaciones

Implementación:
 Plantilla: La clase abstracta plantilla es la encarga de extender los
metodos que usaran las demas clases para poder estructurar cada
una de las paginas del sistema, ademas, esta clase posee metodos
propios que seran llamados por las paginas principales, esto con el
fin de no reescribir codigo.

 Plantillas: Las clases que se extienden de la clase abstracta son


las encargadas de estructurar las paginas del sistema. En estas
clases, se llaman a los metodos abstractos que crearan los
headers, mains y footers de las paginas.

 Paginas: Son las encargadas de llamar a los metodos que crearan


la pagina en si, estructurandolas y mejorando de mejor manera el
sistema.

Estructura:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERIA EN SISTEMAS ELECTRONICA E INDUSTRIAL
CARRERA DE SOFTWARE

Diagrama de clases General:


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERIA EN SISTEMAS ELECTRONICA E INDUSTRIAL
CARRERA DE SOFTWARE

IV. BIBLIOGRAFÍA:

[1] O. Skobeleva, «Refactoring,» Guru, 15 Febrero 2023. [En línea]. Available:


https://refactoring.guru/es/design-patterns/singleton. [Último acceso: 15 Julio 2023].
[2] O. Skobeleva, «Refactoring,» Guru, 14 Marzo 2022. [En línea]. Available:
https://refactoring.guru/design-patterns/strategy. [Último acceso: 15 Julio 2023].
[3] O. Skobeleva, «Refactoring,» Guru, 21 Enero 2023. [En línea]. Available:
https://refactoring.guru/es/design-patterns/template-method. [Último acceso: 15
Julio 2023].

También podría gustarte