Introducci贸n al curso

1

Introducci贸n al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definici贸n

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecuci贸n

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monol铆ticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisi贸n de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Dise帽o orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Dise帽o de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un dise帽o: Tipos de conectores

27

Conectores: Llamado asincr贸nico / sincr贸nico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusi贸n

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y t谩cticas

31

Escenarios: Disponibilidad, detecci贸n, reparaci贸n

32

Escenarios: Reintroducci贸n y prevenci贸n

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos domin贸 y diferir enlace

35

Escenarios: Eficiencia de ejecuci贸n

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de dise帽o: Arquitectura en evoluci贸n

40

脷ltimo an谩lisis a PlatziServicios

Modelado y documentaci贸n de arquitectura

41

C贸mo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentaci贸n vs implementaci贸n

43

Conclusiones del curso

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Conclusiones del curso

43/43
Recursos

Aportes 33

Preguntas 6

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Hola, les comparto mis apuntes del curso. El documento posee contenido relacionado a arquitectura de software (curso de fundamentos y profesional)

https://docs.google.com/document/d/1ayrbE-f2nP2EplBe2zJu7o2F1fIxb6-N8LKSCjvJ9U0/edit?usp=sharing

Excelente curso.
Despu茅s de haber tomado este curso, debo admitir que yo sabia programar pero no sabia hacer software.
Muchas gracias.

Por que en el examen preguntas sobre el modelo de vistas de arquitectura 鈥4+1", si en los v铆deos no tocas esos temas, no me parece justo.

Algunos humildes apuntes

En mi opini贸n el curso fue de gran contenido te贸rico, solo me hicieron falta algunos ejemplos de un caso m谩s pr谩ctico para asimilar mejor toda la teor铆a.

Bastante teor铆a, pero le falto practica, estoy lleno de conceptos que no sabr铆a como aplicarlos xD
Como hago el bus?
Como guardo los eventos y como hago que se ejecuten?
Como puedo armar un arquitectura orientada al dominio u orientada a microservicios?
Como conecto las capas?
Como hacer la documentaci贸n?

驴piensan agregar un ejemplo de documentaci贸n de arquitectura para el proyecto del curso en la pesta帽a de Archivos?

Gracias a todos los involucrados por traernos este gran curso. Para mi llen贸 muchos vacios, y me permiti贸 entender conceptos y procesos que veo en mi d铆a a d铆a.

Excelente el curso, le pondria algunos ejemplos mas pero fue excelente igual!

Muchas te贸rica, poca practica.
Sugiero hacer un caso de estudio aplicando toda la teor铆a vista. Considero que no se aprende a nadar viendo v铆deos, se aprende a nadar en el agua y tragando un poco de agua.

La verdad que es un mundo todo esto, pero el conocerlos hace tengamos unas herramientas altamente potenciales. Gracias Guido y por mi parte a seguir estudiando!

opino similar mas ejemplos y tambien bibliografia sugerida para profundizar en el tema.

me faltaron ejemplos, c贸mo realiz贸 una entrega del dise帽o, c贸mo construyo la documentaci贸n...

Un conjunto t铆pico de vistas de la arquitectura
La arquitectura se representa mediante un n煤mero diferente de vistas de la arquitectura, que, esencialmente, son extractos que ilustran los elementos 鈥渟ignificativos arquitect贸nicamente鈥 de los modelos. En RUP, se empieza en un conjunto t铆pico de vistas, llamado el 鈥渕odelo de vista 4+1鈥 [KRU95]. Consta de:

La Vista de gui贸n de uso, que contiene guiones de uso y casos de ejemplo que abarcan riesgos t茅cnicos, de clases o de comportamiento significativos arquitect贸nicamente. Es un subconjunto del Modelo de gui贸n de uso.
La Vista l贸gica, que contiene las clases de dise帽o m谩s importantes y su organizaci贸n en paquetes y subsistemas, y la organizaci贸n de estos paquetes y subsistemas en capas. Tambi茅n contiene algunas realizaciones de guiones de uso. Es un subconjunto del Modelo de dise帽o.
La Vista de implementaci贸n, que contiene una visi贸n general del Modelo de implementaci贸n y su organizaci贸n en t茅rminos de m贸dulos en paquetes y capas. Tambi茅n se describe la asignaci贸n de paquetes y clases (de la vista l贸gica) a los paquetes y m贸dulos de la vista de implementaci贸n. Es un subconjunto del Modelo de implementaci贸n.
La Vista de proceso, que contiene la descripci贸n de las tareas (proceso y hebras) implicadas, sus interacciones y configuraciones y la asignaci贸n de clases y objetos de dise帽o a tareas. Esta vista s贸lo debe utilizarse si el sistema tiene un grado significativo de Concurrencia. En RUP, es un subconjunto del Modelo de dise帽o.
La Vista de despliegue, que contiene la descripci贸n de los diferentes nodos f铆sicos para la mayor铆a de las configuraciones t铆picas de la plataforma y la asignaci贸n de tareas (de la vista de proceso) a los nodos f铆sicos. Esta vista s贸lo debe utilizarse si el sistema es distribuido. Es un subconjunto del Modelo de despliegue.
Las vistas de la arquitectura se muestran en el Documento de arquitectura de software. Puede visualizar vistas adicionales para expresar diferentes preocupaciones especiales: vista de interfaz de usuario, vista de seguridad, vista de datos, etc. En sistemas simples, puede omitir algunas de las vistas contenidas en el modelo de vista 4+1.

Atenci贸n en la arquitectura
Aunque las vistas de arriba pueden representar el dise帽o completo de un sistema, la arquitectura trata 煤nicamente algunos aspectos espec铆ficos:

