Software architecture Flashcards
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
b. Modular, Component-and-connect, and Allocation structural views, all other views are a derivation of these three
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
d. Architecture characteristics (attributes), Structures (styles), Design principles, and Architecture decisions
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. Use a software development process such as Waterfall model, Incremental model, or V-Shaped model
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
b. Feasibility study, risk analysis, evaluate architectural options, cost estimate and internal planning
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
c. Business, Domain, Solution design, and Solution construction views to communicate to Stakeholders
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. Help to define the scope, indicator of a project’s size, validate the requirements, and communicate with stakeholders
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
d. Environment, Artifact, Response, Response measure, Source of Stimulus, and Stimulus
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. The consumer discovery of the service, and the handling of the response by the service
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
c. Speed issues, Data flow bottlenecking, and Poor scalability when system can adjust to high load stress
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. Confidentiality, Compliance, Privacy, Auditability, and Availability when hosting on a public cloud
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
b. Efficiency of the solution, Effectiveness in achieving system goals, and Satisfaction of the system being developed
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
b. The arrival rate of events, queuing discipline, scheduling algorithm, network topology and network bandwidth
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
d. Metrics, monitors, unit testing libraries, chaos engineering, depending on the way they are used
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
c. Loosely coupled, prioritizing deployability, testability, supportability, and modifiability over other quality attributes
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. Offering faster deployment CI/CD, reduce software development costs and time, while improving product quality