CSDA: Sample Test Questions

The following questions were developed to offer examples of the style and content of the type of questions that will appear in the exam for the Certified Software Development Associate.

They are classified as (I) or (C) questions as follows:

  • Introductory (I) level is intended to represent someone who has basic capability to perform in a knowledge area, but needs help, supervision, and review to do so -- like an apprentice.
  • Competency (C) level is expected of a typical, experienced, professional -- they work largely on their own.  One would certainly expect someone at the Competency level to be able to answer more specific, detailed, and difficult questions.


I. Software Requirements

A. Software Requirements Fundamentals (I)

1. For which of the following practices does requirements engineering provide appropriate mechanisms and tools?

a. Analyzing need
b. Unambiguous specification of the solution
c. Validating the specification
d. All of the above




B. Requirements Process (I)

1. Are requirements validation and analysis distinct requirements activities?

a. Yes, because requirements validation needs a complete draft of the requirements document while the requirements analysis works with incomplete requirements.
b. Yes, because requirements validation works with incomplete requirements while the requirements analysis needs a complete draft of the requirements document.
c. Yes, because validation can only be done with testing while analysis can be done with prototyping.
d. No, they are not distinct activities as they both work on requirements and aid in their elicitation.



C. Requirements Elicitation (I)

1. Which of the following is a common method of requirements elicitation?

a. Transactional Analysis
b. Risk Assessment
c. Implementing the System
d. Observation



D. Requirements Analysis (C)


E. Requirements Specification (I)


F. Requirements Validation (C)


G. Practical Considerations (I)


II. Software Design


A. Software Design Fundamentals (C)

1. Suppose a team is developing a web-based ticket distribution system. Which of the following decisions was most likely made during system design?

a. The ticket distributor will include a user interface subsystem.
b. The ticket distributor will follow web-accessibility standards.
c. The ticket distributor will provide the traveler with on-line help.
d. The ticket distributor requirements have been met and satisfy customer needs.



B. Key Issues in Software Design (C)


C. Software Structure and Architecture (C)

1. In designing an object-oriented class hierarchy to represent binary expressions, which structural pattern and behavioral pattern could be used most effectively?

a. Composite and Interpreter
b. Decorator and Command
c. Flyweight and Strategy
d. Proxy and Visitor



2. To support the reuse of component systems, which of the following mechanisms is often used to insulate client code from the specific details of the components by exporting only the portion of a component’s interfaces that are needed by the client system?

a. Abstract Class
b. Façade
c. Parameterized Classes
d. Publisher-Subscriber



D. Human Computer Interface Design (C) 


E. Software Design Quality Analysis and Evaluation (C)


F. Software Design Notations (C)


G. Software Design Strategies and Methods (C)

1. Using a structural model to represent an architectural design has which of the following characteristics?

a. A structural model allows identifying repeatable architectural design frameworks that are encountered in similar applications
b. A structural model addresses behavioral aspects which indicate how the system changes as a function of external events
c. A structural model represents the architecture as an organized collection of program modules and components
d. A structural model focuses on the business or technical processes that a system must accommodate




III. Software Construction 


IV. Software Testing


A. Software Testing Fundamentals (I)

1. An incorrect step, process, or data definition in a computer program is a

a. Failure
b. Mistake
c. Fault
d. Consequence



B. Test Levels (C)


C. Test Techniques (C)

1. What is the Cyclomatic Complexity of the following flow graph for a program?

a. 3
b. 4
c. 9
d. 11




2. Equivalence Partitioning is a testing technique used in the following

a. White box testing
b. Black box testing
c. Stress testing
d. Usability testing



D. Human Computer User Interface Testing and Evaluation (C)


E. Test-Related Measures (C)


F. Test Process (C)


V. Software Maintenance


A. Software Maintenance Fundamentals (I)

1. Why are requirements errors generally among the most expensive errors to repair?

a. Because repairing requirements errors is likely to lead to extensive system redesign.
b. Because repairing requirements errors forces adaptations to the system to cope with environmental changes.
c. Because the need to repair requirements errors usually comes about due to organizational or business changes.
d. Because repairing requirements errors involves keeping the functionality of the system unchanged while improving the internal structure and overall performance.



2. Lehman's laws regarding program evolution dynamics describe the principles behind system change. Lehman's Laws of Large Program Evolution and Organizational Stability suggest that program evolution for large systems is largely independent of management decisions. This has the following consequence:

a. Structural factors have little effect on the evolution process for large systems.
b. Making major changes, rather than smaller changes, is a reasonable strategy for large systems.
c. Large software development teams are not overly affected by the overhead of communication.
d. Changes to resources or staffing have largely imperceptible effects on the long-term evolution of large systems.



B. Key Issues in Software Maintenace (I)


C. Maintenance Process (C)


D. Techniques for Maintenance (C)



VI. Software Configuration Management


A. Management of the SCM Process (I)

