Tuesday, May 1, 2018

CST 499 Week 1

CST 499 Week 1

This weeks article was in regards to holding successful team meetings. Successful team meetings have 3 parts to them. This is the planning phase, the actual meeting phase, and the post meeting phase. During the planning phase, you should layout who should be present for a meeting and the goals outlined for the meeting. Also evaluate whether a meeting is even necessary. Sometimes a goal can be achieved by a simple string of emails. As a team leader, you want to make sure everyone of importance can attend the set meeting; otherwise, it may be wiser to postpone the meeting to allow for everyone to contribute and achieve the goal. You should provide documentation before the meeting to allow the people attending to review and form ideas ahead of time. More can come from the meeting when the people attending have time to think about the agenda. During the meeting, the team leader should set a positive tone and keep on track with the agenda. Of course, the documents distributed before the meeting should be used during the meeting. You do not want to set a precedence of people feeling pre-distributed work is unimportant. As team leader you also want to make sure everyone participates in the meeting. Finally, you want to create an action plan for post meeting follow up. After the meeting, meeting minutes and the action plan should be published within 24 hours. It is important to make good on the action plan and follow up with everyone at the established time on their current status on the action plan. Finally a debrief of the meeting is important where everyone is allowed to discuss what went well and what they would change about the meeting. Using these meeting principles can help a team leader achieve the goals they strive for within their team. I hope to be a team lead in software development and using these principles will help me when the time arises.

Saturday, April 21, 2018

CST 438 Week 8

CST 438 Week 8

This course was very informative as to the design process of larger scale projects as a software engineer. The agile and waterfall processes were explored. The course emphasized the importance of communication and quality of product throughout the development cycle. It was discovered that there are many design patterns utilized by software engineers and I feel that I have just touched the surface of this. Implementing design patterns is a skill that only gets better with more practice. We were also able to explore the importance of continuous testing throughout the design process. A good piece of code has high cohesion with low coupling. Also as has been drilled in me throughout my studies, detailed commenting is essential to be a successful software engineer and part of a larger team. I enjoyed working with the team on this project.

Tuesday, April 17, 2018

CST 438 Week 7

CST 438 Week 7

This week we further explored the various design patterns that a software engineer can implement. There are many different ways to tackle your problem and it is apparent that practice is the only way to get better at implementing design patterns to be a successful programmer. These patterns help to simply the code, DRY the code (Don't repeat yourself), follow SOLID design principle, and help to make the code extensible and reusable. 

I looked at our project and decided to implement the Filter Pattern aka the Criteria Pattern. This was a perfect use case for filtering our movies to be able to choose from the best movie and can easily be implemented should the code be expanded on. A Filter pattern is a design pattern that enables developers to filter a set of objects using different criteria and chaining them in a decoupled way through logical operations. This design pattern falls under a structural pattern.

Tuesday, April 10, 2018

CST 438 Week 6

CST 438 Week 6

This week we learned about the various design patterns and principles. It is good to be familiar with design patterns as they help developers learn software design easier and faster. Design patterns can be categorized as Creational, Behavioral, and Structural. Creational patterns allow for creating objects while hiding the creation logic. This gives the code more flexibility. Behavioral patterns are concerned with communication between objects. Structural patterns involve inheritence to create intefaces and define ways to compose objects to obtain new functionalities.

As for our project, this week I was able to get movies.html? to sink with the appropriate movieId
along with pictures for each movie. I also created a method to automatically move a movie to nowPlaying when it is passed it's release date. 

Tuesday, April 3, 2018

CST 438 Week 5

CST 438 Week 5

This week we learned about Gantt charts. I have studied Gantt charts before but this was a good refresher on the topic. We also learned about earned value and velocity for measing progress in our project through Agile development. We also applied the test-driven development process in our projects. We had to create test cases in JUnit to test our methods. The ability to understand github and branching within github has been essential to our development process. Our team was able to get a prototype website up for our Moviehouse website. The initial site can access our in memory database. We have built our website with Java Springboot framework while utilizing Thymeleaf for web development. This project has been challenging so far but I am grateful that we chose to do the project in a way that we are unfamiliar. It has been good to put another form of web development in my belt.

Tuesday, March 27, 2018

CST 438 Week 4

CST 438 Week 4

This week we learned about the importance of gathering and documenting requirements during the development cycle. We learned to use class responsibility collaboration as a design tool for creating class diagrams. We were also able to learn and create UML diagrams for our project. The UML diagrams utilized were use case, class, sequence, and deployment diagrams. All of these diagrams are useful in creating a blueprint for how to code and design your project.

I mainly worked on the design class and deployment diagrams:



Wednesday, March 21, 2018

CST 438 Week 3

CST 438 Week 3

This week we learned about the differences of white box and black box testing. White box testing takes into account the internal mechanism of a system. Black box testing has no visibility to the code and the test cases are written based on input and output functionality. Although black box testing is not controlled, meaning it only finds symptoms of problems, it is still necessary to find different types of faults that white box testing may miss.

During the assignment, I had trouble with question #10 which asked to develop test cases for different scenarios. I felt the text did not provide adequate instruction for me to efficiently figure out this last problem. I hope to get good feedback from the professor as to how to go about this problem.

This week we were able to get a simple hello world program written in the language and framework we will be using for our group project. Our next step is to build a database to utilize for the movie house website that we will be developing for.