La estructura del modelo: los patrones organizativos, por ejemplo, la Creaci贸n de capas.
Los elementos esenciales: guiones de uso cr铆ticos, clases principales, mecanismos comunes, etc., en oposici贸n a todos los elementos presentes en el modelo.
Unos cuantos casos de ejemplo clave que muestran los flujos de control principales en el sistema.
Los servicios, para capturar aspectos de la l铆nea de productos, modularidad y caracter铆sticas opcionales.
Las vistas de la arquitectura son, esencialmente, abstracciones o simplificaciones de todo el dise帽o, en las que las caracter铆sticas importantes pasan a ser m谩s visibles y se dejan de lado los detalles. Estas caracter铆sticas son importantes cuando se razona sobre:

La evoluci贸n del sistema, el paso al siguiente ciclo de desarrollo.
La reutilizaci贸n de la arquitectura, o partes de ella, en el contexto de una l铆nea de productos.
La evaluaci贸n de calidades suplementarias, como rendimiento, disponibilidad, portabilidad y seguridad.
La asignaci贸n de trabajo de desarrollo a equipos y subcontratistas.
Las decisiones sobre la inclusi贸n de componentes asequibles.
La inserci贸n en un sistema m谩s amplio.

Para poder hablar y razonar sobre la arquitectura de software, antes debe definir una representaci贸n arquitect贸nica, una manera de describir aspectos importantes de una arquitectura. En RUP, esta descripci贸n se captura en el Documento de arquitectura de software.

La arquitectura de software es un concepto f谩cil de entender y que la mayor铆a de los ingenieros aprecian intuitivamente, sobre todo los que tienen un poco de experiencia, pero resulta dif铆cil definirlo con precisi贸n. En concreto, es dif铆cil dibujar una l铆nea precisa entre el dise帽o y la arquitectura, la arquitectura es un aspecto de dise帽o que se concentra en algunas caracter铆sticas espec铆ficas.

En An Introduction to Software Architecture, David Garlan y Mary Shaw sugieren que la arquitectura es un nivel de dise帽o que se centra en aspectos: 鈥淏eyond the algorithms and data structures of the computation; designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross organization and global control structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; scaling and performance; and selection among design alternatives.鈥 (M谩s all谩 de los algoritmos y estructuras de datos de la computaci贸n; el dise帽o y la especificaci贸n de la estructura general del sistema emergen como una clase nueva de problema. Los aspectos estructurales incluyen la estructura global de control y la organizaci贸n general; protocolos de comunicaci贸n, sincronizaci贸n y acceso de datos; asignaci贸n de funciones para dise帽ar elementos; distribuci贸n f铆sica, composici贸n de elementos de dise帽o; ajuste y rendimiento; y selecci贸n entre otras alternativas de dise帽o).

Excelente curso Guido
猸愶笍猸愶笍猸愶笍猸愶笍猸愶笍

Les recomiendo el libro 鈥淪oftware Architecture in Practice鈥 de Len Bass, Paul Clements y Rick Kazman.
Yo lo le铆 casi al mismo tiempo que pase este curso y el curso previo de Fundamentos de Arquitectura y lo note muy complementario, ya que si bien el libro es un poco 鈥渁ntiguito鈥, aun mantiene la esencia de los conceptos generales de desarrollo de software que son necesarios para ser un arquitecto de software. Muchas cosas son exactamente igual que en estos cursos, pero le da aun mas profundidad y an谩lisis.

Muy buen curso鈥

Excelente Curso, ayuda a comprender muchas cosas que est谩n inconclusas a la hora de dise帽ar una arquitectura de software.
Gracias Gran Aporte al Conocimiento.!!

Me hizo falta una clase donde se haga un an谩lisis pr谩ctico de trade-offs y as铆 poder profundizar en los criterios para poder priorizar distintos atributos de calidad.

Me gust贸 mucho el curso.En mi ser, ten铆a muchas 鈥渓agunas de informaci贸n鈥 en el tema de arquitectura de software. Lo recomiendo definitivamente.

Genial, me gust贸 mucho. Gracias por compartir tu conocimiento!!

Excelente curso. Y con los ejemplos que Guido usa, permite entender la teor铆a de una forma m谩s sencilla y aterrizar los conceptos.

Muchas gracias por esta lluvia de informaci贸n, muy 煤til ya que es necesario entender como funciona la arquitectura de software y todo lo que conlleva ponerla en practica.

Es un curso super genial!

Alguna recomendacion de libros para seguir aprendiendo!

Muy 煤til toda la informaci贸n del curso, aunque me hubiese gustado que se analicen arquitecturas de software de empresas o startups representativas, como las aplican y que cambios hicieron.

Siento que para que este curso no sea tan pesado de teor铆a en diapositivas pudo colocar gr谩ficos de arquitecturas b谩sicas y y fueran incrementando con proyectos ya implementados. Casi no me gusto este curso, aprendi cosas y lo agradezco.

En t茅rminos generales, el curso tiene buena informaci贸n, pero si esperaba algo m谩s pr谩ctico, con ejemplos de implementaci贸n con los patrones m谩s populares.

Excelente curso.

porque no comparten una presentaci贸n a modo de s铆ntesis y ejemplos desarrollados en documentaci贸n real o ligas a ejemplos que utilizan los corporativos, gracias.

Tengo miedo de hacer el examen 馃槮

Cuando empece el curso solo sabia patrones de arquitectura, pero ahora se que puedo dise帽ar mi arquitectura gracias a estos atributos de calidad, y tambi茅n combinarlos con los patrones de arquitectura, para tener un estilo dependiendo de el dominio del problema.