1If every individual software component in a system is proven to be reliable, the reliability of the entire integrated system is automatically guaranteed
FALSE
2In a sociotechnical system, the "Application Layer" sits directly on top of the "Equipment Layer" without any intermediaries
FALSE
3"Wicked problems" are difficult primarily because the mathematical algorithms required to solve them are too complex for modern computers
FALSE
4A software engineer must consider the "Organizational Layer" because office politics and power structures can cause a technically sound system to be rejected by users
TRUE
5Non-deterministic behavior in a sociotechnical system is often viewed as a failure, but it can also be beneficial when human operators use their judgment to handle unexpected situations
TRUE
6"Repairability" is considered a functional property because it describes a specific function the system performs
FALSE
7The "Communications and Data Management" layer in the system stack typically includes the operating system
FALSE
8Success in a sociotechnical system is defined solely by whether the software code executes without crashing
FALSE
9A change in the "Society Layer" (such as a new privacy law) can force mandatory changes all the way down to the "Application Layer" code
TRUE
10Hardware reliability, software reliability, and operator reliability are independent factors that do not influence one another
FALSE
11Emergent properties can only be measured or evaluated once the system components have been integrated together
TRUE
12It is generally easier to define success criteria for a technical computer-based system than for a sociotechnical system
TRUE
13When investigating a system failure, it is sufficient to look only at the software logs, as human error is rarely the root cause in modern engineering
FALSE
14A system's "Volume" (the space it occupies) is an example of an emergent property that can be easily calculated by summing the volume of its parts
TRUE
15The primary goal of the "Procurement" phase is to write the software code
FALSE
16A system that is 100% available is automatically considered 100% reliable
FALSE
17It is possible for a system to be safe (cause no harm) even if it is unreliable (crashes frequently)
TRUE
18In the context of dependability, a "fault" and a "failure" are synonymous terms that can be used interchangeably
FALSE
19Adding redundancy (e.g., duplicate code modules) strictly increases system reliability without introducing any negative side effects or complexity
FALSE
20Risk-driven specification suggests that it is economically wasteful to apply the highest level of dependability assurance to every single component of a software system
TRUE
21Security is considered a functional requirement because it describes a specific service the system provides to the user (e.g., logging in)
FALSE
22A "hazard" is the actual damage caused by a system failure
FALSE
23Reliability is a deterministic property; if you know the inputs and the code, you can predict exactly when the system will fail
FALSE
24The use of COTS (Commercial Off-The-Shelf) software generally increases the difficulty of proving the safety of a critical system because the source code is often unavailable for analysis
TRUE
25If a software system is mathematically proven to be correct according to its specification, it is impossible for the system to cause an accident
FALSE
26Diversity in engineering (e.g., N-version programming) is used to prevent common-mode failures where the same error exists in multiple backup systems
TRUE
27Operational profiles are used during testing to simulate how the system will likely be used in the real world, rather than testing every theoretical path
TRUE
28Safety-critical systems should be designed so that if they fail, they fail into a known safe state (fail-safe)
TRUE
29Improving the "Repairability" of a system increases its overall "Availability"
TRUE
30It is generally cheaper to add security features to a system after it has been deployed and vulnerabilities are discovered, rather than during the design phase
FALSE
31It is generally possible to test a software system to prove that it has a failure rate of 1 in 100 million (very low probability of failure)
FALSE
32The POFOD (Probability of Failure on Demand) metric is the best choice for a standard banking transaction system that processes millions of requests per day
FALSE
33Functional safety requirements define specific behaviors or functions the system must perform to ensure safety, whereas non-functional requirements define the required level of reliability
TRUE
34The ALARP principle dictates that all risks must be eliminated completely, regardless of the cost
FALSE
35Hazard identification should ideally be performed after the software implementation phase to ensure the code is stable
FALSE
36A "safety case" is a legal lawsuit filed against an engineer after an accident occurs
FALSE
37If a system has a high Mean Time To Failure (MTTF), it automatically implies that the system is safe
FALSE
38Quantitative reliability requirements (using numbers) are often difficult to verify because software failure is usually caused by design errors, not physical wear and tear
TRUE
39A "hazard" and an "accident" are the same thing in safety engineering terminology
FALSE
40Reducing the probability of a hazard occurring is one form of risk reduction; another form is mitigating the damage after the failure occurs
TRUE
41Formal methods (mathematical analysis) can be used to prove that a specification conforms to safety requirements, but they are expensive to implement
TRUE
42Software safety requirements often evolve from an analysis of the hardware and the wider system, rather than just the software itself
TRUE
43Availability is calculated solely based on how many times the system crashes, regardless of how long it takes to fix
FALSE
44In safety-critical systems, it is common practice to identify "excluded" hazards—events that are considered so unlikely they are ignored in the design
TRUE
45A system can meet all its functional requirements (do everything it is supposed to do) and still be considered unsafe
TRUE
46Implementing redundancy in a software system (e.g., N-version programming) reduces the overall development cost because it simplifies the testing phase
FALSE
47Forward error recovery is generally faster than backward error recovery because it does not require restoring a large amount of state data
TRUE
48In a Triple Modular Redundancy (TMR) system, the system can successfully mask a failure even if two of the three modules fail simultaneously
FALSE
49Software diversity (e.g., N-version programming) guarantees that the system will be reliable because it is impossible for independent teams to make the same logic error
FALSE
50The "Acceptance Test" in a Recovery Block architecture must be completely independent of the primary algorithm to be effective
TRUE
51Hardware fault tolerance is generally considered more straightforward to implement than software fault tolerance because hardware components do not typically suffer from "design errors" in the same way software does
TRUE
52Backward error recovery is ill-suited for real-time systems where the output is needed immediately, as the rollback process introduces unpredictable delays
TRUE
53A "fail-stop" system is designed to output incorrect data for a short period before shutting down to allow the user to see the error
FALSE
54Fault tolerance focuses on keeping the system running, whereas fault avoidance focuses on preventing bugs from entering the code in the first place
TRUE
55In N-version programming, the different versions of the software run sequentially (one after the other)
FALSE
56Exception handling in high-level programming languages (like Java try-catch) is a form of forward error recovery
TRUE
57Using Commercial Off-The-Shelf (COTS) components usually increases the risk of common-mode failures if the exact same COTS component is used in redundant channels
TRUE
58Recovery blocks rely on a voting system to determine which output is correct
FALSE
59Checkpointing is a necessary prerequisite for implementing efficient backward error recovery
TRUE
60It is possible to apply diversity to data representations (e.g., storing altitude in meters and feet) to detect computation errors
TRUE
61It is generally considered good engineering practice to delay security considerations until the implementation phase to ensure the functional requirements are fully met first
FALSE
62A system that is 100% secure is theoretically possible if enough resources are invested in formal verification and testing
FALSE
63There is often a direct conflict between security and usability; increasing security controls (like complex passwords) often makes the system more difficult to use
TRUE
64Security risk assessment should be a one-time activity performed at the beginning of the project
FALSE
65The "weakest link" in a security chain is often the human operator rather than the cryptographic algorithms
TRUE
66If a system uses standard 256-bit encryption, the security of the data is guaranteed regardless of how the encryption keys are managed
FALSE
67Asset identification includes intangible items such as the organization's reputation and customer trust, not just physical servers and databases
TRUE
68Authorization must always precede authentication in a standard security interaction
FALSE
69Commercial Off-The-Shelf (COTS) software helps reduce security risks because the vendor assumes full responsibility for all vulnerabilities
FALSE
70An "Attack Tree" is a visual diagram used to model the different paths an attacker might take to compromise a system goal
TRUE
71Security is classified as a functional requirement because it describes specific functions (like logging in) that the system performs
FALSE
72Design for security involves explicit decisions to avoid shared data and to isolate critical assets from public interfaces
TRUE
73Social engineering attacks target the software code directly to bypass firewalls
FALSE
74System availability is considered a component of security because a Denial of Service (DoS) attack aims to compromise it
TRUE
75A security policy should be generic and high-level to allow developers total freedom in how they implement specific controls
FALSE