Está en la página 1de 11

1.

Guia que pueden ser aplicadas en el desarrollo para eliminar "código sucio"  - SOLID

2. El comportamiento de una entidad debe poder ser alterado sin tener que modificar
su propio código fuente. ¿Esta característica pertenece a que principios SOLID? 
Open - CLosed

3.El diseño es : El diseño es una instancia de la arquitectura

4.La arquitectura resalta las primeras impresiones y decisiones que tendrán un efecto
profundo en todo el trabajo de ingeniería.  *Verdadero

5.Los componentes de un sistema incluyen datos y las operaciones que deben


aplicarse para manipularlos. La comunicación y coordinación entre los componentes
se consigue mediante la transmisión de mensajes. Esta definición pertenece a: 
● Arquitectura orientada a objeto

6.En el modelo cliente servidor: 


Se proporciona al usuario acceso a las aplicaciones, datos, servicios o cualquier otro
recurso en distintas plataformas.

7. Con respecto a las capas en la arquitectura de N-Capas: 


● Cada capa tiene una responsabilidad específica. * Una capa superior puede
utilizar servicios de capas inferiores.
● Administra dependencias y responsailidades

8.La capa de negocios no necesita preocuparse por cómo formatear los datos del
cliente.  *Verdadero

9.La arquitectura de 2 capas está formada por: 


La capa de lógica de negocio/vista y la capa de acceso a datos

10.En la arquitectura de N-capas se puede acceder desde la capa de presentación a la


capa de persistencia.  *Verdadero

11.En el modelo MVC: 


● El modelo contiene la funcionalidad básica y define las reglas de negocio *El
controlador maneja la entrada del usuario
● El controlador y la vista comprenden la interfaz del usuario

14.El modelo MVP puede tener estas características: 


● Vista pasiva *La vista interactúa con el modelo para vincular los datos sin la
intervención del presentador
● El controlador supervisor manipula a la vista si necesita ejecutar una lógica de
presentación compleja

16.En el modelo MVP : El modelo conoce la vista

17.En el patrón de diseño de mvvm, la vista está activa y contiene comportamientos,


eventos e información de enlace de datos *Verdadero
18.Que es un servicio WEB? 
● Los servicios Web permiten la intercomunicación entre sistemas de cualquier
plataforma
● Describe tanto lo que puede hacer y como interactuar *Se basan en
estándares de comunicación

19.Los estándares de comunicación de los servicios WEB son:  * XML *SOAP

20.SOA: 
● Se basa en estándares abiertos *Implementa las capas de abstracción

21.WDSL es: 
● Un lenguaje que describe la funcionalidad que implementa *Una descripción
basada en XML
● No está asociado a ningún lenguaje * Puede transmitirse con cualquier
protocolo capaz de transmitir texto.

22.SOA puede introducir capas de abstracción al posicionar los servicios como los
únicos puntos de acceso a una variedad de recursos y lógica de
procesamiento. *Falso

23.Que son las WEB API? 


● Es un conjunto de herramientas para diseñar e integrar software de
aplicaciones *Permiten crear funcionalidades de manera simple *No todas las
API son WEB

24. Las API WEB del navegador son construcciones embebidas en el navegador
usando Librerias (Angular Ember) paquetes HTML, CSS y JavaScript  *Falso

25.Se puede acceder a cualquier cosa que se encuentre en un documento HTML o


XML, modificando, eliminando o añadiendo, utilizando el Modelo de Objetos del
Documento.  *Verdadero

28.SOAP y SOA es lo mismo *Falso

29.Marque las afirmaciones correctas 


● REST es un estilo de arquitectura *SOAP es un protocolo
30.Rest está basado en los estándares: 
● HTTP *URL *Tipos MIME
31.Los servicios WEB son sistemas de software  *Verdadero

32.Las características de REST son: 


● Dirección única por cada instancia de proceso. *Operaciones definidas en los
mensajes *Componentes débilmente acoplados *Cada objeto soporta
operaciones estándares definidas
33.Algunas características de SOAP son: 
● Muchas operaciones con pocos recursos *Interacción por medio de
formularios *Flujo de eventos planificados
● Se centra en el diseño de aplicaciones distribuidas.
34.RESTFul 
● Establece una correlación individual entre las operaciones (CRUD) y los
métodos HTTP.
● Para eliminar un recurso se utiliza DELETE
35.RESTFul: El no tener estado mejora el rendimiento del servicio WEB. Simplifica el
diseño y la implementación del lado del servidor. *Verdadero

36.RESTFul del lado del cliente: 


● Utiliza la cabecera de la respuesta Cache-Control para determinar si guarda el
recurso.
● Lee la cabecera de respuesta y devuelve mensajes para preguntar al servidor
si el recurso ha cambiado.
● Esta colaboración entre la aplicación y el servicio del cliente es esencial para
que un servicio Web de RESTful sea sin estado

37.RESTFul: Código de demanda 


● Los servidores pueden extender funcionalidad de un cliente transfiriendo
código ejecutable.

38.XML: 
● XML es una especificación para diseñar lenguajes de marcado *Representa
información estructurada en la Web
● XML es un formato de texto estandarizado

39.XML 
● Los metadatos son información acerca de información *XML proporciona una
forma de incluir metadatos en los documentos WEB.

40.El modelo de objeto de documentos de XML proporciona acceso programático a la


estructura interna de los documentos XML . *Verdadero
41.JSON es totalmente dependiente de Javascript  *Falso

42.JSON: 
● Son cadenas - útiles cuando se quiere transmitir datos a través de una red.
● Debe ser convertido a un objeto nativo de JavaScript cuando se requiera
acceder a sus datos.
● JavaScript posee un objeto global JSON que tiene los métodos disponibles
para convertir entre ellos.
● Tiene propiedades, pero no métodos *Un objeto JSON puede ser almacenado
en su propio archive: un archivo de texto con una extension .json, y una MIME
type de application/json.
43.Servicios WEB 
● Los servicios web son la forma más habitual de implementar SOA
44.UDDI : (Descubrimiento, Descripción e Integración Universal) 
● Es un lenguaje que permite publicar, encontrar y usar los Servicios Web
basados en XML.
● Los elementos del cuerpo del documento UDDI deben pertenecer al ámbito del
espacio de nombres de la Api de UDDI.
45. En el modelo cliente servidor 
● El servidor Procesa y gestiona los datos
● El servidor puede ser cliente de un servidor

46.En el modelo cliente rico del modelo cliente servidor: 


● El servidor gestiona los datos
● El software cliente implementa la lógica de aplicación y las interacciones con el
usuario del sistema
47.La inversión de control es un principio de diseño de software en el que el flujo de
ejecución de un programa se invierte respecto a los métodos de programación
tradicionales. *Verdadero

48.En la inversión de control no se especifican respuestas deseadas a sucesos o


solicitudes de datos concretas . *Falso

49. Inyección de dependencia: 


● Patrón de diseño que sirve para “inyectar” componentes a las clases que
tenemos implementadas.
● Esos componentes son contratos que necesitan nuestras clases para poder
funcionar.

PARTE II
1.Cuál no es un patrón de arquitectura de software? 
*Basada en eventos *Microchannel * Basada en niveles de abstracción

2. La arquitectura basada en eventos es sincrónica *Falso


3.Característica de la arquitectura basada en eventos: *
● Desvincula los clientes de eventos de los consumidores de eventos
● Se admiten cualquier número de consumidores que reciben y reaccionan a los
mismos eventos
● Se componen de eventos altamente desacoplados *Los eventos son de un
sólo propósito
 4. ¿qué topología de la arquitectura basada en eventos se encadenan varios eventos
para ser procesados? *
● Topología sin mediador

 5.El Patrón de Arquitectura microkernel consta de un core system y módulos


plugins. *Verdadero

6.En el patrón microkernel: *


● El core system tienen la mínima funcionalidad requerida
● El core system necesita un registro de plugins para conocer los que están
disponibles para poder implementarse
 7. Microkernel: *
● No especifica los detalles de implementación
● Los contratos entre los módulos y el sistema se encuentran cuando son
desarrollados por terceros

 8.Microkernel Puede tener problemas de dependencia si no mantenemos la


comunicación entre complementos al mínimo.  *Verdadero

 9.Microkernel: *Proporciona soporte para desarrollo incremental **Se puede utilizar


como parte de otro patrón

