Design ULM Diagram for this project. Please make sure to implement at least one either Interface or Abstract class. Please make sure to have reader and writer class as IO and use all the relationship in requirement and make sure to address when and where to use ArrayList and LinkList.
3/22/2021 https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/assets/notebook1.txt https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/assets/notebook1.txt 1/1 ! School # CSC 216,35 * Read Project 2 Requirements Read Project 2 requirements (https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE- Materials/projects/project2/project2-part1.html) and identify candidate classes and methods. * Create CRC Cards,active Identify the key classes and create CRC cards. Note responsibilities, collaborators, and possible state. * Transfer CRC Cards to UMLetino Start creating a UML class diagram from the requirements * Download design proposal and rational template See (https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE- Materials/projects/project2/project2-part1.html) for template link * Write design proposal and rationale Start with UML class diagram description. Incorporate feedback from Project 1. * Identify 5 system tests Consider 5 major paths through the system when working with notebooks, task lists, and tasks. How would I use the system to keep track of my tasks? * Watch lecture video,recurring,active Keep up with lecture videos each week * Complete exercises,recurring Complete exercises by Sunday at 11:45pm each week * Complete quizzes,recurring Weekly quizzes open Thursdays at 3pm and close Mondays at 11:30am (all times Eastern) # CSC 226,23 * Homework 7 - Review the assignment - Schedule time to work on the assignment Don't forget to submit! * Homework 8 - Review the assignment - Schedule time to work on the assignment Don't forget to submit! * Homework 9 - Review the assignment - Schedule time to work on the assignment Don't forget to submit! * Homework 10 - Review the assignment - Schedule time to work on the assignment Don't forget to submit! * Watch lectures,recurring,active Watch lectures associated with HW7 by March 31 # Habits * Exercise,active,recurring Exercise every day. Alternate between cardio and weight training * Floss,recurring,active Floss when brushing my teeth before bed! 3/22/2021 CSC 216 SE Materials https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html#uc8 1/13 Home > Projects > CSC 216 Projects - Spring 2021 > Project 2, Part 1: Wolf Tasks CSC216: Project 2CSC216: Project 2 Project 2, Part 1: Wolf TasksProject 2, Part 1: Wolf Tasks Project 2, Part 1: Wolf Tasks - DRAFT Project 2 requires you to go through standard software development phases to design, implement, and test a complete Java program consisting of multiple source code files and JUnit test cases. The service group comes in two parts. Deliverables for Part 1 are: 1. Design document that includes a UML class diagram. 2. Black box test plan. Part 1 Due Date: Thursday, April 1, 2021 at 11:45 PM Late Deadline (Design): Friday, April 2, 2021 at 9:00 AM Late Deadline (BBTP): Saturday, April 3, 2021 at 11:45 PM Project 2, Part 1 MUST be completed individually Table of Contents Problem Overview Requirements Data Format Design Testing Deployment Problem Overview It seems our lives get busier every day, and if we are not careful, we could overlook important tasks. Homework, projects, quizzes, exams, and other assignments for classes can pile up on top of each other as a semester goes by, and keeping up with all of the due dates can be challenging! Add in other tasks such as paying bills, doctor’s appointments, car maintenance, work tasks, and habits we’re trying to form (or break), and we often don’t know we’ve forgotten something until it is too late. Most of us turn to some kind of “to-do list” to help manage these tasks, and there are certainly many options out there. The experience of designing and writing your own todo list application can give you a tool that you can continue to use after this class is done, and one that you will understand and be able to refine and extend to meet your own specific needs. A “to do list” is basically just that - a list of things that you need to do. For some people, a scrap of paper with a hand- written list of brief “titles” is sufficient. But what happens if you need more details about your tasks? Or you have things to do that span more than a day to complete? There are principles of productivity that we can incorporate into a todo list. The “Getting Things Done” system groups tasks into contexts where you complete those tasks. We will create separate task lists for each context or category (e.g., tasks for CSC 216, personal tasks, etc.). Our tasks lists will be grouped into a notebook. Another important step in Project 2, Part 2: WolfTasks COVID-19 RESOURCES https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/ https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/ https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/ https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part2.html https://www.ncsu.edu/ https://ncsu.edu/coronavirus/ 3/22/2021 CSC 216 SE Materials https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html#uc8 2/13 productivity is to prioritize your tasks; tasks in each TaskList should be kept in order by priority as defined by the user. We’ll provide controls to help users with prioritization. Additionally, we should be able to mark tasks as “active”, which represents tasks that we’re currently working on. A special list of active tasks will help us view what we’re currently working on (or doing). This is similar to the idea of the “Doing” column from Kanban. By focusing on a single task list, or current task list at a time, we can minimize overwhelm from seeing everything we have to do at once (for example, Dr. Heckman has over 250 tasks in her todo list, but only keeps focus on the 5-10 that have to be accomplished in a given day - note that many of these tasks are very fine-grained, one small step in a much larger project). Finally, to provide motivation, the todo list should keep track of the number of tasks completed! It’s a lot of fun to see those numbers go up. The application that you must create has a graphical user interface (GUI) as shown in Figure 1. The GUI for this app is being independently developed and will be provided to you at a later time, but initial screenshots are available and shown below. Note, that the GUI is still under development, so there may be some changes between the screenshots below and the delivered GUI. Figure 1: WolfTasks with the Active Tasks displayed Requirements The requirements for the WolfTasks program will be modeled with use cases. Use cases divide system behavior into related scenarios around a core piece of functionality. These scenarios tie directly to user experience with the GUI. Startup Use Case 0: Start WolfTasks Managing Notebooks Use Case 1: Create a New Notebook Use Case 2: Load Notebook Use Case 3: Save Notebook Task Lists Use Case 4: Select Current Task List 3/22/2021 CSC 216 SE Materials https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html#uc8 3/13 Use Case 5: Add a Task List Use Case 6: Edit a Task List Use Case 7: Remove Current Task List Tasks Use Case 8: List Tasks in Current Task List Use Case 9: Add a Task to Current Task List Use Case 10: Edit a Task in Current Task List Use Case 11: Remove a Task from Current Task List Use Case 12: Mark a Task Complete in the Current Task List Use Case 13: Prioritize Tasks in the Current Task List Shutdown Use Case 14: Quit WolfTasks Use Case 0: Start WolfTasks Open the WolfTasks application Main Flow 1. The user starts the WolfTasks application. 2. The GUI opens and displays the File menu (in the menu bar) to create a new notebook [UC1], load a notebook from a file [UC2], and save a notebook to a file [UC3]. 3. One a notebook is created, the user can interact with task lists [UC4-7] and tasks [UC8-12]. Use Case 1: Create a New Notebook Creates a new empty notebook to create tasks lists. Preconditions The user is in the main window of the application. Main Flow 1. The user selects the option from the file menu to create a new notebook. 2. If another notebook is open and hasn’t been recently saved, the user is prompted to confirm they want to create the new notebook and lose all changes in the currently loaded notebook. 3. If the user selects no to the prompt on losing the currently loaded notebook, they are returned to the user interface. 4. If the user selects yes to the prompt or if the was no need for a prompt, the user is prompted for the name of the notebook. [Invalid Name] 5. The user enters a notebook name and clicks OK. 6. The name of the notebook is displayed in the boarder text and the Current Task List is the “Active Tasks” list. Alternative Flows [Invalid Name] If the notebook name is empty or matches “Active Tasks” (case-insensitive), an error message “Invalid name.” is displayed and the user is returned to the prompt to change the name. Use Case 2: Load Notebook Load a notebook, tasks lists, and tasks from a file. 3/22/2021 CSC 216 SE Materials https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html#uc8 4/13 Precondition A user has started the WolfTasks application and the GUI has opened. Main Flow 1. The user selects the option from the file menu to Load Notebook. 2. The system shows a file chooser. 3. The user browses for and selects the file to open. 4. The system processes and loads the contents of the file in the format described in the [Data Format] section [Missing File][Invalid Record]. 5. The system populates task lists and tasks. 6. The current task list is the list of Active Tasks [UC4]. Alternative Flows [Missing File] If the file cannot be loaded, a dialog opens with the message “Unable to load file.” The user clicks OK and is returned to the application. [Invalid Record] An invalid record in the file is skipped and not imported to the system. Lines that do not start as described in the [Data Format] section are considered invalid records. Use Case 3: Save System State Save the current state of the system to a file that can be loaded later. Precondition The user is in the main window of the application. Main Flow 1. The user selects the option from the file menu to Save Notebook. 2. The system shows a file chooser. 3. The user browses for and selects a filename for the file to save [Cannot Save]. 4. The system saves the file in the same format described in the [Data Format] section. The Active Tasks are not saved as a list; they are generated from those tasks marked “active”. 5. The system keeps track that the file was recently saved. Alternative Flows [Cannot Save] If the file cannot be saved, a dialog opens with the message “Unable to save file.” The user clicks OK and is