CSDP: About the CSDP


 

What is the CSDP?
 
The IEEE Computer Society Certified Software Development Professional (CSDP) certification is the only software development certification that has all of the components of a professional certification: 
  • Exam-based testing demonstrating mastery of a Body of Knowledge (BOK);
  • Extensive experience base in the performance of the work or profession being certified; and
  • Continuing professional education, measured and relevant to the BOK.
The CSDP Exam Specifications were developed through a job analysis process that provided an industry accepted systematic procedure for identifying/validating the performance domain of a job and the knowledge and skills that are necessary to perform the job.
 
The CSDP examination covers the following knowledge areas, with the approximate percentage of questions that are covered in the exam:

 

Knowledge Areas

CSDP Content
Weights

Introductory/
Competency Level

I. Software Requirements
11%
 

A. Software Requirements Fundamentals

 
Competency

B. Requirements Process

Competency

C. Requirements Elicitation

Competency

D. Requirements Analysis

Competency

E. Requirements Specification

Competency

F. Requirements Validation

Competency

G. Practical Considerations

Competency
II. Software Design
11%

A. Software Design Fundamentals

 
Competency

B. Key Issues in Software Design

Competency

C. Software Structure and Architecture

Competency

D. Human computer Interface Design

Competency

E. Software Design Quality Analysis and Evaluation

Competency

F. Software Design Notations

Competency

G. Software Design Strategies and Methods

Competency
III. Software Construction
9%

A. Software Construction Fundamentals

 
Competency

B. Managing Construction

Competency

C. Practical Considerations

Competency

D. Construction Tools

Competency

E. Construction Technologies

Competency

F. Product Documentation

Competency

G. Formal construction methods

 
Introductory
IV. Software Testing
11%

A. Software Testing Fundamentals

 
Competency

B. Test Levels

Competency

C. Test Techniques

Competency

D. Human Computer User Interface Testing and Eval

Competency

E. Test-Related Measures

Competency

F. Test Process

Competency
V. Software Maintenance
5%

A. Software Maintenance Fundamentals

 
Competency

B. Key Issues in Software Maintenance

Competency

C. Maintenance Process

Competency

D. Techniques for Maintenance

Competency

VI. Software Configuration Management

5%
 
A. Management of the SCM Process
 
Competency
B. Software Configuration Identification
Competency
C. Software Configuration Control
Competency
D. Software Configuration Status Accounting
Introductory
E. Software Configuration Auditing
Introductory
F. Software Release Management and Delivery
Competency
G. Software Configuration Management Tools
Introductory

VII. Software Engineering Management

8%
 

A. Initiation and Scope Definition

 
Introductory

B. Software Project Planning

 
Competency

C. Software Project Enactment

 
Competency

D. Review and Evaluation

 
Introductory

E. Closure

 
Introductory

F. Software Engineering Measurement

 
Introductory

G. Software Management Tools

 
Introductory
VIII. Software Engineering Process
7%
 

A. Process Implementation and Change

 
Introductory

B. Process Definition

Competency

C. Process Assessment

Introductory

D. Measurement

Introductory

E. Software Process Tools

Introductory
IX. Software Engineering Methods
4%
 

A. Modeling

 
Competency

B. Types of Models

Competency

C. Analysis

Competency

D. Development Methods

Competency
X. Software Quality
7%
 

A. Software Quality Fundamentals

 
Competency

B. Software Quality Management Processes

Competency

C. Software Quality Practical Considerations

Competency

XI. Software Engineering Professional Practice

5%
 

A. Professionalism

 
Competency

B. Codes of Ethics

 
Competency

C. Group Dynamics / Psychology

 
Competency

D. Communications Skills

 
Competency

E. Intellectual Property, Confidentiality, Security

 
Competency

XII. Software Engineering Economics

5%
 

A. Software Engineering Economy Fundamentals

 
Competency

B. For-profit Decision-making

Competency

C. Non For-profit Decision-making

Competency

D. Present Economy

Competency

E. Estimation, Risk, and Uncertainty

Competency

F. Multiple Attribute Decisions

Competency
XIII. Computing Foundations
5%

A. Programming Fundamentals

 
Competency

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

 
Competency

