Diseño de Software Basado en Patrones. César Julio Bustacara M.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Diseño de Software Basado en Patrones. César Julio Bustacara M."

Transcripción

1 Diseño de Software Basado en Patrones César Julio Bustacara M.

2 Patrones de Diseño

3 Introducción Las Tecnologías Orientadas a Objetos son las más utilizadas en los últimos años para el desarrollo de aplicaciones software. Se ha comprobado como este paradigma de programación presenta muchas ventajas.

4 Introducción Uno de los objetivos que se buscan al utilizar esta técnica es conseguir la reutilización. Entre los beneficios que se consiguen con la reutilización están: Reducción de tiempos. Disminución del esfuerzo de mantenimiento. Eficiencia. Consistencia. Fiabilidad. Protección de la inversión en desarrollos.

5 Introducción Entre los diferentes mecanismos de reutilización están: Componentes: elemento de software suficientemente pequeño para crearse y mantenerse pero suficientemente grande para poder utilizarse. Frameworks: bibliotecas de clases preparadas para la reutilización que pueden utilizar a su vez componentes. Objetos distribuidos: paradigma que distribuye los objetos de cooperación a través de una red heterogénea y permite que los objetos interoperen como un todo unificado. Patrones de diseño

6 Patrones de Diseño Los patrones como elemento de la reutilización, comenzaron a utilizarse en la arquitectura con el objetivo de reutilizar diseños que se habían aplicado en otras construcciones y que se catalogaron como completos.

7 Patrones de Diseño Christopher Alexander da la siguiente definición de patrón: Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo ni siquiera dos veces de la misma forma.

8 Patrones de Diseño En 1987, Ward Cunningham y Kent Beck trabajaron con Smaltalk y diseñaron interfaces de usuario. Decidieron, para ello, utilizar alguna de las ideas de Alexander para desarrollar un lenguaje pequeño de patrones para servir de guía a los programadores de Smaltalk. Así dieron lugar al libro Using Pattern Languajes for Object-Oriented Programs. Poco después, Jim Coplien comenzó a realizar un catálogo de idioms (que son un tipo de patrones) en C++ y publica su libro Advanced C++ Programming Styles and Idioms en Desde 1990 a 1994, Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides (el grupo de los cuatro) realizaron un primer catálogo de patrones de diseño. Posteriormente hubo diferentes discusiones a cerca de los patrones en las que participaron notables personalidades de los patrones.

9 Patrones de Diseño En Abril de 1994 el libro Design Patterns: Elements of Reusable Object- Oriented Software (Gang of Four, [GoF]) es publicado. En 1997 Brad Appleton publica Patterns and Software: Essential Concepts and Terminology. Mark Grand publica en 1998 Patterns in Java (volume 1) que es un catálogo de patrones de diseño ilustrados con UML. En 1999 Mark Grand publica Patterns in Java (volume 2) en donde se añaden algunos patrones de diseño más y otros tipos de patrones tales como patrones de organización de código, patrones de optimización de código, etc.

10 Clases de patrones software Existen diferentes ámbitos dentro de la ingeniería del software donde se pueden aplicar los patrones: 1. Patrones de arquitectura: expresa una organización o esquema estructural fundamental para sistemas software. Proporciona un conjunto de subsistemas predefinidos, especifica sus responsabilidades, e incluye una guía para organizar las relaciones entre ellos. 2. Patrones de diseño: proporciona un esquema para refinar los subsistemas o componentes de un sistema software, o las relaciones entre ellos. Describe estructuras repetitivas de comunicar componentes que resuelven un problema de diseño en un contexto particular.

11 Clases de patrones software 3. Patrones de programación (Idioms patterns): un idioma es un patrón de bajo nivel de un lenguaje de programación específico. Describe como implementar aspectos de componentes o de las relaciones entre ellos utilizando las facilidades del lenguaje de programación dado. 4. Patrones de análisis: describen un conjunto de prácticas que aseguran la obtención de un buen modelo de un problema y su solución. 5. Patrones organizacionales: describen la estructura y prácticas de las organizaciones humanas, especialmente en las que producen, usan o administran software.

12 Ventajas de los patrones Entre las ventajas que se pueden citar de la utilización de patrones están: 1. Facilitan la comunicación interna. 2. Ahorran tiempo y experimentos inútiles. 3. Mejoran la calidad del diseño y la implementación. 4. Son como normas de productividad. 5. Facilitan el aprendizaje de los paquetes Java.

13 Elementos de los Patrones de Diseño En general, un patrón tiene cuatro elementos esenciales: 1. El nombre del patrón se utiliza para describir un problema de diseño, su solución, y consecuencias en una o dos palabras. Nombrar un patrón incrementa inmediatamente nuestro vocabulario de diseño. Esto nos permite diseños a un alto nivel de abstracción. Tener un vocabulario de patrones nos permite hablar sobre ellos con nuestros amigos, en nuestra documentación, e incluso a nosotros mismos.

14 Elementos de los Patrones de Diseño 2. El problema describe cuando aplicar el patrón. Se explica el problema y su contexto. Esto podría describir problemas de diseño específicos tales como algoritmos como objetos. Podría describir estructuras de clases o objetos que son sintomáticas de un diseño inflexible. Algunas veces el problema incluirá una lista de condiciones que deben cumplirse para poder aplicar el patrón.

15 Elementos de los Patrones de Diseño 3. La solución describe los elementos que forma el diseño, sus relaciones, responsabilidades y colaboraciones. La solución no describe un diseño particular o implementación, porque un patrón es como una plantilla que puede ser aplicada en diferentes situaciones. En cambio, los patrones proveen una descripción abstracta de un problema de diseño y como una disposición general de los elementos (clases y objetos en nuestro caso) lo soluciona.

16 Elementos de los Patrones de Diseño 4. Las consecuencias son los resultados de aplicar el patrón. Estas son muy importantes para la evaluación de diseños alternativos y para comprender los costes y beneficios de la aplicación del patrón.

17 Descripción de un patrón Para describir los patrones de diseño se utiliza un formato consistente. Cada patrón es dividido en secciones de acuerdo con una plantilla. La plantilla muestra una estructura uniforme para la información, de tal forma que los patrones de diseño sean fáciles de aprender, comparar y utilizar.

18 Descripción de un patrón 1. Nombre del patrón 2. Objetivo 3. Contexto 4. Aplicabilidad 5. Solución 6. Consecuencias 7. Implementación 10. Patrones relacionados

19 Descripción de un patrón 1. Nombre del patrón Esta sección consiste de un nombre del patrón y una referencia bibliografía que indica de donde procede el patrón. El nombre es significativo y corto, fácil de recordar y asociar a la información que sigue.

