23
SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M.

SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Embed Size (px)

Citation preview

Page 1: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

SOFTWARE PARA PAGOS DE

SUELDOS Patrones de Diseño

Integrantes: José Luis Rocha V.

Claudia Martínez S.

Ricardo Ferré M.

Page 2: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

SOFTWARE PARA PAGOS DE SUELDOS

Justificación del proyecto EL problema que tiene la empresa Café

Amboró referente al pago de sueldos es la inconsistencia de información puesto que la realización de su planilla la hace a través de una hoja de Excel, lo que hace que el almacenamiento de la información no sea confiable. Para lo cual el desarrollo de este software pretende dar solución a los problemas de la empresa, tratando de cumplir con todos sus requerimientos.

Page 3: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Propósito de los patrones Fundamentos de diseño. Clasificación de Patrones

•Creación.–Factory Method–Singleton–Abstract Factory

•Estructurales–Adapter–Facade–Composite•Comportamiento

–Command–State –Observer

Page 4: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Propósito de los patrones

¿Qué es un patrón de diseño? ¿Por qué usarlos? Categorización Problema - Patrón

Page 5: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

¿Qué es un patrón de diseño?

Ante un problema reiterado ofrece una solución contrastada que lo resuelve.

Describe el problema en forma sencilla. Describe el contexto en que ocurre. Describe los pasos a seguir.

Page 6: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

¿Por qué usarlos? Mejora en la comunicación y documentación

Facilita la documentación interna del proyecto. Mejora la ingeniería de software.

Eleva el nivel del grupo de desarrollo. Previene “reinventar la rueda” en diseño

Son soluciones ya probadas. Mejora la calidad y estructura

“¿Cuan grande debe ser una clase?”

Page 7: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Categorización

Fundamentales Se usan en otros patrones mas grandes

Creación Problemas del proceso de creación de un

objeto. Estructura

Problemas relativos a la composición de objetos

Comportamiento Relativo a la interacción entre objetos

Page 8: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Problema – Patrón

Alto acoplamiento Façade Mediator Observer

Imposibilidad de cambiar la clases convenientemente Adapter Decorator Visitor

Page 9: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Patrones de creación

Propósito: Crear un objeto es una toma de decisión. Separar los procesos de creación de objeto y

de uso de un objeto. Cuales veremos?

Singleton

Page 10: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Singleton

Problema: No se puede tener mas de una instancia de

una clase. Se necesita controlar el acceso a una clase.

Page 11: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Singleton

if (instancia==null){ Mutex mutex = new Mutex(); mutex.WaitOne(); if(instancia==null) instancia = new ClaseUnica(); mutex.Close();}return instancia;

if (instancia==null) instancia = new ClaseUnica();return instancia;

-ClaseUnica()+ObtenerInstancia() : ClaseUnica+Operacion1()

-instancia : ClaseUnica

ClaseUnica• Hago que la clase no pueda ser heredada.

• Agrego una variable estática del mismo tipo de la clase donde esta contenida. (instancia)

• Agrego un método estático que retorne la variable estática. (GetInstance)

• Agrego el código necesario para no crear dos instancias en distintos thread.

Page 12: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Ejemplo de proyecto

Patrón Singleton Problema: Control de Acceso de Usuarios Patrón: Singleton (Patrón de creación) Solución: Controla el acceso a una clase, no

se puede tener mas de una instancia de una clase.

Agrega una variable estática del mismo tipo de clase donde esta contenida

Usuario

Id_usuarioId_empleNom_usualogin

asignarContraseña( )ingresar( )

Page 13: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Patrones de estructura

Propósito: Desacoplar el sistema. Obtener una estructura flexible. Organizar.

Cuales veremos? Facade

Page 14: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Facade

Problemas: El cliente hace muchos viajes al servidor. Separe por capas, pero tengo muchas clases

públicas en el servidor para que puedan ser creadas desde el cliente.

Necesito estructurar las llamadas desde el cliente.

Page 15: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Facade

Form Cliente

Form Pedidos

Form Ctas Corrientes

Presentación Lógica

Cliente

Page 16: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Ejemplo de Proyecto

Patrón Business Facade Problema: Obtención de datos para generar

planilla de sueldos Patrón: Business Facade (Patrón de

estructura) Solución: Tiene la característica de “hablarse”

con los diferentes componentes de las capas de esta arquitectura.

Page 17: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Ejemplo de proyecto

Patrón Business Facade

Ingresos

RegistroIngresos( )Prestamo

RegistroPrestamo( )

BF_Planilla

RegistroDescuento( )RegistroIngresos( )RegistroPrestamo( )CalcularSalario( )

Descuento

RegistroDescuento( )

obtiene

obtiene

obtiene

Page 18: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Patrones de Comportamiento

Propósito: Asignación de responsabilidad = Distribuir el

comportamiento. Comunicación entre instancias. Se usa mas la composición que la herencia.

Cuales veremos? Observer Data Access Object

Page 19: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Observer

Intención: Denir una dependencia entre un objeto y un conjunto de ellos, de modo que los cambios en el primero se vean reflejados en los otros.

Problema: Mantener distintos objetos relacionados,

generalmente son relaciones 1 – N. Mantener las dependencias entre objetos, sin

necesidad de conocer al otro objeto.

Page 20: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Ejemplo de Proyecto

Patrón Observer Problema: Modificación de la Gestión Patrón: Observer (Patrón de comportamiento) Solución: Este patrón utiliza un objeto que

cuando este cambia todos los objetos que los observan cambian en consecuencia.

Page 21: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Ejemplo de Proyecto

Patrón Observer

Responde a Notificación

Anticipo Prestamos

Gestión

Ingresos Descuentos

Aguinaldo

Notifica modificación

Page 22: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Patrón Data Access Object

Patrón Data Access Object Problema: Seguridad en la obtención de

información de la base de datos Patrón: Data Access Object (Patrón de

comportamiento) Solución: Propone la utilización de un objeto

de acceso a datos para abstraer y encapsular todos los accesos a fuentes de datos. El DAO maneja y controla la conexión con la fuente de datos para obtener y guardar información solicitada.

Page 23: SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño Integrantes: José Luis Rocha V. Claudia Martínez S. Ricardo Ferré M

Ejemplo de Proyecto

Patrón Data Access Object

Muestra

EncapsularUses

Planilla

DataAccess Object

BDSueldos

Repositorio