Curso en línea: especialización profesional certificada en diseño y arquitectura de software por Google y la Universidad de Alberta.

Estrategias conscientes para el desarrollo de software de calidad. Piense como un arquitecto experto y cree software de calidad utilizando patrones y principios de diseño.

Suggested by: Coursera (What is Coursera?)

Professional Certificate

a partir de

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • habilidades de comunicacion
  • pensamiento crítico
  • gestión del tiempo
  • trabajo en equipo
  • resolución de problemas
  • Capacidades de análisis de datos
  • creatividad
  • Hacer frente a las presiones
  • habilidades de liderazgo
  • Capacidad de aprendizaje independiente

What you will learn in the course

Courses for which the course is suitable

  • desarrollador de software
  • ingeniero de software
  • desarrollador de aplicaciones para Android
  • Arquitecto de software
  • desarrollador java
  • Desarrollador de sistemas de información
  • Desarrollador Full Stack
  • desarrollador back-end
  • desarrollador front-end
  • Responsable de proyectos tecnológicos

Profesionalización: una serie de cursos de 4 partes

En la serie de cursos de especialización en Diseño y arquitectura de software, aprenderá cómo aplicar principios, patrones y arquitectura de diseño para crear aplicaciones y sistemas de software que sean reutilizables y flexibles. Aprenderá a expresar y documentar el diseño y la arquitectura de un sistema de software utilizando notación visual.

Los ejemplos prácticos y las oportunidades para aplicar sus conocimientos lo ayudarán a desarrollar habilidades de búsqueda de empleo y capacitación relevante en la industria del software.

Un proyecto de aprendizaje práctico.

El proyecto final incluye una aplicación de Android basada en Java, que editarás y desarrollarás durante los cuatro cursos de la especialización. La aplicación evolucionará desde una aplicación para un solo usuario que guarda datos localmente, a una aplicación Multiusuario que guarda datos de forma remota. En cada curso recibirás una base de código en Java como punto de partida y tendrás que documentar e implementar nuevos contenidos utilizando los conocimientos adquiridos en el curso.

Encontrará tutoriales que le ayudarán a comprender la base del código inicial y aprender los conceptos básicos del desarrollo de Android.

requisitos previos

  • Se requiere que tengas conocimientos básicos de programación Java.
  • La aplicación final requerirá que utilices Android Studio, un entorno de desarrollo integrado.
  • Para obtener más información sobre Android Studio, consulte los tutoriales para Windows o Mac.

Details of the courses that make up the specialization

Diseño orientado a objetos

  • Curso 1 • 17 horas • 4,7 (2.315 valoraciones)

Detalles del curso

¿Qué aprenderás?

Este curso lleva a los principiantes de Java al siguiente nivel al cubrir el análisis y el diseño orientado a objetos. Descubrirá cómo crear software modular, flexible y reutilizable aplicando principios y pautas de diseño orientado a objetos. También puede comunicar estos diseños utilizando una notación visual llamada Lenguaje de modelado unificado (UML).

En el proyecto final, tendrá el desafío de aplicar sus conocimientos de diseño orientado a objetos desarrollando y confiando en el código base Java para una aplicación de Android con documentos UML apropiados.

Después de completar este curso, podrá:
  • Aplicar la técnica de responsabilidad de colaboración entre departamentos (CRC) para analizar y diseñar el modelo orientado a objetos para el problema.
  • Explicar y aplicar los principios del modelado orientado a objetos y sus objetivos (p. ej., abstracción, encapsulación, descomposición, generalización).
  • Explicar y aplicar los diferentes tipos de herencia.
  • Explique la diferencia entre dependencias de asociación, agregación y composición.
  • Expresar modelos orientados a objetos como diagramas de clases en UML.
  • Traducir entre diagramas de clases en UML y el código base Java correspondiente.
  • Aplique pautas de diseño para modularidad, separación de dominios, ocultación de información e integridad conceptual para crear un diseño flexible, reutilizable y mantenible.
  • Explicar el dilema entre holismo y conectividad.

Habilidades que ganarás

  • Categoría: Diseño Orientado a Objetos
  • Diseño orientado a objetos
  • Categoría: Análisis y Diseño Orientado a Objetos
  • Análisis y diseño orientado a objetos.
  • Categoría: Lenguaje de modelado unificado (UML)
  • Lenguaje de modelado unificado (UML)

