PATRONES DE DISEÑO PROCESO DE CONSTRUCCIÓN DE SOFTWARE 2 GRUPO 2: LOS PATRONES.

Slides:



Advertisements
Presentaciones similares
Características Generales y Entornos de Desarrollo
Advertisements

INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Curso de java básico (scjp)
Noveno Semestre UNIDEC
Arquitectura Orientada a Servicios (SOA)
Patrones de Diseño GEYFFER ALEXANDER ACOSTA CRISTHIAN DOUGLAS CASTRO
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
El proceso de desarrollo de software
Desarrollo de Aplicaciones para Internet
Lección 1 Introducción a la POO
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Arquitectura de la Aplicación
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Java 2 Platform Enterprise Edition
Aplicación del paradigma orientado a objetos
Introducción XML y WebServices.
Ingeniería del Software
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
SISTEMAS DE LA INFORMACIÓN
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
PROGRAMACIÓN ORIENTADA A OBJETOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Ingeniería de Software
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Programación Orientada a Aspectos (POA)
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Patrones Creacionales
Ingeniería de Software Orientado a Objetos
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Lenguajes de Programación Tema 3
Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
Sistema Organizador de Invitaciones, Eventos y Memos basado en una aplicación Cliente – Servidor SOIEM TESIS DE GRADO FIEC – ESPOL 2007 Christian Vulgarin.
Juan Manuel Perdigón Mario Felipe Monsalve
3.- Introducción a Patrones de Diseño
Son la base para la búsqueda de soluciones o problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
Patrones de diseño Web Pierre Sergei Zuppa Azúa.
1 Diseño de Patrones Agustín J. González ELO329. Generalidades En Electrónica y en la vida en común usar soluciones probadas para problemas similares.
Eva Lleonart Martín Asunción García-Menacho Rovira
SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño
PATRONES DE DISEÑO.
Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
Patrones de diseño equipo n.1
Patrones de diseño Grupo 1 Haeberli, Julián Lara, Guisell
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
Simulador Redes Nombres etc,,.
Aplicaciones en 2,3 y n capas
 Es un lenguaje de programación interpretado, es decir, que no requiere compilación, utilizado principalmente en páginas web, con una sintaxis semejante.
Programación Orientada a Objetos: CLASES Y OBJETOS
Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.
Arquitectura de aplicaciones
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Patrón de diseño BROKER
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

PATRONES DE DISEÑO PROCESO DE CONSTRUCCIÓN DE SOFTWARE 2 GRUPO 2: LOS PATRONES

PARTE 1: CONCEPTOS INICIALES Antecedentes Contexto Actual Patrones de diseño Aportes de los patrones Tipos de Patrones Antipatrones

ANTECEDENTES Particularidades de la ingeniería. Costumbres y “supersticiones”. Conocimiento intuitivo. El “maestro de obra” vs. El “ingeniero”. “Using Pattern Languages for OO Programs” (1987) The Gang of Four.

CONTEXTO ACTUAL: INFORMÁTICA Disciplina joven. Casos de fracaso. Estadísticas negativas. Mejoras en los últimos años.

PATRONES DE DISEÑO “Una solución probada que se puede aplicar con éxito a determinado tipo de problemas que aparecen repetidamente en un algún campo”. Una abstracción. Un planteamiento.

APORTES DE LOS PATRONES Da un conjunto de elementos reusables. Catálogo de soluciones a problemas enfrentados exitosamente. Brinda un lenguaje común. Aporta una base de conocimiento.

TIPOS DE PATRONES Patrones creacionales Patrones estructurales Patrones de comportamiento

ANTIPATRONES Código “Spaguetti” The Blob Cortar y pegar

Teoría => Aplicación

PARTE 2: PATRONES EN TECNOLOGÍAS DE DESARROLLO

TECNOLOGÍA JAVA Planteamiento de soluciones optimas. Reutilización de soluciones anteriores satisfactorias. Abstraer las soluciones para ampliar su aplicación. Los patrones abarcan todas las etapas de desarrollo de Software.

TECNOLOGÍA JAVA J2EE es una plataforma de programación para desarrollar y ejecutar aplicaciones hechas en Java.[JAVA1] J2EE presenta una arquitectura de N niveles distribuida, basándose en componentes de software modulares ejecutándose sobre un servidor de aplicaciones.[JAVA1]

TECNOLOGÍA JAVA Cinco capas:

TECNOLOGÍA JAVA Capa de Presentacion Decorating Filter / Intercepting Filter. Front Controller/ Front Component. View Helper. Composite view. Service To Worker. Dispatcher View.

TECNOLOGÍA JAVA Decorating Filter Maneja varios tipos de peticiones que requieren un procesamiento determinado. Aplicado a procesos de validación de Session. Elimina las comprobaciones mediante filtros concatenados.

TECNOLOGÍA JAVA A continuación se muestra el esquema de funcionamiento del patrón Decorating Filter.

