Repaso preguntas Flashcards

1
Q
  1. Qué entiende por Arquitectura de Software?
A

La arquitectura de software define las estructuras de un sistema de IT. Tales como los:

  • Componentes a utilizar (desarrollados, comprados, reutilizados).
  • Las relaciones entre esos componentes (ubicacion, distribucion, conecciones, gestión)
  • La interacción dinámica entre estos componentes.
  • Las propiedades visibles externamente de esos componentes.

Clase: La descripción de una solucion en cuanto a sus componentes y la relación que tienen entre sí.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Mencione tres skills que debería tener un arquitecto de software
A
  • Comunicación (Oral y Escrita)
  • Liderar individuos y equipos
  • Negociación – Gestionar conflictos
  • Manejar los elementos Arquitectónicos de un plan de proyecto
  • Entender los aspectos de negocio
  • Desarrollar arquitecturas
  • Usar técnicas de modelado
  • Saber ejecutar revisiones técnicas
  • Aplicar estándares de IT
  • Establecer la visión técnica
  • Aplicar metodologías
  • Definir soluciones a requerimientos funcionales y no funcionales
  • Gestionar los requerimientos de los stackeholders
  • Establecer decisiones de arquitectura
  • Validar la conformidad de la solución con la arquitectura
  • Actuar como consultor tecnológico
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. ¿Cuáles son los 4 aspectos de Arquitectura que hemos trabajado?
A
  • Requerimiento (Funcional y no funcionales)
  • Funcional (Modelos de componentes, Modelo de datos, Modelo de servicios)
  • Operacional o de despliegue (Ubicaciones, Despliegue, Unidades de despliegue)
  • Viabilidad (Riesgos, validaciones, cumplimientos)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. ¿Qué diagrama permite mostrar la frontera del sistema, las entidades externas con las que la solución debe interactuar y los actores que interactúan con el mismo?
A

Diagrama de contexto

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Para qué sirve un diagrama de contexto?

A

El diagrama de contexto sirve para:

  • Clarificar el entorno en el que tiene que operar el sistema
  • Delimitar la frontera del sistema.
  • Identificar las interfaces externas (Usuarios y sistemas)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué debería contener un artefacto que documente un diagrama de Contexto?

A

Artefacto = template. Que parte debería tener un documento

Los actores externos (usuarios y sistemas) y la descripción de los mismos.

Dibujo con las entidades externas/actores.

Título

Leyenda (si fuera necesaria)

Descripción de los actores

Descripción de las entidades externas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿En qué se diferencian los atributos de calidad y las restricciones?

A

Ambos son tipos de requerimientos no funcionales pero se diferencian en que:

  • Los atributos de calidad define las expectativas y características que el sistema debería soportar.
  • Las restricciones son elementos que no pueden ser cambiados en el proyecto (presupuesto, tecnología, etc). Puede ser tecnico o de negocio.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Nombrar los atributos de calidad claves

A

Los atributos de calidad pueden dividirse en RUNTIME y NON-RUNTIME y algunos claves son:

RUNTIME:

  • Capacidad y performance. (C)
  • Seguridad. (C)
  • Integración de servicios.
  • Gestión del sistema.
  • Disponibilidad (C)

NON-RUNTIME:

  • Portabilidad
  • Mantenibilidad
  • Escalabilidad
  • Integridad de datos
  • Safety

Operabilidad (C)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

En la siguiente clasificación de RNFs (atributos de calidad, restricciones técnicas y
restricciones de negocio) clasifique los siguientes requerimientos no funcionales:

A

a. Performance (Atributo de calidad RUNTIME)
b. Disponibilidad (Atributo de calidad RUNTIME)
c. Presupuesto es de USD 4 M (Restricción de negocio)
d. Deberá integrarse con el core a través de colas asincrónicas (Restricción técnica)
e. Nuestro estándar de desarrollo es Java (Restricción técnica)
f. El plazo para tener la solución funcionando es de 8 meses (Restricción de negocio)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué se considera como un requerimiento funcional arquitecturalmente significativo?

A

Aquel proceso que afecta a la arquitectura del sistema.