C. Problem solving techniques

 
Competency

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

 
Competency

E. Computer organization

 
Competency

F. Basic concept of a system

 
Competency

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

 
Competency

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

 
Competency

I. Operating system basics

 
Competency

J. Database Basics and Data Management

 
Competency

K. Network communication basics

 
Competency

L. Distributed and Parallel Computing

 
Competency

M. Concepts of programming languages

 
Competency

N. Debugging Tools and Techniques

 
Competency

O. Secure Coding

 
Competency
XIV. Mathematical Foundations
3%
 

A. Functions, Relations and Sets

 
Competency

B. Basic Logic (prepositional and predicate)

Competency

C. Proof Techniques (direct, contradiction, inductive)

Competency

D. Basic Counting

Competency

E. Graphs and Trees

Competency

F. Discrete Probability

Competency

G. Finite State Machines, regular expressions

Competency

H. Grammars

Competency

I. Numerical precision, accuracy, and errors

 

J. Number Theory

Competency

K. Algebraic Structures

Competency
XV. Engineering Foundations
4%
 

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

 
Competency

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

Competency

C. Measurement

Competency

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

Competency

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

Competency

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

Competency

G. Simulation, Modeling and Conceptual Prototyping

Competency

H. GQM Paradigm

Competency

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

Competency

J. Tool and platform selection

Competency

K. Root cause analysis

Competency

* "Introductory" 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" 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.

 

Coding Style Rules Coding Style Rules

Coding Style Rules for Test Takers
1.      Code is pseudocode, no specific language
2.      Loop structures end with “end” followed by structure name, e.g., “end while”
3.      “do-while” begins with “do” and ends with “while” – no “end” per se
4.      “if-then” statements have both “if” and “then”
5.      “else if” is a substitute for the “end” on the preceding “if”
6.      Array indices are designated with square brackets [], not parentheses
7.      Function parameters are designated with parentheses ()
8.      No end of line punctuation (i.e., semicolons) is used
9.      Compilation units are “procedure” and “function”. “Module” is not a compilation unit.
10.    Arrays are 1 (one) based
11.    Variable and argument declarations are Pascal style—“name: type”
12.    Data types are “integer” and “float”
13.    Arguments in a function/procedure call are separated by semicolons
14.    “=” is used to designate assignment or comparison, depending on context. This pseudocode doesn’t support C-style side effects (e.g., assignment in a comparison statement), so the test taker does not need to worry about whether = refers to assignment or comparison. It will always be clear in context.
15.    Comments are indicated with “--” double hyphen
16.    Not equals is represented by <>
17.    Logical “and” and “or” are spelled out as “and” and “or”
 
Coding Style Rules for Question Writers
1.      Indentation is 3 spaces
2.      Base indentation level of procedure/function is no indentation
3.      Keywords are not capped
4.      variable names are initial capped

The pre-2010 CSDP exam covered the following knowledge areas, with the approximate percentage of questions that are covered in the exam:
  1. Business Practices and Engineering Economics (3-4%)
  2. Software Requirements (13-15%)
  3. Software Design (22-24%)
  4. Software Construction (10-12%)
  5. Software Testing (15-17%)
  6. Software Maintenance (3-5%)
  7. Software Configuration Management (3-4%)
  8. Software Engineering Management (10-12%)
  9. Software Engineering Process (2-4%)
  10. Software Engineering Tools and Methods (2-4%)
  11. Software Quality (6-8%)

About the IEEE Computer Society

With nearly 85,000 members, the IEEE Computer Society is the world's leading organization of computing professionals. Founded in 1946, and the largest of IEEE's 38 societies, the Computer Society is dedicated to advancing the theory and application of computer and information-processing technology, and is known globally for its computing standards activities.

The Computer Society serves the information and career-development needs of today's computing researchers and practitioners with technical journals, magazines, conferences, books, conference publications, and online courses. Its Certified Software Development Professional (CSDP) program for mid-career professionals and Certified Software Development Associate (CSDA) credential for recent college graduates confirm the skill and knowledge of those working in the field. The CS Digital Library (CSDL) is an excellent research tool, containing more than 250,000 articles from 1,600 conference proceedings and to all available issues of 26 CS periodicals.