10.Microservicios: *
● Se implementan como servicios PAAS
● Son entidades aisladas
● Adecuado para tener compatibilidad con distintas plataformas
11.En Microservicios los servicios se comunican entre sí con APIs *Verdadero

12.En la arquitectura monolítica, el servidor se encarga de la lógica y datos *Verdadero

13.En Microservicios: *
● Los servicios son responsables de mantener sus datos
● No todos los servicios pueden ser modificados y nuevamente desplegados
manteniendo la funcionalidad del sistema
● La arquitectura se implementa como una unidad separada

 14.Administración: es uno de los 3 componentes en la arquitectura de Microservicios


que identifica errores entre otras funciones *Verdadero

 15. Funciones de los componentes de microservicios *


● Mantienen una lista de los servicios y en los nodos en que se encuentran
● Permite la búsqueda de servicios para localizar el punto de conexión
● La puerta de enlace API desacoplan los clientes de los servicios

16.Microservicios: Los clientes no llaman directamente a los servicios *Verdadero

 17.Microservicios *
● Pueden surgir problemas de compatibilidad con las actualizaciones de algunos
servicios
● Pueden tener problemas de congestión si las API se comunican demasiado
● La coherencia de los datos es un problema
 18. Docker: *
● Utiliza contenedores para desplegar aplicaciones
● Ejecuta procesos de manera aislada
● Utiliza contenedores como máquina virtual
19.Kubernetes *
● Es una aplicación de código libre para la gestión de aplicaciones en
contenedores
● Los componentes que forman Kubernetes están diseñados para estar
débilmente acoplados
20.Un patrón de diseño: *
● Es una solución de desarrollo frente a situaciones repetitivas
● Están relacionados con la creación de objetos
● Está relacionado con la asignación de responsabilidad a los objetos

21.Los patrones de comportamiento de clases usan la herencia para describir


algoritmos y flujos de control. *Verdadero

 22.los patrones creacionales *


● Ayudan a hacer a un sistema independiente de cómo se crean, se componen y
se representan sus objetos
● Es útil si necesitamos una sola instancia y sólo una instancia de una clase.

 23. Que patrón controla la creación de una clase de forma que sólo se puede crear
una única instancia en toda la aplicación. *
● Patrón singleton
 24.Cual es el patrón que convierte la interface de una clase en otra que esperan los
clientes? 
● Patrón adapter

25.Los patrones de comportamiento: *


● Los basados en clases usan la composición de objetos en vez de herencia

26.Iterator: *
● Es un patrón de comportamiento

27.El patrón estado permite que un objeto modifique su comportamiento *Verdadero

28.Un antipatrón es: *


● Es un patrón mal implementado *Es un problema mal resuelto
● Es una decisión equivocada de cómo resolver un problema

29. Con respecto a la experiencia del usuario * UX La usabilidad es un atributo de UX

30. La usabilidad no puede verificarse sólo desde la óptica del producto *Verdadero

31.La accesibilidad: *
● Extiende el alcance del diseño para alcanzar a muchas más personas
● Sin usabilidad podemos decir que no existe la accesibilidad
● Sin accesibilidad no obtenemos usabilidad
1. Los objetos de un programa deberían ser reemplazables por instancias de
sus subtipos sin alterar el correcto funcionamiento del programa. ¿Esta
característica pertenece a que principios SOLID?
Pertenece a Liskov Substitution. Que nos dice que en clases con herencia,
debemos poder reemplazar la clase heredada con subclases manteniendo la
coherencia del sistema es decir sin provocar efectos secundarios ni errores.
2. ¿Cuál de estas es una característica de una arquitectura de flujo de datos?
A. Se diseña para esperar una entrada de datos de cierta forma y produce
datos de
salida (al filtro siguiente) en una forma especificada.
B. Es una estructura basada en filtros los cuales requieren conocimiento de los
trabajos que realizan los filtros vecinos.
C. Si el flujo de datos degenera en una sola línea de transformaciones acepta un
lote de datos y luego aplica una serie filtros multihilo para transformarlos.

3. Dibuje el esquema de la arquitectura basada en 3 capas y explique


brevemente su funcionamiento

Básicamente se trata de una separación de responsabilidades, para