Se identifican si presentan o se relacionan con:

  • Funciones con alto retorno de negocio
  • Operaciones críticas de negocio
  • Funcionalidades esenciales del sistemas
  • Usuarios influyentes
  • Usuarios móviles
  • Tener una cobertura amplia y que utilizan varios elementos de la arquitectura
  • Requerimientos de seguridad
  • Complejidad (por ejemplo reglas de negocio complejas)
  • Demanda exigente de la arquitectura (requerimientos de performance y disponibilidad)
  • Con alto potencial de cambio
  • Sincronización y comunicación con sistemas externos
  • Los que presentan riesgos o issues identificados

Regla del 80/20

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Describa en qué consiste el proceso de construcción de una arquitectura

A

El proceso de construcción de una arquitectura consiste en que, en base a los casos de uso, los requerimientos no funcionales, la tecnología existente, restricciones, cualidades del sistema, etc. Idear/pensar de manera general en la arquitectura que cumple con todo lo provisto (en un diagrama general de arquitectura) y a partir de ahí ir profundizando en el diseño, desarrollo, etc, hasta llegar a la solucion.

(Lo de los aspectos etapas)

Requerimientos(cualities RNF, RF, Diagramam de contexto, etc)

Diagrama general de arquitectura

Aspecto funcional (Diagrama de componentes)

