Вы находитесь на странице: 1из 19

Qu es un Patrn de Diseo? Qu es un Patrn de Diseo?

Esta fue la primer pregunta que me hice cuando comenc a investigar sobre este tema. Al principio no tena mucha idea de por dnde comenzar, por lo que mi primera reaccin fue realizar una bsqueda en Internet y obtener de esta manera alguna base sobre la cual apoyarme. La definicin que ms me gust fue la siguiente: Los patrones de diseo son el esqueleto de las soluciones a problemas comunes en el desarrollo de software. En otras palabras, brindan una solucin ya probada y documentada a problemas de desarrollo de software que estn sujetos a contextos similares. Debemos tener presente los siguientes elementos de un patrn: su nombre, el problema (cuando aplicar un patrn), la solucin (descripcin abstracta del problema) y las consecuencias (costos y beneficios). Grande fue mi sorpresa al averiguar que existen varios patrones de diseo popularmente conocidos, los cuales se clasifican como se muestra a continuacin: Patrones Creacionales: Inicializacin y configuracin de objetos. Patrones Estructurales: Separan la interfaz de la implementacin. Se ocupan de cmo las clases y objetos se agrupan, para formar estructuras ms grandes. Patrones de Comportamiento: Ms que describir objetos o clases, describen la comunicacin entre ellos. Veamos un poco en qu consisten los distintos tipos de patrones, cules son sus fines y qu beneficios nos aportan. Principio de la pgina Patrones Creacionales Fbrica Abstracta ( Abstract Factory ) El problema a solucionar por este patrn es el de crear diferentes familias de objetos, como por ejemplo la creacin de interfaces grficas de distintos tipos (ventana, men, botn, etc.). Mtodo de Fabricacin ( Factory Method ) Parte del principio de que las subclases determinan la clase a implementar. public class ConcreteCreator extends Creator { protected Product FactoryMethod() { return new ConcreteProduct(); } } public interface Product{} public class ConcreteProduct implements Product{} public class Client { public static void main(String args[]) { Creator UnCreator; UnCreator = new ConcreteCreator(); UnCreator.AnOperations(); } } Prototipado ( Prototype ) Se basa en la clonacin de ejemplares copindolos de un prototipo. Singleton Restringe la instanciacin de una clase o valor de un tipo a un solo objeto. public sealed class Singleton { private static volatile Singleton instance; private static object syncRoot = new Object(); private Singleton()

{ System.Windows.Forms.MessageBox.Show("Nuevo Singleton"); } public static Singleton GetInstance { get { if (instance == null) { lock(syncRoot) { if (instance == null) instance = new Singleton(); } } return instance; } } } MVC ( Model View Controler ) Este patrn plantea la separacin del problema en tres capas: la capa model, que representa la realidad; la capacontroler , que conoce los mtodos y atributos del modelo, recibe y realiza lo que el usuario quiere hacer; y la capa vista, que muestra un aspecto del modelo y es utilizada por la capa anterior para interaccionar con el usuario. Principio de la pgina Patrones Estructurales Adaptador (Adapter): Convierte una interfaz en otra. Puente (Bridge): Desacopla una abstraccin de su implementacin permitiendo modificarlas independientemente. Objeto Compuesto (Composite): Utilizado para construir objetos complejos a partir de otros ms simples, utilizando para ello la composicin recursiva y una estructura de rbol. Envoltorio (Decorator): Permite aadir dinmicamente funcionalidad a una clase existente, evitando heredar sucesivas clases para incorporar la nueva funcionalidad. Fachada (Facade): Permite simplificar la interfaz para un subsistema. Peso Ligero (Flyweight): Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con informacin idntica. Apoderado (Proxy): Un objeto se aproxima a otro. Principio de la pgina Patrones de Comportamiento Cadena de responsabilidad (Chain of responsibility): La base es permitir que ms de un objeto tenga la posibilidad de atender una peticin. Orden (Command): Encapsula una peticin como un objeto dando la posibilidad de deshacer la peticin. Intrprete (Interpreter): Intrprete de lenguaje para una gramtica simple y sencilla. Iterador (Iterator): Define una interfaz que declara los mtodos necesarios para acceder secuencialmente a una coleccin de objetos sin exponer su estructura interna. Mediador (Mediator): Coordina las relaciones entre sus asociados. Permite la interaccin de varios objetos, sin generar acoples fuertes en esas relaciones. Recuerdo (Memento): Almacena el estado de un objeto y lo restaura posteriormente. Observador (Observer): Notificaciones de cambios de estado de un objeto. Public Class Articulo Delegate Sub DelegadoCambiaPrecio(ByVal unPrecio As Object) Public Event CambiaPrecio As DelegadoCambiaPrecio

Dim _cambiaPrecio As Object Public WriteOnly Property Precio() Set(ByVal value As Object) _cambiaPrecio = value RaiseEvent CambiaPrecio(_cambiaPrecio) End Set End Property End Class Public Class ArticuloObservador Public Sub Notify(ByVal unObjecto As Object) Console.WriteLine("El nuevo precio es:" & unObjecto) End Sub End Class Estado (Server): Se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo. Estrategia (Strategy): Utilizado para manejar la seleccin de un algoritmo. Mtodo plantilla (Template Method): Algoritmo con varios pasos suministrados por una clase derivada. Visitante (Visitor): Operaciones aplicadas a elementos de una estructura de objetos heterognea. Principio de la pgina Conclusin Como vern, si es que este artculo logr ilustrar sobre las distintas categoras y tipos de patrones de diseo, no debemos reinventar la rueda en varias de nuestras aplicaciones. Hay mucho trabajo ya realizado, testeado y aceptado que en un entorno similar a mi problema ya aporta una solucin satisfactoria. Para qu voy a inventar un ladrillo si ya otro lo hizo y el mismo ya fue usado en la edificacin de millones de estructuras con xito? Quienes deseen ampliar su conocimiento respecto a este tema pueden consultar la bibliografa adjunta. Adems, les comento que Microsoft no es ajeno a todo este movimiento; ms an, es conciente de la importancia del mismo y tiene sus comentarios e ideas al respecto. El tema se reduce a una cuestin de enfoque; en el siguiente diagrama puede verse cmo presenta Microsoft su concepcin de patrones de diseo (Ver Figura 1):

