Test Bank—Chapter Seven (Software Engineering)
Multiple Choice Questions
1. Which of the following software engineering methodologies is the most rigid?
A. Incremental model B. Waterfall model
C. Extreme programming D. Evolutionary prototyping
2. Which of the following is a notational system for representing object–oriented designs?
A. UML B. Structure charts C. Modular designs D. Dataflow diagrams
3. Which of the following is an attempt to construct software from off-the-shelf components as is done in
other engineering fields?
A. Extreme programming B. Evolutionary prototyping
C. Component architecture D. Open-source development
4. Which of the following is most likely an example of a one–to-one relationship?
A. Subscribers and magazines B. Birth dates and people
C. Planets and their moons D. Dinner guests and table settings
5. Which of the following is most likely an example of a many–to-many relationship?
A. Subscribers and magazines B. Birth dates and people
C. Planets and their moons D. Dinner guests and table settings
6. Which of the following is not a feature of UML?
A. Use case diagrams B. Class diagrams
C. Dataflow diagrams D. Sequence diagrams
7. The use of design patterns in software engineering was adopted from what other field?
A. Business administration B. Architecture
C. Biology D. Chemistry
8. Which of the following is a form of glass-box testing?
A. Basis path testing B. Boundary value analysis C. Beta testing
9. Which of the following is a means of controlling the complexity of a software system?
A. CRC cards B. Modularity C. Specifications D. Beta testing
10. Which of the following is a way of testing the design of a software system?
A. Entity-relationship diagram B. Class diagram
C. Structure chart D. Structured walkthrough
11. Which of the following is not related to the others?
A. Structure chart B. Imperative paradigm
C. Class diagram D. Function
12. Which of the following is the method proposed by UML for representing sequences of communication
between objects?
A. Class diagram B. Use case diagram
C. Sequence diagram D. Generalization
13. Which of the following is not represented in a class diagram?
A. Generalizations B. The methods within a class
C. The attributes within a class D. The number of instances each class will have
14. Which of the following is least related to the Pareto principle?
A. When it rains, it pours.
B. Birds of a feather flock together.
C. Better late than never.
15. The Pareto principle is traditionally applied during which phase of software development?
A. Requirements Analysis B. Design
C. Implementation D. Testing
16. Which of the following is the oldest approach to software development?
A. Component architecture B. Waterfall model
C. Open-source development D. Extreme programming
17. Which of the following is not a tool for designing modular systems?
A. Structure charts B. Data dictionaries
C. Class diagrams D. Sequence diagrams
18. Which of the following is a stronger form of cohesion?
A. Functional cohesion B. Logical cohesion
19. Which of the following appears to be the most functionally cohesive?
A. A module that handles all of a customers banking needs
B. A module that handles only transactions related to checking accounts
C. A module that only records deposits to checking accounts
D. A module that collects data for monthly statements
20. If a class diagram indicates a one–to-one relationship between class X and class Y, then
A. there will be only one object in the system of “type” X.
B. each object of “type” X will be associated with only one object of “type” Y.
C. there will be exactly one object of “type” X and exactly one object of “type” Y.
D. an object of “type” Y cannot occur without first constructing an object of “type” X.
21. Copyright laws were established
A. to allow authors to distribute their work while maintaining certain ownership rights.
B. to allow authors to maintain ownership of their ideas.
C. to restrict access to publications to certain groups within society.
D. to allow ideas to be traced back to their origins.
Fill-in-the-blank/Short-answer Questions
1. Identify the stage of software development in which each of the following activities is performed.
A. _____________________ Programming is conducted.
B. _____________________ Class diagrams are drawn.
C. _____________________ User needs are analyzed.
2. Requirements analysis provides a __________________ of a proposed software product whereby the
user needs, features, and services are identified and recorded in a document called a ________________ .
3. Prototyping occurs in two forms. In one, called __________________ prototyping the original
prototype is slowly enhanced to become the final product. In the other, called _______________
prototyping, the original prototype is used as an “experimental” system that is ultimately discarded.
4. Answer the following questions in terms of the structure chart below.
A. What modules directly use the services of module E?
____________
B. The services of which modules are directly used by module A?
____________
5. Based on the structure chart below, in which module does the data item w originate?
____________
6. In an object-oriented design using UML, __________ diagrams are used to represent classes and their
basic relationships, whereas _____________ diagrams are used to represent communication between
objects.
7. In each of the following, indicate whether the information would be represented within a use case
diagram, a class diagram, or a sequence diagram.
A. __________________ The methods within a class
B. __________________ The ways in which the system will interact with its environment
C. __________________ The manner in which its internal objects will interact
D. __________________ Relationships among classes
8. ____________ is a notational system for representing object-oriented designs. It includes standards for
representing _______________ diagrams that show how users interact with the proposed system as well
as ______________diagrams that show how objects within the proposed system will interact.
9. Give an example of a one–to-many relationship.
____________________________________________________________
10. In each case below indicate whether the activity relates to a structure chart or a class diagram.
A. ___________________ Identifying actions to be performed
B. ___________________ Identifying the types of objects in a system
C. ___________________ Identifying relationships between “types” of objects
D. ___________________ Identifying how activities performed by different functions relate to
one another
11. In each case below indicate whether the activity relates to a sequence diagram or a dataflow diagram.
A. ___________________ Identifying messages passed between objects
B. ___________________ Identifying how data items are combined to produce new items
C. ___________________ Identifying how tasks are performed via object interactions
D. ___________________ Identifying how information and leaves a system
12. In each case below indicate whether the phrase relates to coupling or cohesion.
A. ___________________ The interaction between modules
B. ___________________ Passing data from one module to another
C. ___________________ Ensuring that a module performs a unique task in its entirety
13. Identify two forms of inter-module coupling.
______________________
______________________
14. In each case below indicate whether the activity is a form of glass-box testing or black-box testing.
A. ___________________ Basis path testing
B. ___________________ Boundary value analysis
C. ___________________ Beta testing
15. In each case below indicate whether the activity relates to glass-box testing or black-box testing.
A. ___________________ Testing to see if the system performs in a timely manner
B. ___________________ Designing test data to ensure that each instruction is executed at least
once
C. ___________________ Testing to see if the software system meets the requirements
identified during original analysis
16. State the Pareto principle in the context of software engineering.
__________________________________________________________________________
17. In each case below indicate whether the activity is primarily top-down or bottom-up.
A. ___________________ Building software from previously constructed components
B. ___________________ Dividing a module into smaller modules to obtain greater cohesion
© 2015 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
C. ___________________ Designing a dataflow diagram by successively adding more
specificity
18. As a general rule, one should strive to ____________________ (maximize or minimize) coupling
between modules and to ____________________ (maximize or minimize) cohesion within modules.
19. Give two examples of recent advances in software engineering.
_____________________
_____________________
20. Identify two legal techniques that have been applied to protect a software developer’s ownership rights.
_____________________
_____________________
Vocabulary (Matching) Questions
The following is a list of terms from the chapter along with descriptive phrases that can be used to produce
questions (depending on the topics covered in your course) in which the students are ask to match phrases
and terms. An example would be a question of the form, “In the blank next to each phrase, write the term
from the following list that is best described by the phrase.”
Term Descriptive Phrase
metric A means of quantifying
software life cycle Develop, use, modify
waterfall model An older, rather rigid approach to software development
prototyping An approach to software development in which partial systems are
constructed
component architecture A means of constructing software from prefabricated units
design The software development phase which defines “how” the system will
be built.
structure chart A means of representing procedural dependencies
cohesion The “glue” that holds a module together
sequence diagram A diagram representing communication between objects
use case diagram A diagram representing communication between a system and its users
UML A standard notational system for representing object-oriented designs
extreme programming Develops software incrementally by means of repeated daily cycles of
informal requirements analysis, designing, implementing, and testing
global data A means of implementing implicit coupling
modularity A means of managing complexity within a large software system
structured walkthrough A means of testing a design before it is implemented
incremental model An approach to software development that first builds a simplified
version of the product and then add features in a stepwise manner
beta testing Allows potential users to experiment with preliminary versions of
software
glass-box testing Confirms that the internal structure of a software system is reliable
open-source development A somewhat renegade methodology for software development
requirements analysis The software development phase which defines “what” the system is to
do
data dictionary A central warehouse of information regarding data throughout a
system
top-down General to specific (as opposed to specific to general)
one–to-many A type of relationship between entities
implementation The software development phase that involves writing programs.
General Format Questions
1. Identify two distinctions between software engineering and other traditional fields of engineering.
2. In what sense is the software life cycle different from the life cycle of other products?
3. Explain the distinction between open-source development and beta testing.
4. Describe the data coupling represented by the following structure chart.
5. Describe the control coupling represented by the following structure chart.
6. Describe the process of a structured walkthrough.
7. In what sense is the object-oriented paradigm ideal for implementing design patterns?
8. Give an argument supporting the statement that modularity is the most important principle in software
engineering.
9. Explain the distinction between structure charts and class diagrams.
10. Explain some of the ways in which software engineering has benefited from the development of the
object-oriented paradigm.
11. Explain the role of each of the following forms of documentation: user documentation, technical
documentation, and system documentation.
12. Explain why inheritance may not be the best way of implementing generalizations among classes.
13. For the following class diagram:
Customer Account Bank
acctNo
balance
deposit
withdraw
* * * 1
Checking
checkFee
cashCheck
Savings
interestRate
accureInterest
A. What kind of relationship is noted between Customer and Account? __________
B. What kind of relationship is noted between Bank and Account? __________
C. What kind of relationship is noted between Checking and Account? __________
D. What are the instance variables of Account? __________
E. What are the instance variables of Checking? __________
F. What are the methods of Savings? __________
G. What instance variable could be added to Customer? __________