patrones de diseño

  • Curso 2 • 15 horas • 4,7 (1.308 valoraciones)

Detalles del curso

¿Qué aprenderás?

Este curso amplía el análisis y el diseño orientado a objetos incorporando patrones de diseño para crear aplicaciones interactivas. A través de una revisión de los patrones de diseño establecidos, obtendrá conocimientos básicos para aplicaciones de software más complejas. Finalmente, identificará diseños de software problemáticos consultando la Guía Code Smells.

En el proyecto final, se le desafiará a rediseñar una aplicación de Android basada en Java existente para implementar una combinación de patrones de diseño. También inspeccione una base de código Javascript determinada para detectar olores de código.

Después de completar este curso, podrá:
  • Demostrar cómo utilizar patrones de diseño para abordar problemas de diseño de interfaces de usuario.
  • Identificar el patrón de diseño más apropiado para abordar el problema de diseño de una aplicación determinada.
  • Aplicar principios de diseño (p. ej., abierto-cerrado, inversión de dependencia, conocimiento mínimo).
  • Auditar código identificando y reparando antiestructuras.
  • Aplicar el patrón de arquitectura modelo-vista-controlador.

arquitectura de software

  • Curso 3 • 9 horas • 4,5 (893 valoraciones)

Detalles del curso

¿Qué aprenderás?

La forma en que se organizan los componentes del software (subprocedimientos, clases, funciones, etc.) y las interacciones entre ellos se denomina arquitectura. En este curso aprenderás cómo se representan estas arquitecturas, tanto en UML como en otras herramientas visuales. Presentaremos las arquitecturas más comunes, sus características y dilemas. Hablaremos sobre cómo se evalúa la arquitectura, qué constituye una buena arquitectura y cómo se puede mejorar la arquitectura. También hablaremos de cómo la arquitectura afecta el proceso de desarrollo de software.

En el proyecto final, documentarás una aplicación de Android basada en Java con diagramas UML y evaluarás la arquitectura de la aplicación utilizando el Método de análisis de dilemas de arquitectura (ATAM).

Después de completar este curso, podrá:
  • Compare y contraste componentes, conexiones, protocolos, topologías, limitaciones, dilemas y variaciones de diferentes tipos de estilos arquitectónicos utilizados en el diseño de aplicaciones y sistemas (por ejemplo, programa principal y subprocedimiento, orientado a objetos, velas, tuberías y filtros, centros de datos, basado en eventos).
  • Describir las características de las arquitecturas multicapa y multinivel.
  • Cree diagramas UML diseñados para empaquetado, componentes y diseño para expresar la estructura arquitectónica de un sistema.
  • Explicar el comportamiento de un sistema utilizando diagramas de actividad en UML.
  • Documente un sistema de múltiples aplicaciones con una arquitectura de múltiples niveles.

Arquitectura orientada a servicios

  • Curso 4 • 9 horas • 4,5 (570 valoraciones)

Detalles del curso

¿Qué aprenderás?

Con base en una comprensión de los estilos arquitectónicos, revisará las arquitecturas para aplicaciones web y luego explorará los conceptos básicos de la arquitectura orientada a servicios (SOA) en dos enfoques: servicios web (WS*) y arquitectura de transferencia de estado representacional (REST). En el proyecto final te conectarás a una aplicación de Android basada en Java con Elasticsearch, un servicio web con una interfaz de programación de aplicaciones (API) REST.

Después de completar este curso, podrá:
  • Describir SOA (Arquitectura Orientada a Servicios) para diseñar sistemas basados ​​en red.
  • Explicar los servicios WS* (es decir, SOAP sobre HTTP, WSDL, UDDI, BPEL).
  • Implementar una arquitectura REST (es decir, JSON sobre HTTP, URI).
  • Identificar los principios de diseño REST.
  • Cree un sistema utilizando interfaces REST.
  • Implementar una arquitectura de microservicios.

Habilidades que ganarás

  • Categoría: servicios de red
  • servicios de red
  • Categoría: Microservicios
  • Microservicios
  • Categoría: Transferencia de Estado Representacional (REST)
  • Transferencia de estado representacional (REST)
  • Categoría: Arquitectura Orientada a Servicios
  • Arquitectura orientada a servicios