20 Descripción de un patrón 2. Objetivo Esta sección contiene unas pocas frases describiendo el patrón. El objetivo aporta la esencia de la solución que es proporcionada por el patrón. El objetivo esta dirigido a programadores con experiencia que pueden reconocer el patrón como uno que ellos ya conocen, pero para el cual ellos no le han dado un nombre. Después de reconocer el patrón por su nombre y objetivo, esto podría ser suficiente para comprender el resto de la descripción del patrón.

21 Descripción de un patrón 3. Contexto La sección de Contexto describe el problema que el patrón soluciona. Este problema suele ser introducido en términos de un ejemplo concreto. Después de presentar el problema en el ejemplo, la sección de Contexto sugiere una solución de diseño a ese problema.

22 Descripción de un patrón 4. Aplicabilidad La sección Aplicabilidad resume las consideraciones que guían a la solución general presentada en la sección Solución. En que situaciones es aplicable el patrón.

23 Descripción de un patrón 5. Solución La sección Solución es el núcleo del patrón. Se describe una solución general al problema que el patrón soluciona. Esta descripción puede incluir, diagramas y texto que identifique la estructura del patrón, sus participantes y sus colaboraciones para mostrar como se soluciona el problema. Debe describir tanto la estructura dinámica como el comportamiento estático.

24 Descripción de un patrón 6. Consecuencias La sección Consecuencias explica las implicaciones, buenas y malas, del uso de la solución.

25 Descripción de un patrón 7. Implementación La sección de Implementación describe las consideraciones importantes que se han de tener en cuenta cuando se codifica la solución. También puede contener algunas variaciones o simplificaciones de la solución.

26 Descripción de un patrón 8. Patrones relacionados Esta sección contiene una lista de los patrones que están relacionados con el patrón que se describe.

27 Cualidades de un patrón de diseño Encapsulación y abstracción: cada patrón encapsula un problema bien definido y su solución en un dominio particular. Los patrones deberían de proporcionar límites claros que ayuden a cristalizar el entorno del problema y el entorno de la solución empaquetados en un entramado distinto, con fragmentos interconectados. Los patrones también sirven como abstracciones las cuales contienen dominios conocidos y experiencia, y podrían ocurrir en distintos niveles jerárquicos de granularidad conceptual.

28 Cualidades de un patrón de diseño Extensión y variabilidad: cada patrón debería ser abierto por extensión o parametrización por otros patrones, de tal forma que pueden aplicarse juntos para solucionar un gran problema. Un patrón solución debería ser también capaz de realizar un variedad infinita de implementaciones (de forma individual, y también en conjunción con otros patrones).

29 Cualidades de un patrón de diseño Generalidad y composición: cada patrón, una vez aplicado, genera un contexto resultante, el cual concuerda con el contexto inicial de uno o más de uno de los patrones del catálogo. Está subsecuencia de patrones podría luego ser aplicada progresivamente para conseguir el objetivo final de generación de un todo o solución completa.

30 Cualidades de un patrón de diseño Equilibrio: cada patrón debe realizar algún tipo de balance entre sus efectos y restricciones. Esto podría ser debido a uno o más de un heurístico que son utilizados para minimizar el conflicto sin el contexto de la solución. Las invariaciones representadas en un problema subyacente solucionan el principio o filosofía para el dominio particular, y proveen una razón fundamental para cada paso o regla en el patrón.

31 Clasificación de los patrones de diseño Purpose Creational Structural Behavioral Scope Class Factory Method Adapter (class) Interpreter Template Method Object Abstract Factory Builder Prototype Singleton Adapter (object) Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor Catálogo de Gamma et al. (1995)

32 Relaciones entre patrones de diseño Memento Proxy Builder saving state of iteration Iterator Adapter Bridge Enumerating children Decorator adding respnsibilities to objects sharing composites Composite composed using Command changing skin versus guts Flyweight defining grammar Visitor Chain of Responsibility Strategy sharing strategies Interpreter State Mediator Observer Prototype defining algorithm s steps Template Method Factory Method Singleton single instance Abstract Factory single instance Facade

33 Causas comunes de rediseño i) Crear un objeto indicando la clase. ii) Dependencia de operaciones específicas iii) Dependencia de plataformas hardware o software iv) Dependencia sobre representación de objetos. v) Dependencias de algoritmos vi) Acoplamiento fuerte entre clases vii) Extender funcionalidad mediante subclases viii) Incapacidad de cambiar clases convenientemente

34 Patrones frente a esos peligros i) Abstract factory, Method factory, Prototype ii) Chain of Responsability, Command iii) Abstract factory, Bridge iv) Abstract factory, Bridge, Memento, Proxy, v) Builder, Iterator, Strategy, Template Method, Visitor vi) Abstract factory, Bridge, Chain of Responsability, Command, Facade, Mediator, Observer vii) Bridge, Chain of Responsability, Composite, Decorator, Observer, Strategy viii) Adapter, Decorator, Visitor

35 Cómo seleccionar un patrón? Considere de que forma los patrones resuelven problemas de diseño Lea la sección que describe el propósito de cada patrón Estudie las interrelaciones entre patrones Analice patrones con el mismo propósito Examine las causas de rediseñar Considere que debería ser variable en el diseño

36 Cómo usar un patrón? Lea el patrón, todos sus apartados, para tener una visión global. Estudie la Estructura, Participantes y Colaboraciones Mire ejemplos de código Asocie a cada participante del patrón un elemento software de su aplicación. Implemente las clases y métodos relacionados con el patrón.

37 Patrones de Creación Abstraen el proceso de creación de objetos. Ayudan a crear sistemas independientes de cómo los objetos son creados, compuestos y representados. El sistema conoce las clases abstractas Flexibilidad en qué se crea, quién lo crea, cómo se crea y cuándo se crea.

38 Patrones de Creación Class Object Factory Method Abstract Factory Builder Prototype Singleton

39 Abstract Factory Descripción Contexto Ventajas Desventajas Provee una interfaz Se quiere para crear familias de independizar un objetos relacionados sistema de crear o dependientes sin componentes y especificar la clase representar una concreta familia de productos. 1) Encapsula la creación de objetos, y aísla las clases concretas del cliente, 2) permite intercambiar familias de productos de manera sencilla 1) Soportar nuevos tipos de productos es complejo

40 Abstract Factory

41 Abstract Factory AbstractFactory CreateProductA() CreateProductB() Cliente AbstrProdA ConcreteFactory1 ConcreteFactory2 createproducta() createproductb() createproducta() createproductb() ProdA2 ProdA1 AbstrProdB ProdB2 ProdB1

42 Builder Descripción Contexto Ventajas Separa la construcción de objetos complejos de su representación, para que el mismo proceso de construcción pueda crear diferentes representaciones. Se desea crear objetos complejos, y que ese proceso se pueda utilizar para crear diferentes representaciones. 1) permite variar la representación interna de cada producto creado, 2) aísla el código de construcción y de representación de un objeto, 3) Se tiene un control más fino del proceso de construcción del objeto

