Description
Una vez termines este curso, tendrás conocimiento tanto para el diseño de programas con objetos como para diagramar UML; lo que te permitirá diseñar y construir sistemas con objetos, modelando cualquier aspecto de la realidad que desees. Además podrá hacer sistemas de calidad realizando pruebas automáticas del sistema y reestructuraciones del mismo . Aquí también podrás conocer cómo documentar el software y buenas prácticas de diseño. Además, conocerás las ventajas de realizar pruebas automáticas del software y la técnica de programación Test Driven Development (TDD), la cual te será muy útil para hacer sistemas de calidad.
In this course, you will learn :
- Comprender qué es un programa orientado a objetos y los conceptos del paradigma asociado, para diseñar sistemas siguiendo las buenas prácticas.
- Realizar diagramas de objetos, de clases y de secuencia.
- Realizar pruebas unitarias automáticas del sistema.
- Realizar refactorizaciones de código y utilizar la técnica de programación Test Driven Development (TDD).
Syllabus :
1. Introducción a la Programación Orientada a Objetos
- Universidad Austral
- Desarrollo de software
- El paradigma de programación orientado a objetos
- Programación orientada a objetos en Python
- Creando y utilizando clases en Python
- Clasificación y subclasificación
- Polimorfismo y elementos del paradigma orientado a objetos
- Herencia
- Polimorfismo
- Eliminar if
- Eliminar código repetido
2. Diseño con objetos
- Principios de diseño
- Principios de diseño: Simplicidad y consistencia
- Principios de diseño: Máxima cohesión y mínimo acoplamiento
- Reglas de diseño: Mapeo con dominio de problema
- Reglas de diseño: Subclasificación
- Reglas de diseño: Polimorfismo, código repetido y creación de objetos
- Reglas de diseño: Evitar usar None, Objetos inmutables, modelar la arquitectura del sistema
3. Diseño con UML
- Lenguaje Unificado de Modelado
- Diagrama de objetos
- Diagrama de clases
- Diagramas de secuencia
- Codificación del diseño
- Ejercicio Semáforo
4. Testing y TDD
- Introducción al testing de software
- Introducción a los test unitarios
- Factores primos
- Introducción a la refactorización de código
- Mantenimiento de software
- Introducción a Test Driven Development (TDD)
- Desarrollo iterativo e incremental con TDD
- Bad smells en TDD
- Conversión a números romanos