to meet a given set of computing requirements (ABET standard 2) Communicate effectively in written form. (ABET standard 3) • Apply computer science theory and software development fundamentals to produce computing-based design. (ABET standard 6) Effort: Individual (Academic Integrity) • Reminder if you share design/solutions or use someone else's design you will receive a 0 and be reported to the CS chair and UCCS Dean of Students. Do not use Al! Points: 50 Read Rubric in canvas - Your design is not graded for correct algorithms but that you followed the design process to try and solve the problem by creating pseudocode. Due date: Look in canvas Deliverables: Word Document or PDF uploaded on canvas. You can submit two document submissions containing the part written on paper and the part typed in a document. Include your learnings and reflection questions and answers in your design document. • DO NOT SUBMIT CODE DO NOT SUBMIT SEPARATE IMAGES, INSTEAD PUT IN DOCUMENT AND RESIZE/CROP SO READABLE Assignment Overview Problem statement: Requirements Sample Output Learnings and Reflection (In your own words) Assignment Overview Description: Demonstrate problem solving skills following Agile Software Development (slides 1-12) analyze requirements and break into tasks (functions), create test cases for each function, design algorithms for functions and main as pseudocode and include function prototypes. You are not programming the solution, just designing it. Look for patterns to find an algorithm for the different tasks. Your goal is to be able to provide a design document that could be given to someone else to implement the code. The design you submit is not for you to have a perfect approach but that you spent time and effort on analysis, design and resources. This is such an important skill in software engineering as the problems become larger and more complex. Reminders Highlight when you complete part of the assignments so you can track your progress compared to the deadline. Ask clarifying questions if something doesn't make sense. Review Rubric for the details of the grading for this canvas assignment Problem statement: UCCS wants to provide ride sharing for the University that will hire students. You are hired to make a program for the ride share business. For example, here is some information on how Lyft/Uber calculate ride fares. The program will provide a calculated fare for all riders and track all the fare details for each driver and a summary of all drivers for the UCCS business. After the quote the riders can decide to take the ride. The riders will pay the fare and have the option to tip. The pricing is based on the following formula. If the ride cost doesn't meet a certain minimum rate a flat rate ride fare will be charged. Base (or initial) fare - A flat fee charged at the beginning of every ride Cost per minute - How much you are charged for each minute you are inside the ride Cost per mile - How much you are charged for each mile of the ride Minimum flat rate - minimum charge for any ride Ride Fare = Base Fare + (Cost per minute * time in ride) + (Cost per mile * ride distance) If the ride fare is less than the minimum flat rate, customers will be charged that flat rate. To simulate the ride miles and time the rider will enter the number of miles needed to get to destination. The program will calculate a random number based on the miles for the number of minutes the ride took. Random minutes based on number of miles formula: Min minutes = 1.2 * miles Max minutes = 1.5 * miles ● Generate random integer between min and max minutes Example Values Pricing Base (or initial) fare = 1.8 Cost per minute = .25 Cost per mile = 1.2 Minimum flat rate = $20 Miles to destination for rider Miles = 10 Find random integer between Min minutes 12 = 10 * 1.2 Max minutes 15 = 10 * 1.5 Estimated Ride Minutes (Integer Randomly generated by computer) = 13 Calculated Ride Fare $17.05 = 1.8 + (.25 *13) + (1.2 * 10) Ride Fare Amount = $20 Requirements User Stories and Acceptance Criteria Here are user stories for the first sprint iteration for this UCCS Ride Share software program. User story 1: Rider Mode As a riderl want to be able to get a ride using the UCCS ride share so I can get to my destination. Acceptance criteria 1.1 Get the number of miles, "Welcome to the UCCS Ride Share. We can only provide services for rides from 1 to 100 miles. Enter the number of miles to your destination." Repeat prompt until a valid number (decimal number) is entered. If the number is not a valid number greater then display error "Error: you didn't enter the number of miles correctly." Repeat the prompt. Here are the criteria Greater than or equal to minimum number of miles of 1 Less than or equal to the maximum number of miles of 100 NOTE: You can accept 40f as a valid value since scanf will read the 40 and leave the f character in the buffer. If the number is valid then O O Display number of estimated minutes (randomly created) Min minutes = 1.2 * miles Max minutes = 1.5 * miles Generate random number between min and max minutes O Calculate the charge based on formula O Display ride fare charge O Display "Thanks for riding with us” O Program will repeat for next rider If the sentinel value of -1 is entered see user story 2.1 to end the ride share program. User Story 2: UCCS Ride Share Report Mode As the UCCS Ride Share business owner I need to be able to shutdown the program and get a report so I have the details of the ride fares. Acceptance criteria 2.1 When the UCCS Ride Share business owner enters -1 when the program prompts in User Story 1.1 for the number of miles If there were no rides display "There were no rides” If there were rides display the totals Sample Output Welcome to the UCCS Ride Share. We can only provide services for rides from 1 to 100 miles. Enter the number of miles to your destination: x Error: You did not enter a number. Enter the number of miles to your destination: -2 Error: Not within 1 and 100 miles. Enter the number of miles to your destination: 0 Error: Not within 1 and 100 miles. Enter the number of miles to your destination: 15 Number of Miles 15 Welcome to the UCCS Ride Share. We can only provide services for rides from 1 to 100 miles. Enter the number of miles to your destination: 5.5m (will be accepted as 5.5) Number of Miles 5.5 Number of Minutes Ride Fare Amount: 19 $24.55 Number of Minutes Ride Fare Amount: $20.00 9 Welcome to the UCCS Ride Share. We can only provide services for rides from 1 to 100 miles. Enter the number of miles to your destination: -1 UCCS Ride Share Business Summary Number of Miles 20.5 Number of Minutes Ride Fare Amount: 28 $44.55 Learnings and Reflection (In your own words) 2 to make known in detail: Explain: In your own words as if you are teaching someone verb (used with object) 1 to make plain or clear; render understandable or intelligible: to explain an obscure point. to explain how to do something. Explanations provide elaboration of the concepts using supporting evidence and vocabulary. Thoroughly reflects making clear the connection(s) with the experience and assignment. 1. How did you approach breaking the problem into tasks? 2. How did you approach writing your unit test cases? How does writing test cases (inputs and output) for the tasks help with designing your algorithm? Why is it important to have test cases for your functions? 3. What does it mean to make your solution maintainable and flexible? What is SRP and DRY? 4. As you think about not hard coding what values could change in the program that you would not want to hard code in a function? 5. Reflect on analyzing requirements, creating your function unit test cases and designing algorithms? What was a strength? What was the most difficult?