Posts

Showing posts from April, 2024

Software Engineering - Week 8

This is the final week of my Software Engineering class and I thoroughly enjoyed working on the projects I was presented with.  The five most important things I learned in the class are Selenium automated testing, Spring Boot Framework, Authentication, Stories and Epics, and React. I chose these because they have the most real-world applications and interest me. I have seen these things listed in job descriptions and knew they were used in many applications. Using Selenium to automate testing is a nice skill to have as it allows you to automate web browser interactions, making it easier to test web applications and have repeatable tests when updates are released. Spring Boot framework allows you to build web applications more quickly and with less code and is fairly simple to implement. Learning Authentication using JWT (JSON Web Tokens) is a very good skill because so many web applications use authentication. Learning about the Agile methodology and how it works with epics and sto...

Software Engineering - Week 7

Using Agile is like the title suggests, flexible and requirements can be changing. Feedback is given during the project which allows for adaptability and normally leads to an application that the stakeholders are happier with. Agile teams work in sprints, usually 2 weeks to complete a set of tasks and then teams can adjust priorities as needed. Stakeholders can see progress and give feedback while the project is underway. Using Waterfall, a project is planned in detail at the beginning and changes are much harder to implement during the process. Feedback is usually given after testing and everything has been completed. This can lead to unepected results or an application that isn't what the stakeholders envisioned. Waterfall could be good if you don't have access to stakeholders on a regular basis and/or if requirements are very defined and changes are not foreseen. Overall, Agile seems to be the method used by most development teams but there are cases where waterfall might be...

Software Engineering - Week 6

This week in Software Engineering, we learned about Service Oriented Architecture (SOA).  We branched off of our Backend for the Academic Management System with 2 branches naming them SOA Registrar and SOA Gradebook.   For the Registrar branch, we removed the entities and repositories for Assignments and Grades.  We did this because we were setting up services using RabbitMQ and Erlang so the servers could talk to each other and handle a separate portion of the System.  The Registrar Service now sends a message to the Gradebook Service asking to add/update/remove an assignment or a grade and the Gradebook Service responds with a confirmation or an exception message. For the Gradebook branch, we removed many of the methods and controllers that controlled things for users, courses, sections, and students.  The Registrar service is handling it all and then just sends a message to duplicate that info into the Gradebook's database. This project was very informat...

Software Engineering - Week 5

This week in our Software Engineering Class we worked to create a Software Requirements Specification Document for our Academic Management System.  I learned how to create UML Use Case Diagrams for our SRS document to help explain how the AMS would function in a more precise way to the Software Developers. I also learned to create use case functions for each function to list out how the functions should operate.  I also got to get more practice creating a Database ER Diagram to show the database table relationships and the info stored in each table. Overall, I enjoyed the experience of learning more about Software Engineering and look forward to learning more next week.