Curso de Análisis y Diseño Orientados a Objetos
Fundamentos para desarrollar un software de calidad: legible, flexible al cambio, robusto y reutilizable.
Material disponible
Avanzado
12 Clases 26 h
En este curso vamos a abordar las disciplinas necesarias para desarrollar software de calidad, que permita reducir los costes de los proyectos y aumentar la satisfacción del cliente. Estudiaremos el análisis y diseño orientado a objetos a través de principios, leyes, patrones de asignación de responsabilidades, métricas de calidad y criterios para producir un código limpio. Aprenderemos a detectar y solucionar también situaciones indeseables como el código maloliente y los antipatrones de desarrollo.

Es un curso dirigido a profesionales con conocimientos de Programación Orientada a Objetos, indispensable para aquellos que desean aumentar su desempeño y la calidad de su trabajo como programadores.

Con el siguiente vídeo puedes encontrar una excelente aproximación al contenido del curso, que grabamos en directo con Luis Fernández, nuestro profesor.

Qué aprenderé en el Curso de Análisis y Diseño Orientados a Objetos

A lo largo del curso abordaremos diversas temáticas, de necesario conocimiento y aplicación para desarrollar proyectos con alta calidad de código, maximizando los beneficios de la Programación Orientada a Objetos.

El curso consta de 20 horas. La distribución de la carga horaria se reparte a lo largo de tres puntos fundamentales:

Tema 1: Software (4h) Definiciones generales y sus relaciones, de necesario conocimiento para entender el resto de los temas

Tema 2: Análisis (3h) Enfoques y estrategias que conducen a un análisis de calidad

Tema 3: Diseño (13h) Pautas en lógica positiva (principios, leyes, patrones de asignación de responsabilidades, …) y negativa (antipatrones y código maloliente) que conducen a un diseño de calidad

Qué tengo que saber

Para el acceso al curso de Análisis y Diseño Orientado a Objetos se requiere conocer los fundamentos de la Programación Orientada a Objetos, es decir, tener claros conceptos como Clases, objetos, métodos, atributos, herencia.

Clases y contenidos

Introducción al análisis y diseño orientados a objetos Gratis
  • Qué es el análisis y diseño orientados a objetos?
Naturaleza del código
  • Abstracción
  • Acoplamiento
  • Encapsulación
Diseño de software
  • Introducción a diversos puntos de la teoría, aclarando conceptos que se verán con detalle durante las etapas prácticas, cuando veamos código.
  • Factores de calidad del software, a distintos niveles, las cuales dependen en mayor o menor medida de la calidad del diseño. No solo se verán los aspectos fundamentales deseables en un desarrollo, sino también descripciones de los factores que reducen la calidad del software. También se introducen diversas metodologías de desarrollo.
  • Comenzamos con la parte práctica, explicando la metodología con la que vamos a seguir el resto del curso. Comenzamos a ver un código de un programa que tomaremos como base. Al principio ese código está realmente mal y a medida que se aprendan los conceptos de análisis y diseño se irá modificando y aplicando las correcciones deseadas.
Introducción al análisis
  • Siguiendo la metodología práctica del curso se identifican nuevos problemas en el código de la aplicación con la que vamos a trabajar
  • Problemas de diseño y sus soluciones
    • Código mal comentado
    • Mal nombrado
    • Descomposición funcional
    • Clases grandes
  • Comenzamos a ver análisis, abordando diversas estrategias de análisis:
    • Análisis clásico, por dominio, comportamiento.
    • Veremos algunos asuntos interesantes como GRASP DRY
Prácticas de análisis y diseño
  • Conceptos de análisis como cohesión, acoplamiento, etc., necesarios para entender las siguientes decisiones de modificación de nuestro proyecto.
  • Durante las prácticas del curso pasaremos a crear nuevas versiones de la aplicación. Creando diversos pasos:
    • De una clase muy grande, atendiendo a los nuevos conocimientos de análisis pasaremos a una nueva versión con una jerarquía de varias clases.
    • En la nueva versión del código detectamos nuevos problemas, como cambios divergentes o código muerto.
    • En la siguiente aplicaremos YAGNI para obtener una nueva versión de nuestro código. Nuevas versiones del código en las que observaremos problemas como clases perezosas, cirugía a escopetazos, el principio de la mínima sorpresa...
Nuevas prácticas
  • Nuevas prácticas en las que vamos reconociendo nuevos problemas en el código y creando nuevas versiones de la aplicación para solucionarlas.
    • DRY y Listas de parámetros largas
    • KISS y Métodos largos
  • Nuevos conceptos de diseño de clases, como el diseño por contrato, aplicando estos conocimientos a nuevas versiones de nuestra aplicación.
Resumen del análisis y diseño visto hasta el momento
  • Repaso a todos los conceptos de análisis y diseño aplicados durante las clases prácticas, con la intención de recopilar toda la teoría vista hasta el momento y organizar las ideas de manera global.
  • Práctica para seguir implementando cambios en la aplicación, para reflejar mejoras atendiendo a relaciones entre clases
Nuevas mejoras de análisis y diseño
  • Nuevas mejoras en la aplicación y nuevos conceptos de análisis y diseño:
    • Inapropiada intimidad
    • Reusabilidad por herencia y relación por herencia
    • Principio de sustitución de Liskov
    • Relación de herencia vs composición
    • Controlador por caso de uso etc
Ampliando la funcionalidad
  • Código sucio por herencia rechazada y patrón método plantilla
  • Polimorfismo
  • Diseño deseable pensando en la ampliación de funcionalidad por el cambio de requisitos
  • Inversión de control
