Mostrando las entradas con la etiqueta oo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta oo. Mostrar todas las entradas

viernes, 8 de agosto de 2008

oo: Patrones

Que es un Patron?

Es conocida la existencia de los llamados "Patrones" por la gran mayoria de los involucrados en el desarrollo de software. Quien paso por alguna facultad, tuvo la necesidad de consultar el famoso libro "Design Patterns: Elements of Reusable Object-Oriented Software" de "The Gang of Four" (GoF) o escucho sobre POSA.

La definicion mas conocida de Patron dice que es aquella solucion establecida para un problema recurrente en un cierto contexto.

En el primer volumen de POSA, el conocido libro "Pattern-Oriented Software Architecture: A System of Patterns", incluye una definicion mas completa, que surge a partir de la definicion del termino "Patron" dada por Christopher Alexander:
"Cada patron es una regla de tres partes, la cual expresa una relacion entre un cierto contexto, un problema y una solucion.
Como elemento del mundo, cada patron es una relacion entre un cierto contexto, un cierto sistema de fuerzas que ocurren repetidamente en ese contexto, y una cierta configuracion espacial que permite que esas fuerzas se resuelvan entre si.
Como elemento del lenguage, un patron es una instruccion, la cual muestra como esta configuracion espacial puede ser usada, una y otra vez, para resolver un sistema de fuerzas, donde sea que el contexto lo permite.
Un patron es, en resumen, al mismo tiempo una cosa, la cual ocurre en el mundo, y una regla nos dice como recrear esa cosa, y cuando debemos crearla. Es a la vez, un proceso y una cosa: ambas una descripcion de algo vivo, y una descripcion del proceso que lo genera.
"
Ahora la definicion de Patron segun POSA:
"Un patron de software describe un problema de diseno recurrente que ocurre en contexto de diseno especificos, y presenta un esquema generico bien establecido para solucionarlo. El esquema de solucion se especifica mediante la descripcion de sus componentes constitutivos, sus responsabilidades y relaciones, y las formas en las cuales colaboran."
Se parece mucho a lo que ya conocemos, verdad?

Como se define un Patron?

Un Patron queda definido por un esquema compuesto por tres partes:
  • Contexto: es aquella situacion que lleva a un problema
    Debe describir todas aquellas situaciones en las cuales ocurre el problema. Esto resulta imposible, por lo que se espera que se una descripcion tan generica como sea posible o la enumeracion de las situaciones en las cuales el problema ocurre.

  • Problema: es aquel problema recurrente que ocurre en el contexto dado
  • Solucion: es la forma establecida que resuelve el problema
Categorias

Existen diversos tipos de patrones. Es posible agruparlos mediante las siguientes categorias:
  • Patrones de arquitectura
    • Estructura
    • Sistemas Distribuidos
    • Sistemas Interactivos
    • Sistemas Adaptables
  • Patrones de diseno
    • de Creacion
    • de Estructura
    • de Comportamiento
Patrones de Arquitectura

Los patrones de arquitectura mas conocidos son los presentados en POSA 1:
  • Estructura
    • Layers
    • Pipes and Filters
    • Blackboard
  • Sistemas Distribuidos
    • Broker
  • Sistemas Interactivos
    • Model-View-Controller
    • Presentation-Abstraction-Control
  • Sistemas Adaptables
    • Microkernel
    • Reflection
Patrones de diseno

Los patrones de diseno mas importantes son los presentados por GoF (aunque existen otros muy utiles presentados por Java EE y Martin Fowler):
  • Creacion
  • Estructura
  • Comportamiento
Vinculos:

domingo, 22 de junio de 2008

oo: El Metodo Booch

Es una metodologia ampliamente utilizada en el analisis y diseno de software y fue creada por Booch durante su desempeno en Rational Software Corporation.

El metodo define diferentes modelos para describir un sistema, soportando el desarrollo iterativo e incremental. El metodo tambien incluyo seis(6) tipos de diagramas:
  • De clases
  • De objetos
  • De transicion de estados
  • De modulos
  • De procesos
  • De interaccion
Diversos aspectos del Metodo Booch fueron incorporados mas tarde por RUP.

Vinculos:

oo: ObjectOry y OOSE

ObjectOry es una metodologia basada en el paradigma de orientacion a objetos, creada por la compania Objectory Systems, fundada en 1987 por Jacobson. Es una extension de lo que se conoce como Metodo Ericsson, un lenguaje de modelado de objetos creado por la compania Ericsson.

Durante 1991, Ericsson adquiere gran parte de Objectory Systems, creando la subsidiaria Objectory AB. En 1995, Rational Software Corporation adquiere dicha subsidiaria.

Object-Oriented Software Engineering (OOSE) es la metodologia para el analisis y diseno de software desarrollada por Jacobson en 1992 durante su participacion en la compania Objectory AB. Es la primera metodologia que emplea Casos de Uso en el analisis de software.

Cuando en 1995 Rational Software Corporation adquiere Objectory AB, OOSE es empleado como parte de la base que funda lo que se conoce como Rational Unified Process (RUP).

Vinculos:

oo: Object Modelling Technique (OMT)

OMT es un lenguaje de modelado de objetos orientado al analisis y diseno de software. Fue creado durante 1991 por Rumbaugh, entre otros, como una herramienta para el desarrollo de sistema basados en el paradigma de orientacion a objetos.

OMT es el predecesor de Unified Modelling Language (UML) y muchos elementos introducidos por OMT fueron heredados por UML.

Vinculos: