Posts

CST 438 - Week 7

Image
This was our seventh week in CST 438 - Software Engineering. Reflection Last week we finished the group project for the class. As one of our assignments this week we temporarily set up our project on Amazon Web Services (AWS) and briefly tested it before removing everything from AWS. While AWS is clearly a very powerful tool, it also seems complicated and difficult to learn. While it was easy to get our project running locally, and other web services like Render I have used in the past have been straighforward, AWS required several steps and individual services to be able to run our project. Although most of the services we made were free, some were paid. I was surprised by how expensive the AWS services would have been each month if I had kept them running. This week we explored the Plan and Document, also called Waterfall, process. I described some of it in the next section, but basically the Waterfall process seeks to describe all of a project's requirements and time estimates b...

CST 438 - Week 6

 This was our sixth week in CST 438 - Software Engineering. Reflection Last week we coded the front end for our group project, making the web services fully functional (at least when being ran locally). This week we added system tests to portions of the website. Instead of testing individual methods with like unit tests, the system tests we wrote test that the services that make up the website work correctly when running. I wrote a system test that logged in as an instructor, created an assignment, and graded said assignment. The code reveiw for my code went well, with only minor changes being suggested.   We also read about   CaaS, which a wrote a little about below.  SAG Ch. 25 CaaS stands for Compute as a Service , and involves either buying or renting the computing power to run programs.   Overtime an organization may experience an increase in the following metrics: Number of different applications to be managed Number of copies of an application that needs...

CST438 - Week 5

 This was our fifth week in CST438 - Software Engineering Reflection Last week we set up the backend for our group project, in the form of a RESTful API. This week we are setting up the front end of our project using React. My part was the instructor's assignment page, which allows instructors to view assignments for a section, and create, edit, or delete assignments. Overall, this week's assignment went much more smoothly than last week's assignment. This is largely because we didn't have to write any tests this week, we'll be doing that next week. The overall length of code for this assignment was also much shorter than last week's assignment, so that also helped. This week we read about larger tests. I wrote down some of the main ideas below. As I believe I've mentioned before, my experience with tests is limited to unit tests and the integrated tests from a previous lab in this course. So it was interesting to read about larger tests, why they are done, ...

CST 438 - Week 4

 This was our fourth week in CST 438 - Software Engineering. Reflection Last week we set up a GitHub organization, along with some repositories and a project, for our multi-week group project for this course. We also planned who would do each task for the first two weeks, and our gave our estimates for how large and time consuming each task would be. This week we started working on the first set of tasks, which all focus on the API for the backend of the service. In the lecture material for the prooject it was mentioned that writing unit tests would take up more time than the code itself. This ended up being true, as most of my time was spent writing tests.   As part of this reflection, we were given the prompt "What is the most interesting thing you have learned in your reading of Software Engineering at Google ?" For me I think the most interesting thing would be its coverage on tests, which I talked about in last week's post . The second most interesting thing that SAG...

CST 438 - Week 3

This was our third week in CST 438 - Software Engineering. Reflection This week we covered software testing (such as unit tests). I have had some limited experience with unit tests in previous classes, but not integration or E2E tests. Those classes also did not explain the importance of testing. It seemed like an extra, arduous step that I sometimes had to take with some coding projects. The reading for this week, both of which I summarized some of the main ideas below, did a good job at explaining why software developers write tests and how to write good tests. During the reading, I found myself thinking about how I could add tests to my personal projects to help improve them. This week we are setting up a group project on GitHub that will last for mutliple weeks. Currently the project is only going to consist of three empty repositories, but already I am thinking about how I will write tests for whatever my portions of the project end up being.   This week we also covered the ba...

CST 438 - Week 2

Image
This was our second week in CST 438 - Software Engineering. Relfection This week we covered the basics of React, which is a Javascript library (using Node.js) that is used to control the information displayed by webpages. It is made up of functions that return HTML elements to the browser, and it is known for having fast performance because it only updates the DOM object with the delta changes, instead of updating the entire thing. In the lab for this week, we built a basic React service that serves as a frontend application for the backend controller that we built during last week's labs. My first impressions of React are that it is a powerful tool to create web services that only take a small amount of code to create. If I were to implement the same service in Express (also using Node.js), which I am more familiar with, I am certain that it would have taken more code to create. That being said, the syntax for React was a little hard to wrap my head around. It requried the use of ...

CST 438 Week 1

This was our first week in CST 438 - Software Engineering. Reflection In our first lab for the week, we covered RESTful API, Spring Server, and Java Persistence Architecture (JPA). Although I had heard about RESTful API in the past, I had never used it up until this lab. Although some of the implementation was rather complex, the concepts of the API themselves seemed straightforward, as I was already familiar with how HTTP requests work from another class. I had also briefly learned about JPA in another class. I remembered JPA being complicated and difficult to learn in that class, and it continued to do so in this lab. Although I do feel like I have a better grasp on the architecture after the first lab, I think I will have to practice more to feel comfortable with it. We used Spring Server for both labs one and two. Similar to the  other two APIs/tools, the usage of Spring was complicated, although some of the setup was simplified thanks to this tool . In our second lab we covere...