1. Identification and selection of a version control tool is a part of which software configuration management activity?

a. Release Management and Delivery
b. Management and Planning
c. Configuration Auditing
d. Configuration Control



B. Software Configuration Identification (C)

1. Which of the following best describes a software library?

a. baseline documentation and code
b. collection of software configuration items
c. controlled collection of software and related documentation designed to aid in software development, use, and maintenance
d. all minutes of a configuration control board (CCB) and related audits



C. Software Configuration Control (C)

1. A configuration control board (CCB) handles which of the following?

a. tool selection
b. software change requests
c. software configuration audits
d. software release documentation



D. Software Configuration Status Accounting (C)


E. Software Configuration Auditing (I)


F. Software Release Management and Delivery (I)

1. In order to perform daily integration of the software system, which of the following activity must be performed?

a. daily configuration board meeting
b. daily change requests processing
c. daily build
d. daily auditing




VII. Software Engineering Management


A. Initiation and Scope Definition (I)

B. Software Project Planning (I)

1. Identifying and managing risks are an important part of effective management of the software engineering effort. Risks are documented:

a. In a concise statement of what went wrong and when they occurred in the project lifecycle
b. As clearly defined tasks in the project schedule
c. In a concise statement that includes the context, conditions, and consequences of risk occurrence
d. As clearly defined line-items in the project budget



C. Software Project Enactment (I)


D. Review and Evaluation (I)




E. Closure (I)


F. Software Engineering Measurement (I) 


G. Software Management Tools (I)



VIII. Software Engineering Process


A. Process Implementation and Change (I)

1. The success rate for software projects is very low. Although viewed form different perspectives, studies in the 1990s by Caper Jones, The Standish Group and the Defense Science Board conclude that the success rate for software projects is very low and that the high level of software scrap and rework is mostly indicative of:

a. Lack of software development skills
b. Immature process
c. Lack of adequate schedule
d. Lack of adequate budget




B. Process Definition (C)


C. Process Assessment (I)


D. Measurement (I)


E. Software Process Tools (I)


IX. Software Engineering Methods


A. Modeling (C)

1. Systems that are built from a functional viewpoint would typically use which of the following methods:

a. structural methods
b. object-oriented methods
c. constructive methods
d. data-oriented methods



B. Types of Models (C)


C. Analysis (C)

1. The formal methods technique of “refinement”:

a. refers to tools that structurally format a formal specification
b. is an automatic theorem-proving technique.
c. transforms a formal specification into a design or implementation component.
d. checks the semantics of a formal specification




E. Development Methods (C)



X. Software Quality


A. Software Quality Fundamentals (I)


B. Software Quality Management Processes (C)

1. Which of the following represents the most complete process for Fagan Inspection

a. Planning, overview, preparation, inspection, rework, brain storming, follow up
b. Planning, overview, brain storming, preparation, inspection, rework, follow up
c. Planning, preparation, inspection, rework
d. Planning, overview, preparation, inspection, rework, follow up



C. Software Quality Practical Considerations (C)


XI. Software Engineering Economics


A. Software Engineering Economy Fundamentals (C)

1. If $15,000 is invested at 5% compounded annually, what is the value of the investment after 6 years?

a. 15000 x 6 x 0.05
b. 15000 x 1.056
c. 15000 + 6 x (0.05x15000)
d. (0.05 + 15000)6



B. For-profit Decision-making (C)

1. A company is evaluating a proposal for developing a new internet product. The company has established the Minimum Attractive Rate of Return (MARR) for such products. Suppose the Internal Rate of Return (IRR) for the new proposal has been determined. Which of the following conditions would most likely cause rejection of the proposal?

c. 90% of IRR > MARR



C. Non For-pofit Decision-making (C)


D. Present Economy (C)


E. Estimation, Risk, and Uncertainty (C)


F. Multiple Attribute Decisions (C)



XII. Software Engineering Professional Practice


A. Professionalism


B. Codes of Ethics (C)

1. A software developer who adheres to the Software Engineering Code of Ethics and Professional Practices must:

a. Always practice according to IEEE standards
b. Assist colleagues in professional development
c. Be a member of the IEEE Computer Society
d. Avoid all issues related to finance and profitability



2. A software engineer is employed by the company that designs and manufactures voting machines. She is employed to develop an archival system for retaining voting information and results. Which of the following actions would most likely be a violation of the Software Engineering Code of Ethics and Professional Practice?

a. She failed to keep adequate documentation of her work on the project.
b. She has not previously worked on a voting machine project.
c. She has registered as a voter in the state in which the machines will be used.
d. She discovered significant number defects in her design for the archival system.



C. Group Dynamics / Psychology (C)

1. In forming a software team, it is decided to organize the team so that team members can work on pieces of the problem with little communication between each other. Which organizational paradigm is being used?

a. Closed Paradigm
b. Open Paradigm
c. Random Paradigm
d. Synchronous Paradigm