Figura 1: Marco de Patrones segn Microsoft. Volver al texto. En el diagrama de la Figura 1, Microsoft sostiene que las columnas de la tabla son enfoques o puntos de vista de la solucin, mientras que las filas representan los niveles de abstraccin. Un ejemplo muy conocido en el ambiente de desarrollo Web es el patrn de diseo de capas (layers), el cual plantea la separacin de una aplicacin en una capa de presentacin, una de negocio y una de datos. En un futuro artculo abordaremos un interesante concepto o paradigma, el de los ANTI- Patrones, acerca del cual tom conocimiento durante mi investigacin sobre Patrones de Diseo. Bibliografa Los patrones de diseo son la base para la bsqueda de soluciones a problemas comunes en el desarrollo de software y otros mbitos referentes al diseo de interaccin o interfaces. Un patrn de diseo resulta ser una solucin a un problema de diseo. Para que una solucin sea considerada un patrn debe poseer ciertas caractersticas. 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 diseo en distintas circunstancias. Microsoft SQL Server Microsoft SQL Server es un sistema para la gestin de bases de datos producido porMicrosoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL yANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL oMySQL. Caractersticas de Microsoft SQL Server[editar editar fuente]
Historia de versiones

Versin

Ao

Nombre de la versin

Nombre clave

1.0 (OS/2)

1989

SQL Server 1-0

SQL

4.21 (WinNT)

1993

SQL Server 4.21

SEQUEL

6.0

1995

SQL Server 6.0

SQL95

6.5

1996

SQL Server 6.5

Hydra

7.0

1998

SQL Server 7.0

Sphinx

1999

SQL Server 7.0 OLAP Tools

Plato

8.0

2000

SQL Server 2000

Shiloh

8.0

2003

SQL Server 200064-bit Edition

Liberty

9.0

2005

SQL Server 2005

Yukon

10.0

2008

SQL Server 2008

Katmai

10.50

2010

SQL Server 2008 R2

Kilimanjaro

11.0

2012

SQL Server 2012

Denali

Soporte de transacciones. Soporta procedimientos almacenados. Incluye tambin un entorno grfico de administracin, que permite el uso de comandos DDL y DML grficamente.

Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor y los terminales o clientes de la red slo acceden a la informacin. Adems permite administrar informacin de otros servidores de datos.

Este sistema incluye una versin reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos ms pequeos, que en sus versiones 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita. Es comn desarrollar completos proyectos complementando Microsoft SQL Server y Microsoft Access a travs de los llamados ADP (Access Data Project). De esta forma se completa la base de datos (Microsoft SQL Server), con el entorno de desarrollo (VBA Access), a travs de la implementacin de aplicaciones de dos capas mediante el uso de formularios Windows. En el manejo de SQL mediante lneas de comando se utiliza el SQLCMD, osql, o PowerShell. Para el desarrollo de aplicaciones ms complejas (tres o ms capas),Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor slo est disponible para Sistemas Operativos Programacin[editar editar fuente] T-SQL[editar editar fuente] Artculo principal: T-SQL. T-SQL (Transact-SQL) es el principal medio de interaccin con el Servidor. Permite realizar las operaciones claves en SQL Server, incluyendo la creacin y modificacin de esquemas de la base de datos, la introduccin y edicin de los datos en la base de datos, as como la administracin del servidor como tal. Esto se realiza mediante el envo de sentencias de T-SQL y declaraciones que son procesadas por el servidor y los resultados (o errores) regresan a la aplicacin cliente. Cliente Nativo de SQL[editar editar fuente] Cliente Nativo de SQL es la biblioteca de acceso a datos para los clientes de Microsoft SQL Server versin 2005 en adelante. Implementa nativamente soporte para las caractersticas de SQL Server, incluyendo la ejecucin de la secuencia de datos tabular, soporte para bases de datos en espejo de SQL Server, soporte completo para todos los tipos de datos compatibles con SQL Server, conjuntos de operaciones asncronas, las notificaciones de consulta, soporte para cifrado, as como recibir varios conjuntos de resultados en una sola sesin de base de datos. Cliente Nativo de SQL se utiliza como extensin de SQL Server plug-ins para otras tecnologas de acceso de datos, incluyendo ADO u OLE DB. Cliente Nativo de SQL puede tambin usarse directamente, pasando por alto las capas de acceso de datos. Desventajas[editar editar fuente] En versiones de 32 bits, SQL Server usa Address Windowing Extension (AWE) para hacer el direccionamiento por encima de 4GB. Esto le impide usar la administracin dinmica de memoria, y slo le permite alojar un mximo de 64 GB de memoria compartida. Esta limitacin es exclusiva de sistemas operativos 32 bits; en sistemas operativos 64bits, la memoria mxima que se puede direccionar en Edicin Estandard es 64Gb y en Edicin Enterprise 4Tb. Microsoft SQL Server slo maneja compresin de datos en la Edicin Enterprise. Microsoft SQL Server requiere de un sistema operativo Microsoft Windows, por lo que no puede instalarse, por ejemplo, en servidores Linux. Caractersticas y tareas de la utilidad de SQL Server SQL Server 2012 Los clientes de SQL Server necesitan administrar su entorno de SQL Server en conjunto, requisito cubierto en esta versin por medio del concepto de administracin de aplicaciones y de varios servidores de la Utilidad de SQL Server. Ventajas de la Utilidad de SQL Server

La Utilidad de SQL Server modela las entidades relacionadas con SQL Server de una organizacin en una vista unificada. Los puntos de vista del Explorador de Utilidad y de la Utilidad de SQL Server en SQL Server Management Studio (SSMS) proporcionan a los administradores una vista global del estado de los recursos de SQL Server a travs de una instancia de SQL Server que acta como punto de control de la utilidad (UCP). La combinacin del resumen y los datos detallados presentados por el UCP sobre directivas de infrautilizacin o sobreutilizacin, y sobre diversidad de parmetros clave, habilita posibilidades de consolidacin de recursos y de fcil identificacin de sobreutilizacin. Las directivas de mantenimiento se pueden configurar y ajustarse para modificar umbrales de uso mayor o menor de los recursos. Es posible cambiar las directivas de supervisin globales o configurar directivas de supervisin individuales para cada entidad administrada en la Utilidad SQL Server. Introduccin a la Utilidad de SQL Server El escenario de usuario tpico comienza con la creacin de un punto de control de la utilidad que establece el punto de razonamiento central para la Utilidad SQL Server. El UCP proporciona una vista global del estado de los recursos, tomada de las instancias administradas de SQL Server en la Utilidad SQL Server. Una vez creado el UCP, inscriba instancias de SQL Server en la Utilidad de SQL Server para que el UCP las pueda administrar. Cada instancia de SQL Server y aplicacin de capa de datos administrada por la Utilidad SQL Server se pueden supervisar dependiendo de definiciones de directiva globales o basndose definiciones de directiva individuales. Tareas relacionadas Use los temas siguientes para empezar a trabajar con la utilidad de SQL Server. Descripcin Describe las consideraciones para configurar un servidor que ejecute los conjuntos de recopilacin de la utilidad y que no sean de la utilidad en la misma instancia de SQL Server. Describe cmo crear un punto de control de la Utilidad de SQL Server. Describe cmo conectarse a una Utilidad de SQL Server. Describe cmo inscribir una instancia de SQL Server con un punto de control de la utilidad. Describe cmo usar el Explorador de la utilidad para administrar la Utilidad de SQL Server. Describe cmo supervisar las instancias de SQL Server de la Utilidad de SQL Server. Describe cmo ver los resultados de la directiva de mantenimiento de recursos. Tema Consideraciones para ejecutar conjuntos de recopilacin de la utilidad y que no sean de la utilidad en la misma instancia de SQL Server

