Software Engineering ePortfolio
The first artifact I have selected ia a Task Scheduler. This was originally developed in October 2021 for use in CS-320 - Software Test Automation for the use in showing the use of jUnit testing, by testing the limitations and staying within the confines of the requirements as stated and ensuring these were upheld during program execution. Each class held particular requirements for each individual attribute for the given class, and were built with the basic constructor class and the CURD functionality for each as well.
Upon selecting the proper artifacts for use in the ePortfolio, this application stood out not just for one category of enhancement, but for two, which were Software Design and Engineering as well as Database. The main reason for inclusion of this application was that already a basic structure had been built in terms of the individual classes (Contact, Appointment and Task) as well as the proper constructors and CRUD functionality. What was lacking was a means of tying these pieces together into a working application. What was required for this was a proper user interface, and since the application was originally built in Java, it made sense to retain the same language and make use of the forms available in Java to build up a graphical user-interface, which would be easy to follow and allow a wider audience for the application usage. With that, an application such as this would require a great deal of storage for all information being added by users. This made the usage of a MongoDB NoSQL database to hold the data elements a perfect addition, not only for the amount of storage capabilities, but also for the ease of querying from the specific collections and having the data manipulated by the end user.
Designed, developed and delivered professional-quality oral, written, and visual communications that are coherent, technically sound, and appropriately adapted to specific audiences and contexts:
The process of enhancing this artifact has helped to not only hone skills that I have utilized previously, but also to expand upon my current knowledge to adding new aspects for this update. This enhancement helped me to build further upon my ability to bridge a problem by utilizing not just one developed solution, but one solution housed in two separate entities, the first being the Java application, and the second the Mongo Database. This was accomplished not just by ensuring that a mere connection was made, but ensuring that each worked in their individual way to obtain the desired solution. By ensuring that the proper connections were built in the Java code was part of the solution, but also ensuring that the proper trigger effect was set in the MongoDB was made to ensure that each record added had an easy to use unique identifier (in addition to the object ID) helped to make querying the data much simpler. Adding to the usage of the database, the creation of the graphical user interface using the Java forms helped to hone my skills in front-end development, making something that can be easily accessed by a wider audience by removing a terminal text based interface to something that is more visually helpful for users to navigate the application's functionality.
The main challenges faced during this enhancement were mainly in the implementation of the database as and ensuring the user interface was as intuitive as possible. Having used MongoDB previously, I had not utilized it in a Java program (having implemented in Python previously), which has some learning curves to ensure both a connection was made to the database, but also ensuring that the queries would function as intended, pulling the results into the application as needed. Additionally, ensuring that the Java forms were built not just to be easy to understand, but also ensured that data validation was put into place, ensuring that only specific data elements could be entered, and limiting to reduce risk of data intrusions.
After having worked on the enhancement, I feel that the current iteration after the enhancements have been implemented to be a better outline not just of the knowledge I have gained through the computer science program, but also it helped visualize my ability to make adjustments as needed to any existing program and make the necessary changes as per requirements. My experience having done this in my professional life has also given me guidance in how to make it intuitive to the users, making sure that how the application functions should be simple enough for any user of any experience with only a simple learning curve at best. The enhancements have also helped in outlining my skills in developing a solution that can meet all intended requirements, and also showing my ability to ensure that code that is developed will be simple to follow for anyone who looks upon the source code, making others able to make needed adjustments and enhancements themselves with relative ease. With all of these put together, both in my computer science program and my professional life, this artifact enhancement is a combination of all aspects combined.
Original Code | Enhanced Code |
Home | Self-Assessment |
Code Review | Artifact 2 - Monitoring System |