Software Arkitektur - Flash cards - 2024

Flash cards quiz


Click the button to start the quiz

Start Quiz

<- Leave quiz



Questions in the quiz (136)


Software Architecture Documentation

  • The practice of documenting the structures

Module View

  • An architectural view that focuses on the static structure of the system

Component and Connector View

  • An architectural view that illustrates the runtime behavior of the system

Allocation View

  • An architectural view that maps software components to physical devices and deployment environments

Creational Patterns

  • Design patterns that abstract the instantiation process

Structural Patterns

  • Design patterns concerned with how classes and objects are composed to form larger structures. Examples include Composite and Adapter.

Behavioral Patterns

  • Design patterns that focus on algorithms

Monolith Architecture

  • A unified

Microservices Architecture

  • An architectural style where the application is composed of loosely coupled

Use Case Diagram

  • A UML diagram that represents the interactions between users (actors) and the system to capture functional requirements.

Sequence Diagram

  • A UML diagram that shows how objects interact in a particular sequence

State Machine Diagram

  • A UML diagram that illustrates the states of an object and the transitions between those states

Informal Documentation

  • Documentation using sketches

Semiformal Documentation

  • Documentation using standardized notations like UML or SysML

Formal Documentation

  • Documentation with precise

Quality Attributes

  • Characteristics that determine the non-functional properties of a system

Architecture Description Languages (ADLs)

  • Formal languages used to describe the architecture of a software system

Factory Method Pattern

  • A creational design pattern where a method in a class creates an object

Composite Pattern

  • A structural design pattern that allows you to compose objects into tree structures to represent part-whole hierarchies

State Pattern

  • A behavioral design pattern that allows an object to alter its behavior when its internal state changes

Modifiability

  • Ease of changing the system's structure or behavior.

Quality Attribute Scenario

  • Detailed

Use Case

  • Interaction description between users and system to achieve goals.

Pattern

  • Recurring design solution in a specific context.

Tactic

  • Design primitive for achieving a quality attribute response.

Client-Server Pattern

  • Separates clients and servers

Layers Pattern

  • Groups modules into layers

Publish-Subscribe Pattern

  • Publishers send events to subscribers via an event bus.

Increase Cohesion

  • Ensure module elements are closely related.

Reduce Coupling

  • Minimize dependencies between modules.

Defer Binding

  • Delay value assignment to increase flexibility.

Stimulus

  • Condition requiring a system response.

Stimulus Source

  • Entity generating the stimulus.

Response Measure

  • Criteria for evaluating the response.

Environment

  • Circumstances under which the scenario occurs.

Artifact

  • Part of the system targeted by the stimulus.

Plug-in (Microkernel) Pattern

  • Core with extensible plug-ins for added functionality.

Scalability

  • Ability to handle increased load by adding resources.

Variability

  • Capability to support system variants and features.

Portability

  • Ease of running software on different platforms.

Availability

  • Probability that a system will be operational when needed.

Performance

  • Ability of a system to meet timing requirements.

Fault Detection

  • Methods to identify system faults

Fault Tolerance

  • System's ability to continue operating despite faults.

Mean Time Between Failures (MTBF)

  • Average time between system failures.

Mean Time To Repair (MTTR)

  • Average time to repair a system after a failure.

Throughput

  • Amount of work done in a given time period.

Latency

  • Time taken to respond to a request.

Redundant Spare

  • Duplicate components to take over if primary fails.

Exception Handling

  • Dealing with errors by reporting or masking them.

Rollback

  • Revert to a previous state if a deployment fails.

Retry

  • Reattempting an operation after a transient failure.

Reconfiguration

  • Reassigning responsibilities to functioning resources.

Control Resource Demand

  • Reducing work requests to manage system load.

Increase Resources

  • Adding faster processors or more memory.

Introduce Concurrency

  • Processing requests in parallel to reduce wait time.

Maintain Multiple Copies

  • Reducing contention by having multiple data copies.

Load Balancer Pattern

  • Distributing load across multiple resources.

Circuit Breaker Pattern

  • Prevents repeated failed service calls.

Testability

  • Ease with which software can be tested to ensure it functions correctly.

Security

  • Protecting data from unauthorized access while ensuring authorized access.

Control System State

  • Using specialized interfaces to manage variable values during testing.

Record/Playback

  • Recording system state to recreate faults for testing.

Localize State Storage

  • Storing state in a single place to start components in an arbitrary state.

Abstract Data Sources

  • Controlling input data to facilitate easier testing.

Sandbox

  • Isolating system instances for experimentation without real-world consequences.

Executable Assertions

  • Hand-coded checks indicating faulty states in a program.