Crear un punto de control de la utilidad de SQL Server (utilidad de SQL Server) Conectarse a una utilidad de SQL Server

Inscribir una instancia de SQL Server (Utilidad de SQL Server) Utilizar el explorador de Utilidad para administrar la utilidad de SQL Server Supervisar instancias de SQL Server en la utilidad de SQL Server Ver los resultados de la directiva de mantenimiento de recursos (Utilidad de SQL Server) Modificar una definicin de la directiva de mantenimiento de recursos (utilidad de SQL Server)

Describe cmo modificar una definicin de la directiva de mantenimiento de recursos.

Describe cmo configurar el almacenamiento de datos del UCP.

Configurar el almacenamiento de datos del punto de control de la utilidad (utilidad de SQL Server) Configurar las directivas de mantenimiento (utilidad de SQL Server) Reducir el ruido en las directivas de uso de la CPU (utilidad de SQL Server) Quitar una instancia de SQL Server de la utilidad de SQL Server Cambiar la cuenta de proxy para el conjunto de recopilacin de la utilidad en una instancia administrada de SQL Server (utilidad de SQL Server) Mover un UCP desde una instancia de SQL Server a otra (utilidad de SQL Server) Quitar un punto de control de la utilidad de SQL Server (utilidad de SQL Server) Solucionar problemas de la Utilidad de SQL Server Solucionar problemas de estado de recursos de SQL Server (Utilidad de SQL Server). Explorador de Utilidad (Ayuda F1)

Describe cmo configurar las directivas de mantenimiento de la utilidad. Describe cmo ajustar la atenuacin en las directivas de uso de la CPU. Describe cmo quitar una instancia de SQL Server de un UCP. Describe cmo cambiar la cuenta de proxy para el conjunto de recopilacin de la utilidad en una instancia administrada de SQL Server.

Describe cmo mover un UCP desde una instancia de SQL Server a otra. Describe cmo quitar una instancia de UCP.

Describe cmo solucionar problemas de la Utilidad de SQL Server. Describe cmo solucionar problemas de mantenimiento de recursos de SQL Server. Vnculos a temas de la Ayuda F1 del Explorador de la utilidad. Lo ms destacado de Visual Studio 2013 Preview

El giro fundamental hacia las experiencias en dispositivos y servicios ha modificado el enfoque del sector hacia el desarrollo de software. Consumidores, clientes y empleados ya exigen una nueva generacin de aplicaciones. La demanda se centra en aplicaciones que ofrezcan la mejor experiencia en distintas pantallas y dispositivos, servicios con conexin permanente para obtener los datos que necesitan, seguridad y una evolucin continua. Visual Studio 2013 Preview parte de los avances ya presentes en Visual Studio 2012 y las posteriores actualizaciones de Visual Studio Update para ofrecer la solucin que necesitan los equipos de desarrollo para adoptar esta transformacin y desarrollar y entregar aplicaciones modernas que aprovechen las novedades de la ltima plataforma Windows (Windows 8.1), sin dejar de ofrecer compatibilidad para dispositivos y servicios en el resto de plataformas de Microsoft. A continuacin se ofrecen algunos puntos destacados de esta versin: caractersticas innovadoras para mejorar la productividad de los desarrolladores, compatibilidad con el desarrollo de aplicaciones para Windows 8.1, progresos en desarrollo web, mejoras en la depuracin y optimizacin de cdigo nativo y administrado, y funcionalidad ALM ampliada.Caractersticas innovadoras para mejorar la productividad de los desarrolladores

Visual Studio 2013 Preview incluye numerosas mejoras en la interfaz de usuario que se basan en comentarios de los clientes y el principio de diseo bsico de Microsoft, es decir, no desviar la atencin del contenido que se entrega y una experiencia mejorada para el usuario. Seguramente observar un cambio en los ms de 400 iconos, con una mayor capacidad de diferenciacin y colores ms intensos, una pgina de inicio rediseada y otros cambios sutiles de diseo en todo Visual Studio. Visual Studio 2013 Preview incluye varias mejoras que le ayudarn a ser ms productivo y a mantener la concentracin en el cdigo. Algunas caractersticas aparecieron primero a modo de prueba en la extensin Visual Studio Power Tools, para luego incorporarse a Visual Studio tras su perfeccionamiento. Caractersticas que afectan a la productividad, como la finalizacin automtica de corchetes, la posibilidad de mover lneas o bloques de cdigo con mtodos abreviados de teclado y la navegacin alineada, ahora estn integradas. As mismo, Visual Studio 2013 Preview incluye un nuevo Team Explorer, con una pgina de inicio mejorada que simplifica la navegacin a caractersticas de colaboracin en equipo, como la posibilidad de desacoplar cambios y compilaciones pendientes en una ventana independiente. Cuando se trabaja con archivos de cdigo grandes, puede ser complicado llevar un control de dnde se encuentra. En Visual Studio 2013 Preview, se pueden intercambiar fcilmente los dos modos de comportamiento de la barra de desplazamiento. En modo de barra, se pueden ver anotaciones tales como la posicin del smbolo de insercin, cambiar de posicin y realizar el seguimiento de los errores ms directamente. En modo de mapa, la barra de desplazamiento incluye una vista previa activa del cdigo fuente, as como la posibilidad de desplazarse por encima del cdigo para obtener una vista previa ms detallada en una informacin sobre herramientas. Se puede hacer clic en una posicin exacta en el cdigo para ir a esa ubicacin. Saber lo que hace una lnea de cdigo es una tarea clave durante el desarrollo. Ahora, el comando Ir a definicin va acompaado de la nueva caracterstica de definicin rpida. Con la definicin rpida ya no es necesario abandonar el contexto de la lnea de cdigo para ver una definicin de solo lectura en una vista alineada. Puede salir de la vista alineada sin perder el contexto, o puede abrirla como una ventana completa para obtener una vista editable. Saber lo que hace una lnea de cdigo es solo uno de los muchos retos de un desarrollador. Tambin es necesario conocer su historia, quin trabaj en ella, qu cdigo hace referencia a ella, etc. Este hecho es especialmente desafiante en proyectos de equipo. La caracterstica CodeLens (indicadores de informacin de cdigo) de Visual Studio 2013 Preview usa la informacin de los metadatos del proyecto y Team Foundation Server 2013 Preview para colocar elementos Decorator en cada uno de los mtodos del cdigo que muestran, por ejemplo, qu conjuntos de cambios llevaron a la creacin o al cambio reciente, quin fue la ltima persona que trabaj con el cdigo, qu pruebas unitarias se aplican al mtodo (incluido el ltimo estado de prueba superada/no superada) y qu referencias de cdigo existen. Basta con un clic para desplazarse rpidamente a datos tales como un conjunto de cambios asociado o a un archivo de cdigo al que se haga referencia.

