From 0ac21a93f2ea7ffc385d64771c7f8026d0439380 Mon Sep 17 00:00:00 2001 From: Cho Yin Yong Date: Sat, 18 Nov 2023 15:28:35 -0500 Subject: [PATCH] chore: update week 11 topics and fixed deadline --- src/content/coursework/group-assignment.md | 109 ++++++++++-------- src/content/coursework/open-source-project.md | 2 +- src/content/lectures/11.md | 5 +- src/content/lectures/8.md | 1 - 4 files changed, 69 insertions(+), 48 deletions(-) diff --git a/src/content/coursework/group-assignment.md b/src/content/coursework/group-assignment.md index 0b2ba39..7d1159b 100644 --- a/src/content/coursework/group-assignment.md +++ b/src/content/coursework/group-assignment.md @@ -3,7 +3,9 @@ title: Group Assignment - Writing a Solution Architecture Document releaseDate: 2023-11-13 dueDate: 2023-11-30T23:59:00.000Z --- + --- + Complex problems tend to require more complex solutions. Large systems are difficult for an individual to keep track of, even the individual who architected it. This is why architects create various design and architecture artifacts, so that they serialize the solution in their head into a format that is accessible for others (and themselves!) @@ -11,24 +13,27 @@ This is why architects create various design and architecture artifacts, so that This assignment is a group assignment. Your group will be the same one you've been working with in your tutorial all semester. ## Scenario + --- You are a software consulting company known as {your cscd01 team name}. You have been approached by a startup called Xtra-Health\* based out of Ontario. They want to build an app that can track physical activity and use it in conjunction with a users’ medical records to provide a comprehensive health management platform. Your TA will play the role of project manager for Xtra-health. \*This is a fictional company and not representative of any real world organizations. -* Users should be able to log physical activities, meals, and medical information. -* The system must comply with health data privacy regulations as defined in PHIPA. -* The system should be able to integrate with external systems like electronic health records (EHRs) and wearable devices. -* Users should receive notifications of personalized health recommendations based on their data. -* The app should provide analytical insights based on the user's activity. +- Users should be able to log physical activities, meals, and medical information. +- The system must comply with health data privacy regulations as defined in PHIPA. +- The system should be able to integrate with external systems like electronic health records (EHRs) and wearable devices. +- Users should receive notifications of personalized health recommendations based on their data. +- The app should provide analytical insights based on the user's activity. ## Mutation + --- Your TA will assign your group two mutations. A mutation adds or modifies an existing requirement for the scenario. These will be handed out in your group slack channels. If you have not recieved a mutation, reach out to your TA on slack. ## Your Task + --- Given the Kata above and the two mutations received by your TA. Create a solution architecture document. You may assume that your TA's and instructors in this course play the role of employees at Xtra-Health. In your document, list their names and assign them roles (ex. Project manager, executive sponsor, IT support, etc). @@ -36,58 +41,72 @@ Given the Kata above and the two mutations received by your TA. Create a solutio Below you will find a template for how this document should be structured. ## Grading + --- -### 1. **Background (5%)** -* What is the problem that justifies the existence of this project? -* Who are the stakeholders? -* Who are the users? - -### 2. **Requirements (15%)** -* Functional requirements -* Non-functional requirements - -### 3. **Architecture (Revision 1) (20%)** -* Context Diagram + Description - * Make note of any architectural decisions -* Container Diagram + Description - * Make note of any architectural decisions -* Component Diagrams + Descriptions - * Make note of any architectural decisions -### 4. **Risk Assessment (30%)** -* Risk storming - * 1\. Individual Assessments - * 2\. Consensus discussion - - Focus on areas of disagreement that arose from the individual assessments. - * 3\. Mitigation Strategies - - Decide with your team how you will contain the identified risks. Make sure you justify all decisions and highlight any tradeoffs. - -* For an example risk storming framework you can refer to the one used in class. However, remember that the spirit of a practice is more important than the implementation. You need not follow the framework strictly, but you *will* be marked for how well you assess risk, come to a consensus with your team, and decide on mitigating strategies. - -### 5. **Revised Architecture (30%)** +### 1. **Background (5%)** + +- What is the problem that justifies the existence of this project? +- Who are the stakeholders? +- Who are the users? + +### 2. **Requirements (15%)** + +- Functional requirements +- Non-functional requirements + +### 3. **Architecture (Revision 1) (20%)** + +- Context Diagram + Description + - Make note of any architectural decisions +- Container Diagram + Description + - Make note of any architectural decisions +- Component Diagrams + Descriptions + - Make note of any architectural decisions + +### 4. **Risk Assessment (30%)** + +- Risk storming + + - 1\. Individual Assessments + - 2\. Consensus discussion + - Focus on areas of disagreement that arose from the individual assessments. + - 3\. Mitigation Strategies + - Decide with your team how you will contain the identified risks. Make sure you justify all decisions and highlight any tradeoffs. + +- For an example risk storming framework you can refer to the one used in class. However, remember that the spirit of a practice is more important than the implementation. You need not follow the framework strictly, but you _will_ be marked for how well you assess risk, come to a consensus with your team, and decide on mitigating strategies. + +### 5. **Revised Architecture (30%)** + Here you will apply the mitigation strategies from your risk assessment to your revision 1 architecture. For each revision you make to your archiecture in this section, make sure you highlight the corresponding identified risk that prompted it. -* Context Diagram + Description - * Make note of any revised architectural decisions -* Container Diagram + Description - * Make note of any revised architectural decisions -* Component Diagrams + Descriptions - * Make note of any revised architectural decisions + +- Context Diagram + Description + - Make note of any revised architectural decisions +- Container Diagram + Description + - Make note of any revised architectural decisions +- Component Diagrams + Descriptions + - Make note of any revised architectural decisions See booklit.app example from lecture (week 11). ## Submission -___ + +--- + Create your solution archicecture documents in a google doc. Once you are finished and ready to hand in your assignment, share it with your TA on slack. **The deadline for handing in your assignment is November 30th at 11:59 PM.** ## Important Notes + --- -* You will not be rewarded for verbosity. This is not an essay. This type of document is meant to be digestible by many stakeholders within multiple companies. Clarity and conciseness are valued more by business folk who have busy jobs. -* You will be rewarded for providing justification for your decisions. Remember, there is no perfect architecture, but you must be able to make informed and defensible decisions. + +- You will not be rewarded for verbosity. This is not an essay. This type of document is meant to be digestible by many stakeholders within multiple companies. Clarity and conciseness are valued more by business folk who have busy jobs. +- You will be rewarded for providing justification for your decisions. Remember, there is no perfect architecture, but you must be able to make informed and defensible decisions. ### Tips for steps 3-5 -* Start with a basic architecture that meets your functional requirements - * Risk assess that architecture with your team in the context of the non-functional requirements that you’ve identified. - * Apply mitigation strategies to the basic architecture to mitigate all the risks you’ve identified. Then update your diagrams. -* You DO NOT have to make component diagrams for containers that would not be built by your team. For example, you do not need to create a component diagram for a PostgreSQL database that you have in your container diagram. + +- Start with a basic architecture that meets your functional requirements + - Risk assess that architecture with your team in the context of the non-functional requirements that you’ve identified. + - Apply mitigation strategies to the basic architecture to mitigate all the risks you’ve identified. Then update your diagrams. +- You DO NOT have to make component diagrams for containers that would not be built by your team. For example, you do not need to create a component diagram for a PostgreSQL database that you have in your container diagram. diff --git a/src/content/coursework/open-source-project.md b/src/content/coursework/open-source-project.md index d1ab22c..45516cf 100644 --- a/src/content/coursework/open-source-project.md +++ b/src/content/coursework/open-source-project.md @@ -2,7 +2,7 @@ title: Open Source Project - Contributing to langchain description: In this assignment, you will be contributing to an open source project called langchain, a library that interfaces with Large Language Models (LLMs) such as GPT-4. releaseDate: 2023-09-17 -dueDate: 2023-11-27 +dueDate: 2023-11-30 --- ## Introduction diff --git a/src/content/lectures/11.md b/src/content/lectures/11.md index d1e814f..73f330b 100644 --- a/src/content/lectures/11.md +++ b/src/content/lectures/11.md @@ -2,5 +2,8 @@ week: 12 title: Guest Lectures date: 2023-11-20 -description: Lectures from industry professionals. Topic TBD +description: Software Engineering Panel hosted by Mareena Wallace, Senior Manager, Software Development at Verto Health; Sharing internship experience at Cloudflare, Uber, and Intel by our very own TAs, Simon and Ryan. --- + +Tuesday - Software Engineering Panel +Thursday - Internship Experience Sharing diff --git a/src/content/lectures/8.md b/src/content/lectures/8.md index 82a57ad..468058a 100644 --- a/src/content/lectures/8.md +++ b/src/content/lectures/8.md @@ -5,4 +5,3 @@ date: 2023-10-30 description: Architecture is about decision-making. Every decision carries with it an element of risk, some probability that an issue will occur. Identifying architectural risk early is a key part of project success. Doing so allows the project team to mitigate these risks ahead of time before things go wrong. This lecture will talk about how to identify risks in an existing system and some potential mitigation strategies. googleSlidesUrl: https://docs.google.com/presentation/d/1u0spx8vvyudDKRAOF3fgR-qIekxg6CzFjyuEtL2pcd0/ --- -