Orientación a Objetos 2 - Facultad de Informática UNLP

... C++ et le serveur est sous Apache en PHP en utilisant un design pattern MVC.
... application, en C++ sous Windows, de visualisation d'examens médicaux.

Part of the document

|ORIENTACIÓN A OBJETOS II |Carrera/ Plan: |
| |Licenciatura en Informática |
| |Plan 2003-07 |
| |Licenciatura en Sistemas |
| |Plan 2003-07 |
| |Analista Programador |
| |Universitario Plan 2007 |
| |Año: 3° |
|Año 2014 |Régimen de cursada: Semestral |
| |Carácter: Obligatoria |
| |Correlativas: |
| |Orientación a Objetos I |
| |Taller de lecto-comprensión y |
| |traducción de Ingles |
| |Coordinador: Gustavo Rossi |
| |Profesor: Alejandra Garrido |
| |Alejandro Fernández |
| |Hs. semanales: 6 hs. | FUNDAMENTACIÓN OBJETIVOS GENERALES:
|Profundizar los temas desarrollados por el alumno en Orientación a |
|Objetos 1. Se enfatizará en la construcción de arquitecturas de |
|software modulares, extensibles y reusables, conceptos claves para |
|aplicaciones de gran porte. Se introducirá también al alumno en el |
|uso de un lenguaje de modelado gráfico orientado a objetos (UML), que|
|le permitirá construir diagramas especificando distintos aspectos de |
|un sistema. Los trabajos prácticos se realizarán usando el lenguaje |
|de modelado y diferentes lenguajes de implementación, tales como |
|Smalltalk, Java, C++, Delphi, etc. Que son los más apropiados de |
|acuerdo a estos objetivos. | CONTENIDOS MINIMOS:
|Metodologías de diseño orientado a objetos |
|Construcción de Aplicaciones |
|Diseño |
|Patterns | PROGRAMA ANALÍTICO
Diseño Orientado a Objetos 1. La filosofía del proceso de desarrollo de software. Las etapas del
proceso de desarrollo de software. Procesos de desarrollo iterativos e
incrementales, basados en modelos: Utilidad de los modelos. Los modelos a
través del proceso de desarrollo de software. Cualidades y clasificación
de los modelos. 2. UML como Lenguaje de modelado. Diagrama de clases. Diagrama de estados.
Diagrama de interacción. Patrones de Diseño: 3. Introducción a Patrones. Definición de Patrón. Descripción de un patrón.
Catálogo de Patrones. 4. Patrones de diseño. Definición. Descripción de un patrón de diseño.
Organización del Catálogo de patrones de diseño. Utilidad de los patrones
de diseño. Selección de los patrones de diseño. Uso de los patrones de
diseño. 5. Patrones creacionales: Abstract Factory, Singleton. 6. Patrones estructurales: Composite, Bridge, Decorador, Adapter. 7. Patrones de comportamiento: Observer, State, Strategy, Template Method,
Cornrnand, Mediator, Iterartor. Frameworks 8. Introducción a Frameworks. Reutilización de software vs, reutilización
de diseño. Frameworks basados en herencia (white box frameworks): ejemplo
Hotdraw. Frameworks basados en composición (black boxframeworks):
ejemplo MVC. 9. Frameworks como Modelos + Arquitecturas. Modelo de dominio de
aplicación. Frameworks: Arquitecturas genéricas orientadas a
objetos. 10. Instanciación de aplicaciones con un framework. 11. Documentación de frameworks. Técnicas: Descripción del Uso del
Framework Descripción del Diseño Detallado. Técnicas específicas:
Patrones, Patrones de diseño, Contratos, Meta-Patrones: hot-spots cards. 12. Los ejemplos como herramienta para la comprensión del framework. 13. Diseño de frameworks: conducido por ejemplos, por refactoring o por
puntos de flexibilización. Refactoring 14. Introducción a Refactoring. Utilidad del refactoring. Técnica de
aplicación del refactoring. Casos de uso. Catalogo de refactoring. 15. Manipulación de métodos largos: Extract Method. lnline Method, Replace
Temp with Queries, Replace Method with Method Object. Mover aspectos
entre objetos: Move Method, Move Field, Extract class. Organización de
datos. Self Encapsulate Field, Replace Data Value with Objects, Replace
Type Code with Class / Subclass /State- Strategy. Simplificación de
invocación de métodos: Rename Method, Replace Constructor with Factory
Method, Parameterize Method. Simplificación de expresiones condicionales:
Replace Conditional with Polimorfism. Manipulación de la generalización:
Pull Up Method. Push Down Method, Extract Subclass, Extract Superclass,
Form Template Method, Replace lnheritance with Delegation. 16. Refactoring hacia patrones. Unify interfaces with Adapter. Form
Template Method. Replace conditional logic with strategy. Replace State-
Altering Conditionals with State. Replace Hardcoded Notifications with
Observer. Move Embellishment to Decorator. METODOLOGÍA DE ENSEÑANZA La cursada de la materia se organiza en clases teóricas y actividades
prácticas.
En las clases teóricas se imparten los conceptos básicos de la materia,
induciendo a la participación de los alumnos en la resolución de ejercicios
de diseño que permite la incorporación activa de los conocimientos.
Hay dos tipos de clases prácticas, una donde se refuerzan los contenidos de
la teoría con explicaciones de los JTP y donde se describe cada trabajo
práctico, y otra donde los alumnos pueden acercarse a realizar consultas
individuales sobre la resolución del trabajo práctico. Para ello se dispone
de dos turnos (mañana y tarde) y algunas en turno especial. Además, las
clases de consultas son en sala equipadas con computadoras y en aulas
tradicionales. EVALUACIÓN La evaluación de los aspectos prácticos de la asignatura tiene lugar en un
examen escrito, presencial con dos oportunidades de recuperación. La aprobación final puede ser la realización de un proyecto y su defensa o
un examen final escrito. Fechas tentativas de evaluación
> Parcial: viernes 27/6 18-21hs
> 1er Recuperatorio: viernes 11/7 18-21 hs
> 2do Recuperatorio: viernes 1/8 18-21 hs
BIBLIOGRAFÍA OBLIGATORIA
Design Patterns. Elements of Reusable Objects Oriented Software. Garnma,
Helm, Johnson, Vlissides, Addison-Wesley, Professional Computing Series.
Refactoring: lmproving the Design of Existing Codeo Fowler, Martin. Addison-
Wesley, 1999.
Refactoring to Patterns. Joshua Kerievsky. Addison Wesley, 2004. ISBN: 0-
321- 21335-1
Implementing Application Frameworks: Object-Oriented Frameworks at Work
(Hardcover). Mohamed E. Fayad (Editor), Douglas C. Schmidt (Editor), Ralph
E. Johnson (Editor).
BIBLIOGRAFÍA COMPLEMENTARIA
Head First Design Patterns. Elisabeth Freeman, Bert Bates, Kathy Sierra -
Computers -2004 -676 pages.
Extreme Programming Explained. Kent Beck and Cynthia Andres. Addison-
Wesley, 2005.
Building Application Frameworks: Object-Oriented Foundations of Framework
Design. Mohamed E. Fayad (Editor), Ralph E. Johnson (Author), Douglas C.
Schmidt (Editor).
Domain-Specific Application Frameworks: Frameworks Experience by Industry
(Hardcover). Mohamed E. Fayad (Editor), Ralph E. Johnson (Editor). Johnson, R. E. 1997. Components, frameworks, patterns. In Proceedings of
the 1997 Symposium on Software Reusability (Boston, Massachusetts, United
States, May 17 - 20, 1997). M. Harandi, Ed. SSR '97. ACM Press, New York,
NY, 10-17. [PDF]
Designing Reusable Classes. B. Foote, R. Johnson. Journal of Object-
Oriented Programming, 1998.
D. Roberts and R. Johnson. Evolving Frameworks: A Pattern Language for
Developing Object-Oriented Frameworks. Proceedings of Pattern Languages of
Programs, Allerton Park, Illinois, September 1996. [PDF]
Kent Beck. Simple Smalltalk Testing: With Patterns.
http://www.xprogramming.com/testfram.htm
Stephane Ducasse. SUnit Explained. http://www.iam.unibe.ch/~ducasse/ CRONOGRAMA DE CLASES Y EVALUACIONES |Clase |Contenidos/Actividades |Evaluaciones previstas|
|1 |Presentación de la | |
| |asignatura. Diseño OO. | |
| |Características de un buen | |
| |diseño OO. | |
|2 |Patrones de diseño: | |
| |introducción. El patrón | |
| |Adaptador. Prácticas de | |
| |diseño en implementación. | |
|3 |Construcción de aplicaciones| |
| |interactivas: Separación en | |
| |capas. Práctica aplicando el| |
| |patrón Adaptador. | |
|4 |Patrón Observador. La | |
| |implementación del patrón | |
| |observador en Smalltalk: | |
| |dependencias. Práctica de | |
| |construcción de aplicaciones| |
| |interactivas. | |