Visual Studio 2013 Preview presenta una experiencia de IDE conectado, que permite conocer y empezar a trabajar con Visual Studio 2013 Preview ms rpidamente. La primera vez que se inicia Visual Studio 2013 Preview, es preciso iniciar sesin con la cuenta de Microsoft, que podra ser la que se usa con las suscripciones de MSDN o Team Foundation Service. Una vez iniciada la sesin, la copia de Visual Studio 2013 Preview quedar registrada para el uso, sin necesidad de pasos adicionales. Visual Studio 2013 Preview tambin sincronizar automticamente la configuracin entre los dispositivos, gracias a la experiencia del IDE conectado. La configuracin que se sincroniza incluye categoras tales como los mtodos abreviados de teclado o la apariencia de Visual Studio (tema, fuentes, etc.), pero el usuario nunca pierde el control, a travs de las opciones de configuracin sincronizada. Compatibilidad con el desarrollo de aplicaciones para Windows 8.1

Visual Studio 2013 Preview ofrece el conjunto de herramientas ideal para crear aplicaciones modernas que saquen el mximo partido a lo ms innovador de la plataforma Windows (Windows 8.1), sin dejar de admitir los dispositivos y servicios de todas las plataformas de Microsoft. La compatibilidad con el desarrollo de aplicaciones para la Tienda Windows en Windows 8.1 Preview incluye numerosas actualizaciones de herramientas, controles y plantillas, la nueva compatibilidad con pruebas de IU codificadas para aplicaciones XAML, el analizador de la capacidad de respuesta de la IU y generador de perfiles de consumo de energa para aplicaciones XAML y HTML, herramientas de generacin de perfiles de memoria mejoradas para aplicaciones HTML e integracin mejorada con la Tienda Windows. Blend para XAML se ha mejorado y ahora incluye importantes funciones para el diseo de aplicaciones de la Tienda Windows, como la incorporacin de reglas y guas personalizadas para un diseo de contenido ms preciso, as como mejoras en la funcionalidad de aplicacin de estilos. Blend para HTML tambin se hace eco de estas mejoras y agrega nueva funcionalidad especfica para compilar aplicaciones de la Tienda Windows con HTML, como la nueva escala de tiempo para la animacin de cambios en CSS. La experiencia de codificacin de aplicaciones de la Tienda Windows ha mejorado en Visual Studio 2013 Preview. El editor XAML incluye avances en IntelliSense, que ahora tambin est disponible para enlace de datos, enlace de plantillas y recursos. Tambin permite una transicin ms productiva entre el marcado de diseo y el cdigo subyacente, incluida la compatibilidad con la bsqueda de referencias, el desplazamiento a las definiciones y el cambio al modelo de vista. Estas y otras mejoras ayudarn a aliviar el trabajo de creacin de aplicaciones de la Tienda Windows. Conectar las aplicaciones de la Tienda Windows es tambin ms fcil gracias a la incorporacin de los Servicios mviles de Windows Azure, que exponen la aplicacin a una variedad de escenarios que permiten, por ejemplo, habilitar fcilmente las notificaciones de insercin, y el almacenamiento y la manipulacin de los datos en la nube. Progresos en desarrollo web Crear sitios web o servicios en la plataforma de Microsoft ofrece muchas posibilidades, como ASP.NET WebForms, ASP.NET MVC, servicios de API web o WCF, etc. En el pasado, para trabajar con cada uno de estos enfoques en Visual Studio, era preciso trabajar con tipos de proyectos diferentes y herramientas exclusivas de la funcionalidad de cada proyecto concreto. La visin de One ASP.NET unifica la experiencia de proyecto web en Visual Studio 2013 Preview de manera que se pueden crear aplicaciones web ASP.NET con los marcos de componentes ASP.NET que se prefiera en un nico proyecto. Esta nueva experiencia unificada incluye la posibilidad de crear fcilmente aplicaciones hbridas con versiones mejoradas de ASP.NET WebForms, API web o MVC, en un nico proyecto. Ahora se pueden combinar las herramientas apropiadas para cada trabajo en los proyectos web, lo que aporta una mayor flexibilidad y productividad al desarrollo web. Si disea pginas web o implementa los diseos de terceros, probablemente invierta una gran parte de su tiempo en retocar el cdigo HTML y CSS al tiempo que actualiza las ventanas del explorador una y otra vez para lograr la experiencia exacta que desea crear. Esto se complica todava ms dada la variedad de exploradores web que pueden usar los visitantes para ver el sitio. Visual Studio 2013 Preview elimina estas idas y venidas mediante el vnculo del explorador, que conecta Visual Studio con uno o varios exploradores modernos abiertos, en una experiencia de desarrollo interactiva, a fin de mantenerlos sincronizados con los cambios que tienen lugar en el marcado sin tener que actualizar los exploradores de forma manual para verlos. Mejoras en la depuracin y optimizacin El nuevo concentrador de rendimiento y diagnstico presente en Visual Studio 2013 Preview ofrece una experiencia unificada para varias herramientas disponibles en Visual Studio. El concentrador tambin facilita la

