GithubHelp home page GithubHelp logo

juliancasaburi / objetos2-unlp-2019 Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 2.0 1.56 MB

Orientación a Objetos 2 (OO2) 2019 - UNLP Informática (3º año) | OOP, GoF design patterns, refactoring to patterns, testing, frameworks

Smalltalk 100.00%
oop smalltalk unlp unlp-informatica oo2 objetos2 patterns refactoring testing

objetos2-unlp-2019's Introduction

ORIENTACIÓN A OBJETOS II (OO2) 2019 - Facultad de Informática, Universidad Nacional de La Plata (UNLP) - 3º año

CONTENIDOS MINIMOS

  • Diseño Orientado a Objetos
  • Patrones de diseño
  • Construcción de aplicaciones con frameworks orientados a objetos.
  • Refactoring. Testing. Metodologías de Diseño Ágiles.

PROGRAMA ANALÍTICO

I - 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.

II -Patrones de Diseño:

  1. Introducción a Patrones. Definición de Patrón. Descripción de un patrón. Catálogo de Patrones.
  2. 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.
  3. Patrones creacionales: Abstract Factory, Singleton.
  4. Patrones estructurales: Composite, Decorador, Adapter, Proxy.
  5. Patrones de comportamiento: Observer, State, Strategy, Template Method, Command.

III - Refactoring

  1. Introducción a Refactoring. Utilidad del refactoring. Técnica de aplicación del refactoring. Casos de uso. Catalogo de refactoring.
  2. 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.
  3. 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.

IV -Frameworks

  1. Introducción a Frameworks. Reutilización de software vs. reutilización de diseño. Clasificación de frameworks según su propósito.
  2. Frameworks basados en herencia (white box frameworks). Frameworks basados en composición (black boxframeworks).
  3. Elementos centrales en la implementación de un framework: Inversión de control, Hostposts, Frozenspots.
  4. Las plantillas y los ganchos como generadores de hotspots e inversión de control. Su implementación con herencia y con composición.
  5. Instanciación de frameworks; casos de estudio: Seaside, SUnit.
  6. Diseño evolutivo de frameworks. El rol estratégico de los patrones, el refactoring, y los tests de unidad.
  7. Documentación de frameworks: ejemplos, hotspot cards, y patrones

V - Test Driven Development

  1. Testing. Importancia. Tipos de tests: de unidad, de integración, de aceptación. Metodología de desarrollo ágil TDD: "Test Driven Development". Relación entre refactoring y testing.
  2. Patrones de tests de unidad: familia de frameworks XUnit.
  3. El framework SUnit de test de unidad en Smalltalk.

Bibliografía

BIBLIOGRAFÍA OBLIGATORIA

  1. Design Patterns. Elements of Reusable Objects Oriented Software. Gamma, Helm, Johnson, Vlissides, Addison-Wesley, Professional Computing Series.
  2. Refactoring: lmproving the Design of Existing Code. Fowler, Martin. AddisonWesley, 1999
  3. Refactoring to Patterns. Joshua Kerievsky. Addison Wesley, 2004. ISBN: 0-321-21335-1
  4. Implementing Application Frameworks: Object-Oriented Frameworks at Work(Hardcover). Mohamed E. Fayad (Editor), Douglas C. Schmidt (Editor), Ralph E.Johnson (Editor).

BIBLIOGRAFÍA COMPLEMENTARIA

  1. Head First Design Patterns. Elisabeth Freeman, Bert Bates, Kathy Sierra - Computers -2004 -676 pages.
  2. Extreme Programming Explained. Kent Beck and Cynthia Andres. AddisonWesley, 2005.
  3. Building Application Frameworks: Object-Oriented Foundations of Framework Design. Mohamed E. Fayad (Editor), Ralph E. Johnson (Author), Douglas C. Schmidt (Editor).
  4. Domain-Specific Application Frameworks: Frameworks Experience by Industry (Hardcover). Mohamed E. Fayad (Editor), Ralph E. Johnson (Editor).
  5. 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]
  6. Designing Reusable Classes. B. Foote, R. Johnson. Journal of Object-Oriented Programming, 1998.
  7. 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]
  8. Kent Beck. Simple Smalltalk Testing: With Patterns. http://www.xprogramming.com/testfram.htm
  9. Stephane Ducasse. SUnit Explained. http://www.iam.unibe.ch/~ducasse/

objetos2-unlp-2019's People

Contributors

juliancasaburi avatar

Watchers

 avatar  avatar

Forkers

fedesbk averge

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.