CST 438 - Module 8
Week 8,
For the last module of the Software Engineering course, we reviewed the course material we learned from, and there was a lot of information. However, I'll save you some time and talk about 5 of the most important things I learned.
One important concept was the Plan and Document (PD) process in software engineering. A lot of thought has to go into designing a software project, and there are different ways to do it. The PD process takes a lot of planning in the beginning before any designing is implemented and is useful for large scale projects.
The Agile process, however, is designed iteratively and the customer would communicate what they want for the whole process and is useful for projects that are not quite as large. This is what we got more experience of in this course, and I've learned it is really useful for team velocity and the story points help communicate what a customer is looking for in the software being built.
Another important concept is the Service Oriented Architecture. This architecture implies that each service of a system has its own database and runs in its own server. Objects within a service would be highly cohesive, however there is loose coupling across services. This is important to note because if one service is shut down, the other services can still operate.
Code Reviews was important to get practice on. The code reviews helped ensure that the code ran correctly on other engineer's machines, the code was clean and easy to read and makes a good marker of what changes were made to the repository in case one needs to go back and review the previous changes. This is especially important because other people will likely have to maintain the code.
Finally, an important practice no matter what is testing. Especially for long lasting projects, implementing unit tests and system tests help engineers debug quickly in case certain parts of code are not working as intended. More than just quick debugging, it also gives engineers confidence in making changes to code without having it break, allowing projects to be maintained over time. Additionally, the tests themselves can also act as documentation on how code works as you can see how it is intended to work.
Overall, the course was very intriguing and very helpful in getting an idea of how projects would be handled in the industry.
Comments
Post a Comment