Welcome to the Software Development Practices course! In this course, you will explore techniques for eliciting and documenting software requirements, including the creation of use cases and user stories.
You will learn to design software systems using visual modeling methods such as UML diagrams and Data Flow Diagrams (DFDs). Throughout this learning journey, you will acquire the skills to produce high-quality code, leverage libraries and APIs, and efficiently manage code with version control tools like Git and GitHub.
You will also delve into contemporary deployment and DevOps strategies, encompassing debugging, testing, Docker implementation, and CI/CD pipelines, to ensure robust and reliable software development. With a blend of practical hands-on experience and theoretical insights, this course equips you with the expertise needed to thrive in software development.
Get ready to embark on an exciting learning journey that will enhance your proficiency in Software Development Practices.
- Resumen de Prácticas de Desarrollo de Software
Este módulo proporciona una visión completa del desarrollo de software, incluyendo metodologías y prácticas esenciales. Los estudiantes explorarán el Ciclo de Vida del Desarrollo de Software (SDLC) y compararán metodologías clave como Waterfall, Agile y DevOps. Se enfatizará la importancia de la iteración y la retroalimentación en el proceso de desarrollo para resaltar la mejora continua y la adaptación. Este módulo introduce a los estudiantes en las aplicaciones prácticas de conceptos de desarrollo de software a través de estudios de caso. Al examinar aplicaciones web desarrolladas en Java y Python, los estudiantes obtendrán conocimientos sobre escenarios del mundo real. Además, una descripción general de la estructura del curso mostrará cómo cada módulo está interconectado y se relaciona con los estudios de caso, proporcionando un mapa para el viaje de aprendizaje.
- Requisitos de Software y Prácticas Ágiles
El módulo "Requisitos de Software" ofrece una introducción comprensiva a las técnicas y prácticas esenciales para recopilar, documentar y gestionar requisitos de software. Los estudiantes explorarán mejores prácticas para la recopilación de requisitos y la creación de casos de uso y user stories efectivos. Además, el módulo ofrece una visión general del marco de trabajo Scrum, cubriendo roles, artefactos y eventos para mejorar las habilidades de gestión de proyectos ágiles. A través de un estudio de caso práctico sobre un sistema de cajero automático bancario, los participantes aplicarán sus conocimientos para desarrollar requisitos del mundo real y organizarlos en sprints, asegurando que puedan gestionar proyectos de software eficazmente desde su inicio hasta su finalización.
- Diseño de Software
El módulo "Diseño de Software" equipa a los estudiantes con las habilidades para diseñar eficazmente sistemas de software a través de la gestión práctica de proyectos y el uso de técnicas de modelado visual. Este módulo cubre la creación de casos de uso, user stories y planes de sprint para iniciar un proyecto. También profundiza en los diagramas de Lenguaje Unificado de Modelado (UML), enseñando a los alumnos cómo construir e interpretar diagramas de casos de uso, clase, componente, secuencia y actividad. Además, el módulo se centra en diseñar el flujo de datos con diagramas de contexto y Diagramas de Flujo de Datos (DFDs). Al final de este módulo, los estudiantes serán capaces de diseñar sistemas de software robustos y representar visualmente su arquitectura y procesos de datos con precisión.
- Herramientas, Prácticas y Revisiones de Desarrollo de Código Efectivo
Este módulo se centra en los aspectos esenciales de escribir código de alta calidad, utilizar eficazmente bibliotecas y APIs, y realizar revisiones exhaustivas de código. Los estudiantes explorarán la importancia de un código limpio, entenderán los estándares de codificación y las mejores prácticas, y aprenderán a aplicar estos principios en su trabajo. Además, el módulo cubre la integración y el uso avanzado de bibliotecas y APIs, junto con herramientas para la generación de documentación. Finalmente, los estudiantes obtendrán conocimientos sobre la realización de walk-throughs y revisiones de código productivas, utilizando herramientas comunes para proporcionar retroalimentación constructiva.
- Proyectos de Desarrollo de Software
Este módulo proporciona una introducción comprensiva a los Entornos de Desarrollo Integrados (IDEs) y demuestra su aplicación en un proyecto práctico. Los estudiantes explorarán las características fundamentales de los IDEs populares, entenderán cómo configurar un IDE para sus proyectos y descubrirán plugins que mejoran la productividad. El módulo también incluye una demostración de proyecto práctica, guiando a los estudiantes a través del proceso de entender los requisitos del proyecto, implementación y ejecución en una máquina local.
- Construcción y Versionado de Código
Este módulo proporciona un entendimiento exhaustivo de los procesos y herramientas esenciales para construir, gestionar y controlar el código fuente en el desarrollo de software. Cubre todo el ciclo de vida del código desde la compilación hasta el control de versiones y la aplicación práctica de Git y GitHub. A través de una serie de lecciones y demostraciones prácticas, los estudiantes desarrollarán las habilidades necesarias para gestionar eficientemente el código y colaborar en proyectos de software.
- Depuración y Pruebas
El módulo "Depuración y Pruebas" proporciona a los estudiantes un entendimiento comprensivo de los conceptos y prácticas esenciales en aseguramiento de la calidad del software. A través de tres lecciones enfocadas, los participantes explorarán conceptos introductorios de pruebas, técnicas prácticas de depuración, y enfoques de pruebas estándares de la industria. Combinando conocimientos teóricos con ejercicios prácticos, este módulo equipa a los estudiantes con las habilidades necesarias para asegurar la calidad y la fiabilidad de productos de software en entornos de desarrollo del mundo real.
- Prácticas de Implementación de Software
Este módulo proporciona una visión comprensiva de las prácticas modernas de implementación de software, centrándose en la evolución de servidores físicos a máquinas virtuales y contenedores, con un énfasis en la tecnología Docker. A través de una serie de lecciones, los estudiantes adquirirán conocimientos fundamentales sobre Docker, aprenderán cómo crear y usar Dockerfiles, y adquirirán habilidades prácticas en la implementación de imágenes Docker y en el uso de DockerHub.
- DevOps
Este módulo proporciona una introducción comprensiva a DevOps, cubriendo sus necesidades, definición y dimensiones clave. Profundiza en prácticas esenciales de DevOps como la Integración Continua y la Entrega/Implementación Continua, detallando su implementación dentro de pipelines CI/CD. Además, ofrece demostraciones prácticas para solidificar conceptos teóricos a través de la aplicación práctica. Al final, los estudiantes estarán capacitados para entender, explicar e implementar prácticas de DevOps efectivamente.
- Tendencias Actuales en Prácticas de Desarrollo de Software
El módulo introduce a los estudiantes al papel transformador de la inteligencia artificial en el desarrollo de software moderno. Este módulo primero cubre la implementación del estudio de caso discutido a lo largo del curso; y luego cubre la integración de la IA en varias etapas del ciclo de vida del desarrollo de software, incluyendo desarrollo, pruebas e implementación. Los participantes explorarán tendencias actuales, herramientas y técnicas que aprovechan la IA para mejorar la productividad, precisión y eficiencia. A través de las lecciones sobre prácticas impulsadas por IA, casos de uso del mundo real y tendencias futuras, los estudiantes adquirirán el conocimiento y las habilidades necesarias para incorporar efectivamente tecnologías de IA en sus procesos de desarrollo de software.