Patrones de Arquitectura,

Patrones de Diseño y

Modismos (Idioms)

Carolina Jiménez Gómez

Patrones

La historia de los patrones de software no comienza con un científico de la computación, sino

con un arquitecto constructor, Christopher Alexander, quien reconoció que siempre que se diseñaba un edificio era reconocible un conjunto de problemas recurrentes. Definió éstos y sus soluciones como patrones.

Cada patrón describe un problema que ocurre una y otra vez en nuestro ambiente, y luego describe el

núcleo de su solución en forma tal que es posible usarla un millón de veces sin elaborarla dos veces

de la misma forma.

Christopher Alexander

¿Por qué usarlos?

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

Plantilla de Patrones

  • Nombre del patrón
  • Clasificación del patrón
  • Intención
  • También conocido como
  • Motivación
  • Aplicabilidad
  • Estructura
  • Participantes
  • Colaboraciones
  • Consecuencias
  • Implementación
  • Código de ejemplo
  • Usos conocidos
  • Patrones relacionados

Patrones de Arquitectura

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.

Patrones de Arquitectura

Esquema de un patron segun Buschmann:

 

  • Contexto
  • Problema
  • Solucion

Patrones de Arquitectura

Los patrones arquitectónicos son la descripción de un problema particular y recurrente de diseño, que aparece en

contextos de diseño específico, y presenta un esquema genérico demostrado con éxito para su solución.

La selección de un

patrón arquitectónico es una decisión fundamental de diseño en el

desarrollo de un sistema de software.

  • Programación por capas
  • Tres niveles
  • Pipeline
  • Invocación implícita
  • Arquitectura en pizarra
  • Arquitectura dirigida por eventos
  • Peer-to-peer
  • Arquitectura orientada a servicios
  • Objetos desnudos
  • Modelo Vista Controlador

Patrones de Arquitectura

Se enfocan a problemas asociados con el desarrollo de subsistemas y componentes, así como a la manera en la que se comunican entre sí y su ubicación dentro de una arquitectura mayor.

Patrones de Diseño

Su aplicación no tiene efectos en la estructura fundamental del sistema, pero sí sobre la de un subsistema, debido a que especifica a un mayor nivel de detalle, sin llegar a la implementación, el comportamiento de los componentes del subsistema.

Patrones de Diseño

Buschman

Comparación

Patrones de Diseño

Categorías

  • Creacionales (Object Pool, Abstract Factory, Builder, Factory Metod, Prototype, Singleton, MVC)
  • Estructurales (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Module)
  • De Comportamiento (Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor)
class ConcreteCreator extends Creator{
    protected Product factoryMethod(){
        return new ConcreteProduct();
    }
}

interface Product{...}

class ConcreteProduct implements Product{...}

public class Client{
    public static void main(String args[])
    {
        Creator unCreator = new ConcreteCreator();
        unCreator.factoryMethod();
    }
}

Patrones de Diseño

Factory Method

Describen la forma de implementar todo un algoritmo específico o una parte de él en un nivel de abstracción más bajo, o bien una estructura de datos, para un componente de software en el contexto de un lenguaje de programación específico.

Idioms

Gracias

Bibliografia

  • Arquitectura y diseño de Sistemas. Lic. Ariel Trellini. Departamento de Ciencias e Ingeniería de la Computación. Universidad Nacional del Sur.

  • ARQUITECTURAS DE SOFTWARE, GUÍA DE ESTUDIO.

    ERIKA CAMACHO, FABIO CARDESO, GABRIEL NUÑEZ.

  • Wikipedia
  • Ingeniería de software enfoque práctico.
  • Design Pattern. Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Addison Wesley.

Patrones (Ingeniería del Software)

By Carolina Jimenez Gomez

Patrones (Ingeniería del Software)

  • 405