CQRS…
…es un sistema BDD
…es una herramienta de descomposición modular basada en la creación de historias de usuario
…consiste en separar los métodos en 2 tipos: comandos y consultas
Un módulo…
…es una entidad que tiene sentido en tiempo de desarrollo
…es un componente que no tiene interfaz
…es una entidad que tiene sentido en tiempo de ejecución
Un interfaz fluido…
…se puede obtener si los métodos que modifican un objeto devuelven dicho objeto
…separa los métodos de consulta de los métodos de escritura
…se consigue cuando se utiliza OSGI
Un módulo consta de…
…una interfaz oculta y un cuerpo visible
…interfaz visible y cuerpo oculto o protegido
…clases abstractas y concretas
Un pointcut…
…utiliza en el patrón CQRS
…es un módulo que carece de interfaz
…indica en qué tipo de métodos se inserta un aspecto
¿Cuál de los siguientes es un sistema de módulos para Java?
JMX
OSGI
Maven
¿Cuál de las siguientes es una variante del estilo de capas?
Sistemas basados en el dominio
Máquinas virtuales
Estilo basado en generalización
La descomposición jerárquica facilita…
…el rendimiento
…la reutilización
…el arranque rápido del desarrollo
La ley de Demeter dice…
…que un módulo no debe depender de otros módulos
…que un módulo solo debe comunicarse con los módulos próximos
…que un módulo debe depender de abstracciones, no de cosas concretas
El código de usar y tirar está relacionado con…
…el estilo Big Ball of Mud
…la reutilización mediante polimorfismo
…el estilo Spring Roll
Mediante programación orientada a aspectos…
…se puede conseguir ejecutar un fragmento de código determinado antes o después de una serie de métodos
…se puede probar un fragmento de código de forma independiente
…se puede configurar un módulo en tiempo de ejecución
Un aspecto contiene…
…advice y pointcuts
…una historia de usuario
…interfaces fluidos
Una capa…
…puede ser un cliente o un servidor, pero no ambos
…es un conjunto de sistemas dentro de un módulo que forma una secuencia de interfaces
…es un conjunto de funcionalidades expuestas mediante una interfaz que ocupa un nivel N dentro del sistema
Una ventaja del estilo en capas es…
…el principio de sustitución de Liskov
¿Cuál de las siguientes es una ventaja del estilo Big Ball of Mud?
Mantenimiento
Reutilización
Flexibilidad en el inicio del desarrollo
Un framework que admite el estilo de aspectos es…
Spring
JSP
El estilo modular basado en dependencias…
…favorece el desarrollo incremental
…permite crear, arrancar y detener módulos en tiempo de ejecución
…se utiliza para definir el modelo de dominio del que depende el sistema
Un sistema con acoplamiento fuerte…
Es malo porque los módulos son muy pequeños
Es malo porque los módulos dependen de muchos otros módulos
Es bueno porque los módulos tienen una única responsabilidad
Una ventaja de las máquinas virtuales es…
…la portabilidad
…la flexibilidad
Un sistema con baja cohesividad…
Es malo porque un módulo puede tener varias responsabilidades
Es bueno porque un módulo no tiene cohesión con otros módulos
Es bueno porque los módulos no dependen de otros módulos
Una ventaja del estilo basado en dominio es que…
…facilita la comunicación del equipo mediante el uso de un lenguaje ubicuo
…aumenta el rendimiento del sistema
…permite módulos con baja cohesividad
En el estilo en capas…
…no puede haber ciclos
…los ciclos deben de identificarse mediante dependencias
…los ciclos se producen entre las capas N y N-1
Una ventaja del estilo de aspectos es…
…localizar la preocupaciones y responsabilidades
…que facilita la depuración del sistema
…fragmentar las preocupaciones en todos lo módulos
Event sourcing…
Es un patrón según el cual se almacenan los eventos de cambio de un estado
Consiste en comunicar el interfaz con la aplicación mediante eventos
Es un patrón para aumentar el acoplamiento
¿Cuál de los siguientes es un estilo arquitectónico de modularidad?
Winter
Big Ball of Mud
DCI…
…se define como Development-Capacity-Integration
…se centra en identificar roles a partir de casos de uso
…genera pruebas a partir de historias de uso
Mediante el estilo de capas, es posible probar cada capa por separado creando capas alternativas llamadas…
Mocks o Stubs
Layers
AltCaps
Las aplicaciones centradas en datos…
…pueden utilizarse en sistemas complejos
…parten de un modelo de comportamiento y generan automáticamente el modelo de datos
admiten un desarrollo rápido al evolucionar a partir del modelo de datos
El estilo 3-tier es simiral al estilo 3-capas pero...
...conlleva una separación física
..conlleva una separación lógica
...cada capa tiene una interfaz claramente definida
EL estilo basado en dominio...
...está formado por un modelo de datos y un modelo de comportmiento independientes
...define el modelo de dominio a partir del esquema de la base de datos
...se centra en la creación de un modelo de dominio
La descomposición jerárquica...
...permite comunicar el aspecto general del sistema
...permite comunicar las relaciones de herencia
...mejora el rendimiento del sistema
OSGi permite desarrollar...
...bases de datos NoSQL
...servicios web
...microservicios
La generalización...
...se define mediante la relación "depende de"
...define partes comunes estables, dejando las partes variables a los hijos
...proporciona módulos sin dependencias
Una restricción en el estilo en capas es que...
...cada pieza de software está en una única capa
...cada capa contiene una única pieza de software
...las capas de alto nivel no pueden invocar funcionalidades de las capas de bajo nivel
Se recomienda...
Evitar las dependencias cíclicas
Evitar los módulos que dependen de otros módulos
Definir interfaces mediante el sistema OSGi
El principio de inversión de dependencias indica que...
Un módulo no debe depender de otros módulos
Un módulo debe pedender de abstracciones, no de detalles
Un módulo debe depender de las impleetaciones , no de los interfaces
Domain Driven Design...
Se utiliza en sistemas complejos.
Es una combinación entre TDD y BDD
Se desarrolla a partir del modelo de datos y de las operaciones CRUD.
¿Cuál de las siguientes es una restricción en la descomposición modular?
Un módulo debe implementar una interfaz abstracta que dependa de otro módulo
No puede haber dos hijos con el mismo padre
No puede haber bucles