You are on page 1of 5

CURSO: DISEO DE SOFTWARE BASADO EN PATRONES

CURSO: DISEO DE SOFTWARE BASADO EN PATRONES (2010-3)


TEMA: DISEO DE SOFTWARE BASADO EN PATRONES (12
a cargo de Csar Bustacara. a) DESCRIPCIN Aunque en la actualidad el uso de patrones de software se ha extendido bastante, paradjicamente, su predominio no se ha hecho explicito para muchos arquitectos y desarrolladores de software. Estos patrones no son otra cosa ms que soluciones genricas a problemas recurrentes que se presentan como una relacin entre contexto, problemtica y solucin; no se puede realmente entender un patrn sin entender el problema y su contexto, elementos esenciales que ayudan a encontrar la solucin adecuada cuando sta se necesita. Hace ms de una dcada que los patrones de software han influenciado el proceso de construccin de sistemas de software en sus mbitos generales de anlisis, arquitectura, diseo e implementacin, lo que hace vital su conocimiento, investigacin y prctica dentro de los proceso de construccin de software. Al final del curso, el estudiante debe haber comprendido la utilidad de los patrones de software. Deber contar con los conocimientos para conocer, entender, evaluar y justificar el uso o no de patrones de software as como establecer el nivel de abstraccin, las alternativas y relaciones posibles a la hora de elegir entre uno u otro durante la construccin de sistemas de software de calidad. Para lograr esta meta, el estudiante: conocer algunos catlogos de patrones, aprender a solucionar problemas con el uso de patrones y discernir sobre su uso, relaciones, alternativas, contextos y tendencias a travs de la investigacin en el campo. b) PROGRAMA
SEMANAS)

Contenidos Temticos Sem Clase Temas TEMA1 : Patrones de Diseno Introduccion a los Patrones de Software. 1 1,2 Influencia del uso de patrones en el proceso Presentacion No. 1 Material de Patrones de construccion de sistemas de software. Patrones de Diseno Presentaciones Actividades - Trabajo Independiente Preparacin de clase Tareas y ejercicios

Definicion y Uso de Patrones de Software Dominios o Contextos de uso de patrones (tipos: analisis, arquitectura, diseno e implementacion) Catalogos de patrones de Software Principios de Diseno y Patrones de Diseno, Robert C. Martin 3 5,6 Metamodelos de Diseno Presentacion No. 2 The Architecture Based Design Method, Felix Bachmann, Len Bass, Gary Chastek, Patrick Donohoe, Fabio Peruzzi, January 2000
From Requirements to Architecture: The State of the Art in Software Architecture Design, Lin Liao, 2003 Enunciado del proyecto From Software Architecture to Design Patterns: A Case Study of an NFR Approach, Jing Wang, Yeong-Tae Song, Lawrence Chung, 2005 ABSTRACTION CLASSES IN SOFTWARE DESIGN Amnon H Eden, Yoram Hirshfeld, and Rick Kazman, 2006

3,4

Toward a complexity theory of information systems development, Hind Benbya and Bill McKelvey, 2006

Principios de Diseno 4 7,8

9,10

Metodos de Diseno

11

Patrones de Software Catalogo1 Catalogo2 Catalogo3 Catalogo4 Catalogo5

13,14

Estilos y Patrones arquitectonicos

Attribute-Based Architectural Styles, Mark Klein, Rick Kazman, October 1999

15,16 Model Driven Architecture 17,18 Model Driven Architecture 19,20 Patrones de concurrencia 21,22 Patrones de integracion

Model Driven Architecture (MDA), Edited by Joaquin Miller and Jishnu Mukerji

9 10 11

TEMA: CONSTRUCCIN DE FRAMEWORKS DE GENERACIN (6 SEMANAS)


a cargo de Consuelo Franky c) DESCRIPCIN Para ser ms productivas, las empresas que desarrollan proyectos de software buscan apoyarse en frameworks de generacin ya conocidos, y/o en construir un framework propio a la medida de sus necesidades. En cualquier caso se quiere que estos frameworks generen automticamente un porcentaje cada vez mayor del cdigo, implementando patrones de software de forma eficiente, siguiendo un estndar de organizacin definido de antemano, y ofreciendo un conjunto integrado de componentes tiles para diversos tipos de aplicaciones. Durante el curso los estudiantes practicarn con algunos de los frameworks de generacin para una plataforma especfica (Java EE 5) y aprendern las distintas tcnicas para construir frameworks de generacin a la medida. d) PROGRAMA
Semana

12

Horas Tema tema 1: 2h Desarrollo de aplicaciones Java EE 5 utilizando frameworks de generacin

Subtema vi Oct. 1. Frameworks que hacen parte de la 22 arquitectura Java EE 5: JSF, EJB3, Seam (Web Beans). 2. Configuracin de un IDE adecuado para la programacin de aplicaciones Java EE 5, incluyendo los frameworks necesarios.

Fecha

Actividad leer en [Allen 2009] el captulo 1

Instalar las herramientas para Java EE 3. Especificacin y programacin de un caso de 5 siguiendo uso en Java EE 5: flujo de negocio en la gua 1 de trminos de acciones y pginas, componente [Franky] de negocio EJB 3 que soporta el caso de uso con acciones (servicios) en trminos de entidades, pginas que exponen entidades y que invocan las acciones del componente de negocio. lu Oct. 4. Utilizacin de frameworks de generacin 25 Seam para Java EE 5 incluyendo: generador de la versin inicial de una aplicacin, generador de entidades a partir de una base de datos, generador de casos de uso CRUD, generador del esqueleto de un caso de uso, generacin de pruebas unitarias y funcionales. 5. Estudio de ANT como manejador de las tareas de un proyecto.

13

1h