43 Builder

44 Builder

45 Prototype Descripción Contexto Ventajas Especifica la clase de objetos a crear usando una instancia de un prototipo, creando un nuevo objeto de un prototipo. Se tienen instancias de unas clases que tienen pocas combinaciones de diferentes estados. 1) permite agregar o eliminar productos en tiempo de ejecución, 2) permite especificar nuevos objetos mediante la variación de algunos valores, 3) permite especificar nuevos objetos mediante la variación de su estructura, 4) Reduce la posibilidad de utilizar subclases o de crear jerarquías de clases, 5) permite configurar una aplicación con clases dinámicas

46 Prototype

47 Factory Method Descripción Contexto Ventajas Define una interfaz para la creación de objetos, pero decide cual de las clases debe instanciar. Se desean separar la responsabilidad de crear objetos especifos del sistema. 1) brinda mas flexibilidad en la creación de objetos, al extender las subclases, 2) Puede conectar clases jerárquicas paralelas

48 Factory Method

49 Factory Method

50 Patrones Estructurales Cómo clases y objetos se combinan para formar estructuras más complejas. Patrones basados en herencia Sólo una forma de Adapter Patrones basados en composición Describen formas de combinar objetos para obtener nueva funcionalidad Posibilidad de cambiar la composición en tiempo de ejecución. 50

51 Patrones Estructurales Class Object Adapter (class) Adapter (object) Bridge Composite Decorator Facade Flyweight Proxy

52 Adapter Descripción Contexto Ventajas Desventajas Convierte la interfaz de una clase en la inetrfaz que un cliente desea. Permite que dos clases con interfaces incompatibles puedan comunicarce. Se requiere usar una clase, pero su interfaz no conincide con lo que se necesita. 1) permite la reutilizacion 1) el adaptador no puede adaptar todas las subclases de una clase

53 Adapter

54 Adapter (Composición) Cliente Objetivo metodo1() Adaptado especificomet1() Adaptador metodo1() +adaptado adaptado. especificomet1()

55 Adapter (Herencia) Cliente Objetivo metodo1() Adaptado especificomet1() <<implementation>> Adaptador metodo1() especificomet1 ( )

56 Bridge Descripción Contexto Ventajas Desacopla la abstracción de la implementación, de manera que cada uno puede variar independientemente. Se tiene una abstracción que puede tener diferentes implementaciones. 1) desacopla la interfaz de la implementación 2) se puede extender la jerarquía de las abstracciones y de las implementaciones por separado, 3) se ocultan los detalles de implementación.

57 Bridge

58 Bridge Abstraccion +imp Implementacion operacion() imp.operacionimp operacionimp() AbstraccionRefinada ImplemA ImplemB operacionimp() operacionimp()

59 Composite Descripción Contexto Ventajas Desventajas Compone objetos en estructuras de árbol para representar jerarquías parte-todo. Se desea representar objetos mediantes jerarquías partetodo 1) permite representar objetos complejos, 2) hace el cliente simple, debido a que ve el objeto compuesto como un objeto uniforme, 3) es sencillo agregar nuevos tipos de componentes 1) es complicado restringir la composición de objetos

60 Composite

61 Composite

62 Decorator Descripción Contexto Ventajas Desventajas Agrega responsabilidades adicionales a un objeto de manera dinámica. Se quiere agregar responsabilidades a un objeto especifico, pero no a su clase. 1) brinda mas flexibilidad que la herencia estática, 2) Evita las clases llenas de funciones en los niveles altos de la jerarquía 1) un sistema que tenga lotes de decoradores puede ser complicado de entender y de hacerle debug.

63 Decorator

64 Decorator

65 Decorator Componente + operación ( ) : componente operación() { componente.operación(); } ComponenteConcreto + operación ( ) : Decorador + operación ( ) : operación(){ super.operación(); comportamientoadicional(); } DecoradorConcreto1 DecoradorConcreto2 DecoradorConcretoN + operación ( ) : + operación ( ) : + operación ( ) : + comportamientoadicional ( ) :

66 Facade Descripción Contexto Ventajas Desventajas Provee una interfaz unificada para un conjunto de interfaces en un subsistema. Define una interfaz de alto nivel que hace al subsistema fácil de usar. Se tiene un sistema al cual se le quiere minimizar las dependencias con otros susbsistemas. 1) reduce el número de objetos con los que el que el cliente tiene que interactuar para poder usar un subsistema (bajo acoplamiento), 2) promueve el bajo acoplamiento 1) el subsistema queda fuertemente acoplado

67 Facade

68 Facade Fachada

69 Flyweight Descripción Contexto Ventajas Desventajas Hacer uso compartido de un gran numero de objetos granularmente finos de manera eficiente. En una aplicación se usa un gran número de objetos, pero el costo de almacenarlos y cárgalos en memoria es alto. 1) permite administrar las instancias de una clase, mejorando el uso de memoria del sistema. 1) introduce el costo de transferir, encontrar y procesar los diferentes estados de un objeto

70 Flyweight

71 Flyweight

72 Proxy Descripción Contexto Ventajas Provee un sustituto para que controle el acceso a un objeto. Se quiere volver mas versátil o sofisticado el acceso a la referencia de un objeto. 1) puede realizar indirecciones, 2) puede optimizar operaciones de objetos como la creación o la copia del objeto, 3) puede proteger el acceso a un objeto

73 Proxy

74 Proxy Cliente Sujeto <<abstract>> operacion() SujetoReal operacion() +sujeto Proxy operacion() sujeto.operacion()

75 Patrones de Comportamiento Relacionados con la asignación de responsabilidades entre clases. Enfatizan la colaboración entre objetos. Caracterizan un flujo de control más o menos complejo que será transparente al que utilice el patrón. Basados en herencia: Template Method e Interpreter Basados en composición: Mediator, Observer,... 75

76 Patrones de Comportamiento Class Object Interpreter Template Method Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor

77 Interpreter Descripción Contexto Ventajas Desventajas Dado un lenguaje, define una representación de la gramática mediante un interprete que interpreta frases de ese lenguaje. Se requiere poder interpretar un lenguaje especifico. 1) es fácil cambiar y extender la gramática, 2) implementar la gramática es fácil, 3) se pueden agregar nuevas formas de interpretar la gramática de manera sencilla 1) gramáticas complejas son difíciles de mantener

78 Interpreter

79 Interpreter

80 Chain of Responsibility Descripción Contexto Ventajas Desventajas Evita el acoplamiento entre el cliente que envía una petición y el receptor de la petición, mediante varios objetos que pueden manejar esa petición. La cadena pasa la petición a través de objetos, hasta que un objeto la maneja. Se puede manejar una petición por varios objetos, pero el manejador de la petición no se conoce de antemano. 1) reduce el acoplamiento entre el cliente y el manejador del evento, 2) agrega flexibilidad en la asignación de responsabilidades a un objeto 1) el receptor de la petición no se garantiza

