U1-4 - Paradigmas Programación
U1-4 - Paradigmas Programación
U1-4 - Paradigmas Programación
Tipos de patrones
Lección 4
Unidad I
Paradigmas de Programación – Unidad I
Contenido
TIPOS DE PATRONES ........................................................................................................................... 2
OBJETIVOS DE LOS PATRONES ........................................................................................................ 2
DESCRIPCIÓN Y CARACTERÍSTICAS DE LOS TIPOS DE PATRONES ...................................................... 2
PATRONES DE ARQUITECTURA: ................................................................................................... 2
PATRONES DE DISEÑO:............................................................................................................... 3
PATRONES DE DIALECTOS: ......................................................................................................... 4
PATRÓN DE ARQUITECTURA POR CAPAS .......................................................................................... 4
TIPOS ............................................................................................................................................ 5
CAPA DE PRESENTACIÓN ............................................................................................................ 5
CAPA DE NEGOCIOS ................................................................................................................... 5
CAPA DE DATOS ......................................................................................................................... 5
REFERENCIAS BIBLIOGRÁFICAS ........................................................................................................... 6
Tipos de patrones
✓ Patrones de Arquitectura
✓ Patrones de Diseño
✓ Patrones de Dialectos
Asimismo, no pretenden:
Además, también es importante reseñar el concepto de “anti patrón”, que con forma
semejante a la de un patrón, intenta prevenir contra errores comunes de diseño en el
software. La idea de los anti patrones es dar a conocer los problemas que acarrean ciertos
diseños muy frecuentes, para intentar evitar que diferentes sistemas acaben una y otra vez
en el mismo callejón sin salida por haber cometido los mismos errores.
Uno de los aspectos más importantes de los patrones arquitectónicos es que encarnan
diferentes atributos de calidad. Por ejemplo, algunos patrones representan soluciones a
problemas de rendimiento y otros pueden ser utilizados con éxito en sistemas de alta
disponibilidad. A primeros de la fase de diseño, un arquitecto de software escoge qué
patrones arquitectónicos mejor ofrecen las calidades deseadas para el sistema.
Tres niveles
Pipeline
Invocación implícita
Arquitectura en pizarra
Peer-to-peer
Objetos desnudos
Patrones de Diseño:
Aquellos que expresan esquemas para definir estructuras de diseño (o sus relaciones) con
las que construir sistemas de software. Esquemas para refinar los subsistemas o
componentes de sistema software o sus relaciones. Describen una estructura recurrente y
común que resuelve un problema de diseño dentro de un contexto.
Los patrones de diseño son unas técnicas para resolver problemas comunes en
el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una solución
sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe
haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores.
Otra es que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de
diseño en distintas circunstancias.
Patrones de Dialectos:
Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto.
Patrones que ayudan a implementar aspectos particulares del diseño en un lenguaje de
programación específico. Un patrón de implementación (también llamado Idioma) es un
patrón de bajo nivel específico a un lenguaje de programación. Este describe cómo
implementar aspectos particulares de componentes o sus relaciones utilizando las
características de un lenguaje dado. Los patrones de implementación representan el nivel
más bajo de patrones, y manejan aspectos tanto de diseño como implementación, y son
mayormente utilizados durante la fase de desarrollo de un sistema. Frecuentemente, el mismo
patrón de implementación se ve diferente al ser implementado sobre lenguajes distintos, y
algunas veces un patrón de implementación muy útil en un lenguaje no tiene sentido sobre
otro. Por estas características, los patrones de arquitectura son utilizados durante la etapa de
definición de arquitectura de un sistema.
- Se puede entender una capa como un todo sin considerar las otras.
- Las capas se pueden sustituir con implementaciones alternativas de los mismos
servicios básicos.
- Se minimizan dependencias entre capas.
- Las capas posibilitan la estandarización de servicios.
- Luego de tener una capa construida, puede ser utilizada por muchos servicios de
mayor nivel.
Sin embargo, un modelo de capas también trae consigo algunos inconvenientes que deben
ser tenidos en cuenta en el diseño:
Pero la parte más difícil de una arquitectura basada en este modelo es decidir que capas
implementar y que responsabilidad debe tener cada una. A continuación, la discusión se
centra en describir las tres capas principales de un patrón de arquitectura por capas.
Tipos
Capa de Presentación
Referente a la interacción entre el usuario y el software. Puede ser tan simple como un menú
basado en líneas de comando o tan complejo como una aplicación basada en formas. Su
principal responsabilidad es mostrar información al usuario, interpretar los comandos de este
y realizar algunas validaciones simples de los datos ingresados.
Capa de Negocios
También denominada Lógica de Dominio [FOWLER], esta capa contiene la funcionalidad que
implementa la aplicación. Involucra cálculos basados en la información dada por el usuario y
datos almacenados y validaciones. Controla la ejecución de la capa de acceso a datos y
servicios externos. Se puede diseñar la lógica en la capa de negocios para su uso directo por
parte de componentes de presentación o su encapsulamiento como servicio y llamada a
través de una interfaz de servicios, que coordina la conversación con los clientes del servicio
e invoca cualquier flujo o componente de negocio.
Capa de Datos
Esta capa contiene la lógica de comunicación con otros sistemas que llevan a cabo tareas
por la aplicación. Estos pueden ser Monitores Transaccionales, otras aplicaciones, sistemas
de mensajería, etc. Para el caso de aplicaciones empresariales, generalmente está
representado por una base de datos, que es responsable por el almacenamiento persistente
de información. Esta capa debe abstraer completamente a las capas superiores (negocio) del
dialecto utilizado para comunicarse con los repositorios de datos (PL/SQL, Transact-SQL,
etc.).
Referencias Bibliográficas
▪ “Gang of Four” - Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides (1994)
- “Design Patterns: Elements of Reusable Object-Oriented Software” – 1era Ed. –
EE.UU. - Editorial - Addison-Wesley
▪ Craig Larman (1997) – “Applying UML and Patterns” - 1era Ed. – EE.UU. – Editorial
Financial Times Prentice Hall