identificacin de las herramientas de rendimiento y diagnstico que funcionan con un proyecto, que se pueden empezar a usar rpidamente para mejorar la aplicacin. El analizador de volcado de memoria de Visual Studio 2013 Preview simplifica el diagnstico de los problemas de memoria en los entornos de produccin, ya que analiza los volcados de la pila de memoria de .NET directamente desde Visual Studio. Gracias a la nueva funcionalidad de anlisis de memoria, podr solucionar las prdidas de memoria y su uso ineficaz, ya que podr consultar tamaos y recuentos, las instancias de objetos ms grandes y qu los mantiene activos en memoria. Tambin podr comparar dos volcados de memoria para obtener informacin sobre las tendencias de uso de memoria a lo largo del tiempo. Ahora, al depurar las aplicaciones de .NET 4.5.1 de 64 bits en Visual Studio 2013 Preview, dispone de la opcin de editar y continuar que tambin existe para las aplicaciones administradas de 32 bits. As mismo, en V isual Studio 2013 Preview se incluyen mejoras en la depuracin asincrnica en Visual Basic, Visual C#, Visual C++ y JavaScript. Cuando se ejecuta en Windows 8.1, la ventana de pila de llamadas incluye la pila de llamadas lgica si se activa un punto de interrupcin o una excepcin en un mtodo asincrnico. Adems de la compatibilidad con el diagnstico, .NET 4.5.1 incluye otras mejoras, como la compatibilidad con la compactacin a peticin de la pila de objetos grandes de GC o el inicio ms rpido de las aplicaciones cuando se ejecutan en equipos con varios ncleos. En Visual Studio Ultimate 2013 Preview, se pueden diagnosticar errores y problemas de rendimiento en las aplicaciones supervisadas mediante System Center 2012 R2 Operations Manager Preview. Se pueden importar los eventos de excepciones y rendimiento como registro de IntelliTrace (.iTrace) y usar IntelliTrace en Visual Studio con el fin de recorrer paso a paso la ejecucin del cdigo para esos eventos. Adems de caractersticas que mejoran la compatibilidad con C++11, como los constructores de delegacin, los literales de cadena sin formato, los operadores de conversin explcitos y las plantillas varidicas, la depuracin de solo mi cdigo en Visual Studio 2013 Preview hace que trabajar en C++ sea incluso mejor. La posibilidad de filtrar la pila de llamadas hasta llegar al cdigo escrito durante la depuracin existe desde hace tiempo para los lenguajes administrados. Ahora est disponible para C++. PGO (optimizacin guiada por perfiles) es una optimizacin del compilador de Visual C++ en tiempo de ejecucin que aprovecha los datos de perfil recopilados de la ejecucin de escenarios de usuario importantes o centrados en el rendimiento para crear una versin optimizada de una aplicacin. Las herramientas de generacin de perfiles de Visual Studio 2013 Preview proporcionan detalles sobre las decisiones de optimizacin de PGO, lo que ayuda a entender el grado de exactitud con que se corresponden esos datos de perfil y el rendimiento real: se muestra la correspondencia de las rutas de cdigo ms calientes (escenarios de usuario comunes) cuyo perfil se ha generado y las rutas de cdigo ms fras (escenarios de usuario menos comunes) de una aplicacin con respecto al cdigo optimizado por PGO y el grado de dicha correspondencia (tamao o velocidad). Funcionalidad ALM ampliada Visual Studio 2013 Preview incorpora una oleada de nuevas caractersticas de administracin del ciclo de vida de las aplicaciones (ALM) que ayudan a mejorar la productividad y colaboracin de los equipos, gracias a la compatibilidad mejorada con prcticas de desarrollo gil que se pueden ir adoptando gradualmente segn las necesidades de cada organizacin. Caractersticas como la administracin de cartera gil, salas de reuniones, comentarios de cdigo basados en web sobre conjuntos de cambios o confirmaciones de cambios, y la administracin mejorada de casos de prueba basados en web forman parte de una solucin integrada para que el equipo mejore en trminos de colaboracin y productividad.

El ncleo de la funcionalidad ALM de Visual Studio se obtiene de Team Foundation Server, que se puede instalar en un servidor local, o Team Foundation Service, que se hospeda en la nube. Por lo tanto, se puede elegir la opcin que el equipo prefiera: mayor control y personalizacin en una instalacin local o la accesibilidad sin mantenimiento que ofrece la nube. Con la administracin de cartera gil es posible administrar cargas de trabajo grandes y complejas de una manera gil. Se puede definir una jerarqua de trabajos pendientes para conocer el mbito de trabajo de varios equipos y ver cmo ese trabajo se acumula para derivar en iniciativas de mayor calado. Las salas de reuniones ofrecen un rea para albergar y capturar la comunicacin entre los miembros del equipo, cerca y lejos. En una sala de reuniones se puede hablar sobre el trabajo en curso, plantear preguntas, compartir el estado y aclarar problemas a medida que surjan. La sala de reuniones es el mecanismo de alimentacin de la actividad de los proyectos de equipo para mantener al equipo informado de cundo se protege el cdigo, su estado de compilacin, la asignacin de trabajo, etc. Al usar la sala de reuniones en lugar del correo electrnico, se recibe automticamente una traza de auditora de las conversaciones y decisiones, que se puede revisar y consultar en cualquier momento. Para cada proyecto se crea una sala de reuniones de manera predeterminada. Sin embargo, se pueden crear otras salas de reuniones adicionales para facilitar los debates ad hoc y la colaboracin entre equipos. Ahora, Team Foundation Server 2013 Preview admite los repositorios Git. Adems, se puede usar el explorador de control de versiones web de Visual Studio 2013 Preview para crear o responder a comentarios sobre conjuntos de cambios, conjuntos de cambios aplazados o confirmaciones Git para participar en conversaciones con su equipo sobre los cambios del cdigo fuente. Tambin es fcil encontrar los comentarios con el filtro del explorador de versiones. Gracias a la compatibilidad con las pruebas de carga en la nube de Team Foundation Service, se pueden generar, en cuestin de segundos, pruebas de escala que utilicen los recursos elsticos de Windows Azure para ejecutar las solicitudes de miles de usuarios virtuales. Esto le proporcionar una visin de los cuellos de botella de rendimiento de las aplicaciones y servicios web sin las molestias asociadas a la administracin de hardware o un laboratorio virtual. Las mejoras en la administracin de casos de prueba web permiten crear o administrar los planes y conjuntos de pruebas directamente desde la interfaz web. Tambin se pueden ejecutar pruebas desde sistemas operativos que no sean Windows, a travs de cualquier explorador web moderno, lo que permite a los evaluadores mantener su productividad sea cual sea su entorno de trabajo. Lanzamiento de aplicaciones con Visual Studio 2013 Preview Para qu esperar? Descargue y comience a usar Visual Studio 2013 Preview hoy mismo y pruebe las herramientas y los servicios que necesita para crear aplicaciones fabulosas que superarn las expectativas de todo el mundo. Visual Studio 2013 Preview y .NET Framework 4.5.1 Preview cumplen nuestros altos estndares de software en versin preliminar, por lo que puede usarlos para disear, desarrollar, probar e implementar aplicaciones en entornos tanto de pruebas como de produccin. Antes de usar una versin Preview, debe revisar y cumplir los Trminos de licencia del software de Microsoft que acompaan a la instalacin de la edicin que desee usar, donde se describen sus derechos de uso y las posibles limitaciones asociadas con la versin Preview en las aplicaciones que desarrolle tanto para usarlas en su entorno de produccin interno como para distribuirlas a terceros.

Obtencin de soporte tcnico y notificacin de problemas MSDN Forums - Para interactuar con otros usuarios de la comunidad que utilizan esta versin preliminar de software, incluidos los MVP de Microsoft y los miembros del equipo de producto

Microsoft Connect - Para notificar y realizar el seguimiento de problemas, buscar problemas notificados por otros usuarios y encontrar posibles respuestas Microsoft Support - Estaremos encantados de ofrecerle soporte tcnico para ayudarle con Visual Studio 2013 Preview y .NET 4.5.1 Preview en un entorno de produccin. En algunos casos, puede ser necesario instalar alguna revisin, recurrir a alguna solucin alternativa o instalar una versin de compilacin posterior. El soporte tcnico asistido est disponible en ingls y japons.