81 Chain of Responsibility

82 Chain of Responsibility

83 Command Descripción Contexto Ventajas Encapsula una petición como un objeto, con el fin de parametrizar las peticiones. Se requiere modelar los posibles comandos que puede ejecutar un cliente en una aplicación. 1) desacopla el objeto que invoca la operación del objeto que desarrolla la operación, 2) puede ser manipulado y extendido por cualquier otro objeto, 3) se puede ensambla varios comandos como un macrocomando, 4) es sencillo agregar un nuevo comando.

84 Command

85 Command

86 Mediator Descripción Contexto Ventajas Desventajas Define un objeto que encapsula la interacción entre un conjunto de objetos Se tiene un conjunto de objetos que interactúan de una manera bien definida pero compleja. 1) limita el uso de subclases, 2) desacopla los colegas, 3) simplifica el protocolo de comunicación de los objetos, 4) vuelve abstracta la cooperación entre objetos 1) centraliza el control de la interacción lo que lo vuelve mas difícil de mantener el mediador.

87 Mediator

88 Mediator <<abstract>> Mediator +mediator Colega MediatorConcreto ColegaConcr1 ColegaConcr2

89 Observer Descripción Contexto Ventajas Desventajas Define una dependencia uno a muchos entre objetos, de manera que cuando cambian su estado le notifican a todos los objetos dependientes a ellos el cambio de su estado. Se tiene un objeto que depende del cambio de estado de otro objeto. 1) el acoplamiento entre los observadores y los temas es abstracto y mínimo, 2) soporta comunicación de tipo broadcast 1) se pueden generar actualizaciones inesperadas, difíciles de deducir por los observadores

90 Observer

91 Observer

92 State Descripción Contexto Ventajas Permite que un objeto cambie de comportamiento cuando su estado interno cambia. Se quiere representar que cambia su comportamiento en tiempo de ejecucion, una vez cambia su estado. 1) permite representar diferentes comportamientos, para los diferentes estados, 2) la transición entre estados es explicita, 3) los estados pueden ser compartidos

93 State

94 State

95 State Buffer1 1 estado Estado + get ( ) : void contexto 1 + get ( ) : void + put ( ) : void + put ( ) : void void put(...) { estado.put( ); } Buffer2 Vacío + get ( ) : void + put ( ) : void Lleno + get ( ) : void + put ( ) : void Vacío2 Lleno2 Uno

96 Strategy Descripción Contexto Ventajas Desventajas Define una familia de algoritmos, encapsula cada uno y los vuelve intercambiables. Permite que el algoritmo varíe independientemente de los clientes que lo usen. Se quiere representar un conjuno se pueda realizar en tiepo de ejecucion.to de clases que solo cambian en su comportamiento, en una sola clase. 1) puede expresar familias de algoritmos que pueden ser reutilizados, 2) Una forma de crear subclases y que promueve la extensibilidad, 3) elimina las condicionales en el cambio de estrategia, 4) se pueden representar diferentes implementaciones del mismo comportamiento 1) los clientes deben ser conscientes de las estrategias que pueden usar, 2) hay sobrecarga de comunicación entre el contexto y la estrategia, 3) se incrementa el numero de objetos en el sistema.

97 Strategy

98 Strategy

99 Visitor Descripción Contexto Ventajas Desventajas Representa una operación a ser realizada en un atributo de un objeto. Permite definir nuevas operaciones sin cambiar las clases de los atributos en los cuales se va a operar. Se desea realizar operaciones sobre un objeto, sin la necesidad de agregar esos métodos en la definición de la clase. 1) permite agregar nuevas operaciones sobre un objeto de manera sencilla, 2) reúne las operaciones relacionadas y separa las operaciones no relacionadas a una clase, 3) permite visitar clases con las cuales no tiene clases padre en común, 4) los visitantes pueden guardar el estado de un objeto, evitando el uso de mas parámetros en la definición del método y el uso de variables globales 1) Agregar un elemento concreto es difícil, 2) Rompe el encapsulamiento de los objetos que visita.

100 Visitor

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype PATRONES DE DISEÑO DE CREACIÓN Abstract Factory Builder Factory Method Prototype Patrones de diseño de creación Abstraen el proceso de creación de instancias Encapsulan el conocimiento sobre las clases

Más detalles

Patrones de diseño en PHP Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

Patrones de diseño en PHP Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP Introducción a los patrones de diseño 1. Design patterns o patrones de diseño 15 2. Descripción de los patrones de diseño 17 3. Catálogo de patrones de diseño 18 4. Cómo escoger y utilizar un patrón de

Más detalles

PATRONES DE DISEÑO. FAVA - Formación en Ambientes Virtuales de Aprendizaje. SENA - Servicio Nacional de Aprendizaje

PATRONES DE DISEÑO. FAVA - Formación en Ambientes Virtuales de Aprendizaje. SENA - Servicio Nacional de Aprendizaje PATRONES DE DISEÑO 1. Generalidades 2. Patrones Gof 2.1. Patrones Creacionales 2.1.1.Fábrica Abstracta 2.1.2.Constructor 2.1.3.Método de Factoría 2.1.4.Prototipo 2.1.5.Singleton 2.2. Patrones Estructurales

Más detalles

Patrones de diseño en Java Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y Java

Patrones de diseño en Java Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y Java Introducción a los patrones de diseño 1. Design patterns o patrones de diseño 15 2. Descripción de los patrones de diseño 17 3. Catálogo de patrones de diseño 18 4. Cómo escoger y utilizar un patrón de

Más detalles

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura

Más detalles

Capítulo 4 Patrones y Patrones de Diseño (ii)

Capítulo 4 Patrones y Patrones de Diseño (ii) Capítulo 4 Patrones y Patrones de Diseño (ii) Orientado a Objetos Ingeniería Informática Ingeniería Técnica de Informática de Sistemas y Gestión Optativa (6 créditos) http://www.info-ab.uclm.es/asignaturas/42579

Más detalles

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar.

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar. TIPOS DE PATRONES Hoy, podemos encontrar literalmente miles de patrones definidos. Resulta imposible para un programador conocerlos todos, ni mucho menos probarlos o valorarlos. Así que necesitamos una

Más detalles

CLASE 10: MÁS PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez

CLASE 10: MÁS PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez CLASE 10: MÁS PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Polimorfismo Problema: Cómo manejar las alternativas basadas en el tipo? Cómo crear componentes conectables?

Más detalles

Introducción a la Programación de Videojuegos y Gráficos

