Edit this page

Programa Analítico

UNIDAD 1: Arquitectura de aplicaciones multicapa

Repaso de las arquitecturas más comunes en sistemas distribuidos. Dos y tres capas. Modelo de tres capas, la tendencia actual. Modelo distribuido y de microservices, introducción. Publicadores y consumidores de datos. Patrones de diseño en arquitecturas distribuidas, Event-Sourcing.

UNIDAD 2: Herramientas de soporte al proceso de desarrollo

Entornos integrados de desarrollo. Ciclos de vida de una aplicación. Servicios de los entornos de desarrollo integrados (IDE) modernos. Compiladores just-in-time. Máquinas virtuales, containers y virtualización a nivel SO. Capa de acceso a datos. Framework de persistencia.

UNIDAD 3: Aplicaciones orientadas a servicios

Servicios de BackEnd y servidores de aplicaciones. Modelo REST. Frameworks de persistencia. Evolución de los sistemas distribuidos. SOLID. SRP: The Single Responsability Principle. OCP: The Open-Close Principle. LSP: The Liskov Substitution Principle. ISP: The Interface Segregation Principle. DIP: The Dependency Inversion Principle. Componentes, Acoplamiento y Cohesión.

UNIDAD 4: Programación de la interfaz de usuario.

Desarrollo con clientes livianos, el rol de los navegadores de internet en las tecnologías actuales. HTML. Arquitectura del servidor HTTP. Guiones (scripts). Scripting de lado del servidor. Scripting del lado del cliente. Lenguajes de scripting, generalidades.

UNIDAD 5: Pruebas unitarias.

Conceptos. Stubs, Mocks, Spies y Dummies. Cobertura. Statement Coverage. Decision Coverage. Branch Coverage. Toggle Coverage. FSM Coverage. Herramientas. Pruebas de integración. Pruebas de Sistema. Pruebas de Aceptación.

UNIDAD 6: Desarrollo Seguro.

Principios y Buenas Prácticas. Vulnerabilidades web. Ciclo de desarrollo de software seguro. Modelo OSWAP. SQL Injection. XSS (Cross Site Scripting). Seguridad en Microservicios, APIs, Autenticación, Sesiones. Web Tokens, Introducción a OAuth 2.

Bibiliografía

General

  • Kleppmann, M. (2017). Designing Data-Intensive Applications. The big ideas behing reliable, scalable, and maintainable systems. 1005 Gravenstein Highway North, Sebastopol, CA 95472: O’Reilly Media.
  • Bass, L., Clements, P., & Kazman, R. (2012). Software Architecture in Practice. (Thrid Edition ed.). Addison-Wesley Professional.
  • Calcote, L., & Butcher, Z. (2020). Istio Up & Running. Using a Service Mesh to Connect, Secure, Control, and Observe. 1005 Gravenstein Highway North, Sebastopol, CA 95472: O’Reilly Media.
  • Poulton, N., & Joglekar, P. (2019). The Kubernetes Book. Nigel Poulton.
  • Martin, R. (2017). Clean Architecture. A Creftman’s Guide to Software Structure and Design. Boston, MA: Prentice Hall.
  • Martin, R. (2021). Clean Craftsmanship: Disciplines, Standards, and Ethics. Addison-Wesley Professional.
  • Fowler, M. (2018). Refactoring. Improving the Design of Existing Code (Second Edition ed.). Addison-Wesley Professional.
  • Ford, N., Richards, M., Sadalage, P., & Dehghani, Z. (2021). Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures. O’Reilly Media, Inc.
  • Mezzalira, L. (2021). Building Micro-Frontends. O’Reilly Media, Inc.

Complementaria

  • Farley, David (2021). Modern Software Engineering: Doing What Works to Build Better Software Faster. (1st Edition) ADDISON WESLEY Publishing Company Incorporated. ISBN: 0137314914.

Webgrafía