Exam Flashcards
There are three structural views that represent a coherent set of architectural elements. They are:
Modular, Component-and-connect, and Allocation structural views. All other views are a derivation of the three.
The four major architecture elements that concern any Software Architecture design process are:
Architecture characteristics(attributes), Structures(styles), Design Principles and Architecture decisions.
SDLC is a predictive process, whereas Agile is an adaptive methodology, which means SDLC may:
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:
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:
Business, Domain, Solution Design, solution construction views to communicate with stakeholders.
The benefits of use cases for software development are many, the most notable ones are:
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:
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:
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:
Speed issues, data flow bottlenecking and poor scalability when system adjusts to high load sense
System security is a high priority for Software architects, and a costly attribute to test. The major concerns in cloud computing are:
Confidentiality, Compliance, Privacy, Auditability and Availability when hosting on a public cloud.
According to ISO-9241-11 measuring software usability as a quality attribute involves three areas of concerns. Those are:
Efficiency of the solution, Effectiveness on achieving system goals, and Satisfaction of the system being developed
We use modelling techniques to analyse Quality attributes. The queueing model for performance, use these parameters:
The arrival rate of events, queueing discipline, scheduling algorithm, network topology and network bandwidth.
Architecture fitness function are any mechanism that provides an objective integrity assessment of QA’s such as
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 architecture are:
Loosely coupled, prioritizing deployability, testability, supportability, modifiability over other quality attributes.
Microservices emerged from DevOps practices of companies to improve product quality and deliver software faster by:
Offering faster deployment CI/CD, reduce software development cost and time, while improving product quality.
In Architects role and collaboration, we keep options open with fixed and variable solution intent, to ensure architecture agility process. The fixed solution intent include:
Certain performance specifications, Compliance standards, and Core capabilities defining a solution.
In layered architecture , architecture sinkhole anti-pattern is an undesirable behaviour of the system that shows when:
Presentation layer passes a request to business and rules layers that do nothing but pass request to persistent layer.
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. The best suited architecture style is :
Microkernel style to provide for simplicity, evolution and less cost.
In service based architecture style database coupling can present a problem to database table schema changes:
This can be solved by logically partitioning the database and present the partitions through federated shared libraries.
In Mickrokernel style Plug-in components are standalone, independent components that contain specialized processing, and additional features, mainly plug-ins provide:
Extensibility, adaptability, isolation of application features and custom processing logic from the core system