Visual Basic es una aplicacin y un lenguaje de programacin desarrollados por Alan Cooper paraMicrosoft. Se origina en el clsico lenguaje BASIC. La primera versin sali en 1991 en un entorno relativamente sencillo para facilitar la creacin de programas grficos. Visual Basic, como su nombre lo indica, utiliza una interfaz totalmente visual. Actualmente, los programas creados en Visual Basic slo funcionan en Windows. La aplicacin Visual Basic, permite crear ventanas, botones, mens, etc. de forma sencilla con solo arrastrar y soltar los elementos. Luego se pueden definir las apariencias, posiciones y comportamientos tanto de forma visual como utilizando cdigos de programacin. Este lenguaje toma elementos de diferentes paradigmas como el orientado a objetos y el orientado a eventos. Visual Basic suele considerarse un sistema RAD (Rapid Application Development), porque permite crear aplicaciones de forma rpida, especialmente para prototipos.
CRNICA DEL LANZAMIENTO VISUAL STUDIO 2012 EN MADRID Visual Studio 2012 ya est en el mercado. Los compaeros de Globe asistieron al lanzamiento de Visual

Studio 2012 que Microsoft lanz el da 2 de Octubre en Madrid. La empresa apuesta por esta aplicacin como la gran revolucin tecnolgica de 2012 para unir el mundo de la gestin con el mundo de la programacin. Para este destacado evento Microsoft ha contado con los ms importantes directores de tecnologa y ALM de las empresas ms destacadas en distintos sectores y con reputados partners entre los que se encuentra Globe. Visual Studio 2012 hace de su propio lema el concepto continuo entendido como la mejora continua, el feedback continuo, el progreso continuo. Para ello, Visual Studio 2012 quiere facilitar el ciclo de vida tanto a las aplicaciones ya existentes con las que cuentan las empresas como a aquellas aplicaciones futuras que les ayudarn a mejorar sus procesos, ya sean aplicaciones de negocio o aplicaciones dirigidas al consumo, o dicho en otras palabras, facilita el desarrollo de aplicaciones y mejora la gestin del ciclo de vida (ALM). Visual Studio 2012 tiene como principal objetivo dar servicio a multitud de dispositivos y todo ello realizarlo de forma continua. Para ello, Visual Studio 2012 quiere aportar soluciones a todo el proceso de ciclo de vida de una aplicacin desde la definicin hasta la produccin. Ante los problemas que en ALM se presentan en la fase de definicin del proyecto, tan comunes como no haber entendido correctamente los requisitos mnimos o la no priorizacin de objetivos, VS 2012 propone un storyboarding continuo para alinear requisitos al mismo tiempo que se convierte en una herramienta de planificacin gil. No es nicamente en la fase de definicin en la que pueden surgir las dificultades. La prdida de foco, dejar la calidad a posteriori o que las expectativas no se hayan cumplido son los problemas ms frecuentes en la fase de desarrollo. Para ellos, VS 2012 propone, respectivamente, una mejora de la productividad de desarrollo, integrar el testing y el desarrollo y la necesidad de un feedback continuo del negocio que se quiere desarrollar. Ya en la tercera fase, la denominada produccin nos encontramos ante la dificultad de mover el cdigo a produccin, la nueva herramienta de Microsoft formula su solucin como Build-deploy- test automtico. Por ltimo, VS 2012, plantea el sistema IntelliTrace en produccin para diagnosis accionable de forma que podamos solventar las incidencias en produccin difciles de identificar. En sintona con su propio lema, Visual Studio 2012 se compromete a entregar de forma continua nuevas capacidades para la mayor satisfaccin del usuario. Visual Studio 2012 se convierte en una entrega continua de valor en el ciclo ALM.

Entre las exitosas ponencias de los partners de Microsoft destacamos la de Luis Fraile Habilitando la calidad

continua en la que se dirigi al pblico para solventar los principales problemas que nos encontramos en la fase de desarrollo de una aplicacin. Nuestro compaero de Globe y experto en ALM, que cuenta con el reconocido ttulo Most Valuable Professional (MVP) de Microsoft, expuso con gran acierto las principales caractersticas de la calidad continua. No se puede entender calidad continua si la aplicacin no cumple con el propsito con el que se cre, si no aporta valor al proceso ALM y al cliente, si no se percibe y por ltimo si no se recibe feedback del usuario, caractersticas que nos ellas el proceso ALM to tendra xito. Por ltimo, Luis Fraile, aport la visin estratgica sprints review valioso concepto que consiste en tomar decisiones sobre lo que va a venir, es decir, en anticiparse al futuro. POSTED IN AGILE, ALM PATRONES

1. Introduccin Los casos de usos se han llegado a convertirse en la base de muchas metodologas de desarrollo orientadas a objetos. Estos generalmente proporcionan el fundamento y el punto de partida para el resto de los procesos de anlisis y desarrollo. Un caso de uso es una secuencia de transacciones en un sistema cuya tarea es producir un valor medible de un actor individual del sistema. Uno de los aspectos ms importantes de los casos de uso especfica la funcionalidad completa de un sistema. Por otra parte el uso de patrones para el desarrollo de software establece la diferencia entre un buen y un mal diseo orientado a objetos. Un patrn es un fragmento nombrado de informacin instructiva, que captura la estructura esencial y la visin interna de una familia de soluciones con probado xito sobre un problema recurrente que surge dentro de un cierto contexto y fuerzas de sistema. En otras palabras, rehusar soluciones que funcionaron bien una vez. 2. Qu es un patrn? En programacin orientada a objetos se entiende por patrn una solucin probada que se puede aplicar con xito a un determinado tipo de problemas que aparecen repetidamente en el desarrollo de sistemas software . Los patrones no son una librera. Van ms bien en la lnea de un esqueleto bsico que cada desarrollador luego adapta a sus necesidades y a las peculiares caractersticas de su aplicacin. Se describen fundamentalmente en forma textual, acompaada de diagramas y de seudo-cdigo. Definiciones: Un patrn es un pedazo de informacin con nombre, instructivo y significante, que captura la esencia de una familia exitosa y completa de soluciones a un problema recurrente en un contexto dado Brad Appleton Cada patrn es una regla de tres partes, la cual expresa una relacin entre un context o dado, un conjunto de fuerzas que ocurren repetitivamente en ese contexto y cierta configuracin de software que permite a esas fuerzas resolverse por si mismas Richard Gabriel Cada patrn es una regla de tres partes, la cual expresa una relacin entre un cierto contexto, un problema y una solucin. El patrn es, resumiendo, al mismo tiempo una cosa que tiene su lugar en el mundo, y la regla que nos dice cmo crear esa cosa y cundo debemos crearla. Es al mismo tiempo una cosa y un proceso; al mismo tiempo una descripcin de una cosa que tiene vida y una descripcin del proceso que la gener Christopher Alexander, The Timeless Way of Building, 1.979 Un buen patrn debe: Solucionar un problema: Un patrn captura soluciones, no solo principios abstractos o estrategias Es un concepto probado

