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.
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
Propósito de los patrones ¿Qué es un patrón de diseño? ¿Por qué usarlos? Categorización Problema - Patrón
¿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.
¿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?”
Categorización Fundamentales Creación Estructura Comportamiento 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
Problema – Patrón Alto acoplamiento Façade Mediator Observer Imposibilidad de cambiar la clases convenientemente Adapter Decorator Visitor
Patrones de creación Propósito: Cuales veremos? 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
Singleton Problema: No se puede tener mas de una instancia de una clase. Se necesita controlar el acceso a una clase.
Singleton 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.
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_usuario Id_emple Nom_usua login asignarContraseña( ) ingresar( )
Patrones de estructura Propósito: Desacoplar el sistema. Obtener una estructura flexible. Organizar. Cuales veremos? Facade
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.
Facade Form Cliente Cliente Form Pedidos Form Ctas Corrientes Presentación Lógica
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.
Ejemplo de proyecto Patrón Business Facade BF_Planilla Ingresos RegistroIngresos( ) Prestamo RegistroPrestamo( ) BF_Planilla RegistroDescuento( ) CalcularSalario( ) Descuento obtiene
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
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.
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.
Ejemplo de Proyecto Patrón Observer Anticipo Prestamos Gestión Responde a Notificación Anticipo Prestamos Gestión Ingresos Descuentos Aguinaldo Notifica modificación
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.
Ejemplo de Proyecto Patrón Data Access Object Planilla BDSueldos Muestra Encapsular Uses Planilla DataAccess Object BDSueldos Repositorio