Software Engineering Final Quiz
Suppose you are implementing a module for a software application, and you neglect to take into account a particular business rule because you are unaware of that rule. However, you do know who the business rule expert is, who is always familiar with all business rules relevant to the customer. This is an example of:
2nd order ignorance
Systems engineers are concerned primarily with:
A, B, and C
Which of the following are true about N-version programming? (Select all that apply.)
All N versions of the system are executed concurrently. N versions of the same system are created using the same specification.
In the paper by Parnas & Clements, the authors use the term "myopia" when discussing software documentation. What do they mean by "myopia"?
As development proceeds, developers tend to lose sight of the bigger picture, and they tend to focus on smaller details that may be helpful to them at the time, but will not be very useful to a new developer who is unfamiliar with the project.
Which of the following best describes what is meant by "risk mitigation"?
Avoid a risk, if possible, but if the risk occurs then minimize its impact.
In object-oriented development, a [ Select ] ["class diagram", "use case diagram", "state-transition diagram", "sequence diagram"] represents the static architecture of a system, while a [ Select ] ["sequence diagram", "class diagram", "use case diagram", "state-transition diagram"] reflects how objects interact with each other.
Class Diagram, sequence diagram
Software maintenance involves which of the following activities? (Select all that apply.)
Correcting code faults, Modifying the software in response to the release of a new operating system version, Extending the software's functionality, (Regression testing?)
Match the software quality attribute on the left with the correct description on the right.
Correctness - the software does exactly what it is supposed to do Reliability - the probability that, over time, the software will perform correctly Integrity - how stable is it? How easily can it be penetrated by a malicious hacker? Portability - will it operate in different environments (e.g., different operating systems)? Interoperability - will it interact well with other software?
Which of the following are true regarding software errors and software faults? (Select all that apply.)
Errors are only manifested at runtime, while faults can exist at both runtime and at compile time. A fault is a characteristic of a software system that could lead to an error.
True or False: Encapsulation is equivalent to information hiding.
False
True or false: Validation ensures that software is built correctly, while verification ensures that the correct software is built; i.e., it is what the customer ordered.
False validation is more customer-oriented, while verification is more developer-oriented. Their definitions are probably most succinctly described by Barry Boehm [1]:• "Are we building the right product?" (validation)• "Are we building the product right?" (verification)
Which of the following could be part of a reverse engineering process? (Select all that apply.)
Given the source code for a project, reconstructing what was thought to be the user requirements for the project., Constructing a design diagram for a module based on source code related to that module., Deriving source code from an executable file.
Why is traceability of requirements important? (Select all that apply.)
It helps to ensure there is no unnecessary functionality in the final product. Correct! It helps developers to determine the impact of a change in any given part of the software. Correct Answer It helps to identify redundant requirements. Correct Answer It helps to ensure that all user requirements have been implemented.
Which of the following are metrics? (Select all that apply.)
LOC/person-month cost/LOC # errors/LOC # person-months/project A ratio of two measures is known as a metric.
Match the Lehman's Law with its description.
Law of Continuing Change - Software that does not eveolve becomes less useful over time Law of Continuing Growth - users will not be satisfied if the software's functionality does not change to meet their demands Law of Conservation of Familiarity - on average, software changes at a pretty much constant rate Law of Increasing Complexity - Over time, adding subtracting, or modifying a software's functionality causes the software to become more complex
In the diagram below, the bottom line, labeled with the '?', represents:
MTTR
Configuration management controls which of the following activities? (Select all that apply.)
Release management Systems building Change management Version management
When developing a system that is expected to have a long life span:
Reusable components should be considered if the source code for those components is made available, and a license is granted to alter this code.
Which of the following are activities that are common to all software processes? (Select all that apply.)
Specification, development, validation, and evolution
Which of the following are potential advantages to incorporating a reusable component into a project? (Select all that apply.)
The component is likely to have already been thoroughly tested. It can provide consistency among all applications that use the component. The component does not have to be written by the development team, which can save time and money.
Which of the following would be considered part of a software application? (Select all that apply.)
The executable file that runs the application. The end-user documentation. The configuration file used by the application to set the properties of the database the application uses. The suite of test cases used to test the software prior to its release.
Which of the following would most likely be, or lead to one or more non-functional requirements, in the context of a medical records software system? (Select all that apply.)
The fact that all the computers on the installation site are running the Linux operating system. Correct Answer The Health Insurance Portability and Accountability Act (HIPAA) HIPAA law may result in the non-functional requirement that patient data are encrypted according to a particular standard, or that certain patient information is only available to a particular level of user. The specific operating system used on the computers located at the site of installation leads to the non-functional requirement that the software system function optimally on Linux. Note that these could also be functional requirements if they are specifically requested by the customer. Storing patient names and addresses, and presenting a patient summary on one screen with minimal scrolling would both be functional requirements, since it is unlikely they would be requirements unless they were specifically mentioned by the customer.
Which of the following are characteristics of components? (Select all that apply.)
They are language-independent. Their implementations are not visible.
True or False:Basis path testing gives you the minimum number of test cases needed to achieve both complete branch coverage and complete statement coverage.
True
Which of the following are examples of diversity? (Select all that apply.)
Two different algorithms, written independently by different programmers, and that both perform the same function, are employed in the same system to achieve a desired result. Memory chips that have the same characteristics, but are built by different manufacturers, are installed in the same computer.
Fault tolerance may be engineered into a software system by: (Select all that apply.)
Validating all input before processing it. Bulletproofing the source code. Using redundant copies of algorithms to obtain a consensus result for a particular function. Using redundant hardware; e.g., maintaining multiple copies of a database on multiple hard drives.
Choose the types of testing that best complete the following sentence: [ Select ] ["regression", "integration", "white box", "black box"] testing can be based on source code, whereas [ Select ] ["integration", "regression", "white box", "black box"] testing is characterized by being based on user requirements only.
White Box, Black Box
For which of the following operations would be employing a timeout be warranted? (Select all that apply.)
Writing a very large file to an external storage device. Waiting for data to be received from a remote server.
Regression testing should be performed when: (select all that apply)
a bug in the software is fixed, the implementation of a module has been changed to improve its efficiency, the structure of an external data file is altered, a bug in the automated testing code has been fixed
What type of model describes the boundaries of a software system relative to its environment?
a context model
Which of the following are characteristics common to all forms of agile development? (Select all that apply.)
accommodation of continuous changes in user requirements the rapid, periodic delivery of small, functional increments of software XP is characterized by writing test cases before the code is written; not all agile processes involve this. Burndown charts are characteristic of Scrum, but are not used in all agile processes.
Which of the following would most likely be considered COTS components? (Select all that apply.)
an ERP used to manage student enrollments Microsoft Excel
A slight, but acceptable, drop in response time for a software application that results only when an installed add-on has been activated is an example of:
an emergent property
A data dictionary might contain which of the following? (Select all that apply.)
colors used in the color scheme of a graphical user interface names and values of constants used by a software application
A component that carries out its functionality through a publicly defined interface meets what characteristic of the definition of "component" as it relates to CBSE?
composable
Changing software to fix a bug is an example of:
corrective maintenance
Interrupt handling and polling are used to deal with what?
event processing
Which of the following are absolutely essential (not just helpful) prior to executing any test case? (Select all that apply.)
input(s), expected output
Use case diagrams and sequence diagrams are common in which of the following models?
interaction model
When designing modules, you should strive to achieve:
low coupling and high cohesion
Suppose a user clicks the "Save" menu option to save the current file, but no indication is given as to whether or not the save was successful. Which user interface design principle has just been violated?
minimal surprise
How many possible lines of one-way communication are there in a team of 5 people?
n * (n-1) so 5 * (5-1) = 5*4 = 20
Which of the following are very common problems that occur when designing transaction processing systems? (Select all that apply.)
providing rollback capability to handle incomplete transactions dealing with concurrent transactions protecting against intrusions
Volatile requirements are:
requirements that are likely to change during the development process.
In terms of module cohesion:
sequential cohesion is stronger than procedural cohesion
Despite the limitations of the waterfall model, it can still be somewhat practical for developing what kinds of software projects? (Select all that apply.)
systems that are very similar to other systems that have been previously built critical systems large enterprise systems programs that are relatively trivial in size
Acceptance testing generally refers to the testing of what artifact created during software development?
the user requirements
Which of the following represents a typical sequence of activities during the testing phase?
unit testing, integration testing, system testing
Which of the following have a greater likelihood of introducing faults into software? (Select all that apply.)
use of default values aliasing inheritance recursion
Match the software process model on the left with the correct description on the right.
waterfall model the phases of the software life cycle are followed rigorously in order incremental model the software is developed by building a core functionality first, and adding features to it later stepwise refinement model a full version of the software is developed first, and the existing functionality is improved later rapid prototyping model involves the creation of one or more periodic mock-ups that are reviewed by the customer