-
Notifications
You must be signed in to change notification settings - Fork 0
Activity diagrams
This use case covers when Mia wants to start tracking a new course or personal learning goal in the app (for example, if she enrolls in a new class or decides to track a new skill).
- Start: Mia selects the option to add a new course/goal from the main menu. System prompts for course details (e.g., name/title of the course or goal, and possibly a category or type). Mia enters the required information (e.g., “Spanish Language” or “Marketing 102”).
- [Decision] The system checks if the input is valid and not a duplicate of an existing course:
- If the details are valid, System creates a new Course object in the system (with zero Topics initially, which can be added later, and no notes yet).
- If the course name already exists or input is invalid, System shows an error message and returns to prompt for correct input (or allows cancellation).
- System confirms success (e.g., “Course ‘Marketing 102’ added successfully.”).
- End: Mia’s new course now appears in her course list for tracking. (Activity Diagram would show: Start -> “Enter new course info” -> [Valid?] decision -> create course -> confirmation -> End, with an alternate path for invalid input leading back to entry.)
Whenever Mia has finished some part of a course or wants to record what she’s done (for example, she realized she completed the “functions” module in her programming course), she uses this use case to update her progress.
- Start: Mia chooses “Update Progress” (or similar) from the menu and selects which Course she wants to update (e.g., the Programming course). System displays the list of Topics (or modules) for that course along with their current status (e.g., a list of lesson names, some marked completed, some not). Mia chooses a topic or module to mark as completed (or updates a range, such as “completed up to Module 5”). She could also indicate mastery level if applicable (for instance, mark a topic as “Mastered”). System records the progress update: it sets the selected Topic(s) status to “Completed/Mastered”. It may also update overall course progress metrics (e.g., 5 of 10 topics completed = 50% complete).
- [Decision] The system checks if this course is now fully completed:
- If all topics are now completed, the system might mark the Course as finished and perhaps congratulate the user.
- Otherwise, the course remains active with some topics still pending.
- System provides feedback to Mia, e.g., “Progress updated: 5/10 topics in Programming course are now completed.”
- End: Mia’s progress is now up-to-date. Next time she or the system checks progress, it will reflect this update. (The activity diagram for this use case would include selecting a course, viewing topics, a loop or selection for marking a topic, then a decision whether more topics remain, etc.)
This use case is triggered when Mia wants to store a new note, reference, or resource in the app so she can easily find it later (e.g., saving a link to an article for her marketing course, or typing in a verb conjugation chart for Spanish).
- Start: Mia selects “Add Note” (or “Manage Notes -> Add”) and then chooses the Course that the note relates to (e.g., Spanish or Marketing). System prompts for note details. This could be a note title and the content. For example, Title: “Spanish – Preterite Tense Chart”, * Content: (she might paste or write the conjugation chart info, or a summary of it). For a link, the content might be a URL. Mia enters the note title and content.
- [Decision] The system checks that the note has necessary information:
- If everything is provided, System saves the Note under the selected Course. (It might assign a new noteID and store the title/content, linking it to that course.)
- If required information is missing (e.g., blank title), System asks Mia to fill it in or cancels the action.
- System confirms the note is added, e.g., “Note ‘Preterite Tense Chart’ saved under Spanish course.” The note will now be accessible in the list of notes for that course.
- End: Mia’s new study note is stored. Later, she can view or search her notes instead of flipping through physical notebooks. (Diagram shows: select course -> enter note details -> [valid?] -> save note -> confirmation.)
In this scenario, Mia wants to review how she’s doing in a course and identify what needs more work – for example, before her marketing quiz, she wants to see which topics she hasn’t mastered yet. This use case covers viewing a summary of course progress and finding weak spots.
- Start: Mia selects an option like “View Course Summary” or maybe specifically “Review for Quiz” under a course. She then selects the Course she’s interested in (e.g., the Marketing course). System gathers data on that course’s progress: it checks all Topics and their status, and perhaps any notes or past quiz results if available (mostly focusing on topic status for now). System displays a summary of the course. For example: “Marketing 101 – 60% complete. 3 of 5 topics mastered. Topics needing review: Social Media Strategies, SEO Basics.” This output highlights which topics are not yet marked as Mastered or Completed. Mia reviews the list. If this was specifically for quiz prep, she now knows which topics to focus on (e.g., those two topics listed).
- [Decision] (Optional interaction) Mia may choose to mark some of these topics for review or schedule a reminder, but that could be a separate use case. In a simple view case, it ends after showing info.
- End: Mia has the information she needs about her progress. She can now go back or take further action (like updating progress or studying those topics). (The activity diagram would illustrate the retrieval of progress data and the output to the user. It’s mostly a straight flow: select course -> system compiles data -> system outputs summary -> end.)
- Precision Review of Existing Activity Diagrams
Use Case 1 – Add a New Course/Goal Main Points to Retain or Clarify:
Trigger: Mia selects “Add New Course” from the main menu. Flow: System prompts for course details (title, category, etc.). Mia enters course info. [Decision: Valid Course Info?] If valid and not duplicate: create course record (FR6: Course & Module Setup). If invalid or duplicate: show error; user can retry or cancel. System confirms success, updates data storage (FR20). End – Mia’s course is now in the system. Review Suggestions:
Show error path or cancel path clearly in the diagram (e.g., an alternate flow from the decision node back to the input step). Emphasize that the system writes the new course to persistent storage (FR20). Ensure the diagram mentions the final acknowledgement to the user. Use Case 2 – Update Progress in a Course (Mark Topics as Completed) Main Points to Retain or Clarify:
Trigger: Mia chooses “Update Progress” from the menu and selects a course. Flow: System displays topics/modules for the chosen course (FR6, FR8). Mia selects which topic(s) to mark complete (FR7). System updates the topic status in data store (FR20). [Decision: Is course fully completed?] If yes: mark course as finished; optionally display a message (FR9: multiple course management). If no: keep partial progress. System confirms updated progress to Mia. End – Progress data is current. Review Suggestions:
Consider explicitly showing a loop if Mia wants to mark multiple topics in one go. Make the “fully completed” check an explicit decision node with a path that might set “Course Completed” status. Confirm data is written to persistent storage (FR20). Use Case 3 – Add a Study Note or Resource Main Points to Retain or Clarify:
Trigger: Mia selects “Add Note” and optionally picks a course or topic to categorize it (FR2). Flow: System prompts for note details (title, content/link). Mia enters note data; optionally tags or references external resources (FR5). [Decision: Valid Input?] If valid: system saves note, updates data store (FR1, FR20). If invalid: system alerts, re-prompt or cancel. System confirms success. End – Note is categorized and stored. Review Suggestions:
If the user chooses an existing course or a general note, confirm it is depicted in the diagram. Possibly show a sub-action for associating the note with multiple tags if relevant (FR2). Emphasize the persistence step (FR20). Use Case 4 – View Progress Summary / Identify Focus Topics Main Points to Retain or Clarify:
Trigger: Mia selects “View Course Summary” (e.g., for quiz prep). Flow: Mia picks the course of interest (FR21: UI navigation). System compiles progress data (topics completed vs. total, or mastery level). System displays the summary (e.g., “3 of 5 modules completed. 2 still need review.”). Mia sees which topics are incomplete/weak (FR8). End – She can decide next steps. Review Suggestions:
Keep it simple as a “view” use case but show the data retrieval step (pulling from whichever data store tracks progress). If you want a decision node for “User takes further action or leaves,” reflect that optional path. 2) New Activity Diagrams for Use Cases 5 and 6
Below are text-based UML-style activity diagrams. (You can later convert them into graphical UML if desired.)
Use Case 5 – Manage Spanish Vocabulary List Brief Description: Mia wants to add new Spanish words, review existing vocabulary, or mark words as learned.
Key Functional Requirements:
FR15: Add Vocabulary Item FR16: Review Vocabulary List FR17: Mark Vocabulary Mastery FR18: Practice/Quiz Mode for Vocabulary FR20: Data Persistence FR21: Console User Interface Navigation Activity Diagram (Textual):
@startuml (*) --> "Mia selects 'Manage Spanish Vocab' from main menu"
if "Action? [Add New Word or Review Existing?]" then -->[Add New Word] "System prompts for Spanish word + meaning" --> "Mia enters word details (FR15)" --> "System validates input" -->[Valid?] "System saves new vocab item; sets status='unlearned' (FR20)" --> "System confirms success" -right-> (Join)
else -->[Review Existing] "System retrieves vocab list (FR16)" --> "System displays words + statuses" --> "Mia chooses word(s) to update status or mark learned (FR17)" --> "System updates data store with new status (FR20)" --> "System confirms update" -left-> (Join) endif
(Join) --> "Mia optionally enters 'practice mode' (FR18)" --> "If chosen, system guides practice session (e.g., self-quiz) [Optional sub-flow]" --> (*) @enduml Explanation/Highlights:
The main decision is whether Mia wants to add a new vocabulary item or review/update existing words. For add, the system prompts for Spanish word, meaning, optional notes. For review, the system fetches the existing list, and Mia can mark items as “learned” or update them. An optional sub-flow for “practice mode” can appear after reviewing. Use Case 6 – View Overall Learning Dashboard Brief Description: Mia wants a big-picture view of all courses, upcoming quizzes, and Spanish vocab stats in one place.
Key Functional Requirements:
FR19: Overall Dashboard View FR20: Data Persistence (the underlying data from multiple areas) FR21: Console User Interface Navigation Activity Diagram (Textual):
@startuml (*) --> "Mia selects 'View Dashboard' from main menu (FR21)"
--> "System gathers data from multiple sources:" -> "1) Course progress (FR8, FR9) - e.g., which modules are complete." -> "2) Upcoming quizzes (FR10, FR14)." -> "3) Spanish vocabulary status (FR15-17)."
--> "System compiles a consolidated snapshot (FR19)" --> "System displays Dashboard to Mia"
if "User sees 'items needing attention'?" then -->[Yes] "Mia may jump to a specific section (e.g. quiz detail, or vocabulary) to take action" --> () else -->[No] () endif @enduml Explanation/Highlights:
The system collects relevant data (progress on each course, quiz deadlines, count of new or “unlearned” vocab items, etc.). Mia sees it in a single overview (FR19). If she decides to act on any highlighted item, she transitions to that sub-feature (e.g., “Review Quiz,” “Manage Vocab,” “Update Course Progress”). Otherwise, she can exit.