Week 8 – CST438 Software Engineering

List the 5 most important things that you learned in the course, and why you chose them.

This course provided us with a comprehensive list of modern tools and practices for software engineering. We covered topics ranging from development methods to cloud deployment. The five most important things I learned in this course include Agile development, Plan and Document development, using GitHub for version control, using Spring and React along with Selenium for writing software, and AWS deployment.

Learning how to apply Agile project development along with Behavior-Driven Development and Test-Driven Development gave me a deeper understanding of how to design software with the user in mind and ensure proper functionality through early testing. BDD helps ensure that the final product meets the expectations of stakeholders and TDD helps build confidence in the project by writing tests first. These practices encourage maintainability and reduce the number of bugs over the life of the software.

Although we mainly focused on the Agile method, the last assignment about Plan and Document project development helped me understand how it differs from Agile. It is important that we are familiar with both methodologies since we are likely to work using one or the other or a mix of both in our software engineering careers.

Using GitHub for version control on group assignments was a great learning experience. I became more familiar with using git commands like clone, commit, branch, checkout, merge, push, and pull. As software engineers, being familiar with Git and GitHub is essential especially for those of us looking to work remotely.

Using Spring to develop a REST service taught me about URL conventions using methods GET, POST, PUT, and DELETE. Writing a React frontend exposed us to state variables and the proper way to update them as well as how to implement a return statement of a React component. Also, using JUnit for unit testing and Selenium for system testing gave us a greater understanding of not only how but why it is important to test your code thoroughly.

Lastly, the final lab to deploy our group project in the cloud using Amazon AWS was another great learning experience. Seeing our group project application hosted and running in a production environment exposed us to the connection of software development with operations and deployment. This lab showed us basic AWS skills which are highly valued for cloud computing jobs in the software engineering industry.

I thoroughly enjoyed this class, and I plan to continue building on the foundation laid by all the topics we covered.

Comments

Popular posts from this blog