Generar una
aplicacin Java EE 5 siguiendo la gua 4 de [Franky]

consultar
documentacin [ANT]

tema 2: Construccin de frameworks de generacin a la medida mediante tcnicas de plantillas

1h

lu Oct. 1. Estudio de los lenguajes de plantillas que 25 permiten generar o extender los archivos fuentes de un proyecto (por ejemplo Velocity o Jelly).

consultar
documentacin [Velocity]

2h

vi Oct. 2. Construccin de utilitarios basados en los 29 lenguajes de plantillas para generar y extender aplicaciones.

prctica 1

14

tema 3: 2h Sintonizacin del cdigo que se obtiene con frameworks de generacin:

vi Nov. estudiar 1. Ilustracin de utilitarios para organizar el 5 [regularcdigo fuente que se obtiene con frameworks expressions] de generacin (por ejemplo, organizacin en mdulos y casos de uso). consultar documenta2. Ilustracin de utilitarios que extienden las cin [ANT] facilidades de un framework de generacin (por ejemplo, para aadir restricciones de seguridad, soporte de idioma o aadir un mdulo de seguridad o un caso de uso que ilustre la utilizacin de JMS). lu Nov. 1. Conceptos relativos a las expresiones 8 regulares 2. Manejo de expresiones regulares desde el lenguaje Java 3. Manejo de expresiones regulares mediante facilidades de ANT.

15

tema 4: Construccin de frameworks de generacin a la medida mediante tcnicas de expresiones regulares

2 h.

2 h.

vi Nov. 4. Construccin de utilitarios basados en 12 tcnicas de expresiones regulares para generar, sintonizar y extender aplicaciones. vi Nov. 1. Conceptos de MDA 19 2. Definicin de la funcionalidad de un sistema en un modelo PIM (Platform-Independent Model) independiente de la tecnologa 3. Traduccin del modelo PIM a un modelo para una plataforma especfica mediante herramientas de transformacin de modelos

prcticas 2 y 3

16

17

2h tema 5: El enfoque MDA (Model-Driven Architecture) para construir frameworks de generacin a partir de modelos de negocio y transformadores a modelos en tecnologas especficas. tema 6: 2h ambientes MDA para modelar y generar sistemas 2h

lu Nov. 1. Uso del ambiente Acceleo para transformar 22 modelos en cdigo para mltiples plataformas. vi 2. Ambiente WebRatio: permite modelar en Nov. 26 BPM transformando a WebML y transformando luego a una tecnologa especfica (por ejemplo J2EE)

prctica 4

e) EVALUACIN Inicialmente los estudiantes debern generar una aplicacin Java EE 5 utilizando un framework de generacin bien conocido (Seam) y adicionarle el esqueleto de un caso de uso de negocio sencillo mediante el generador apropiado. A continuacin realizarn las siguientes prcticas (en grupos de a 2 o 3 estudiantes):
1. (15%) Construir el generador del caso de uso de negocio utilizando plantillas Velocity 2. (15%) Sintonizar el cdigo generado mediante un utilitario basado en tcnicas de expresiones regulares; el utilitario debe ser elaborado por los estudiantes 3. (20%) Construir el generador del caso de uso de negocio mediante utilitarios basados en tcnicas de expresiones regulares; el utilitario debe ser elaborado por los estudiantes 4. (15%) Utilizar el ambiente Acceleo para expresar un modelo y sus reglas de transformacin con el fin de generar el cdigo correspondiente al modelo para una plataforma especfica.

Adicionalmente se har un parcial de conceptos (35%) f) BIBLIOGRAFA


[Allen 2009] Seam in Action, Dan Allen, Manning Publications Co., 2009 [Seam] http://seamframework.org: Manuales de referencia de JBoss Seam [ANT] http://ant.apache.org : The Apache ANT project [regular-expressions] http://www.regular-expressions.info : notacin de expresiones regulares [Velocity] http://velocity.apache.org : proyecto Velocity o bajar el software de: http://velocity.apache.org/download.cgi o manual resumido del lenguaje: http://velocity.apache.org/engine/devel/vtl-reference-guide.html o manual amplio del lenguaje: http://velocity.apache.org/engine/releases/velocity-1.6.4/userguide.html o manual para usar Velocity desde Java: http://velocity.apache.org/engine/releases/velocity1.6.4/developer-guide.html [Jelly] http://commons.apache.org/jelly : proyecto Jelly [Pastor 2007] Model-Driven Architecture in Practice. A Software Production Environment Based on Conceptual Modeling, Oscar Pastor, Juan Carlos Molina, Springer, 2007. [Mellor 2004] MDA Distilled, Principles of Model Driven Architecture, Stephen Mellor, Kendall Scott, Axel Uhl, Dirk Weise, Addison-Wesley Professional, 2004. [Acceleo] http://www.acceleo.org : sitio del generador de cdigo Acceleo basado en MDA [WebML]: o Building data-intensive Web applications. Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, Morgan-Kaufmann, December 2002 o S. Ceri, P. Fraternali, A. Bongio: Web Modeling Language (WebML): a modeling language for designing Web sites. o WWW9/Computer Networks 33(1-6): 137-157 (2000) S. Ceri, P. Fraternali, S. Paraboschi: Data-Driven, One-To-One Web Site Generation for Data-Intensive Applications. VLDB 1999: 615-626 o www.webml.org : WebML resources (papers, manuals, ), Web modeling compendium & bibliography o www.webratio.com : Tool can be freely downloaded for academic use [Franky] Guas del curso Desarrollo de aplicaciones en Java EE 5 en base a frameworks, Consuelo Franky, programa de Educacin Continuada de la Universidad Javeriana, 2009-2010: gua 1: Instalacin y configuracin de las herramientas para Java EE 5, gua 4: Gua de los generadores del framework Seam

You might also like