Pretty SWEet

05 Dec 2023

Introduction

Over the duration of this class, I have learned many principles of software engineering that I will be able to apply to my future career. This class has given me a brief overview of the process and work of creating a practical web application. I see the ending of this course as the beginning to my software engineering journey. In this essay, I will reflect on three concepts that I found very important in this class.

Agile Project Management

Agile Project Management is a project management methodology that promotes flexibility and collaboration in software development.In this course, we used a form of agile project management called issue driven project management. This approach involves organizing and manging a project based on issues or tasks. We used this particularly in the final project, where we created an application as a team. Breaking down the project into smaller tasks made it easier to finish and allowed us to work on different parts of the project more efficiently. I think agile project management can be very useful, even out of the scope of web application development. Breaking any type of problem into smaller tasks can make it easier to solve, this can also be applied to any type of project. Agile Project Management can be used in video game development, where the game is broken down into different parts, like the story, gameplay, graphics, etc. The different parts of the game can be broken down into even smaller tasks, like different chapters in a story, or creating the character models. I will definitely think about how I can use agile project management in my future coding projects.

Design Patterns

Design patterns are reusable solutions to common problems encountered in software development. I’ve used design patterns in the final project without even knowing it. The meteor template what we used for the final project uses many design patterns. The Model-View-Controller (MVC) pattern is used in our final project. The MVC pattern separates the application into three parts, the model, view and controller. The model is the data of the application, the view is the user interface that the user sees when the use the application and the controller is the logic that handles user input and updates the model accordingly. In any type of software development, regardless of the type of application,there will be recurring problems. Design patterns offer a structured and proven way to solve these problems. The Singleton pattern, for instance, ensures that a single instance of a class exists. This pattern can be applied to any type of application , not only web applications. For example, in video game development, the singleton pattern can be used to load and manage game assets, such as textures, models and sounds. Ensuring that there is only one instance of the asset manager could possibly prevent the game from crashing.

Ethics in Software Engineering

Ethics in Software Engineering involves considering the moral and social implications of software development. It covers issues such as security, privacy, and the responsibility to use technology. I think ethics in software engineering is very important, especially in today’s society where everyone is online. Software engineers have responsibility to create software that doesn’t harm anyone. In the field of cybersecurity, ethical software engineering practices involve ensuring confidentiality and integrity of sensitive information to safeguard user data. Ethics can be applied to anything, even beyond software engineering. In the field of medicine, doctors have to follow a code of ethics to ensure that they are doing their job correctly and not harming their patient. Ethics should be applied to every decision that we make.