La solucin no es obvia Describe una relacin: No solo describen mdulos, describen estructuras y mecanismos Tiene un componente humano significante: es esttico y de utilidad James CoplienEstos patrones en nuestras mentes son, ms o menos, imgenes mentales de los patrones en el mundo: son representaciones abstractas de las reglas morfolgicas que definen los patrones en el mundo. Sin embargo, son realmente diferentes. Los patrones en el mundo solo existen. Pero esos mismos patrones en nuestras mentes son dinmicos. Tienen fuerza. Son generativos. Nos dicen qu hacer, cmo se pueden generar y, en ciertas circunstancias, que los debemos crear. Cada patrn es una regla que describe que debemos hacer para generar la entidad que los define Christopher Alexander , The Timeless Way of Building, 1.979 3. Desarrollo histrico El trmino patrn se utiliza inicialmente en el campo de la arquitectura, por Christopher Alexander, a finales de los 70s. Este conocimiento es trasportado al mbito del desarrollo de software orientado por objetos y se aplica al diseo. De all es extrapolado al desarrollo en general y a las dems etapas. Algunos libros que marcan el desarrollo del rea son:

Alexander, Christopher. A Pattern Language: Towns, Buildings, Construction. 1977 Alexander, Christopher. The Timeless Way of Building. 1979 Gamma et al. Design Patterns: Elementos of Reusable Object-Oriented Software. 1994 Bushmann et al. Pattern-Oriented Software Architecture: A System of Patterns. 1996 Coplien y Schmidth. Pattern Languages of Program Design. 1995

Algunos eventos importantes en la historia del tema de patrones en Ingeniera de software son:

1987. Ward Cunningham y Kent Beck escriben sus experiencias de ensear Smalltalk por medio de las ideas de Alexander en Using Pattern Languages for Object-Oriented Programs. 1990. El GoF empiezan la recopilacin de patrones de diseo 1991. Jim Coplien publica su recopilacin de idioms de C++ en Advanced C++ Programming Styles and Idioms.

1994. El GoF publica el libro Design Patterns: Elementos of Reusable Object-Oriented Software.4. Tipos de patrones Existen varios tipos de patrones, dependiendo del nivel de abstraccin, del contexto particular en el cual aplican o de la etapa en proceso de desarrollo. Algunos de estos tipos son: De arquitectura De diseo Idioms De anlisis Para ambientes distribuidos De negocios De procesos y organizacionales

4.1. Patrones de arquitectura Son esquemas fundamentales de organizacin de un sistema software. Especifican una serie de subsistemas y sus responsabilidades respectivas e incluyen las reglas y criterios para organizar las relaciones existentes entre ellos.

Se recogen aqu ocho patrones estructurales, agrupados en cuatro categoras: Del caos a la organizacin Niveles Tuberas y filtros Pizarra Sistemas distribuidos Sistemas interactivos Intermediario o broker MVC: Modelo-Vista-Controlador PAC: Presentacin, Abstraccin, Control Sistemas adaptables Microkernel Reflexin 4.2. Patrones de diseo Son patrones de un nivel de abstraccin menor que los patrones de arquitectura. Estn por lo tanto ms prximos a lo que sera el cdigo fuente final. Su uso no se refleja en la estructura global del sistema. Caractersticas de los patrones de diseo Son soluciones concretas. Un catlogo de patrones es un conjunto de recetas de diseo. Aunque existen clasificaciones de patrones, cada uno es independiente del resto. Son soluciones tcnicas. Dada una determinada situacin, los patrones indican cmo resolverla mediante OO. Hay patrones especficos para un determinado lenguaje y otros de carcter ms general. Se aplican en situaciones muy comunes. Los patrones de diseo proceden de la experiencia, y han demostrado su utilidad resolviendo problemas que aparecen frecuentemente en el DOO. Son soluciones simples. Indican cmo resolver un problema particular utilizando un pequeo nmero de clases relacionadas de forma determinada. No indican cmo disear un determinado sistema sino slo aspectos puntuales del mismo. Facilitan la reutilizacin de las clases y del propio diseo. Los patrones favorecen la reutilizacin de clases ya existentes y la programacin de clases reutilizables. La propia estructura del patrn es reutilizada cada vez que se aplica. El uso de un determinado patrn no se refleja claramente en el cdigo. A partir de la implementacin es difcil determinar que patrn de diseo se ha usado. Referencias a self. Muchos patrones utilizan la delegacin de operaciones y esto provoca el problema del self. Es difcil reutilizar la implementacin de un patrn. Las clases del patrn son roles genricos, pero en la implementacin aparecen clases concretas. Los patrones suponen una sobrecarga de trabajo a la hora de implementar. Se usan ms clases, es necesario delegar mensajes, etc.

Se pueden organizar los patrones segn familias de patrones relacionados . La clasificacin facilita la bsqueda del patrn ms adecuado as como su comprensin . Gamma clasifica los patrones segn dos criterios fundamentales: su propsito y su alcance [Gamma 95]. El propsito refleja lo que realiza el patrn . Los patrones pueden tener propsito de creacin, estructural o de conducta. Los patrones con propsito de creacin conllevan el proceso de creacin de objetos. Los patrones

estructurales tratan de la composicin de clases u objetos. Los patrones de conducta describen las formas en que las clases u objetos interactan o distribuyen responsabilidades. El alcance indica si el patrn aplica principalmente a clases u objetos. Los patrones de clases tratan de relaciones entre clases y sus subclases. Estas relaciones se establecen a travs de la relacin de herencia, por consiguiente son estticas y definidas en tiempo de compilacin. Los patrones de objetos tratan de relaciones entre objetos que pueden ser cambiadas en tiempo de ejecucin y son ms dinmicas. Casi todos los patrones utilizan la herencia de alguna forma. Pero son los patrones de clases los que se focalizan en las relaciones de clase. Los patrones con propsito de creacin y alcance de clase difieren parte de la creacin de objetos a subclases mientras que los patrones con propsito de creacin y alcance de objeto difieren sta a otros objetos. Los patrones estructurales y alcance de clase utilizan la herencia para componer clases, mientras que los patrones estructurales y alcance de objeto describen formas de ensamblado de objetos. Los patrones de conducta con alcance de clase utilizan herencia para describir algoritmos y flujos de control mientras que los patrones de conducta con alcance de objeto describen como un grupo de objetos cooperan para realizar una actividad que un objeto no puede realizar por s solo. La tabla 1 muestra la clasificacin propuesta por Gamma de algunos de los patrones ms utilizadosCreacin actualmente [Gamma 95] Clase Mtodo Fabricacin Fbrica Constructor Prototipo Singleton de

Estructural

De Conducta

Adaptador (clases) Adaptador (objetos) Puente Composicin Decorador Fachada Flyweight Apoderado

Interprete Plantilla

Objeto

