Software Development for the
Electrical FE Exam

by Justin Kauwale, P.E.

Introduction

Software Development accounts for approximately 4 to 6 questions on the Electrical FE exam. These questions can cover a vast range of topics from algorithms, data structures, software design methods, software implementation and software testing. This information given in the NCEES FE Reference Handbook does not cover Software Development in depth. There is brief mention of the typical sub-topics within each main topic. For example, the NCEES FE Reference Handbook does mention Algorithm Tree Traversal methods but it does not give detailed information. This seems to imply that the questions on these topics will not be detailed and will mainly skim over the main concepts behind each of the subtopics mentioned in the handbook. This section will give you that knowledge, such that you can use the vague information in the handbook to answer most of the problems on this topic.



2.0 ALGORITHMS

An algorithm is the way a software program processes and travels through data. There are different types of algorithms that you should know for the FE Electrical exam. The first group of algorithms is the sorting algorithms that sort a collection of data into a specific order.

Bubble Sort

In a bubble sort, adjacent values are compared and the larger value is swapped to the right after each comparison. This will cause the largest value to bubble up at the end of the array. This process is then repeated iteratively, until the entire array has been sorted. This sorting algorithm will be explained further with this example array. Each subsequent algorithm will also use this same array.



This section is continued in more detail in the technical study guide . Also included are many more practice exam problems.

3.0 DATA STRUCTURES

Data structures describe the way software organizes information. There are simple and complex methods of organizing data. The way the data is organized will play a role in how the software retrieves & writes data and how quickly these processes are done. The simplest ways of organizing data are called primitive data structures. These structures include, integers, characters, 1/0, true/false, etc. The more complex data structures are called non-primitive data structures. These structures include, arrays, lists (simple, linked), tree, graph, map, set, queue, etc.



This section is continued in more detail in the technical study guide . Also included are many more practice exam problems.

4.0 SOFTWARE DESIGN METHODS

The software design methods are mentioned in the NCEES FE Reference Handbook very briefly. You should have some additional background knowledge on these design methods, just in case there is a question on this material on the actual exam. It is highly unlikely that the question will be very detailed, because of the limited information in the handbook. The question would have to be something that can be easily remembered if you were to take a software design class in college. This limits the question to the main concepts behind the typical design methods, which are covered in this section.



This section is continued in more detail in the technical study guide . Also included are many more practice exam problems.

5.0 SOFTWARE IMPLEMENTATION

Software implementation is the actual code writing. It is difficult to test this without specifying what type of programming language you should know for the exam. The FE Electrical exam does not specify any programming language, so there should be very little questions on this subtopic. It is more likely that the other sub-topics like algorithms, design methods and software testing will be on the exam.



This section is continued in more detail in the technical study guide . Also included are many more practice exam problems.

6.0 SOFTWARE TESTING

The following testing methods can be used to test the complexity and thus speed of the software.

McCabe’s Cyclomatic complexity is governed by the below equation, where you find the number of nodes, edges and paths of a code section. It measures the complexity of the code, it also shows all the paths that need to be tested in the code. Basically, whenever there is an “IF statement”, a certain number of paths can be created in the code. If there are two paths then the



This section is continued in more detail in the technical study guide . Also included are many more practice exam problems.

7.0 Practice Problems

7.1 PRACTICE PROBLEM 1 –



7.2 PRACTICE PROBLEM 2 –



7.3 PRACTICE PROBLEM 3 -



Practice Problems 4 through 6 and all solutions included in the technical study guide, along with many more practice exam problems.

TOP -->