Retorciendo el diseño
  • Nuevas modificaciones para retorcer el diseño y conseguir que todo pueda crecer hasta el punto que se desee, manteniendo todos los principios vistos hasta el momento.
  • Además vemos jerarquías de herencia paralelas, creador, leyes de Demeter, etc.
Llevando el diseño más allá
  • Cómo el empaquetado facilita o permite la colisión de nombres.
  • Principio de única responsabilidad (uno de los principios SOLID).
  • Técnica del doble despacho e inversión de dependencias.
Extra repaso final, Inversión de dependencias y Open Close
  • Inversión de dependencias y el principio abierto/cerrado.
  • Qué ventajas conseguimos gracias al diseño final: robusto, flexible, legible, reusable…
  • Repaso final a todo el conocimiento del curso y cómo debemos orientar nuestro conocimiento para trabajar a partir de ahora.

Valoraciones

Rafael Escala

Roberto Delgado Sánchez

Jaime Aguila Sanchez

Jaime Vilca

Jean Pool

Daniel

David Domenech

isainz753

Francisco Javier Herrera Sanchez

Pedro Escudero

JOSÉ MANUEL SOTELO JIMENEZ

Fahed

Jaime Castrillo Elvir

eniel lorenzo

JMSanchez

Jose Alberto Chamorro Moreno

Ingrid Carolina Peláez

Arturo Portable

Jose Joaquin Meseguer Jimenez

Holden

José Ramón Barreras Flores

ZyControl Richard Alvarez Mamani

Lisandro Martinez

Juan Torres Villarroel

jonhathan rodas

Xabier Bikuña

Manuel Argiz

Iván Roldán

Christian Barrios Fragozo

Renso Valencia

El profesor es un capo, espero pueda brindar una charla sobre cómo empezó en el software hasta que termino convirtiéndose en el arquitecto que es

DAVID MANUEL

Roberto Mendoza Ulecia

Rafael Cruz Mendoza

David

Oscar Andres Guevara Arias

Es el curso definitivo para entender POO

Lydia Tapiero Eljarrat

Me gustaría que se enviaran ejercicios prácticos, para que el curso fuera todavía más perfecto. Y a veces se hacen pesadas tantas preguntas.

Ramón de la Guía

Maximiliano perrone

Sashir Estela

Hugo Felipe Alavez Bautista

Javier Vañó

italoberrospi

Iban Laya Rouco

ARSYS INTERNET SLU

Andres Cubillos Salazar

Excelente el contenido y el profesor. En ningún otro sitio he podido encontrar esta calidad de contenido.

Ricardo Luizaga

Jhon Zevallos

Jose María Rodríguez Medina

Decir que es interesante se queda corto, es genial

rafasu

Luis es demasiado bueno

Toni

Samuel Taboas Rodriguez

xavier gomez canals

Es un maquina Luis!, Sabe, y sabe enseñar!

Nicolas

El profesor es claro en los conceptos y tiene un estilo distendido para explicar,muy interesante el tema y como lo comunica

Jorge Luis Campos Moreno

muy bueno

Antonio

Mejor imposible

Dan Milgram

muy bueno

Juan Aguilar

el profesor es realmente un experto en la materia, y sabe expresar sus ideas de forma clara y entendible

Ana

Gracias! muchas!

Salvador Ródenas Marquez

Imprescindible este conocimiento.

Mario Alejandro Armenta

Excelente curso. Tomen los anteriores cursos de Luis antes de tomar este

Matias Peñafiel

Estas clases son de película !. La claridad con la que explica Luis es excelente. Saludos desde Argentina.

Oscar Obregón Martín

Alex Albuja

Antonio Aldrin Miranda Peñaranda

Excelente curso!!!!, realmente no es teclear y esperar que salga el código; debe hane un Análisis y Diseño. Luis eres fenomenal!!!

Eduard Gallofré Asens

Jose Antonio

Este curso no tiene precio. No es un curso para ver. Es un curso para estudiar a lo largo de toda una vida.

Daniel Gutiérrez de Benito

Cesar Abraham Saavedra Drouet

Excelente calidad de la informacion

OSCAR APARICIO ESCRIBANO

David García

El mejor curso online, de lejos, que he consumido hasta la fecha. Contenido que debería ser obligatorio cuando nos enseñan a programar. Gracias a la carisma de Luis, los conceptos se aprenden muy bien, y para lo extenso que es el curso, no se hace para nada pesado. Ojalá este contenido llegue a mucha gente, que falta hace!

Héctor Garcia Peris

Un curso fantástico, que te hace replantearte toda tu trayectoria como programador

Daniel Díaz Ramos

Rubén

Carlos V

Muy Profesional!..entretenida...importante...como siempre Luis colocando las cosas en su lugar...

David Moral

Sergio García Sánchez

Antonio Pichardo Pérez

Alvaro BM

Yonny Coyla

BENIGNO JUAN PAREJA MARTINEZ

Waldo Araya

Luis Fernandez es un crack. Un docente increible. Imperdible total.

David Manero

Rufino Bernedo

Monica Fernández

Gracias a Luis y al equipo por ofrecernos tanto aprendizaje junto...y además ameno!

Lucas Frias

Luis es el mejor profe que tuve hasta el momento!!

santiago Vélez Suárez

Geovani Robles

Jose Luis Garcia Cabeza

Inprescindible si quieres considerarte un profesional del desarrollo. Tanto este como todos los cursos impartidos por este docente, hjjasta la fecha no he encontrado mejor maestro.

MARIBEL NARGANES

Samuel Guardado

Manuel Soberano

de lo mejor

Alvaro Ramirez Castillo

muy bueno

Rubén Galán Jiménez

Se hace ameno

Víctor La Hoz

¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 130 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.

Suscríbete