Cadena de Responsabilidad Comando Iterador Intermediario Observador Estado Estrategia Visitante Memoria

Tabla 1. Clasificacin de Patrones de Diseo 4.2.1. Ejemplo de patrn de diseo Como ejemplo de patrn de diseo se mostrar el patrn intermediario.

Patrn Intermediario

Este patrn define un objeto que encapsula como un conjunto de objetos interaccionan. El intermediario facilita el acoplamiento mnimo, evitando que los objetos participantes se tengan que referenciar entre ellos explcitamente , con lo que se permite variar su interaccin independientemente. Los objetos participantes solo conocen al intermediario. El desarrollo orientado a objetos potencia el reparto de conducta entre objetos. Tal reparto puede resultar en una arquitectura donde existen mltiples conexiones entre los objetos. En el peor de los casos cada objeto debera conocer a todos los dems. Esto dificulta la reutilizacin. Se puede evitar esta situacin, encapsulando la conducta colectiva en un objeto llamado intermediario. Un intermediario es responsable de controlar y coordinar las interacciones de un grupo de objetos. Esto puede ser til como se ver en el ejemplo de interacciones entre elementos grficos. La estructura del patrn siguiendo la notacin OMT para el diagrama de clases es como sigue:

Figura 1. Patrn Intermediario


Un ejemplo de utilizacin de este patrn es la implementacin de cajas de dialogo en una interfaz grfica . Una

caja de dialogo utiliza una ventana para presentar una coleccin de elementos grficos tales como botones, mens o campos de entrada. Frecuentemente existen dependencias entre los elementos grficos en el dialogo. Por ejemplo un botn esta inhabilitado cuando cierto campo de entrada esta vaco. Seleccionando una entrada de una lista de opciones llamada una caja tipo lista podra cambiar los contenidos de un campo de entrada. Se puede encapsular esta conducta en un intermediario, llamado en el ejemplo Director_Dialogo. Es importante resaltar los siguientes aspectos:
Cada objeto de las clases participantes es decir los objetos grficos de tipo List_Box o Entry _Field solo conoce

a su intermediario concreto .
Siempre que un objeto grfico requiera comunicarse con otro ha de hacerlo a travs de su intermediario

(Director_Dialogo).

Figura 2. Ejemplo del Patrn Intermediario

5. Patrones y componentes Cabra aqu preguntarse por la diferencia entre patrones de diseo y componentes . Encontramos en el mercado una serie de productos que incorporan un conjunto de elementos, denominados componentes y que permiten construir de forma rpida partes de la aplicacin, en particular la interfaz de usuario. La disponibilidad inmediata de botones, ventanas, mens desplegables, etc hacen que la construccin de una interfaz grfica sea desde un punto de vista tcnico una tarea relativamente sencilla. Los problemas de interaccin con el usuario y el nivel de usabilidad tienen que ver con problemas de diseo ms complejos que con la construccin 'fsica' de la interfaz. La diferencia fundamental con un patrn es que el componente es una combinacin fija de objetos, que se puede instanciar mediante el arrastre desde un icono que lo representa y que se incorpora inmediatamente a la aplicacin que se est construyendo. Esto significa que se trata de clases que combinan un conjunto de otras formando macroobjetos pero que estn integradas en la librera de clases suministrada con el producto. De esta manera, se pueden ir implementando nuevos componentes a los cuales se asociarn conos que los identifiquen y que permitan utilizarlos de la misma manera que los suministrados originalmente con el producto. Los patrones, por su lado, no forman parte de ninguna librera de clases . Slo son modelos de combinacin que pueden utilizarse en el momento que se presenta un problema similar al que pretende dar solucin el patrn correspondiente. A lo sumo, y en una instalacin muy bien organizada, podran almacenarse en una base de datos a la cual accedemos cuando nos enfrentamos a las diversas decisiones de diseo durante las fases de anlisis y de diseo. 6. Descripcin de patrn y plantillas de patrones Dependiendo del autor, del nivel de abstraccin y de la publicacin misma se han presentado varios formatos para encapsular la informacin de un patrn. Los puntos ms significativos que debe contener un patrn son:

Nombre: Significativo y corto, fcil de recordar y asociar a la informacin que sigue Problema: Un enunciado que describe las metas y objetivos buscados y el contexto Contexto: Define las precondiciones en las cuales ocurren el problema y su solucin Fuerzas: Descripcin de las fuerzas y restricciones relevantes en el problema y como interactan o entran en conflicto Solucin: Las relaciones estticas y reglas dinmicas que describen cmo solucionar el problema Ejemplos: Uno o ms ejemplos que ilustren el contexto, el problema y su solucin Contexto Resultante: El estado en el cual queda el sistema despus de aplicar el patrn y las consecuencias de hacerlo Racionalidad: Una explicacin justificada de los pasos o reglas en el patrn Relaciones: relaciones estticas y dinmicas del patrn con otros Usos conocidos: Describe ocurrencias del patrn conocidas y su aplicacin dentro de los sistemas existentes

La propuesta de Gamma (1995), por ejemplo, propone que los elementos esenciales de un patrn son los siguientes: 1. Un nombre del patrn. Es una forma abreviada que pueda darnos una idea del problema al que se aplica, sus soluciones y consecuencias. Al asignar un nombre, estamos facilitando la tarea de diseo puesto que nos comunicamos a un mayor nivel de abstraccin. Es bastante difcil encontrar nombres adecuados que sirvan a este propsito. 2. El problema describe cuando aplicar el patrn. Aqu se explica el problema y su contexto. Un aadido til es el de las condiciones de aplicabilidad del patrn.

3. La solucin describe los elementos que constituyen el diseo, sus relaciones, responsabilidades y colaboraciones. Se insiste mucho en que esta solucin es como una plantilla que provee una descripcin abstracta de un problema de diseo y cmo una disposicin general de elementos (en este caso clases y objetos) puede resolverlo. 4. Las consecuencias son los resultados y compromisos de aplicar el patrn. Estos son los elementos esenciales, pero cuando se trata de realizar una descripcin concreta de un patrn, la plantilla propuesta estar compuesta por una serie de secciones que permiten una estructura ms detallada que la ofrecida por la enumeracin de los elementos esenciales. Siguiendo a Gamma, encontramos la siguiente lista y descripcin de secciones dentro de la plantilla que describe cada patrn. Este formato estructurado es til puesto que permite la separacin semntica de lo que podra haber sido un texto completo y permite adems su almacenamiento en una base de datos para su posterior acceso si deseamos aumentar su reutilizacin. 1) Nombre del Patrn y Clasificacin, 2) Intencin 3) Tambin conocido como (Sinnimo), 4) Motivacin, 5) Aplicabilidad 6) Estructura, 7) Participantes, 8) Colaboraciones 9) Consecuencias, 10) Implementacin 11) Ejemplo de cdigo, 12) Usos conocidos y Patrones relacionados

Вам также может понравиться