Está en la página 1de 11

Universidad Centroccidental “Lisandro Alvarado”

Decanato de Ciencias y Tecnología


Departamento de Sistemas
Laboratorio I

Unidad II

Patrones de Software

Coordinación de Laboratorio
Patrones

¿Qué es un Patrón?
Un patrón es un modelo que
podemos seguir para realizar
algo.

Los patrones surgen de la


experiencia de seres humanos
de tratar de lograr ciertos
objetivos.

Los patrones capturan la


experiencia existente y probada
para promover buenas prácticas
prácticas.

Coordinación de Laboratorio
Patrones
En los años 70 el arquitecto Christopher
Alexander aplicó el concepto de patrones a la
arquitectura, creó y validó el término lenguaje de
patrón: un método estructurado que pone la
arquitectura al alcance de personas no
especializadas profesionalmente en la materia, y
que popularizó en su libro “A Pattern Language”.

Alexander afirma: “Cada patrón describe un problema que ocurre infinidad de


veces en nuestro entorno, así como la solución al mismo, de tal manera que
podamos utilizar esta solución un millón de veces más adelante, sin tener que
volverla a pensar otra vez”.

Los lenguajes de patrones prometen evitarnos reinventar la rueda a la par que dan
soluciones excelentes a problemas comunes.
comunes

Coordinación de Laboratorio
Patrones

Patrón

“Una unidad de información nombrada, instructiva e intuitiva que


captura la esencia de una familia exitosa de soluciones probadas a un
problema recurrente dentro de un cierto contexto”.

“Una idea que ha sido útil en un contexto práctico y probablemente


lo será en otros”. Martin Fowler
Fowler.

El patrón es, en resumen, al mismo tiempo algo, que pasa en el


mundo, y la regla que nos dice como crear ese algo y cuando
debemos crearlo. Christopher Alexander.

Coordinación de Laboratorio
Patrones de Software

El reciente interés del mundo del software por los


patrones tiene su origen a partir de 1995, tras la
aparición y el éxito del libro Design Patters:
Elements of Reusable Object-Oriented
Oriented Software
de la pandilla de los cuatro, Gang of Four, GoF.

Ellos, Erich Gamma, Richard Helm, Ralph Johnson


y John Vlissides, se dedicaron a recopilar una serie de
patrones aplicados habitualmente por expertos
diseñadores de software orientado a objetos, lo cual
originó que los patrones de diseño se convierten en
imprescindibles para todos los diseñadores y
desarrolladores de software Orientado a Objetos.

Coordinación de Laboratorio
Patrones de Software

Los patrones para el desarrollo de software son uno de los últimos avances
de la Tecnología Orientada a Objetos
Objetos.
En ingeniería del software, un patrón es una solución ya probada y aplicable a
un problema que se presenta una y otra vez en el desarrollo de distintas
aplicaciones y en distintos contextos
contextos. Un patrón no es en general una solución
en forma de código directamente "listo para usar", sino más bien una
descripción de cómo resolver el problema y de ante qué circunstancias es
aplicable.
Las metodologías Orientadas a Objetos tienen como uno de sus principios “no
reinventar la rueda” para la resolución de diferentes problemas. Por lo tanto los
patrones se convierten en una parte muy importante para poder conseguir la
reutilización.
El objetivo de los patrones es crear un lenguaje común a una comunidad de
desarrolladores para comunicar experiencia sobre los problemas y sus
soluciones.

Coordinación de Laboratorio
Patrones de Software

Sistema de Patrones

Un sistema de patrones mantiene unidos


a sus patrones. Describe la forma en que
se conectan y cómo se complementan
entre ellos.
Un sistema de patrones facilita el uso
eficaz de los patrones en el desarrollo de
software.
Se puede decir que un sistema de
patrones es una colección de patrones,
junto con las guías para su
implementación, combinación y uso
práctico en el desarrollo de software
software.

Coordinación de Laboratorio
Patrones de Software

Características de un Buen Patrón

Son soluciones concretas.


Resuelve un problema.
Es un concepto probado.
Se utilizan en situaciones frecuentes
frecuentes.
Describe participantes y su relación entre ellos.
Favorecen la reutilización de código
código.
Promueven buenas prácticas de programación.
Facilita el aprendizaje condensando conocimiento ya existente.
Formalizan un vocabulario común entre diseñadores.

Coordinación de Laboratorio
Patrones de Software

¿ Por qué usar Patrones ?


Ayudan en la construcción de software basados en la experiencia colectiva de
hábiles ingenieros de software.
Capturan conocimientos y experiencias existentes y bien probadas en el
desarrollo de software y promueven buenas prácticas de diseño y
programación. Haciendolas accesibles a desarrolladores y analistas menos
expertos o principiantes.
Cada patrón trata con un problema específico recurrente en el diseño o la
implementación de un sistema de software.
Los patrones identifican y especifican abstracciones que están por encima de
simples clases e instancias, o de componentes
componentes.
Formalizan un vocabulario común que ayuda a diseñadores y desarrolladores
a comunicarse mejor.

Coordinación de Laboratorio
Patrones de Software

Tipos de Patrones
Existen varios tipos de patrones, dependiendo del nivel de abstracción, del contexto
particular en el cual aplican o de la etapa en el proceso de desarrollo:

Coordinación de Laboratorio
Patrones de Software
Patrones de Arquitectura:

 Expresan una organización o esquema estructural para sistemas software.


 Proporcionan un conjunto de subsistemas predefinidos, especifica sus
responsabilidades, e incluye una guía para organizar las relaciones entre
ellos.

Patrones de Diseño:
 Define,
 Define,abstrae
abstraeee identifica
identifica los
los aspectos
aspectosclave
clave
dede
unauna
estructura
estructura
de diseño
de diseño
común,
común,lolo que
que los
loshace
haceútiles
útiles
parapara
crearcrear
un diseño
un diseño
orientado
orientado
a objetos
a objetos
reutilizable.
reutilizable.
 Identifica
 Identifica
laslasclases
claseseeinstancias
instanciasparticipantes,
participantes, sus roles
roles yycolaboraciones
colaboracionesy ylala
distribución
distribucióndederesponsabilidades
responsabilidades.
responsabilidades.

Idiomas:

 Son específicos del lenguaje de programación.


 Describen cómo implementar ciertos aspectos de un problema utilizando las
características y facilidades de un lenguaje de programación dado.

Coordinación de Laboratorio

También podría gustarte