Introducción a la Programación de Videojuegos y Gráficos Introducción a la Programación de Videojuegos y Gráficos GRADO EN INGENIERÍA INFORMÁTICA CURSO 2012/2013 T2: ARQUITECTURA Y LÓGICA DE VIDEOJUEGO 2.1. Ingeniería del software aplicada a videojuegos (paradigmas

Más detalles

DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS

DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS ASIGNATURA DE GRADO: DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS Curso 2015/2016 (Código:71022011) 1.PRESENTACIÓN DE LA ASIGNATURA El objetivo de esta guía es orientar al alumno en el estudio de la asignatura.

Más detalles

Diagramas De Casos De Uso

Diagramas De Casos De Uso Estáticos Diagramas De Casos De Uso Los diagramas de casos de uso documentan el comportamiento de un sistema desde el punto de vista del usuario.. Por lo tanto los casos de uso determinan los requisitos

Más detalles

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque: Análisis y Diseño O.O. Preguntas del diseño : Cómo podrían asignarse responsabilidades a las clases de los objetos? Cómo podrían interactuar los objetos? Qué deberían hacer las clases? Patrones : Ciertas

Más detalles

ESCUELA POLITÉCNICA NACIONAL

ESCUELA POLITÉCNICA NACIONAL ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA EN SISTEMAS GUÍA PRÁCTICA PARA EL USO DE PATRONES DE DISEÑO EN EL DESARROLLO DE SOFTWARE PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN SISTEMAS

Más detalles

Patrones de Diseño. Ezequiel Postan. 1 Libro e índice. 2 Introducción

Patrones de Diseño. Ezequiel Postan. 1 Libro e índice. 2 Introducción Patrones de Diseño Ezequiel Postan 1 Libro e índice Gamma, E., Helm, R., Johnson, R., Vlissides, J., Patrones de diseño, Addison-Wesley, 2003. Páginas 2-69: Introducción. Composite. Strategy. Decorator.

Más detalles

IN77J Orientación al Objeto para el e-business. 6. Diseño

IN77J Orientación al Objeto para el e-business. 6. Diseño IN77J Orientación al Objeto para el e-business 6. Diseño Temario 6. Diseño Descomposición Realización de Casos de Uso Taller Patrones de Diseño 2 Descomposición Una de las principales técnicas para abordar

Más detalles

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo. Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones

Más detalles

UML 2 Iniciación, ejemplos y ejercicios corregidos

UML 2 Iniciación, ejemplos y ejercicios corregidos Ediciones ENI UML 2 Iniciación, ejemplos y ejercicios corregidos (3ª edición) Colección Recursos Informáticos Contenido Contenido 1 Capítulo 1 Introducción 1. Motivaciones de la obra.....................................

Más detalles

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies. Código CC3002 Nombre Nombre en Inglés PROGRAMA DE CURSO Metodologías de Diseño y Programación Design and Programming Methodologies SCT es Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de Trabajo

Más detalles

Capítulo 16. Diagrama de Clases UML

Capítulo 16. Diagrama de Clases UML Capítulo 16. Diagrama de Clases UML Florentino TORRES M. CINVESTAV-Tamaulipas 15 de Oct del 2012 Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 1 / 70 1 Capítulo 16. Diagrama de Clases UML Aplicando

Más detalles

PATRONES DE CREACIÓN. Abstract Factory (Creacional de Objetos)

PATRONES DE CREACIÓN. Abstract Factory (Creacional de Objetos) ÍNDICE Patrones de Creación...5 Abstract Factory (Creacional de Objetos)...5 Builder (Creacional de objetos)...6 Factory Method (Creacional de clases)...8 Prototype (Creacional de objetos)...9 Singleton

Más detalles

ASIGNATURA: Ingeniería de software II DOCENTE: Licda.Carla Milagro López Vásquez RESPONSABLE: Rodolfo Alberto Palma Ramos CARRERA:

ASIGNATURA: Ingeniería de software II DOCENTE: Licda.Carla Milagro López Vásquez RESPONSABLE: Rodolfo Alberto Palma Ramos CARRERA: UNIDAD 04: PATRONES DE DISEÑO WEB. ASIGNATURA: Ingeniería de software II DOCENTE: Licda.Carla Milagro López Vásquez RESPONSABLE: Rodolfo Alberto Palma Ramos CARRERA: Técnico en Ingeniería en Sistemas y

Más detalles

Tema 6. Patrones de diseño.

Tema 6. Patrones de diseño. Ingeniería del Software II 2011 Tema 6. Patrones de diseño. Introducción. Durante el diseño Orientado a Objetos es frecuente encontrarse repetidamente con ciertos tipos de problemas, para analizar, compartir

Más detalles

Patrones. Patrones GRASP GRASP GRASP. Curso de Arquitecturas de Software. Programación Orientada a Objetos Patrones GRASP

Patrones. Patrones GRASP GRASP GRASP. Curso de Arquitecturas de Software. Programación Orientada a Objetos Patrones GRASP Curso de Arquitecturas de Software Programación Orientada a Objetos Patrones GRASP Patrones Es una solución a un problema recurrente Capturan las mejores prácticas establecidas para diseño Describen un

Más detalles

TRABAJO DE DIPLOMA CÓDIGO DE MATERIA 29

TRABAJO DE DIPLOMA CÓDIGO DE MATERIA 29 TRABAJO DE DIPLOMA CÓDIGO DE MATERIA 29 Titular: Dario Guillermo Cardacci FACULTAD DE TECNOLOGÍA INFORMÁTICA UNIVERSIDAD ABIERTA INTERAMERICANA 1 ÍNDICE GUÍA DE TRABAJOS REVISIÓN CONCEPTUAL... 3 GUÍA DE

Más detalles

MÁSTER UNIVERSITARIO EN INGENIERÍA WEB. Guía de Aprendizaje Información al estudiante

MÁSTER UNIVERSITARIO EN INGENIERÍA WEB. Guía de Aprendizaje Información al estudiante MÁSTER UNIVERSITARIO EN INGENIERÍA WEB Datos Descriptivos Guía de Aprendizaje Información al estudiante Escuela Técnica Superior de Ingeniería de Sistemas Centro responsable Informáticos Titulación: Máster

Más detalles

Patrones de diseño. Programación III.I.T.I. de Sistemas. Contenidos. Información sobre patrones de diseño. Motivación.

Patrones de diseño. Programación III.I.T.I. de Sistemas. Contenidos. Información sobre patrones de diseño. Motivación. Departamento de Informática Universidad de Valladolid Programación III.I.T.I. de Sistemas Patrones 1 Contenidos Programación III.I.T.I. de Sistemas Patrones de diseño Patrones de diseño Introducción Conceptos

Más detalles

A continuación se describe con mayor detalle cada una de tales unidades:

A continuación se describe con mayor detalle cada una de tales unidades: 1. OBJETIVOS: - Entender los conceptos teórico-prácticos que se emplean en la fase de diseño de un proyecto de software. - Entender las metodologías de diseño para las diferentes estrategias de desarrollo

Más detalles

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador HERENCIA Y TIPOS. Las clases con propiedades y funciones comunes se agrupan en una superclase. Las clases que se derivan de una superclase son las subclases. Las clases se organizan como jerarquía de clases.

Más detalles

Diseño arquitectónico 1ª edición (2002)

Diseño arquitectónico 1ª edición (2002) Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado

Más detalles

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN

Más detalles

Diseño Basado en Componentes. Curso 2008/09

Diseño Basado en Componentes. Curso 2008/09 Tabla de contenidos Diseño Basado en Componentes Técnicas relacionadas con Reutilización Introducción: por qué reutilizar?, qué reutilizar? Técnicas: Ingeniería de dominios Líneas de productos (Product-lines)

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas

Más detalles

Horas Contacto. Modelar gráficamente la solución de problemas con un enfoque Orientado a Objetos, usando un lenguaje de modelado, en este caso UML.

Horas Contacto. Modelar gráficamente la solución de problemas con un enfoque Orientado a Objetos, usando un lenguaje de modelado, en este caso UML. FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA DE SISTEMAS Nombre de la asignatura (Curso) Código de la asignatura (ID Curso) Análisis y Diseño Orientado a Objetos 4183 Fecha de Actualización Enero

Más detalles

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL MODELO FUNCIONAL SIGA C O NTE NlD O Introducción Aspectos Conceptuales Definición de modelo Requisitos de un Modelo Funcional Modelando la Funcionalidad del Sistema: Diagrama de Casos de Uso Definición

Más detalles

Instructivo para la elaboración de un Manual Técnico

Instructivo para la elaboración de un Manual Técnico Instructivo para la elaboración de un Manual Técnico Autora: Ing. Alena González Reyes. (agonzalez@ceis.cujae.edu.cu) Ciudad de la Habana, Cuba Marzo, 2010 Índice 1. Introducción... 3 2. Confección...

Más detalles

DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE GLORIA CECILIA RÍOS MUÑOZ

DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE GLORIA CECILIA RÍOS MUÑOZ DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE 10 GLORIA CECILIA RÍOS MUÑOZ INSTITUCIÓN EDUCATIVA GABRIEL GARCÍA MÁRQUEZ MEDELLÍN 2013 DIAGRAMAS Un diagrama es una representación

Más detalles

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype Temario Patrones de Diseño de Software Fundamentos de Ingeniería de SW Jocelyn Simmonds GOF: Patrones Creacionales Patrones Estructurales ILI-236 (JS) Patrones II 1 / 31 ILI-236 (JS) Patrones II 2 / 31

Más detalles

Lenguaje de Modelamiento Unificado.

Lenguaje de Modelamiento Unificado. Lenguaje de Modelamiento Unificado. Pontificia Universidad Javeriana What can you Model with UML? 1. Structure Diagrams include: The Class Diagram Object Diagram Component Diagram Composite Structure Diagram

Más detalles

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD INGENIERÍA PROYECTO CURRICULAR MAESTRÍA EN CIENCIAS DE LA INFORMACIÓN Y LAS COMUNICACIONES

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD INGENIERÍA PROYECTO CURRICULAR MAESTRÍA EN CIENCIAS DE LA INFORMACIÓN Y LAS COMUNICACIONES UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD INGENIERÍA PROYECTO CURRICULAR MAESTRÍA EN CIENCIAS DE LA INFORMACIÓN Y LAS COMUNICACIONES SYLLABUS INGENIERÍA DE SOFTWARE NOMBRE DEL DOCENTE: HENRY

Más detalles

Evaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC

Evaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC Evaluación Diagnóstico puesta en común Escuela Técnica ORT - TIC 2009 1 Ojo La mayoría de los conceptos que vamos a discutir los vamos a ver en profundidad en clase, por l otanto hoy no vamos a discutirlos

Más detalles

Patrones en el e-learning

Patrones en el e-learning Patrones en el e-learning DOCUMENTO BASE El concepto de patrón en el e-learning permite resumir y comunicar la experiencia acumulada en la enseñanza-aprendizaje por medios telemáticos. Un patrón puede

Más detalles

Cristian Blanco

Cristian Blanco UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html

Más detalles

Validación de Patrones de Diseño de Comportamiento a través de Perfiles UML

Validación de Patrones de Diseño de Comportamiento a través de Perfiles UML Validación de Patrones de Diseño de Comportamiento a través de Perfiles UML 1 INDICE GENERAL CAPITULO I... 4 Especificación de Patrones de Diseño... 4 1.1 Patrones de diseño... 4 1.1.1 Concepto... 4 1.1.2

Más detalles

INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE INGENIERÍA DEL SOFTWARE Sesión No. 11 INGENIERÍA DEL SOFTWARE 1 Nombre: Estereotipos y valores etiquetados de los paquetes Contextualización Los estereotipos dentro de los medios de programación son más

Más detalles

Planificaciones. 7510 - Técnicas de Diseño. Docente responsable: PANTALEO GUILLERMO GUSTAVO. 1 de 5

Planificaciones. 7510 - Técnicas de Diseño. Docente responsable: PANTALEO GUILLERMO GUSTAVO. 1 de 5 Planificaciones 7510 - Técnicas de Diseño Docente responsable: PANTALEO GUILLERMO GUSTAVO 1 de 5 OBJETIVOS En este curso se busca introducir a los alumnos en el concepto de diseño de software. Para lograrlo

Más detalles

Arquitecturas Software. Arquitecturas Software. Arquitecturas Software. Juan José Moreno Navarro. Motivación: Idea principal: Características:

Arquitecturas Software. Arquitecturas Software. Arquitecturas Software. Juan José Moreno Navarro. Motivación: Idea principal: Características: Arquitecturas Software Juan José Moreno Navarro (Curso de Software basado en Componentes, junto a Lars-Ake Fredlund) Arquitecturas Software Motivación: Complejidad creciente de aplicaciones. Sistemas distribuidos

Más detalles

Lógica de Negocios. Esteban Calabria 2007

Lógica de Negocios. Esteban Calabria 2007 Lógica de Negocios Esteban Calabria 2007 Lógica de Negocios Para organizar el Layer de Negocios Transaction Script Table Module Domain Module Service Layer Scripting Conceptos Previos Glanularidad Interfaces

Más detalles

Diplomado Programación orientada a objetos con C++ y UML. Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Tema 7: Patrones de diseño. Ingeniería del Software de Gestión II Grupo de Ingeniería del Software

Tema 7: Patrones de diseño. Ingeniería del Software de Gestión II Grupo de Ingeniería del Software Tema 7: Patrones de diseño Ingeniería del Software de Gestión II Grupo de Ingeniería del Software Índice Introducción Patrones de diseño de uso común Bibliografía Índice Introducción Patrones de diseño

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: ARQUITECTURA DEL SISTEMA DE SOFTWARE NIVELES DE DISEÑO DE LOS SISTEMAS DE SOFTWARE CUALIDADES DE LAS ARQUITECTURAS ESTILOS Y PATRONES - ESTILOS ARQUITECTÓNICO - PATRÓN ARQUITECTÓNICO FRAMEWORK

Más detalles

Clase 2: Arquitectura de Software

Clase 2: Arquitectura de Software DSIW1:Ing. Tomás Eduardo Urbina 1 Existe una diferencia entre Estilo Arquitectónico, Patrón Arquitectónico y Patrón de Diseño, que debe marcarse a fin de evitar las grandes confusiones que inevitablemente,

Más detalles

Nombre del patrón: command orden (también es conocido como Action y Transaction)

Nombre del patrón: command orden (también es conocido como Action y Transaction) Command Nombre del patrón: command orden (también es conocido como Action y Transaction) Clasificación del patrón: Patrones de comportamiento. Problema: Necesidad de enviar peticiones sin saber nada acerca

Más detalles

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema Modelado Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Vocabulario del Sistema Distribución de Responsabilidades Semántica de una Clase

Más detalles

Capítulo 1 Introducción

Capítulo 1 Introducción Capítulo 1 Introducción Diseñar software orientado a objetos es difícil, y aún lo es más diseñar software orientado a objetos reutilizable. Hay que encontrar los objetos pertinentes, factorizarlos en clases

Más detalles

UML (Lenguaje de Modelado Unificado) y Diagramas de Casos de Uso

UML (Lenguaje de Modelado Unificado) y Diagramas de Casos de Uso UML (Lenguaje de Modelado Unificado) y Diagramas de Casos de Uso Los sistemas orientados a objetos describen las entidades como objetos. Los objetos son parte de un concepto general denominado clases.

Más detalles

Patrones. (Conceptos Generales)

Patrones. (Conceptos Generales) Patrones (Conceptos Generales) Agenda Motivación para los patrones Definiciones de patrones Tipos de patrones (Catálogos) De diseño (GoF) De arquitectura (POSA) De plataforma (J2EE) Ejemplo (Patrón DAO)

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Ingeniería de

Más detalles

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo Tutorial Contenido 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo 1. El proceso Fases soportadas por UML Análisis de requisitos de usuario Análisis de requisitos de software Diseño de la plataforma

Más detalles

Requerimientos de Software

Requerimientos de Software Requerimientos de Software Ingeniería de Requerimientos Se define como el proceso de establecer los servicios que el consumidor requiere de un sistema y las restricciones sobre las cuales de funcionar

Más detalles

Introducción a la Orientación a Objetos

Introducción a la Orientación a Objetos Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época

Más detalles

20483 Programación en C#

20483 Programación en C# 20483B 20483 Programación en C# Fabricante: Microsoft Grupo: Desarrollo Subgrupo: Microsoft Visual Studio 2012 Formación: Presencial Horas: 25 Introducción Este curso enseña a los desarrolladores las habilidades

Más detalles

Una Arquitectura para una Herramienta de Patrones de Diseño

Una Arquitectura para una Herramienta de Patrones de Diseño Una Arquitectura para una Herramienta de Patrones de Diseño José Sáez Martínez 1, Jesús García Molina, Pedro J. Jiménez García Departamento de Informática, Lenguajes y Sistemas. Campus de Espinardo C.P.

Más detalles

Aplicaciones de Microsoft Dynamics CRM 4.0

Aplicaciones de Microsoft Dynamics CRM 4.0 8980B Aplicaciones de Microsoft Dynamics CRM 4.0 Fabricante: Microsoft Grupo: Dynamics Subgrupo: Microsoft Dynamics CRM 4.0 Formación: Presencial Horas: 15 Introducción Este curso con instructor de tres

Más detalles

Capacitación adquirida por el alumno al finalizar este modulo

Capacitación adquirida por el alumno al finalizar este modulo Curso de UML y UP Analiza, modela y diseña sistemas orientado a objetos con UML. Aprende cuándo y cómo utilizar todos los diagramas que forman parte de UML en forma práctica utilizando el Enterprise Architect

Más detalles

Resultado de Aprendizaje:

Resultado de Aprendizaje: 10. Matriz de Valoración o Rúbrica MATRIZ DE VALORACIÓN O RÚBRICA Siglema: PROO-02 Nombre del Módulo: Nombre del Alumno: Docente evaluador: Grupo: Fecha: Resultado de Aprendizaje: 1.1 Diseña modelos bajo

Más detalles

Arquitectura de Software: Estilos y Patrones

Arquitectura de Software: Estilos y Patrones Arquitectura de Software: Estilos y Patrones APU. Adriana Sandra Almeira APU. Vanina Perez Cavenago Directora: Mg. Zulema Beatriz Rosanigo Tesina presentada a la Facultad de Ingeniería de la Universidad

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Ingeniería a de Software CC51A

Ingeniería a de Software CC51A Ingeniería a de Software CC51A Clase Auxiliar Auxiliar: Andrés s Neyem Oficina 418 de Doctorado aneyem@dcc.uchile.cl 19 de Marzo de 2007 Aspectos Generales Grupo CC51A Diseño Cliente Requisitos Usuario

Más detalles

Patrones de diseño orientado a objetos

Patrones de diseño orientado a objetos Patrones de diseño orientado a objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid Hacer software no es

Más detalles

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje. Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe

Más detalles

Planificaciones Análisis de la Información. Docente responsable: GONZALEZ NORBERTO DANIEL. 1 de 6

Planificaciones Análisis de la Información. Docente responsable: GONZALEZ NORBERTO DANIEL. 1 de 6 Planificaciones 7509 - Análisis de la Información Docente responsable: GONZALEZ NORBERTO DANIEL 1 de 6 OBJETIVOS Introducir al alumno en los conceptos fundamentales del desarrollo de sistemas de información

Más detalles

Fundamentos de la Programación Orientada a Objetos Diseño de clases

Fundamentos de la Programación Orientada a Objetos Diseño de clases Fundamentos de la Programación Orientada a Objetos Diseño de clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

Más detalles

Programación con Visual C#

Programación con Visual C# Programación con Visual C# Duración: 40.00 horas Descripción Visual C# es uno de los lenguajes de programación desarrollados por Microsoft, basado en la programación orientada a objetos. Es imprescindible

Más detalles

Sistemas Distribuidos. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Sistemas Distribuidos. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Sistemas Distribuidos Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Bases de datos distribuidas implica que una sola aplicación deberá ser capaz de trabajar en forma transparente

Más detalles

Fundamentos de Ingeniería de Software [Etapas II]

Fundamentos de Ingeniería de Software [Etapas II] Fundamentos de Ingeniería de Software [Etapas II] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 13-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de fundamentos de ing. de software

Más detalles

Redalyc. Giraldo G., Gloria L.; Acevedo O., Juan F.; Moreno N., David A.

Redalyc. Giraldo G., Gloria L.; Acevedo O., Juan F.; Moreno N., David A. Redalyc Sistema de Información Científica Red de Revistas Científicas de América Latina, el Caribe, España y Portugal Giraldo G., Gloria L.; Acevedo O., Juan F.; Moreno N., David A. Una ontología para

Más detalles

UML Unifield Modeling Languaje

UML Unifield Modeling Languaje UML Unifield Modeling Languaje 1 Modelo: Representación abstracta de una especificación, un diseño o un sistema. Generalmente, basada en una visión particular y compuesta por uno o más diagramas. Lenguaje

Más detalles

Patrones de Diseño GOF (The Gang of Four) en el contexto de Procesos de Desarrollo de Aplicaciones Orientadas a la Web

Patrones de Diseño GOF (The Gang of Four) en el contexto de Procesos de Desarrollo de Aplicaciones Orientadas a la Web Información Tecnológica Patrones Vol. 24(3), de 103-114 Diseño GOF (2013) (The Gang of Four) en el contexto de Procesos doi: 10.4067/S0718-07642013000300012 Patrones de Diseño GOF (The Gang of Four) en

Más detalles

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.

Más detalles

MS_10962 Advanced Automated Administration with Windows PowerShell

MS_10962 Advanced Automated Administration with Windows PowerShell Gold Learning Gold Business Intelligence Silver Data Plataform MS_10962 Advanced Automated Administration with Windows PowerShell www.ked.com.mx Av. Revolución No. 374 Col. San Pedro de los Pinos, C.P.

Más detalles

Elementos Diagramas de Clases Clase:

Elementos Diagramas de Clases Clase: Diagramas de Clases Un diagrama de clases o estructura estática muestra el conjunto de clases y objeto importantes que forman parte de un sistema, junto con las relaciones existentes entre clases y objetos.

Más detalles

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para

Más detalles

Curso: Diseño Orientado a Objetos Patrones de Diseño

Curso: Diseño Orientado a Objetos Patrones de Diseño Curso: Diseño Orientado a Objetos Patrones de Diseño DISEÑO ORIENTADO A OBJETOS PATRONES DE DISEÑO... 1 OBJETIVO...1 AUDIENCIA...1 CONTENIDO...1 BIBLIOGRAFÍA...2 DOCENTE...3 MODALIDAD DEL DESARROLLO...3

Más detalles

Patrones de software y refactorización de código

Patrones de software y refactorización de código Patrones de software y refactorización de código Introducción y antecedentes de los patrones de software Los patrones permiten construir sobre la experiencia colectiva de ingenieros de software habilidosos.

Más detalles

CLASE 4: CASOS DE USO REQUERIMIENTOS. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Martínez

CLASE 4: CASOS DE USO REQUERIMIENTOS. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Martínez CLASE 4: CASOS DE USO REQUERIMIENTOS Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Martínez Casos de Uso Un caso de uso es una descripción de las posibles secuencias de interacción entre el

Más detalles

Patrones de Diseño EJERCICIOS

Patrones de Diseño EJERCICIOS EJERCICIOS Ingeniería del Software I Carlos Blanco Universidad de Cantabria Introducción Un patrón es una solución probada que se puede aplicar con éxito a un determinado tipo de problemas que aparecen

Más detalles

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML Programación II. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herramientas UML, Análisis y diseño UML Objetivo Conocer una herramienta de modelado para la solución

Más detalles

Guía del Curso Analista Programador Java: Business Apps Expert

Guía del Curso Analista Programador Java: Business Apps Expert Guía del Curso Analista Programador Java: Business Apps Expert Modalidad de realización del curso: Número de Horas: Titulación: Online 600 Horas Diploma acreditativo con las horas del curso OBJETIVOS UML

Más detalles

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET OBJETIVOS: Conocer de las bondades del paradigma de orientación a objetos en.net y su lenguaje

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

PERSISTENCIA DE OBJETOS EN BASE DE DATOS RELACIONALES FRANCISCO LEÓN NAJERA CÓDIGO: CEDULA:

PERSISTENCIA DE OBJETOS EN BASE DE DATOS RELACIONALES FRANCISCO LEÓN NAJERA CÓDIGO: CEDULA: PERSISTENCIA DE OBJETOS EN BASE DE DATOS RELACIONALES FRANCISCO LEÓN NAJERA CÓDIGO: 20092295009 CEDULA: 80087371 UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS BELTRÁN FACULTAD DE INGENIERÍA MAESTRIA EN

Más detalles

Un Sistema de Gestión Integrado para PYME Cómo y para qué?

Un Sistema de Gestión Integrado para PYME Cómo y para qué? Un Sistema de Gestión Integrado para PYME Cómo y para qué? Diversos estudios anuales sobre la aplicación de las normas ISO de sistemas de Gestión muestran un aumento mundial constante en certificaciones

Más detalles

Diagramas de secuencia

Diagramas de secuencia Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Interacciones básicas 1 Para qué sirven los diagramas de secuencia? 2 Para qué sirven los diagramas de

Más detalles

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA APLICACIÓN DE PATRONES DE DISEÑO DE SOFTWARE EN EL DISEÑO DE UNA APLICACIÓN DE BASE DE DATOS ORIENTADA A OBJETOS. TRABAJO DE GRADUACIÓN PRESENTADO

Más detalles

INTERFACES INTELIGENTES. ING. MA. MARGARITA LABASTIDA ROLDÁN E mail:

INTERFACES INTELIGENTES. ING. MA. MARGARITA LABASTIDA ROLDÁN E mail: INTERFACES INTELIGENTES ING. MA. MARGARITA LABASTIDA ROLDÁN E mail: magielr@gmail.com GENERALIDADES DE LAS INTERFACES INTERFAZ DE USUARIO: Es el dispositivo por medio del cual un usuario realiza la comunicación

Más detalles

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010 Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010 OBJETIVOS: Conocer de las bondades del paradigma de orientación a objetos en.net y su

Más detalles

La Universidad Católica de Loja

La Universidad Católica de Loja UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja ESCUELA DE CIENCIAS DE LA COMPUTACIÓN TEMA: Desarrollo e implementación de un aplicativo Web para la gestión de concursos de la Asociación

Más detalles

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML Programación II. Guía No.3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herramientas UML, Análisis y diseño UML Objetivos Conocer una herramienta de modelado para la solución

Más detalles

Tecnología de Programación

Tecnología de Programación Tecnología de Programación Diego C. Martínez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Reutilización La reutilización es un ingrediente fundamental en la ingeniería

Más detalles

Reutilización del Software. Patrones de Diseño

Reutilización del Software. Patrones de Diseño Reutilización del Software Patrones de Diseño 1 Introducción El diseño OO es difícil y el diseño de software orientado a objetos reutilizable lo es aún más. Los diseñadores expertos no resuelven los problemas

Más detalles