D. Communication Skills


E. Intellectual Property, Confidentiality, Security



XIII. Computing Foundations


A. Programming Fundamentals (C)

1. Consider a recursive function "recurr" that calculates and returns a value based on input n, a positive integer.

function recurr(n)
// purpose: ?
// input: a positive integer n
// output: a number x equal to the value of recurr(n)
          x := 1
          if n > 10 , then     x := 2*recurr(n-10)
          if n < 10, then     x := x*3
          return x

What is the value of recurr(55) ?

a. 165
b. 96
c. 1
d. 48



B. Algorithms, Data Structures/Representation (static & dynamic), Complexity (C)

1. The following pseudocode defines a sorting algorithm SORT for sorting numbers:

algorithm SORT(A)
// purpose: sorts the array A in ascending order
//input: an array A[0,...,n-1] of orderable elements
//output: an array A[0,...,n-1] sorted in ascending order.
for i = 0 to n-2 do
          min := i
          for j = i+1 to n-1 do
                    if A[j] < A[min], then min := j
          swap A[i] and A[min]

Which of the following statements concerning SORT are true:

a. The number of comparisons is given by sum
b. The number of comparisons is given by n(n+1)/4.
c. The number of comparisons is O(nlogn).
d. The number of swaps is n + 2.



2. The BNF grammar for a language is given as:
::= |
::= 1|2|3|4|5|6|7|8|9|0
::= $ | ! | # | @

Which of the following statements is true about the above grammar?

a. The operators are left-associative.
b. The $ operator has higher precedence than the @ operator
c. The operators are right-associative
d. The @ operator has higher precedence than the # operator



C. Problem Solving Techniques(C)


D. Abstraction -- use and support for (encapsulation, hierarchy, and so on) (C)


E. Computer Organization (C)


F. Basic concept of a system (C)


G. Basic user human factors (I/O, error messages, robustness) (C)


H. Basic developer human factors (comments, structure, readability) (C)


I. Operating system basics (C)


J. Database Basics and Data Management (C)


K. Network communication basics (C)


L. Distributed and Parallel Computing (C)


M. Concepts of programming languages (C)

1. "Report" class inherits from "Document" class. Document class defines a print() method. Assume polymorphic behavior. Which of the following scenarios would not result in the client calling Document.print() on a Report object called TermReport?

a. Report.print() does not refer to Document.print()
b. Report class does not define print() method.
c. Report.print() calls Document.print() and does nothing else
d. Client casts the TermReport object to Document class before calling print.



N. Debugging Tools and Techniques (C)


O. Secure Coding (C)


XIV. Mathematical Foundations


A. Functions, Relations and Sets (C)

B. Basic Logic (prepositional and predicate) (C)

C. Proof Techniques (direct, contradiction, inductive) (C)

D. Basic Counting (C)

E. Graphs and Trees C)

F. Discrete Probability (C)

G. Finite State Machines, regular expressions (C)

H. Grammars (C)

I. Numerical precision, accuracy, and errors (C)

J. Number Theory (C)

K. Algebraic Structures (C)


XV. Engineering Foundations


A. Empirical methods and experimental techniques (such as computer-related measuring techniques for CPU and memory usage) (C)


B. Statistical analysis (including simple hypothesis testing, estimating, regression, and correlation) (C)

1. A software engineer is asked to analyze the relationship between the number of lines of source code (LOC) produced for a set of projects versus the effort (in Hours) required to produce the code. He is using linear regression to compare LOC and effort in Hours. He submits a report to management showing that the set of data analyzed has a correlation coefficient of r = 0.05. What can one conclude?

a. LOC and effort are not linearly correlated.
b. There is a direct linear correlation between LOC and effort.
c. The correlation between LOC and effort is nonlinear.
d. Conclusions depend on the number of data elements in the set analyzed.



C. Measurement (I)


D. Systems development (security, safety, performance, effects of scaling, feature interaction, and so on) (I)


E. Engineering design (problem forumulation, alternative solutions, feasibility, and so on) (C)


F. Theory of measurement (for example, criteria for valid measurement) (C)

1. A software engineer is measuring the quality of a software system. She is concerned with the “reliability” and the “validity” of her measurements. Which of the following is true?

a. Reliability refers to the extent to which the measurement represents the actual quality of the system and validity refers to the consistency of her quality measurements
b. Reliability refers to the consistency of her quality measurements and validity refers to the extent to which the measurement represents the actual quality of the system.
c. Reliability refers to the accuracy of her quality measurements and validity refers to the extent to which the measurement follows a quality standard.
d. Reliability refers to the concurrency of her quality measurements and validity refers to the extent to which the measurements are consistent with established norms.



G. Simulation, Modeling, and Conceptual Prototyping (C)


H. GQM Paradigm (I)


I. Standards (identify, evaluate, select, adapt) (I)


J. Tool and platform selection (I)


K. Root cause analysis (C)