Aspecto operacional (Modelos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué ventajas presenta documentar las elecciones críticas que se tomaron en la definición de una solución?

A

Permite entender y recordar porque la solucion es lo que es.

▪Explicitan la razón y la justificación de la decisión que se tomó

▪Ayudan a asegurar que la solución cumplan con los requerimientos funcionales y
no-funcionales, y si no lo hacen, ayudan a hacerlo explícito para los stakeholders.

▪Previenen retrabajo durante el ciclo de vida del proyecto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Presente un modelo/formato para documentar estas decisiones de arquitectura y
proporcione dos ejemplos.

A
  1. La decisión de arquitectura
  2. Identificador único:
  3. Problema o Issue: Una descripción de la situación en la cual una decisión debe ser tomada, ejemplo: “´¿Cómo el Sistema debiera integrarse con la aplicación XYZ?”
  4. Supuestos
  5. Alternativas
  6. Decisiones: Elección de la alternativa
  7. Justificación
  8. Implicancias: Consecuencias e impactos de la situación
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué debería contener un artefacto que documente las decisiones de Arquitectura? (DUDA)

A
  1. La decisión de arquitectura
  2. Identificador único:
  3. Problema o Issue: Una descripción de la situación en la cual una decisión debe ser tomada, ejemplo: “´¿Cómo el Sistema debiera integrarse con la aplicación XYZ?”
  4. Supuestos
  5. Alternativas
  6. Decisiones: Elección de la alternativa
  7. Justificación
  8. Implicancias: Consecuencias e impactos de la situación
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué es un “Architecture Overview Diagram” y cuál es su propósito principal en el contexto del diseño de una arquitectura? Si se utiliza una notación formal específica, descríbala.

A

Un AOD contiene diagramas que representan las principales ideas que gobiernan la solución.

Provee una visión de los principales elementos conceptuales y las relaciones en una
arquitectura de IT que con frecuencia incluye subsistemas candidatos, componentes, nodos,
conexiones, almacenamientos, y sistemas externos

No posee una notación formal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué elementos y relaciones componen un AOD?

A

No hay elementos ni relaciones ya que no hay un modelo fijo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Cuál es el público objetivo principal para los AOD? ¿Podrían existir varios AOD? ¿Por qué es relevante comunicar la arquitectura de esta manera?

A

El público objetivo son todos los stakeholders de la solucion. Pueden existir varios AOD orientados a los diferentes stakeholders.

Provee una visión de los principales elementos conceptuales y las relaciones en una
arquitectura de IT asi como de las principales ideas que gobiernan la solucion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Describe cómo un AOD puede ser útil en las etapas iniciales de un proyecto y en las discusiones con los stakeholders

A

Puede ser útil porque facilita el reconocimiento y validación temprana del enfoque además que provee una visión de alto nivel de la arquitectura y alcance del sistema a desarrollar junto con las principales ideas que gobiernan la solución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Qué debería contener un artefacto que documente un Diagrama General de Arquitectura (AOD)?

A
  • Diagrama
  • Descripción del diagrama.
  • Título
  • Stakeholders
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Los aspectos funcionales de una arquitectura cómo se pueden modelar?

A

Modelo de componentes. Ayudan a visualizar la estructura interna de la solucion (las relaciones de los componentes que conforman la solucion, vista estatica), asi como su comportamiento (vista dinámica).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿A través de qué diagrama se representa la relación estática de los componentes? ¿Y la relación dinámica?

A

Relación estática: A través del diagrama de relación de componentes.

Relación dinámica: A través del diagrama de interacción de componentes.

22
Q

¿Qué representa un diagrama de relación de componentes? ¿Cómo se documenta?

A

Representa la estructura interna de la solución (la relación entre los componentes que conforman la solución). Se documenta a través de la notación UML, como el diagrama de clases.

23
Q

¿Qué representa un diagrama de interacción de componentes? ¿Cómo se documenta?

A

Representa el comportamiento dinámico de la solucion. Se puede documentar a través del diagrama de secuencia.

24
Q

¿Cómo ayuda un diagrama de relaciones de componentes a mejorar la comprensión del diseño arquitectónico del sistema?

A

Ayuda en el sentido de que se puede ver un panorama general de los componentes del sistema. Pudiendo divisar aspecto como el acoplamiento entre los componentes, asi como la cohesión de los componentes.

25
Q

¿Qué debería tener un artefacto que documenta el modelo de componentes? (DUDA)

A

Uno o varios diagramas de interacción de componentes con su respectivo nombre y descripción, etc.

Uno o varios diagramas de relación de componentes son su respectivo nombre y descripción, etc.

26
Q

¿Qué se entiende por Alta Cohesión?

A

Alta cohesión quiere decir que las responsabilidades de un componente están altamente relacionadas entre sí.

27
Q

¿Qué se entiende por bajo acoplamiento?

A

Bajo acoplamiento quiere decir que no hay muchas dependencias entre los componentes de las solucion.

28
Q

¿Qué se entiende por Componente?

A

Un componente es una unidad modular (que presenta una funcionalidad?)

29
Q

¿Qué diagrama UML se utiliza para modelar un diagrama de interacción de componentes?

A

Diagrama de secuencia.

30
Q

¿Qué diagrama UML se utiliza para modelar un diagrama de relación de componentes?

A

Diagrama de clases.

31
Q

¿Qué input se toma para representar un diagrama de interacción de componentes?

A

Los casos de uso. Sobre todo los arquitecturalmente significativos.

32
Q

¿Cuál es la única relación entre componentes que se representa en un diagrama de relación de componentes?

A

La dependencia. Ejemplo: Componente A dependel del componente B para lograr funcionar.

33
Q

¿Qué debe ser descrito para cada uno de los componentes en un modelo de componentes?

A

Sus responsabilidades e interfaces.

34
Q

Pensar un caso de uso para una compra de entradas para el cine y un conjunto de
componentes que participan de la solución; realizar un diagrama de interacción de
componentes para ese ejemplo.

A

XD

35
Q

¿En qué se diferencia un estilo y un patrón de arquitectura?

A

Estilo: Estructura general de cómo se organiza la interfaz de usuario, el backend, y el almacén de datos. Es el diseño de aplicación a nivel de abstracción
más alto

Patrones:Son estructuras de diseño de nivel inferior que ayudan a formar soluciones específicas dentro de un estilo de arquitectura. Es una forma de implementar un Estilo Arquitectónico.

36
Q

Explica la importancia de utilizar patrones y estilos de arquitectura

A

Son importantes porque son soluciones a problemas recurrentes, proveen cierto estándar lo cual los hace fácil de comprender.

37
Q

¿Qué ventajas presenta una arquitectura monolítica frente a una distribuida?

A

En la monolítica todo lo que tiene que ver con la comunicación y la topología de red es más barato y simple.

La monolítica es mucho más simple.

38
Q

¿Qué ventajas presenta una arquitectura distribuida frente a una monolítica?

A

Son muchos más potentes en términos de rendimiento, escalabilidad y disponibilidad.

39
Q

¿Es posible combinar distintos patrones de arquitectura en una misma solución? Si es así, brinde un ejemplo.

A

Si, es posible. Esto se suele hacer con el fin de brindar la mejor solucion posible.

Un ejemplo se puede utilizar Saga junto con Publisher-Subscriber si una parte de la solucion necesita de alguna funcionalidad parecida a la anterior.

40
Q

Enumere y describa al menos 3 falacias de la computación distribuida

A
  1. : The Network Is Reliable
  2. Latency Is Zero
  3. Bandwidth Is Infinite
  4. The Network Is Secure
  5. The Topology Never Changes
  6. There Is Only One Administrator
  7. Transport Cost Is Zero
  8. The Network Is Homogeneous
41
Q

¿En qué se diferencian los niveles/tiers de las capas/layers?

A

Tiers: Son la división a nivel físico.

Layer: Son la división funcional.

42
Q

Explique en qué consiste el patrón de arquitectura “MVC”

A

Separación entre la lógica del negocio del software y la
presentación. Permite una mejor división del trabajo y
un mantenimiento mejorado.

Modelo: Gestiona los datos y la lógica del negocio.
Vista: Maneja la disposición y la presentación.
Controlador: Dirige los comandos a las partes del modelo y la vista

43
Q

Explique en qué consiste el patrón de arquitectura “Three-tier”

A

Organiza las aplicaciones en tres niveles lógicos y
físicos de cómputo:

  • el nivel de presentación, o interfaz de usuario
  • el nivel de aplicación, donde se procesan los datos
  • y el nivel de datos, donde se almacenan y gestionan los datos asociados con la aplicación

Cada nivel puede ser desarrollado simultáneamente
por distintos desarrolladores, y puede ser actualizado
o escalado según sea necesario sin afectar a los otros
niveles.

44
Q

Explique en qué consiste el patrón de arquitectura “Microservicios”

A

Microservicios no es un patrón. Es un estilo de arquitectura distribuida en la cual cada servicio opera como una unidad separada con su propia base de datos y recursos.
Estos servicios se comunican entre sí a través de APIs bien definidas, generalmente mediante
protocolos ligeros como HTTP o sistemas de mensajería.

45
Q

Explique en qué consiste el patrón de arquitectura “Saga”

A

Los pasos de una transacción se registran según un conjunto de acciones
predefinidas. Este registro se llama saga.

A medida que se ejecuta cada paso en una transacción, un servicio controlador
compara el resultado del paso con la definición de la saga. Si un paso se ejecuta
con éxito, se ejecuta el siguiente paso en la saga. Si un paso falla, todos los pasos
definidos en la saga se vuelven al último estado conocido como correcto.

Adecuado para transacciones que se ejecutan en varios servicios independientes
y poco acoplados, en los que cada servicio se aloja en una infraestructura
separada.

46
Q

¿Qué patrón de arquitectura utilizaría en una aplicación bancaria donde se requiera
garantizar la ejecución completa de transacciones al utilizar varios servicios?

A

Saga

47
Q

¿Qué diagrama UML se utiliza para comprender la arquitectura física de un sistema?
Enumere y describa los elementos que utiliza en la notación.

A

Diagrama de despliegue.

  1. Nodo: unidad de ejecución de componentes.
  2. Artefacto:
  3. Relación entre los nodos
48
Q

Explica la diferencia entre nodos y componentes en un diagrama de despliegue. ¿Cómo se relacionan estos elementos?

A

Los nodos son una forma de agrupar componentes, son la unidad de ejecución de los componentes.

Los componentes son unidades de ejecución de alguna funcionalidad de la solucion.

Los nodos contienen componentes.

49
Q

Explica cómo se indican los artefactos en un diagrama de despliegue y cómo se relacionan con los nodos. (VACIO)

A

xd

50
Q

¿En qué casos sería útil utilizar un diagrama de despliegue en un proyecto de desarrollo de software? ¿Qué información puede proporcionar a los desarrolladores y otros stakeholders?

A

Sería útil cuando se quiera saber la operativa a implementar, donde ubicar a los distintos componentes, con que tecnologías, etc. Con el se podría empezar a proporcionar un estimativo de costos, por lo que proporciona una gran cantidad de información importante.

51
Q

Dibuje un diagrama de despliegue con los elementos necesarios para una aplicación de mensajería instantánea que utiliza una arquitectura three-tier

A

Pensar