N-version programming is based on design or version diversity, meaning different versions of the software are developed independently with the thinking that these versions are independent in their failure behavior. Structured programming and GOTO-less programming are part of robust programming techniques to make programs more readable and executable.

92. Which of the following is an example of a static quality attribute of a software product?

a. Mean-time-between-failure

b. Simplicity in functions

c. Mean-time-to-repair

d. Resource utilization statistics

92. b. Software quality attributes can be classified as either dynamic or static. Dynamic quality attributes are validated by examining the dynamic behavior of software during its execution. Examples include mean time between failures (MTBF), mean-time-to-repair (MTTR), failure recovery time, and percent of available resources used (i.e., resource utilization statistics).

Static quality attributes are validated by inspecting nonexecuting software products and include modularity, simplicity, and completeness. Simplicity looks for straightforward implementation of functions. It is the characteristic of software that ensures definition and implementation of functions in the most direct and understandable manner.

Reliability models can be used to predict software reliability (for example, MTBF and MTTR) based on the rate of occurrence of defects and errors. There is a trade-off between complexity and security, meaning that complex systems are difficult to secure whereas simple systems are easy to secure.

93. Auditing an information system is not reliable under which of the following situations?

a. When audit records are stored on hardware-enforced, write-once media

b. When the user being audited has privileged access

c. When the audit activity is performed on a separate system

d. When the audit-related privileges are separated from nonaudit privileges

93. b. Auditing an information system is not reliable when performed by the system to which the user being audited has privileged access. This is because the privileged user can inhibit the auditing activity or modify the audit records. The other three choices are control enhancements that reduce the risk of audit compromises by the privileged user.

94. Software quality is based on user needs. Which of the following software quality factors address the user’s need for performance?

a. Integrity and survivability

b. Verifiability and manageability

c. Correctness and interoperability

d. Expandability and flexibility

94. c. Correctness asks, “Does it comply with requirements?” whereas interoperability asks, “Does it interface easily?” Quality factors such as efficiency, correctness, safety, and interoperability are part of the performance need.

Integrity and survivability are incorrect because they are a part of functional need. Integrity asks, “How secure is it?” whereas survivability asks, “Can it survive during a failure?” Quality factors such as integrity, reliability, survivability, and usability are part of the functional need. Verifiability and manageability are incorrect because they are a part of the management need. Verifiability asks, “Is performance verification easy?” whereas manageability asks, “Is the software easily managed?” Expandability and flexibility are incorrect because they are a part of the changes needed. Expandability asks, “How easy is it to expand?” whereas flexibility asks, “How easy is it to change?”

95. Developing safe software is crucial to prevent loss of life, property damage, or liability. Which of the following practices is least useful to ensuring a safe software product?

a. Use high coupling between critical functions and data from noncritical ones.

b. Use low data coupling between critical units.

c. Implement a fail-safe recovery system.

d. Specify and test for unsafe conditions.

95. a. “Critical” may be defined as pertaining to safety, efficiency, and reliability. Each application system needs a clear definition of what “critical” means to it. Software hazards analysis and fault tree analysis can be performed to trace system-level hazards (for example, unsafe conditions) through design or coding structures back to software requirements that could cause the hazards. Functions and features of software that participate in avoiding unsafe conditions are termed critical. Critical functions and data should be separated from noncritical ones with low coupling, not with high coupling.

Перейти на страницу:

Поиск

Похожие книги