sistemas muy grandes o cuando queremos tener menos acoplamiento de
las partes del sistema lo podemos separar en N capas, en este caso 3,
Presentación Negocio y Datos.

4. Comente las características de SOA


Es una arquitectura que implementa capas de abstracción, basada en estándares,
para orientar la arquitectura a servicios, sobre todo servicios que funcionen sobre la
capa de servicios web, se caracteriza por bajo acoplamiento, abstracción, autonomía y
reutilización.

5. ¿Cuándo creamos deuda técnica?


Generamos deuda técnica cuando la calidad del código ante alguno de estos
siguientes eventos:
● Falta de Gestión o Gestión no adecuada con los estándares en el
proceso de desarrollo de software.
● Calidad y control de software pobre.
● Presiones externas para cumplimentar fechas.
● No hay buen proceso de análisis, el no uso de buenas prácticas,
entonces se produce algún acoplamiento que se podría evitar y se
decide refactorizar a futuro.
● Ante nuevas modificaciones de urgencia sobre todo por bugs, las
soluciones se aplican “en caliente” sin evaluar la mejor opción sino la
que sane mas rápido el error.

6. Explique y de ejemplos de dos principios GRASP:


Son buenas prácticas de diseño de software. Relacionadas a la asignación de
responsabilidades.
Alta cohesión: Tratamos de que la información que maneje la clase esté muy
relacionada a la clase en sí.
Bajo Acoplamiento: Tratamos de que las clases sean lo más independientes que
se pueda, esto es debido a que si modificamos una clase, no afectemos o
comprometamos al resto del sistema, de manera que no rompamos el sistema en
si.

7. ¿ Por qué buscamos cualidades que determinen calidad interna en nuestro


software? Explique y de ejemplo de dos propiedades.

8. ¿Qué significa “vista pasiva” en el modelo MVP?


Es una vista que solo representa la información, todo su estado es controlado por el
presentador. Comúnmente llamadas vistas tontas.

9. ¿Cuál es la característica del principio de diseño “Inversión de control”?


Es un estilo de programación donde un framework por ejemplo controla el flujo de
ejecución el hilo principal por asi decirlo del programa, en lugar de nosotros
controlarlo, sin tener un contexto en detalle de como funciona, nos subimos a controlar
solo nuestra parte del comportamiento dejando al framework hacer el resto.

10. ¿Para qué podría utilizar XML o JSON? ¿Cuáles son sus diferencias?

XML es un lenguaje de marcado extensible, que nos permite crear nuestros propios
esquemas, también nos da la posibilidad de describir nuestro servicio mediante
metadata tambien disponible dentro de nuestro XML, y poder descubrirlo. Nos aporta
una estructura que tiene que ser respetada debidamente para ser compliance con
nuestro servicio. Tipado Fuerte

JSON es Javascript Object Notation, es un formato de intercambio de datos, sencillo y


facil de usar, aplicado en general a apis REST, nos permite mediante herramientas de
los lenguajes (cada cual implementa su “Parseador”) serializar y deserializar su
contenido.

1) ¿Qué es un consumidor y un productor de eventos en la arquitectura basada en


eventos?

Un consumidor podemos describirlo brevemente como un sistema que recibe


un mensaje / evento y ejecuta un proceso específico en base al evento que
recibe.

Un Productor de eventos podemos describirlo como sistemas que ante


determinadas condiciones detecta un evento y dispara el mensaje para quien lo
esté escuchando sin conocer quiénes ni cuántos lo escuchan. Este evento se
transmite del productor a los consumidores a través de canales de eventos.
2) ¿En qué casos se utiliza el mediador dentro de la arquitectura basada en eventos?
El mediador en Event Driven Architecture se utiliza cuando necesitamos
organizar una secuencia de pasos ordenados en un evento. Supongamos que
necesitamos crear un input de compra en el mercado bursátil. Primero validar
la orden, luego verificar que podamos proceder a esa compra, luego asignar la
operación de compra y calcular y pagar la comisión a nuestro agente. El
mediador sabe los pasos ordenados que tenemos que seguir para tener éxito
en la ejecución. Mas no conoce la lógica de implementación.

3) ¿Cuándo es recomendable utilizar la arquitectura basada en eventos?


