Posts

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.

Software Engineering - Week 4

This week in my Software Engineering Class, I learned about Selenium System Testing and using the Chrome Driver to create automated tests. I wrote 5 unit tests this week using SpringBootTest and the MockMVC framework.  I learned a lot about how tests should be laid out and testing one method at a time so everything is contained and other methods don't affect each other and the tests don't affect each other. Using Selenium and the Chrome Web Driver was something new that I hadn't had experience with before and I enjoyed learning about creating automated tests. I have loved learning a lot of new things every week and look forward to learning more in the coming weeks.

Software Engineering - Week 3

This week we worked on the front end of our College Enrollment System.  We used React to create the front-end pages that dealt with the back-end API we worked on last week.  React to me has a much higher learning curve than other things I've worked to learn and understand.  I have started to understand how React Hooks work so that you can have React update the state when you change it.  That is pretty slick and I really like components that can be reused as needed which makes a lot of sense to me. Overall I feel that Web Development is the area I would like to continue in and have a career in so I have really enjoyed this class so far and look forward to continue learning.

Software Engineering - Week 2

Week 2 has been a lot of coding and teamwork with our software development assignment. The project entails making a functioning REST Backend with Spring Boot Java and JPA project that acts as a University System for enrollments, assignments, and grades. The majority of our time this week went into Assignment 2. Figuring out the RESTful backend using Spring Boot Java and JPA was a formidable yet rewarding task. Working with the team and keeping communication was a major factor in us making everything work well together as a team. Testing everything with Postman was tough and very time-consuming but it showed that everything was working properly or if we had to work out bugs, which we had many.  I learned a lot and am excited to get into React next week! A Mock object, in unit testing with JUnit, is a simulated version of a real object. It allows for controlled and predictable behavior during testing. The primary purpose of using mocks in unit testing is to isolate the code under tes...