U1-4 - Paradigmas Programación

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Paradigmas de 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

Material Básico pág. 1


Paradigmas de Programación – Unidad I

Tipos de patrones
✓ Patrones de Arquitectura
✓ Patrones de Diseño
✓ Patrones de Dialectos

Objetivos de los Patrones


Los patrones de diseño pretenden:

- Proporcionar catálogos de elementos reusables en el diseño de sistemas software.


- Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y
solucionados anteriormente.
- Formalizar un vocabulario común entre diseñadores.
- Estandarizar el modo en que se realiza el diseño.
- Facilitar el aprendizaje de las nuevas generaciones de diseñadores condensando
conocimiento ya existente.

Asimismo, no pretenden:

- Imponer ciertas alternativas de diseño frente a otras.


- Eliminar la creatividad inherente al proceso de diseño.

No es obligatorio utilizar los patrones, solo es aconsejable en el caso de tener el mismo


problema o similar que soluciona el patrón, siempre teniendo en cuenta que en un caso
particular puede no ser aplicable. «Abusar o forzar el uso de los patrones puede ser un error».

Descripción y Características de los Tipos


de Patrones
Patrones de Arquitectura:
Aquellos que expresan un esquema organizativo estructural fundamental para sistemas de
software. Se centran en la estructura del sistema, en la definición de subsistemas, sus
responsabilidades y reglas sobre las relaciones entre ellos. Proporcionan un conjunto
predefinido de subsistemas, sus responsabilidades y las líneas guía para organizar sus
relaciones.

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.

Los patrones arquitectónicos, también llamados arquetipos ofrecen soluciones a problemas


de arquitectura de software en ingeniería de software. Dan una descripción de los elementos
y el tipo de relación que tienen junto con un conjunto de restricciones sobre cómo pueden ser
usados. Un patrón arquitectónico expresa un esquema de organización estructural esencial
para un sistema de software, que consta de subsistemas, sus responsabilidades e

Material Básico pág. 2


Paradigmas de Programación – Unidad I

interrelaciones. En comparación con los patrones de diseño, los patrones arquitectónicos


tienen un nivel de abstracción mayor.

Aunque un patrón arquitectónico comunica una imagen de un sistema, no es una arquitectura


como tal. Un patrón arquitectónico es más un concepto que captura elementos esenciales de
una arquitectura de software. Muchas arquitecturas diferentes pueden implementar el mismo
patrón y por lo tanto compartir las mismas características. Además, los patrones son a
menudo definidos como una cosa estrictamente descrita y comúnmente disponible. Por
ejemplo, la arquitectura en capas es un estilo de llamamiento-y-regreso, cuando define uno
un estilo general para interaccionar. Cuando esto es descrito estrictamente y comúnmente
disponible, es un patrón.

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.

Ejemplos de patrones arquitectónicos incluyen los siguientes:

Programación por capas

Tres niveles

Pipeline

Invocación implícita

Arquitectura en pizarra

Arquitectura dirigida por eventos, Presentación-abstracción-control

Peer-to-peer

Arquitectura orientada a servicios

Objetos desnudos

Modelo Vista Controlador

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.

Material Básico pág. 3


Paradigmas de Programación – Unidad I

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.

Patrón de Arquitectura por Capas


El patrón de arquitectura por capas es una de las técnicas más comunes que los arquitectos
de software utilizan para dividir sistemas de software complicados. Esto se ve en arquitectura
de hardware, redes (por ejemplo, FTP funciona encima de TCP, la cual a su vez funciona
encima de IP, y esta sobre Ethernet). Al pensar
un sistema en términos de capas, se imaginan
los principales subsistemas de software
ubicados de la misma forma que las capas de
un pastel, donde cada capa descansa sobre la
inferior. En este esquema la capa más alta
utiliza varios servicios definidos por la inferior,
pero esta última es inconsciente de la superior.
Además, normalmente cada capa oculta las
capas inferiores de las superiores a ésta.
Aunque este último comportamiento algunas
veces es válido obviar. La siguiente figura
muestra un esquema básico de una
arquitectura siguiendo este patrón.

Partir un sistema en capas tiene una cantidad importante de beneficios:

- 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:

Material Básico pág. 4


Paradigmas de Programación – Unidad I

- No todo es encapsulado de la mejor manera en un modelo de capas. Como resultado


se pueden generar algunas veces cambios en cascada.
- Demasiadas capas pueden generar problemas de rendimiento.

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.).

Material Básico pág. 5


Paradigmas de Programación – Unidad I

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

Material Básico pág. 6

También podría gustarte