Limit Complexity

  • Reducing dependencies and nondeterminism in the system.

Intrusion Detection

  • Comparing network traffic to known malicious patterns.

Verify Message Integrity

  • Using checksums or hash values to ensure message integrity.

Identify Actors

  • Identifying sources of external input to the system.

Authenticate Actors

  • Ensuring actors are who they claim to be.

Authorize Actors

  • Ensuring authenticated actors have the right permissions.

Encrypt Data

  • Encoding information to protect it from unauthorized access.

Revoke Access

  • Locking access to resources during an attack.

Audit

  • Keeping records of user and system actions for tracing attacks.

Nonrepudiation

  • Ensuring message senders cannot deny sending messages.

Dependency Injection

  • Separating dependencies from behavior for better testability.

Reduce Duplication

  • Identify and refactor duplicated logic.

Externalize Configurations

  • Store configuration values outside of the source code.

Feature Toggle

  • Dynamically enable/disable features without redeployment.

Redundancy

  • Duplicate components to provide backup.

Failover

  • Switch to a standby system upon failure.

Load Balancing

  • Distribute workloads across multiple resources.

Deployment Pipeline

  • Sequence of tools/activities for code deployment.

Canary Release

  • Gradually roll out changes to a small user subset.

Version Control Systems

  • Tools like Git for managing code changes.

CI/CD Tools

  • Tools like Jenkins for automating build and deployment.

Containerization Tools

  • Tools like Docker for managing containerized environments.

Monitoring Tools

  • Tools like Prometheus for monitoring system performance.

Configuration Management

  • Tools like Ansible for managing deployments.

Feature Management Tools

  • Tools like LaunchDarkly for managing feature toggles.

Architecturally Significant Requirements (ASRs)

  • Requirements profoundly affecting the architecture.

Utility Tree

  • Top-down representation of ASRs

Quality Attribute Workshop (QAW)

  • Method to identify and prioritize quality attributes early.

Business Model

  • Describes how an organization creates

Business Scenario

  • Describes business problems

Scenario Brainstorming

  • Generating scenarios that address stakeholder concerns.

Scenario Consolidation

  • Merging similar scenarios to avoid redundancy.

Scenario Prioritization

  • Voting to determine the importance of scenarios.

Scenario Refinement

  • Developing detailed quality attribute scenarios.

Architectural Drivers

  • Key requirements influencing architectural decisions.

Business/Mission Presentation

  • Presenting business concerns and requirements.

Architectural Plan Presentation

  • Presenting system descriptions and current architecture.

Quality Attribute

  • A characteristic determining the system's performance.

Functional Requirements

  • Specific behaviors or functions a system must support.

Technical Risk

  • Potential technical issues affecting project success.

Business Value

  • The importance of a requirement to business success.

Stakeholder Engagement

  • Involving stakeholders in decision-making processes.

Requirement Management

  • Tracking and managing requirements throughout the project.

Draw.io

  • Tool for creating utility trees and diagrams.

SWOT Analysis

  • Tool for analyzing strengths

Attribute-Driven Design (ADD)

  • Systematic method for designing software architecture in iterations.

Review Inputs

  • Assessing initial requirements

Iteration Goal

  • Specific objective for a design iteration

Design Concepts

  • Architectural solutions or patterns addressing specific drivers and requirements.

Instantiate Elements

  • Creating architectural components

Sketching Views

  • Visual representations of architectural decisions and structures.

Analysis and Review

  • Evaluating design against iteration goal and overall design purpose.

Quality Attribute Scenarios

  • Detailed descriptions of quality attributes and their impacts.

Constraints

  • Limitations or restrictions affecting architectural decisions.

Drivers

  • Key factors guiding the architectural design process.

Refine Elements

  • Choosing system parts to improve based on drivers and goals.

Allocate Responsibilities

  • Assigning duties to architectural elements.

Define Interfaces

  • Specifying how components interact and exchange information.

Design Iteration

  • Repeated cycle of reviewing

Primary Functional Requirements

  • Essential system functionalities driving the design.

Concerns

  • Issues or considerations affecting architectural decisions.

Design Purpose

  • The main objective guiding a design iteration.

Prototype

  • An initial model used to test design concepts and decisions.

ATAM

  • Method for evaluating software architectures by identifying tradeoffs and risks.

ASRs

  • Requirements profoundly impacting the architecture.

Sensitivity Points

  • Architectural decisions significantly affecting a quality attribute.

Tradeoff Points

  • Improving one quality attribute degrades another.

Risks

  • Architectural decisions that may lead to undesirable outcomes.

Non-Risks

  • Architectural decisions deemed safe after analysis