SOFTWARE ARCHITECTURE
Warm-up session
1. QUESTION
You are an architect for a signal processing application. You have
designed the application in such a way that the front-end component
receives sensor data from devices, and the data flows from one
component to the following component. Each component
subsequently transforms the data it receives and passes the
transformed data to the next component. The final component
passes the data to a modeling and visualization unit that renders the
data to the end-users. The architecture style you have used in this
application is:
a) Layered architecture pattern
b) Pipe-and-filter architecture pattern
c) N-tier architecture pattern
d) Peer-to-peer architecture pattern
1. ANSWER
b) Pipe-and-filter architecture pattern
2. QUESTION
Which architecture style is characterized by the following:
“All arriving new data is entered into both the batch layer and
the speed layer. Batch layer has the master dataset and
precomputes data and provides it in batch views. Speed layer
processes the with recent data and compensates for the
latency in the batch layer. Serving layer processes queries
using data from both batch views and real-time view in speed
layer.”
a) Microservices style
b) Pipe-and-filter style
c) N-tier architecture style
d) Lambda architecture style
2. ANSWER
d) Lambda architecture style
3. QUESTION
Consider the following code segment:
Reader	rd	=	new	LineNumberReader(new	
BufferedReader(new	FileReader(“./test.c")));	
Reader is the abstract base class from which classes such
as FileReader and BufferedReader derive. Classes in the
Reader hierarchy take a Reader as an argument and hold
it as a reference. Which design pattern does the
underlying design follow?
a) Factory method pattern
b) Strategy pattern
c) Builder pattern
d) Decorator pattern
3. ANSWER
d) Decorator pattern
VisualComponent
+ Draw()
TextView
+ Draw()
ScrollDecortor BorderDecorator
+ Draw()
- ScrollPosition
+ Draw()
- borderWidth
Decorator
+ Draw() component->Draw()
Decorator::Draw()
DrawBorder()
Decorator::Draw()
ScrollTo()
Source: “Design Patterns: Elements of Reusable Object-Oriented Software”, Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides,
4. QUESTION
A division in a large company is working on maintaining
compiler and tools for a platform. Teams are organised
reflecting the components maintained, such as compiler
front-end team, back-end (optimiser) team, linker team,
debugger team, etc. Such reflection of architecture
structure in the organisation structure (and vice versa)
is known by the name:
a) Brook’s law
b) Conway’s law
c) Moore’s law
d) Amdahl’s law
4. ANSWER
b) Conway’s law
“Any organization that designs a
system… will inevitably produce a
design whose structure is a copy
of the organization's
communication structure”
5. QUESTION
You are an architect who have just joined a large team that that
maintaining a legacy software. While trying to understand the
architecture of the software, you find that the architecture is well
documented. However, when you discuss with the developers
working in the project, you find that the actual architecture is
different from the documented architecture – over the last
decade, the software has changed but the documentation has not
been updated. The scenario you are facing is known as:
a) Architecture drift
b) Lambda architecture
c) Deployment architecture
d) Undocumented architecture
5. ANSWER
a) Architecture drift
6. QUESTION
What is the architecture style followed by the
World Wide Web (www)?
a) Microservices style
b) REST (REpresentational State Transfer) style
c) CQRS (Command Query Responsibility
Segregation) pattern
d) Lambda architecture style
6. ANSWER
b) REST (REpresentational State Transfer) style
code-on-
demand
client-server
cache
statelesslayered
system
uniform
interface
REST
constraints
(in www)
7. QUESTION
You are working on an financial application that is an event-driven
system. The team is having difficulty in testing and debugging the
software and want to be able to replay the events. Also, the application
has recently been a target of security attacks. With lack of audit trail, it
is difficult to prosecute attackers. What is more, the management also
wants predictive analytics for improving profitability of the business.
Which of the following patterns can help directly address this
situation?
a) Using microservices style
b) Using REST (REpresentational State Transfer) style
c) Using event sourcing pattern
d) Using CQRS (Command Query Responsibility Segregation) pattern
7. ANSWER
c) Using event sourcing pattern
source: https://msdn.microsoft.com/en-us/library/dn589792.aspx
8. QUESTION
Docker is written in:
a) Java language
b) C language
c) D language
d) Go language
8. ANSWER
d) Go language
Check out this presentation on “Docker
and Go: why did we decide to write
Docker in Go?”
9. QUESTION
Who is
a) Michael Feathers
b) Robert C. Martin
c) Solomon Hykes
d) Roy T. Fielding
9. ANSWER
c) Solomon Hykes
Solomon Hykes started Docker project in
his earlier company dotCloud; it was later
released to open source in 2013. He is
now the CTO in Docker Inc.
10. QUESTION
You have used dependency analysis tools on
your code base. You find numerous cycles and
tangles in the dependencies. The recommended
approach to be followed is:
a) Adopt Domain Driven Design (DDD)
b) Adopt Test Driven Development (TDD) approach
c) Perform architecture refactoring
d) Use profiling tools to find “hotspots” and remove
the bottlenecks
10. ANSWER
c) Perform architecture refactoring
Tangles in
JDK

Software Architecture - Quiz Questions

  • 1.
  • 2.
    1. QUESTION You arean architect for a signal processing application. You have designed the application in such a way that the front-end component receives sensor data from devices, and the data flows from one component to the following component. Each component subsequently transforms the data it receives and passes the transformed data to the next component. The final component passes the data to a modeling and visualization unit that renders the data to the end-users. The architecture style you have used in this application is: a) Layered architecture pattern b) Pipe-and-filter architecture pattern c) N-tier architecture pattern d) Peer-to-peer architecture pattern
  • 3.
    1. ANSWER b) Pipe-and-filterarchitecture pattern
  • 4.
    2. QUESTION Which architecturestyle is characterized by the following: “All arriving new data is entered into both the batch layer and the speed layer. Batch layer has the master dataset and precomputes data and provides it in batch views. Speed layer processes the with recent data and compensates for the latency in the batch layer. Serving layer processes queries using data from both batch views and real-time view in speed layer.” a) Microservices style b) Pipe-and-filter style c) N-tier architecture style d) Lambda architecture style
  • 5.
    2. ANSWER d) Lambdaarchitecture style
  • 6.
    3. QUESTION Consider thefollowing code segment: Reader rd = new LineNumberReader(new BufferedReader(new FileReader(“./test.c"))); Reader is the abstract base class from which classes such as FileReader and BufferedReader derive. Classes in the Reader hierarchy take a Reader as an argument and hold it as a reference. Which design pattern does the underlying design follow? a) Factory method pattern b) Strategy pattern c) Builder pattern d) Decorator pattern
  • 7.
    3. ANSWER d) Decoratorpattern VisualComponent + Draw() TextView + Draw() ScrollDecortor BorderDecorator + Draw() - ScrollPosition + Draw() - borderWidth Decorator + Draw() component->Draw() Decorator::Draw() DrawBorder() Decorator::Draw() ScrollTo() Source: “Design Patterns: Elements of Reusable Object-Oriented Software”, Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides,
  • 8.
    4. QUESTION A divisionin a large company is working on maintaining compiler and tools for a platform. Teams are organised reflecting the components maintained, such as compiler front-end team, back-end (optimiser) team, linker team, debugger team, etc. Such reflection of architecture structure in the organisation structure (and vice versa) is known by the name: a) Brook’s law b) Conway’s law c) Moore’s law d) Amdahl’s law
  • 9.
    4. ANSWER b) Conway’slaw “Any organization that designs a system… will inevitably produce a design whose structure is a copy of the organization's communication structure”
  • 10.
    5. QUESTION You arean architect who have just joined a large team that that maintaining a legacy software. While trying to understand the architecture of the software, you find that the architecture is well documented. However, when you discuss with the developers working in the project, you find that the actual architecture is different from the documented architecture – over the last decade, the software has changed but the documentation has not been updated. The scenario you are facing is known as: a) Architecture drift b) Lambda architecture c) Deployment architecture d) Undocumented architecture
  • 11.
  • 12.
    6. QUESTION What isthe architecture style followed by the World Wide Web (www)? a) Microservices style b) REST (REpresentational State Transfer) style c) CQRS (Command Query Responsibility Segregation) pattern d) Lambda architecture style
  • 13.
    6. ANSWER b) REST(REpresentational State Transfer) style code-on- demand client-server cache statelesslayered system uniform interface REST constraints (in www)
  • 14.
    7. QUESTION You areworking on an financial application that is an event-driven system. The team is having difficulty in testing and debugging the software and want to be able to replay the events. Also, the application has recently been a target of security attacks. With lack of audit trail, it is difficult to prosecute attackers. What is more, the management also wants predictive analytics for improving profitability of the business. Which of the following patterns can help directly address this situation? a) Using microservices style b) Using REST (REpresentational State Transfer) style c) Using event sourcing pattern d) Using CQRS (Command Query Responsibility Segregation) pattern
  • 15.
    7. ANSWER c) Usingevent sourcing pattern source: https://msdn.microsoft.com/en-us/library/dn589792.aspx
  • 16.
    8. QUESTION Docker iswritten in: a) Java language b) C language c) D language d) Go language
  • 17.
    8. ANSWER d) Golanguage Check out this presentation on “Docker and Go: why did we decide to write Docker in Go?”
  • 18.
    9. QUESTION Who is a)Michael Feathers b) Robert C. Martin c) Solomon Hykes d) Roy T. Fielding
  • 19.
    9. ANSWER c) SolomonHykes Solomon Hykes started Docker project in his earlier company dotCloud; it was later released to open source in 2013. He is now the CTO in Docker Inc.
  • 20.
    10. QUESTION You haveused dependency analysis tools on your code base. You find numerous cycles and tangles in the dependencies. The recommended approach to be followed is: a) Adopt Domain Driven Design (DDD) b) Adopt Test Driven Development (TDD) approach c) Perform architecture refactoring d) Use profiling tools to find “hotspots” and remove the bottlenecks
  • 21.
    10. ANSWER c) Performarchitecture refactoring Tangles in JDK