Cuando necesitamos sistemas altamente escalables por ejemplo una wallet
como Mercadopago o el Sitio de Compras de Mercadolibre, donde la
escalabilidad y la tolerancia a fallos es clave. Donde tenemos todo un
ecosistema compuesto de subsistemas que procesan el mismo evento y
ejecutan distintas lógicas independientes unas de las otras.

4) ¿Cómo pueden conectarse los plugins al sistema Central y de qué depende, en la


arquitectura Microkernel?
Depende del tipo de aplicación que queramos crear, ya que en sí el
microkernel no especifica los detalles de implementación.
Esto puede ser mediante: Mensajes, Web Services, Instancias de Objetos,
OSGI.
5) ¿En qué situación deberíamos adoptar una arquitectura de Microkernel?
Debemos adoptar una arquitectura microkernel cuando queremos hacer
extensible nuestro sistema sin modificar el mismo, es decir mantener un núcleo o core
de funcionalidades y permitir extensiones por parte de terceros o propias, permitiendo
interactuar a nuestro núcleo con estos plugins mediante un registro, ya que es
indispensable para esta arquitectura que registremos los plugins antes de utilizarlos.
Es una arquitectura muy utilizada en sistemas de ecommerce (Woocommerce,
Prestashop, Magento) ERPs y CMSs

6) ¿Cuál es la diferencia entre REST y SOAP?


REST podemos decir que es un diseño de arquitectura o un conjunto de
buenas prácticas o principios para interfaces web montado sobre URI y HTTP
el cual es muy común que implemente JSON hoy día.
Utiliza los métodos HTTP GET PUT POST y DELETE comúnmente para
mapear las acciones que se pueden ejecutar sobre un recurso que coincide
con la URI a la cual se envía la petición

Por otro lado SOAP es un protocolo oficial mantenido por la w3c con
definiciones rigidas (no tan flexibles como REST) pero con una robustez y
seguridad propias de este protocolo. Además de poseer una especie de modo
discovery donde se puede obtener un documento de los servicios disponibles
en la api mediante WSDL.

7) ¿Cuáles son los componentes que se presentan en el patrón Microservicios,


además de los propios servicios? Explique uno de ellos.
Api Gateway: Reenvía la llamada del cliente a los servicios, para permitir
ofuscar el directo acceso desde un cliente a estos, además puede aglutinar
varias llamadas a diferentes microservicios en una sola
Detección de Servicios: Mantiene una lista de de servicios con sus nodos
activos, permite saber el punto de entrada a un servicio específico.
8) ¿Cuál es la utilidad de los patrones de diseño? Brindar soluciones probadas y
funcionales a problemas conocidos y recurrentes. Es decir, para determinados
casos de uso similares o iguales podemos aplicar un patrón que satisfaga esa
necesidad, en distintos contextos.

9) Nombre y explique el objetivo de al menos 3 patrones de diseño y señale a qué


tipo de patrón corresponde

Patrón de Estado (Comportamiento): permite a un objeto alterar su comportamiento


cuando su estado cambia, es casi como si se tratara de otro objeto.

Patron Singleton (Creacional): Utilizado para controlar la creación de una clase,


permitiendo una única instancia en toda la aplicación. Utilizado generalmente en
conexiones a bases de datos.

Patrón Adapter (Estructural): Se utiliza para comunicar clases / interfaces


incompatibles que de otra manera no pueden comunicarse, se crea un adaptador que
hace posible esta comunicación, muy utilizado al comunicarse con sistemas legacy.

10) ¿Qué métodos utilizará para comprender y mejorar la experiencia del usuario
según Craig Nielsen?

Mantener y tener estética y diseño minimalista, unificar bajo consistencia y estándares,


ser claro en los errores, permitir revisarlos y encontrarlos.
Implementaria quizás prueba de usabilidad moderada, test de los 5 segundos, test del
clic y A/B Testing para comprender en un escenario real la experiencia del usuario,
entender como mi Persona interactúa con mi interfaz y experiencia y poder tener
metricas que marquen el camino de la mejora. También se puede utilizar el metodo
encuesta como por ejemplo podemos implementar con HotJar una breve encuesta de
satisfaccion utilizando emojis de caras felices a enojadas con un input de breve
opinion.

También podría gustarte