Posts

CST 438 - Week 8

This was our last week in CST 438 - Software Engineering. Reflection For this journal we were asked to list the five most important things we learned from this class. Unit Tests:  As I have mentioned before, we have had to write unit tests before in a previous class. However, this class didn't explain why adding unit tests is important, so at the time it simply felt like another assignment. Learning why unit tests are important, to help to catch bugs or breaks in code, has changed how I look at assignments for tests and has motivated me to start adding tests in my personal projects. AGILE:  With it being widely used in the industry I had heard of AGILE before, but I didn't know much about it. Learning about AGILE has helped me understand better how the industry operates, and it has helped prepare me for it. Waterfall:  Similar to AGILE, I knew that teams may choose to document a project or piece of software before starting to work on it. The main example I was familiar wi...

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 ...