Documentos de Académico
Documentos de Profesional
Documentos de Cultura
01-02 Semana - Unidad I
01-02 Semana - Unidad I
me siento
hoy?
Comenta brevemente tu
estado de ánimo con tu
docente y compañeros
¿Qué
hicimos la
clase
anterior?
Comenta los temas tratados en
clase anterior
Agenda
Introducción a la construcción
de software
Explicación de qué comprende la
Temas ha tratar en la sesión de construcción de software, diferenciándola
clase 1 -2 del simple desarrollo de software
Principios de programación
DRY , KISS , YAGNI, y SOLID
Patrones de diseño.
¿Qué son los patrones de diseño y por
qué son importantes en la construcción de
software robusta y mantenible.?
Versionado
Importancia de un sistema de control de
versiones (como Git) en proyectos de
software grandes y pequeños.
Saberes previos
Temas básicos que sirven de base para el avance de la
asignatura
- Chris Pine.
Definición de Construcción de Software
La construcción de software incluye todas
las actividades relacionadas con la
producción del software en sí, desde la
codificación hasta la compilación, el testing
y la depuración. No se limita sólo al acto de
escribir código, sino que también abarca la
planificación inicial de las estructuras de
datos y algoritmos, la implementación de
modelos funcionales y la gestión de
versiones del software a lo largo del tiempo.
Componentes clave
de la Construcción de Codificación
Compilación
Transformar el código fuente escrito en un lenguaje de
programación a un código máquina que puede ser
ejecutado por un computador.
Testing
Pruebas involucran la verificación de que el software
funciona según lo esperado.
Componentes clave
de la Construcción de
Software
Depuración
Mantenimiento
Incluye la actualización, la mejora y la corrección del
software después de su despliegue
Importancia de la Construcción de
Software
La construcción de software es
fundamental no sólo para crear
aplicaciones funcionales y eficientes,
sino también para asegurar que
estas puedan evolucionar con las
necesidades cambiantes de los
usuarios y la tecnología.
Importancia de la Construcción de
Software
Escalabilidad
Facilita la ampliación del software para soportar más
usuarios o procesos sin comprometer el rendimiento
Mantenibilidad
Simplifica la introducción de cambios, correcciones de
errores y mejoras.
Calidad
Aumenta la robustez del software, reduciendo errores y
mejorando la experiencia del usuario.
Principios de
programación
"La simplicidad es la sofisticación
suprema."
- Leonardo da Vinci.
Principios clave en
programación DRY (Don't Repeat Yourself)
Aplicación
Para aplicar DRY, utiliza funciones, clases y otras
abstracciones para encapsular comportamientos que se
repiten. Esto no solo reduce la duplicidad sino que también
promueve la reutilización del código.
Principios clave en
programación KISS (Keep It Simple, Stupid)
Aplicación
Cuando implementes soluciones, opta por la opción más
simple que funcione. Evita usar técnicas complejas donde
un enfoque simple y claro sería suficiente.
Principios clave en
programación YAGNI (You Aren’t Gonna Need It)
Aplicación
Solo implementa cosas cuando realmente las necesites, no
cuando simplemente pienses que las necesitarás. Esto
ayuda a evitar la complejidad innecesaria y mantiene el
proyecto ágil y manejable.
Principios clave en
programación SOLID
Ejemplos
Singleton, Factory Method, Abstract Factory, Builder,
Prototype.
Tipos principales de
patrones de diseño
Estructurales
Ejemplos
Adapter, Composite, Proxy, Flyweight, Facade, Bridge,
Decorator.
Tipos principales de
patrones de diseño
De Comportamiento
Ejemplos
Observer, Strategy, Command, Iterator, Mediator, State,
Visitor, Template Method.
Aplicación en C#
Aplicación de
patrones de diseño
Singleton
Garantiza que una clase tenga una única instancia y
proporciona un punto de acceso global a ella
Aplicación en C#
Aplicación de
patrones de diseño
Observer
Permite a un objeto publicar cambios en su estado. Otros
objetos se suscriben para recibir notificaciones de los
cambios.
Importancia de los
patrones de diseño
Nos permite
- Paul R. Ehrlich
Versionado
El versionado, una práctica esencial para la
gestión eficaz de proyectos de software. El
versionado permite a los desarrolladores controlar
y gestionar los cambios en el código fuente,
facilitando la colaboración, el mantenimiento y la
trazabilidad en proyectos complejos y dinámicos.
Conoceremos los sistemas de control de versiones
más utilizados, con un enfoque especial en Git, y
cómo aplicar estas herramientas en el contexto
del desarrollo de software profesional.
Conceptos clave del
Versionado
Versionado semántico (SemVer)
Definición
El versionado semántico es una convención para asignar
versiones de manera que reflejen el tipo de cambios
realizados, usando tres números: mayor, menor y parche
(por ejemplo, 1.4.3).
Mayor: Cambios que hacen incompatible la nueva
versión con versiones anteriores.
Menor: Adiciones que son compatibles con
versiones anteriores.
Parche: Correcciones de errores compatibles con
versiones anteriores.
Conceptos clave del
Versionado
Control de versiones
Agregar Cambios:
Aplicación práctica
de Git
Uso básico de Git
Manejo de ramas: