Software architecture Flashcards

1
Q

There are three Structural views that represent a coherent set of architectural elements, they are:

a. Layered, Deployment, and Structural views, all other views are a derivation of these three

b. Modular, Component-and-connect, and Allocation structural views, all other views are a derivation of these three

c. Block, Component-and-connect, and Class structural views, all other views are a derivation of these three

d. Domain, Functional, and Technical structural views, all other views are a derivation of these three

A

b. Modular, Component-and-connect, and Allocation structural views, all other views are a derivation of these three

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

The four major architecture elements, that concern any Software Architecture design process, are:

a. Architecture domains, Structural tactics , Quality attributes scenarios, and Use cases

b. Architecture views, Structures (patterns), Design principles, and Architecture domains

c. Architecture views, Layered design, Architecture domains, and Architecture sequential

d. Architecture characteristics (attributes), Structures (styles), Design principles, and Architecture decisions

A

d. Architecture characteristics (attributes), Structures (styles), Design principles, and Architecture decisions

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

SDLC is a predictive process, whereas Agile is an adaptive methodology, which means that SDLC may:

a. Use a software development process such as Waterfall model, Incremental model, or V-Shaped model

b. Use only a software development process such as Waterfall model, or V-Shaped model

c. Use only a software development process such as Scrum, XP, Lean, or Kanban

d. Use only a software development process such as Iterative, Waterfall, or Test Driven Development TDD

A

a. Use a software development process such as Waterfall model, Incremental model, or V-Shaped model

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

The business context in Software Architecture design deals mainly with cost and market, it helps in:

a. Feasibility study, internal skills analysis, technical options, and development process options

b. Feasibility study, risk analysis, evaluate architectural options, cost estimate and internal planning

c. Competitive technologies, process analysis, evaluate design decisions, trade-off analysis

d. Performance benchmarks, cost, and delivery, interoperability integration, and backward compatibility

A

b. Feasibility study, risk analysis, evaluate architectural options, cost estimate and internal planning

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

The architecture development method defines levels of view for each stakeholder role, such as:

a. Developer, Operator, Design support, and Operation support views to communicate to Stakeholders

b. Contractor, Financier, Regulatory, and Strategic views to communicate to Stakeholders

c. Business, Domain, Solution design, and Solution construction views to communicate to Stakeholders

d. Tactical, Vendor, Consultant, and Users views to communicate to Stakeholders

A

c. Business, Domain, Solution design, and Solution construction views to communicate to Stakeholders

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

The benefits of use cases for software development are many, the most notable ones are:

a. Help to define the scope, indicator of a project’s size, validate the requirements, and communicate with stakeholders

b. Help to forecast budget, identify development team, validate the design decisions, and communicate with teams

c. Help to define style, indicator of skills needed, validate the budget, and communicate with vendors

d. Help to define the deadlines, indicator of a project’s complexity, validate the market, and communicate with suppliers

A

a. Help to define the scope, indicator of a project’s size, validate the requirements, and communicate with stakeholders

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

The elements that describe the expression of the Quality Attribute Scenario are:

a. Background, Actors, Goals, Response value, Mitigating, and Cause of error

b. Environment, Precondition, Test process, Response mode, Source of error, and Cause of error

c. Background, System structure, Response mode, Source of Stimulus, and Stimulus impact

d. Environment, Artifact, Response, Response measure, Source of Stimulus, and Stimulus

A

d. Environment, Artifact, Response, Response measure, Source of Stimulus, and Stimulus

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

The Interoperability is about the degree to which two or more systems can usefully exchange meaningful
information, the two important aspects of interoperability are:

a. The consumer discovery of the service, and the handling of the response by the service

b. The consumer response to the service, and the handshaking protocol across services

c. The consumer discovery of the message, and the handling of the response to the message

d. The consumer discovery of the heartbeat, and the handling mechanism of the service to the heartbeat

A

a. The consumer discovery of the service, and the handling of the response by the service

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

Performance is a leading driver for system and software architecture, testing performance would focus on:

a. Testability features, Data flow integrity, and Poor extensibility when system is inflexible for functionality expansion

b. Integrity issues, Data flow security, and Poor traceability when system is difficult to test and document

c. Speed issues, Data flow bottlenecking, and Poor scalability when system can adjust to high load stress

d. Useability issues, Data flow inconsistence, Poor process and user interface when system is difficult to use

A

c. Speed issues, Data flow bottlenecking, and Poor scalability when system can adjust to high load stress

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

System Security is a high priority for Architects, and a costly attribute to test, the major concerns in cloud computing are:

a. Confidentiality, Compliance, Privacy, Auditability, and Availability when hosting on a public cloud

b. Integrity, Authentication, Performance, Extensibility, and Availability when hosting on a public cloud

c. Interoperability, Scalability, Privacy, Modifiability, and Extensibility when hosting on a public cloud

d. Accessibility, Authentication, Performance, Extensibility, and Modifiability when hosting on a public cloud

A

a. Confidentiality, Compliance, Privacy, Auditability, and Availability when hosting on a public cloud

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

According ISO-9241-11 measuring software usability as a quality attribute involves 3 areas of concern, they are:

a. Performance of the solution, Testability of system functions, and Extensibility of the system being developed

b. Efficiency of the solution, Effectiveness in achieving system goals, and Satisfaction of the system being developed

c. Performance of the solution, Availability of system functions, and Deployability of the system being developed

d. Efficiency of the solution, Maintainability of the system, and Reusability of the system functions

A

b. Efficiency of the solution, Effectiveness in achieving system goals, and Satisfaction of the system being developed

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

We use modeling techniques to analyze Quality Attributes. The Queuing model for performance, use these parameters:

a. The arrival rate of users, queuing capacity, scheduling algorithm, system topology and broker bandwidth

b. The arrival rate of events, queuing discipline, scheduling algorithm, network topology and network bandwidth

c. The arrival rate of agents, queuing capacity, scheduling frequency, internal communication bus

d. The arrival rate of events, queuing size, scheduling arrivals, network latency and network interface

A

b. The arrival rate of events, queuing discipline, scheduling algorithm, network topology and network bandwidth

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

Architecture fitness function are any mechanism that provides an objective integrity assessment of QAs, such as:

a. Simulation, Emulation, checklists, and analysis to verify architecture fitness to specific quality attribute

b. Modularity, Cohesion, Code size, and code complexity functions such as Cyclomatic Complexity

c. Scenarios, Use Cases, User Stories, and code complexity functions such as Cyclomatic Complexity

d. Metrics, monitors, unit testing libraries, chaos engineering, depending on the way they are used

A

d. Metrics, monitors, unit testing libraries, chaos engineering, depending on the way they are used

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

A case study we presented on Qualitative Study of Architectural Design Issues in DevOps, revealed that the main
characteristics of DevOps driven architectures are:

a. Cohesion, extensibility, modifiability, reliability, and security over other quality attributes

b. Coupled modularity, prioritizing availability, performability, and modifiability over other quality attributes

c. Loosely coupled, prioritizing deployability, testability, supportability, and modifiability over other quality attributes

d. Cohesion, availability, performability, reliability, and security over other quality attributes

A

c. Loosely coupled, prioritizing deployability, testability, supportability, and modifiability over other quality attributes

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

Microservices emerged from DevOps practices of companies to improve product quality and deliver software faster by:

a. Offering faster deployment CI/CD, reduce software development costs and time, while improving product quality

b. Offering faster performance, help reduce software decoupling and improve security, while improving product quality

c. Offering faster stakeholders approval, and help improve software reliability on the cloud and improve product quality

d. Offering effective testability, help increase software coupling and improve security, while improving product quality

A

a. Offering faster deployment CI/CD, reduce software development costs and time, while improving product quality

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

In Architects Roles and Collaborations, we keep options open with Fixed and Variable solution Intent, to ensure
architecture agility process. The fixed solution intent include:

a. Certain modifiability specifications, Architecture standards, and detailed capabilities defining the solution

b. Certain performance specifications, Compliance standards, and Core capabilities defining the solution

c. The elements that enable teams to explore the economic trade-offs of requirements and design alternatives

d. The elements that enable teams to explore architecture styles and design decision tactics

A

b. Certain performance specifications, Compliance standards, and Core capabilities defining the solution

17
Q

In Layered Architecture, Architecture sinkhole anti-pattern is an undesirable behavior of the system that shows when:

a. Presentation layer passes a request to business and rules layers in a sluggish slow manner to persistent layer

b. Presentation layer passes a request to business and rules layers blocking any request to the persistent layer

c. Presentation layer passes a request to business and rules layers which sink the request in a loophole indefinitely

d. Presentation layer passes a request to business and rules layers that do nothing but pass request to persistent layer

A

d. Presentation layer passes a request to business and rules layers that do nothing but pass request to persistent layer

18
Q

If a payment processing is the domain service representing the core system, where each payment method would be
separate plug-in components specific to the payment domain. Best suited architecture style for this system is:
a. Microservices style to allow for fast payment distributed processing

b. Pipelined style to allow for scalability and better fault tolerance

c. Microkernel style to provide for simplicity, evolution and less cost

d. Service-based style to deliver best service elasticity and simplicity

A

c. Microkernel style to provide for simplicity, evolution and less cost

19
Q

In service-based architecture style database coupling can present a problem to database table schema changes:
a. This can be solved by logically partitioning the database and present the partitions through federated shared libraries.

b. This can be solved by breaking apart user interface into user interface domains

c. This can be solved by breaking apart a single monolithic database into separate databases

d. This can be solved by physically partitioning the database and present the partitions through a shared library

A

a. This can be solved by logically partitioning the database and present the partitions through federated shared libraries.

20
Q

In Microkernel style Plug-in components are standalone, independent components that contain specialized processing, and additional features, mainly Plug-ins provide:

a. UI capabilities that can be extended and customized per user need and functionality

b. Extensibility, adaptability, and isolation of application features and custom processing logic from the core system

c. Broker mediation functionality to ensure asynchronous communication with fast processing advantage

d. Computing scalability, testability, and additional fault tolerance capability especially for remote users

A

b. Extensibility, adaptability, and isolation of application features and custom processing logic from the core system

21
Q

Synchronous system design is less challenging than Asynchronous, it is distinguished by:

a. Promoting decoupling and easier design for distributed computing systems like grid computing

b. Being faster for handshaking, but harder to test and extend to more functionalities

c. Allowing two different services to differ in response and operational architecture, based on fire-and-forget.

d. The caller service waits for the response from the callee, in real-time handshaking, under clock discipline

A

d. The caller service waits for the response from the callee, in real-time handshaking, under clock discipline

22
Q

Microservices style is a distributed architecture, promotes the following architectural features:

a. Modularity, distributed decoupling, granularity, bounded context, and data isolation

b. High performance computing due to highly efficient network calls and synchronous capabilities

c. Extremely small granularity to control modular decoupling and extensibility for complex designs

d. Ability to share persistent data for cloud computing to ensure testability and high security control

A

a. Modularity, distributed decoupling, granularity, bounded context, and data isolation

23
Q

The event-driven architecture style is distinguished by:

a. Coupled event processing components that asynchronously receive and process events

b. A highly adaptable but can only be used for small and less complex systems or applications

c. A distributed asynchronous architecture used to produce highly scalable and high-performance applications

d. Having a good control over the workflow associated with the initiating event and error handling

A

c. A distributed asynchronous architecture used to produce highly scalable and high-performance applications

24
Q

The pub-sub style is an extensible real-time distributed style, it decouples the publisher from the subscriber by:

a. Using a sidecar component that can handle all the operational concerns between modules

b. Making adding synchronously subscribers to a topic, so that a publisher can publish to such topic

c. Using a third component (the broker) to filter all incoming messages and distribute them correctly to subscribers

d. Making sure that each subscriber event is delivered to all publishers of that event (topic)

A

c. Using a third component (the broker) to filter all incoming messages and distribute them correctly to subscribers

25
Q

Only one pair of these is NOT a Design Principle for Software Architecture:

a. Single responsibility & Separation of concerns

b. Cohesion & Information hiding

c. Incremental Adaptive Iteration, and decoupling of modules

d. Incremental Predictive Iteration, and decoupling minimization

A

d. Incremental Predictive Iteration, and decoupling minimization

26
Q

There are mainly four principles to Make Your Code More Reusable:

a. Modularization, Cohesion, Loose coupling and visible variability features

b. Testability, Maintainability, Adaptability, and Availability

c. Usability, Performability, Adaptability, and Interoperability

d. Testability, Performability, Traceability, and Scalability

A

a. Modularization, Cohesion, Loose coupling and visible variability features

27
Q

The difference between technical and domain top level partitioning of Monolithic architecture is:

a. Domain partitioning aligns closely to Client-Server architecture style, and have higher global coupling

b. Technical partitioning aligns closely to layered architecture style, and have higher global coupling

c. Technical partitioning aligns closely to distributed architecture style, and have lower global coupling

d. Technical partitioning aligns closely to decentralized architecture style, and have higher global coupling

A

b. Technical partitioning aligns closely to layered architecture style, and have higher global coupling

28
Q

The Attribute-Driven Design (ADD) has 5 design steps, its inputs and outputs are:

a. Inputs: Use Cases, and ASRs, Outputs: Software architecture design decisions and tactics

b. Inputs: Quality scenarios, and ASRs, Outputs: Software architecture performance metrics

c. Inputs: Quality attributes, Design constrains, and Functional requirement, Outputs: Software architecture design

d. Inputs: Use Cases scenarios, Architecture drivers, and ASRs, Outputs: Software design decisions, and tactics

A

c. Inputs: Quality attributes, Design constrains, and Functional requirement, Outputs: Software architecture design

29
Q

The quality attributes can be evaluated using these techniques:

a. MVP with proof of concept (POC), or emulation which also considers software testing techniques

b. Simulation with POC, or emulation which also considers performance with infrastructure performance context

c. Simulation with MVP, or emulation with hardware configuration language that emulates system behavior

d. Simulation with prototyping, or emulation which also considers hardware and interface configurations

A

d. Simulation with prototyping, or emulation which also considers hardware and interface configurations

30
Q

The major Benefits of conducting an Architecture Evaluation are:

a. Expose any potential risk with design, articulate specific qualities, uncover opportunities and inform stakeholders

b. Expose any potential trade-off with design, articulate specific performance metrics, and inform stakeholders

c. Expose any risk with delivery-time to market, articulate specific security vulnerability, and uncover opportunities

d. Expose any risk with competitors, articulate specific design conflicts, and inform stakeholders

A

a. Expose any potential risk with design, articulate specific qualities, uncover opportunities and inform stakeholders

31
Q

Utility tree is used to prioritize quality attributes scenarios per business and architecture values, this is part of:

a. ADD process to identify design trade-offs, sensitivity points and risk in a specific architecture quality attributes

b. ATAM to identify design trade-offs, sensitivity points and risk for a specific architecture quality attributes

c. ADD process to identify architecture design styles, tactics, and quality attributes scenarios

d. ATAM to identify architecture design styles, tactics, and quality attributes scenarios

A

b. ATAM to identify design trade-offs, sensitivity points and risk for a specific architecture quality attributes

32
Q

The architecture design decisions impact several aspects of a specific system quality attributes, such as:

a. Cost of performance, Conflicting demands, Trade-offs, and Time to market

b. Testability, Performability, Extensibility, and availability

c. Sensitivity points, Trade-offs, Risk and Non-Risk of a specific quality attribute

d. Sensitivity of performance, and risk of availability due to trade-off decisions

A

c. Sensitivity points, Trade-offs, Risk and Non-Risk of a specific quality attribute

33
Q

The hybrid Peer-to-Peer architecture style introduces two layers in the control plane, they are:

a. Peers connecting to ultrapeers as in client-server and ultrapeers connected with each other via peer-to-peer network

b. Peer-to-peer connecting together and ultrapeers-to-ultrapeers as in client-server network style

c. Peers connecting to ultrapeers as in peer-to-peer style and ultrapeers connected in client-server style

d. Pure Peer-to-peer connecting together and ultrapeers-to-ultrapeers as in client-server style

A

a. Peers connecting to ultrapeers as in client-server and ultrapeers connected with each other via peer-to-peer network

34
Q

The blockchain or digital ledger technology is built upon a five layered architecture these layers are:

a. The hash layer, network layer, consortium layer, incentive layer, and application layer

b. The data layer, network layer, consensus layer, incentive layer, and application layer

c. The data layer, communication layer, consensus layer, inclusive layer, and application layer

d. The UI layer, communication layer, smart app layer, incentive layer, and distributed app layer

A

b. The data layer, network layer, consensus layer, incentive layer, and application layer

35
Q

The Hyperledger Fabric is an open-source community enterprise-grade, distributed ledger platform, its key features are:

a. Permissionless architecture, highly modular, pluggable consensus, and closed smart contract

b. Permissioned architecture, high latency, public consensus, and open smart contract

c. Permissionless architecture, continuous operations, public endorsement, and open smart contract

d. Permissioned architecture, highly modular, pluggable consensus, and open smart contract

A

d. Permissioned architecture, highly modular, pluggable consensus, and open smart contract

36
Q

The guest speaker from Ericsson talked about the conflicting demand of product owners and software architects, he stated:

a. In pursuit of DevOps practice teams in Ericsson make sure that architecture development guidelines are followed

b. The product owners work closely with system architects to ensure that proper architecture trade-offs are made

c. Product owners want features to be delivered now with less concern about the architecture guidelines and integrity

d. Ericsson is operating in cross functional teams where both development teams and architects collaborate closely

A

c. Product owners want features to be delivered now with less concern about the architecture guidelines and integrity

37
Q

Software Architecture:
Definition

A

Software Architecture is the fundamental organization of a
system embodied by its components , their
relationships to each other and to the environment and the principles guiding its design and evolution