Closed AiXin18 closed 1 year ago
Bay Yi Kiat
I knew of the difficulties of working in a group before this project. However, I was only aware of how much communication was needed when working on this medium-sized project. I learned the importance of straightening out the details with other teams. It was minute unseen details like who is responsible for a component as such became stopgaps in our work progress. This sprint was a wholly new experience.
I understand more about software architecture and how MVVM aided me when I programmed the initial feature. MVVM has improved the separation of concerns by having ViewModel act as a mediator between Model and View to cleanly separate presentation logic from business logic. The greater degree of separation also helps with modularity, making a complex system easier to understand and manage. My experience of coding with MVVM can also help in terms of scalability.
Tan Ai Xin
In this project, I gained valuable experience in working with a real client and in a group setting on a medium-sized project with the class. I learned the importance of effective communication and collaboration. It is crucial to regularly communicate with the client to understand their requirements and with other teams to avoid miscommunication. Additionally, I learned the importance of requirements elicitation, as what we believe the client needs may not always align with their actual requirements. I understand that working with different teams can be challenging and requires constant communication and clear instructions to keep the project moving forward. Collaboration is also crucial, as all teams must adopt the same standards and procedures to build the system efficiently.
This project has also allowed me to develop my understanding of software design, including the ability to identify appropriate designs such as MVC or MVVM. I have also learned how to create class, sequence, and component diagrams based on these designs, which further strengthened my software design skills. Thus, this project has provided me with a glimpse into what working in the industry might be like and has taught me the importance of effective communication and collaboration in software development.
Loh Jing Yi
I have learnt a lot about Software Design such as the software design principles, patterns and architecture design. I have learnt that the higher the coupling, the higher the dependency. Therefore, it is important that software should have loose coupling otherwise high coupling makes modifying parts of the system difficult. I have also learnt that it is important to ensure that in component diagram, a component must provide an interface to another component.
Furthermore, I have also learnt that MVVM (Model View View-Model) is useful because it helps to separate the user interface from the business logic which makes it easier to maintain and test code. I have also learnt to use evaluation methods such as Architecture Tradeoff Analysis Method (ATAM) to evaluate software architectures’ quality attributes and mitigate risks on our software architecture and detailed design.
Gan Jia Xin
Upon completing D1, I realized the value of communication between teams from various modules and teams from the same module. When building the class component diagram that we submitted in on week 4, we will be able to determine what we need to give to other teams and what they require from us through communication. I'm especially delighted to see that we can interact with clients, as this helps me to recognize the importance of Agile ATAM. Aside from that, I also learned a lot over the course of the week about the various architectural patterns and styles used in our project and why we employ them. In our report, I was able to give justification to support the patterns that were employed.
The largest obstacle that my team has faced is that none of us has prior experience with ASP.Net core, C#, or React. This complicates our learning process and requires our coders to devote much more time to learning how to write code and comprehending the MVVM model and the many patterns used in the code.
Reviewed and Completed on Time: 10/2/2023
Goh Guan Lin
Through the completion of D1, I learnt that communication is key for projects of this size, each team has to be aware of each other’s features, requirements and implementation in order for the product to come together as a system eventually. Reapplying the knowledge learnt from ICT2101, and the actual coding implementation highlighted the importance of high modularity and loosely coupled as we faced many troubles initially when we were trying to implement all our features separately for each team.
Having our software architecture laid out early into the project, we were able to translate our class diagrams into the coding implementation with the knowledge of what each team requires and provides. With the design well separated in the Presentation, Domain and Data Source layers with the MVVM architecture, it has allowed us to implement our features progressively and make changes to the features a breeze.