TECNOLOGÍA JAVA Capa de Lógica del Negocio Business Delegate Value Object Assembler. Value List Handler/ Page-by-Page Iterator/ Paged List. Service Locator.

TECNOLOGÍA JAVA Business Delegate Un objeto de la capa de presentacion llama a métodos remotos de los objetos de la capa del negocio. Búsqueda de elementos del negocio ( Lookup) Llamada al servicio requerido.

TECNOLOGÍA JAVA A continuación se muestra el esquema de funcionamiento del patrón Business Delegate.

TECNOLOGÍA JAVA Capa de Integración Data Access Object. Service Activator.

TECNOLOGÍA JAVA Data Access Object Consiste en utilizar un objeto como media de acceso a un Data Source (base de datos, sistema de archivos, etc.) Abstrae y encapsula las operaciones relacionadas con el tratamiento de la base de datos.

TECNOLOGÍA JAVA A continuación se muestra el esquema de funcionamiento del patrón Data Access Object:

TECNOLOGÍA PHP PHP es la primera versión que soporta la POO. Debemos considerar que muchos patrones de negocio trabajan muy bien con lenguajes cuya aplicación se procesa en tiempo de ejecución. PHP no trabaja de esta manera. Por cada solicitud, o interacción con el usuario, un nuevo script es solicitado, por lo tanto, algunos patrones deben ser tratados con más cuidado.

TECNOLOGÍA PHP [A pattern] is a solution to a problem in a context. -The Gang of Four, Design Patterns: Elements of Reusable Object-Oriented Software Patrones de diseño Patrón Singleton: clase especial que genera un y sólo un instancia del objeto. Patrón Abstract Factory: agrupa la creación de productos (objetos) con funcionalidades relacionadas.

TECNOLOGÍA PHP In the world of software, a pattern is a tangible manifestation of an organization’s tribal. -Grady Brooch in Core J2EE Patterns Patrón Singleton

TECNOLOGÍA PHP In the world of software, a pattern is a tangible manifestation of an organization’s tribal. -Grady Brooch in Core J2EE Patterns Patrón Singleton Class Preferencias { private $props = array(); private static $instancia; private function _constructor() { } public static function getInstacia(){ if (vacio(self::$instancia)){ self::$instacia = new Preferencias(); } return self::$instancia; } public function setProperty($clave, $valor) { $this->props[$key] = $valor; } public function getProperty($key){ return $this->props{$key]; }

TECNOLOGÍA PHP Patrón Abstract Factory

TECNOLOGÍA.NET 3 categorías - Patrones Creacionales. - Patrones Estructurales. - Patrones de Comportamiento.

TECNOLOGÍA.NET Patrones Creacionales Abstract factory. Builder. Singleton. Patrones Estructurales Facade. Composite.

TECNOLOGÍA.NET Patrones de Comportamiento Observer. Iterator. Proxy.

TECNOLOGÍA.NET Patrón facade consiste en simplificar el acceso a un conjunto de clases proporcionando una única clase que todos utilizaran para interactuar con ellas.[NET1]

TECNOLOGÍA.NET Ejemplo static void Main() { // Facade Mortgage mortgage = new Mortgage(); // Evaluate mortgage eligibility for customer Customer customer = new Customer("Ann McKinsey"); bool eligible = mortgage.IsEligible(customer, ); Console.WriteLine("\n" + customer.Name + " has been " + (eligible ? "Approved" : "Rejected")); Console.ReadKey(); }

TECNOLOGÍA.NET // Subsistema de Clase A class Bank { public bool HasSufficientSavings(Customer c, int amount) { Console.WriteLine("Check bank for " + c.Name); return true; } // Subsistema de Clase B class Credit { public bool HasGoodCredit(Customer c) { Console.WriteLine("Check credit for " + c.Name); return true; }

TECNOLOGÍA.NET // Subsistema de Clase C class Loan { public bool HasNoBadLoans(Customer c) { Console.WriteLine("Check loans for " + c.Name); return true; } // Cliente class Customer { private string _name; …….. }

TECNOLOGÍA.NET class Mortgage { private Bank _bank = new Bank(); private Loan _loan = new Loan(); private Credit _credit = new Credit(); public bool IsEligible(Customer cust, int amount) { Console.WriteLine("{0} applies for {1:C} loan\n",cust.Name, amount); bool eligible = true; if (!_bank.HasSufficientSavings(cust, amount)) { eligible = false; } else if (!_loan.HasNoBadLoans(cust)) { eligible = false; } else if (!_credit.HasGoodCredit(cust)) { eligible = false; } return eligible; }

CONCLUSIONES Interoperabilidad de los patrones. Mejor aprovechamiento de las características la POO. Necesidad de revisión continua de la aplicación de patrones de diseño.

Referencias [JAVA1] - Sitio Web Oficial de Sun Microsystems en ingles (visitado el 13/09/2010) [NET1] 6Patrones.pdf - Patron Facade (visitado el ) 6Patrones.pdf