1.1 - MVC
🎯 Objectives
- Define what architectural patterns are.
- Explain what MVC is and why it’s important.
- Outline the models and views of an already existing application.
🚦 Let’s Go
You will be split into groups based on the feedback I received from the “Making Teams” survey on Moodle. For this exercise, please decide on a:
- 🦸‍♀️ Team Leader: Your job is to keep the team focused and make sure you don’t start to deviate from the task at hand.
- ⏳ Time-Keeper: Your job is to keep an eye on the clock and make sure that the team doesn’t spend too much/little time on any one part.
- ✏️ Scribe: Your job is to write things down. Most likely you’ll be the one sharing your screen so that everyone can see what you’re writing.
- 🎙️ Spokesperson: Your job is to present your findings when we all come back together as a class.
đź’ˇ If yours is a team of 3, then the leader and time-keeper can be the same person.
đź’ Part 1
For each of the following questions, research on your own for a few minutes and then come together as a group to collaborate on an answer:
- What is a “software architectural pattern”?
- Why is an architectural pattern important?
- What problems does using an architectural pattern solve?
- Define MVC. What are the three parts and what does each part do?
Once you’re done this part, wait for Vik to bring back the groups to the main meeting. Make sure the spokesperson is ready to speak!
✒️ Part 2
With the company/app provided to you by Vik, break up the app into its M and V components:
- Models: What entities, attributes, and relationships will you have to define for this application’s (relational) database?
- Views: What are the different pages and interactions a user will navigate and use for this application?
It’s up to you what tool you would like to use for this part of the exercise, but I would recommend using a tool like LucidChart. One person should set up the document and invite the other team members so that you can all collaborate.
You should be very familiar with this process from your Database class when it comes to the models. For the views, you can draw the user interface using simple shapes. For example, you can use rectangles for the window and any form fields along with a few text fields. You don’t have to map out every single tiny feature of the entire application - just the core functionality.
Once you’re done this part, wait for Vik to bring back the groups to the main meeting. Make sure the spokesperson is ready to speak!
📥 Submission
If you go to the submission box for this exercise on Moodle, there will be a textbox where one person from each team should write the following:
- Copy-paste the text you collaborated on for part 1.
- Copy-paste the link to your LucidChart diagram. Make sure that it’s pubically visible. If you don’t want it visible, then make sure to add
vikram.singh@johnabbott.qc.ca
to the list of collaborators.- If you did not use LucidChart, then attach screenshots of your work.
Courtesy of Dilbert