I have to present a portfolio of code that I've written for BSU to consider for a Credit for Prior Learning request. I'm going to redo this first program of mine as this portfolio.
Target Class
The target class is CS253 Software Development in C.
Primary Points to Convey
How to Show These Elements
C/C++ Program Structure
Essentially, the structure of C programs (and really that of C++ programs) is that there are individual compilation units, *.c or *.cpp files. Each of these are compiled to an object file *.o which are linked together, with any required libraries, into a final binary.
Each of the following will be demonstrated through separating the components of the Networked Power Monitor into individual compilation units, logically organized into APIs that the "core" will use.
Build Systems
This will use GNU make
Debugging Techinques
I'm not sure what this could be except for things like conditional compilation directives, maybe some function tracing, options to build with -ggdb when building in debug and -O2 or something similar in release mode.
Secure Programming
The nature of this program uses the network. For security, to keep from "anyone" telling the monitors that the agent said there's no power, the agent will sign each transmission using EC-DSA. The curve shall P-384, the hashing algorithm shall be SHA3-384. This should provide sufficient security as the monitors will not begin a shutdown sequence unless a message can be authenticated.
The power agent will also perform a signature verification process to know that power really has been lost. This implementation for BSU will implement an interface expecting a state message from the USP software. Since this message would simply be written to shared memory, any process could write to this region with the proper data. So, it should also contain a signature.
Stretch Goal
Encryption through KDF
Process Management
Process management should be addressed with the threads that will be spawned by the program to perform things like monitoring.
Basic System Programming
This will be using a lot of system calls. I think this will be satisfied.
awareness @rfalanga
I have to present a portfolio of code that I've written for BSU to consider for a Credit for Prior Learning request. I'm going to redo this first program of mine as this portfolio.
Target Class
The target class is CS253 Software Development in C.
Primary Points to Convey
How to Show These Elements
C/C++ Program Structure
Essentially, the structure of C programs (and really that of C++ programs) is that there are individual compilation units,
*.cor*.cppfiles. Each of these are compiled to an object file*.owhich are linked together, with any required libraries, into a final binary.Each of the following will be demonstrated through separating the components of the Networked Power Monitor into individual compilation units, logically organized into APIs that the "core" will use.
Build Systems
This will use GNU make
Debugging Techinques
I'm not sure what this could be except for things like conditional compilation directives, maybe some function tracing, options to build with
-ggdbwhen building in debug and-O2or something similar in release mode.Secure Programming
The nature of this program uses the network. For security, to keep from "anyone" telling the monitors that the agent said there's no power, the agent will sign each transmission using EC-DSA. The curve shall P-384, the hashing algorithm shall be SHA3-384. This should provide sufficient security as the monitors will not begin a shutdown sequence unless a message can be authenticated.
The power agent will also perform a signature verification process to know that power really has been lost. This implementation for BSU will implement an interface expecting a state message from the USP software. Since this message would simply be written to shared memory, any process could write to this region with the proper data. So, it should also contain a signature.
Stretch Goal
Encryption through KDF
Process Management
Process management should be addressed with the threads that will be spawned by the program to perform things like monitoring.
Basic System Programming
This will be using a lot of system calls. I think this will be satisfied.
awareness @rfalanga