CS-499 ePortfolio
Introduction
Hello my name is Brett Soden, and I started attending SNHU’s computer science two years ago. This gitHub pages account is meant to provide an electronic portfolio from which I finish my final project for CS-499 and compelete my Bachelor’s degree in computer science.
Education Review
Compeleting my coursework for this class has led me to appreciate the importance of reviewing
and polishing one’s work in a professional manner. This review process can often include
removing and rewriting unnecessarily complicated code, adding comments, and increasing a program’s
capabilities. During the course of this class, I have enhanced my artifacts through the addition
of testing modules for secure coding, new functions for database CRUD funcitonality, and increased
complexity in list search function for an appointment scheduler.
Collaborating in a team environment has also allowed me to gain an appreciation for the ability to have a new pair of eyes review my work. Often I can get too close to a project, and lose the ability to look at my work objectively, but having another reviewer can reveal previously unseen mistakes and advice for possible improvements. Additionally the ability to communicate with stakeholders and and discover what they want in a project, has been a focus of my work in this class and has reinforced my belief that the most important part of the software development lifecycle is when the requirements for the project are being decided on during discussion with stakeholder, programmers, project leads, and end users.
Artifacts
The artifacts presented for the portfolio are introductions to my work for software design and engineering, algorithms and data structures, and databases. Through the course of the class, I have improved my artifacts software, expanded their complexity, and added comments to make their code easier to read.
Code Review
Enhancement One: Software Design and Engineering
The artifact for the software design and engineering category is my final project from CS-320 that I completed on April 18, 2021. It is a medical application that is used to schedule appointments, collect contact information, and provide a list of tasks to be completed. The goal of this class was to complete an application that automated the process of collecting information and provided module testing in the form of JUnit tests that made sure the information entered was correct and did not result in an error like buffer overflow.
This item was selected because it is a good example of testing, data collection, and software application, all in one. The junit tests, private helper methods, appropriate access modifiers and limits on parameters are components of the artifact that showcase my ability to develop a syntactically accurate, logical, and efficient application. The artifact is improved by expanding the scope of the junit tests and search modules.
In the original project, JUnit tests focused on the assert true method that a variable was
within its projected parameters. Twice as many JUnit tests were added that provided
an assert false method which tested for data that was outside the scope of my earlier tests.
New variables were also added like the first and last names to attach to the list which kept track of
appointment for my medical app. This list was originally only designed to look up a unique
identification by searching through the list, but I added several more search methods which applied
to all the other variables listed.
For this artifact, most of the course objectives were met. The syntax of my project was improved and expanded in its scope. I do not currently have any further updates to my outcome-coverage plans.
When enhancing this project I learned to stay within the bounds of the project and not to become too ambitions. The areas of my project that I focused on seemed like they were common sense improvements and extensions. It also helped that I hadn’t looked at my project for some months and could look at it with fresh eyes. The only challenges that I faced were attempting to get tests to function properly and test the correct data.
Repository Link
Enhancement Two: Algorithms and Data Structures
The artifact used for the algorithms and data structure category is a project from CS-405 that was completed on August 8th, 2021. It is a test module that was designed to search a collection of entries in a data structure for functionality and exploitable weaknesses.
This artifact was selected, because it is an excellent example of secure coding practices being used to protect data structures and algorithms. One of the major weaknesses of any publicly available service application is the exploitability of its interface. A common attack made on these applications is a buffer overflow attack that allows a malicious hacker to overflow an input’s parameters for a denial of service attack or attempt to access the application’s data.
In the original project, mostly positive assertions were included for the tests because that was what was required for completion. For this artifact however, the amount and variety of tests were increased that applied in the testing module. Most of the tests that were included in the pre-enhancement artifact were positive asserts that verified something was true about a sample collection of entries like its max size is greater than ten. For this enhancement, more tests were introduced that tested a negative or in other words verified that a given assertions was false.
The course objectives were completed for enhancing this artifact. I improved the complexity and number of tests that were used to ensure the collection’s data structures and algorithm parameters were properly protected. I do not currently have any updates on my outcome-coverage plans.
When I was enhancing my artifact, I learned to appreciate adding to a project that I worked on weeks ago.
When I completed the activity that this artifact was based on, I only did what was necessary to complete
the assignment and get a satisfactory grade but being able to return to my previous work and improve it
helpedme to appreciate the original purpose and scope of CS-405. I also struggled with trying to remember
the nuances of the assignment it was based off even though I only completed it a month ago.
Repository Link
Enhancement Three: Databases
The artifact used for the databases category is a project from CS-340 that was completed on June 6th, 2021. It is a python file that was designed to interact with pymongo to work as the back end structure of an interactive database for animal rescue centers. The pre-enhancement artifact contains basic CRUD functionality while the post-enhancement artifact contains more advanced SQL functions.
This project was selected as my third artifact because it is an excellent example of how databases are constructed at the back end. The information contained within these databases is searched and modified by commonly used languages like python. The inclusion of create, read, update, and delete SQL functionality along with additional improvements like count, insert multiple, update multiple, and delete multiple commands were significant refinements made to my artifact in the enhancement phase. These enhancements showcase the ability to expand upon and update SQL and python data structure code.
I feel like I completed all the course objectives that I was meant to complete for this milestone.
I improved the complexity of my artifact and updated its functionality to include count, delete multiple,
insert multiple, and update multiple SQL commands. I do not currently have any updates to my outcome
coverage plans.
When I was enhancing my project, I learned to appreciate both basic and advanced SQL commands especially when it came to CRUD or create, read, update, and delete. Just including those four SQL functions in my python code allowed me to create a functional database for animal rescues in my original project. After updating my code, I learned just how much a few changes can influence the final design of my project for the better.