ICS3U1a Final Exam Fall Outline 2024 PDF
Document Details
Uploaded by Deleted User
2024
Tags
Summary
This document outlines the ICS3U1a Final Exam Fall Outline 2024, focusing on project workflows, including traditional Waterfall and Agile methodologies. It covers topics such as investigation, analysis, design, development, testing, and deployment, while emphasizing practical aspects of software development.
Full Transcript
Project Workflow Now that you have some of the fundamentals of programming, we need to discuss a project workflow you can use as your software projects get bigger and bigger, more complex, more complex. Waterfall Workflow (Traditional Project Management) Here are the steps in the Waterfall Workflow...
Project Workflow Now that you have some of the fundamentals of programming, we need to discuss a project workflow you can use as your software projects get bigger and bigger, more complex, more complex. Waterfall Workflow (Traditional Project Management) Here are the steps in the Waterfall Workflow Investigation Analysis Design Development Testing Deployment * Might be on future test/exam Investigation You don’t have a project yet. You don’t have a client yet. You don’t have a problem to solve yet. In this phase of the project, you will be finding a problem/client/project. When you are dealing with clients, you need to find out about their company environment, previous projects, management, etc. You will also get a rough idea of the problem they are trying to solve. Once you learn about the client and the problem, you can choose to move forward with them, or not. Try to ensure that your skills and abilities match what the client needs. Ex: Cadawas worked for a company called Broadvision, and some of their clients included: Raytheon military contractor - Database for their schematics CIBC - Their first interactive website with online banking. Ex2: Cadawas these days has many clients: St Augustine School Community - School App to get announcements St Mark's Church Stouffville - Create a new wifi network for the staff and community. Analysis Now that you have decided to move forward with the client to help them solve their problem, you now need to analyze the client's needs and wants. Out of this phase, you will create a document called the requirements document. This document lists the clients needs (not wants). This document will be used at the end of the project to determine if you meet the requirements, so you can get paid. If you put a need in this document, you must build it. Ex: St Mark’s Church Stouffville - Needs: Wifi in all parts of the building, Separate network for staff, Separate network for AV, Separate network for Guests, Wired access for printers, desktops. Wants: Backup system, redundant internet if main one goes down. Sometimes the client does not know the difference between a need and a want. It will be up to you to work with them to determine what is a need (requirement) Design Now that we have the requirements. We need to plan how we are going to build this project. Here are some of the “blueprints” you can make for a project: Flow Chart UX Design Document (User Interface/Experience Document) Variables Input/Calculation/Output Table Pseudocode (not code, but plain english trying to describe logic) Class Design Document Database Table Design document Circuit design Document * Might be on a Future Test. Will be on the exam and CPT Use these blueprints to give you a strong idea how the software will be built. You can even work on these documents with the client. The client might not know code, but they can give you input where a button might need to go when designing the UX. Ex: For the CIBC project, Cadawas mocked up many versions of the CIBC website in photoshop, placing elements such as buttons, input fields, text, graphics in different areas. Then had discussions with the clients about if those placements were good, and some elements were moved. Development Now that we have the requirements, and some “blueprints”, it is time to build the project… Create the code. As you create the code, ensure that you document everything in the form of comments. Also ensure that you are keeping track of versions of code using some type of code versioning repository (github). Github → Good docs, but for code… you can keep track of changes, you can collaborate. Keep the client up to date with your progress. Testing Once your code is finished, it is time to test it. Ideally, your code should be given to someone else to test (because you know how to use your own software), and that external tester should not really be a programmer but represent the “normal” user of the software. Bugs will be discovered. Track these bugs in a database. Fix them and update the database. Github has a bug tracking system. If there are so many bugs discovered, you may have to go back to the development stage… or worse, design stage. Deployment Give your code to the client. Train them on the software. Get paid (assuming that you met all of the requirements). Look for more opportunities to work with the client and get paid. Ex: More training, ONcall software support, Possible version 2 in the future. Tip: Remember some of the wants of the client, throw a couple of the wants in the final project to make you stand out more as a programmer. Agile Workflow The waterfall workflow was used for many decades with much success, but these days, a more popular workflow is used at many companies… Agile Investigation Analysis Agile Loop ○ Small Design ○ Small Development ○ Small Testing Deployment Agile loop. Instead of dealing with 100 requirements, 20 User Interfaces all at the same time in the waterfall workflow, the Agile loop breaks it into smaller pieces. Ex: Each loop deals with 1 UX, 5 requirements. Design that 1 UX, build that one UX, test that one UX. Then move on to the next loop and next UX. Because of the smaller agile loops, bugs are dealt with each loop and not after all 20 UX are created. You can show your client your progress after each loop. You can split the work easier… One team works on one UX while the other works on the other UX. Waterfall Timing Let’s imagine you have a project that is scheduled for 1 year (12 months) for $4 million. How will this project be timed? Investigation - 1 week Analysis - 2 months Design - 3 months Development - 4 months Testing - 2 months Deployment - 3 weeks In general, ensure that you have a large chunk of time dedicated to design. Don’t forget about testing either. UX Design UX Design Document UX = User eXperience UI - User Interface This document draws what the user interface will look like (a mockup of the potential screen). It is NOT a screenshot of an already finished program. It is a design of the screen before one line of code is written. Example Ask the user for a start kilometers and end kilometers (integer) and print a table that converts those kilometers to miles. Similar to the temperature conversion homework question. You can look up the conversion formula on Google. Give Me Start KM: 5 ← intKMStart Give me End KM: 15 ← intKMEnd KM | Miles ————————————————————————————– 5 ← intKM | 3.10686 ← intMiles 6 | 3.72823 7 | 4.3496 8 | 4.97097 9 | 5.59234 10 | 6.21371 Example 2 General UX for the STA Halloween Story ← imgSchool You walk up to the front of St Augustine on Oct 31. It is really dark. The front door is open. Do you go “in” or “leave” ← strDescription in ← strChoice Flowcharts Flowcharts are a design blueprint we can use to plan our code before we write one line of code. Flowcharts chart the path of data through your program. Here are some of the major symbols. Terminator Symbol - Signifies the start or end of your program Process Symbol - Signifies that we are doing some type of math or string manipulation. Data Symbol - Signifies that we are inputting data OR we are outputting data. Decision Symbol - Signifies that we are making a decision (if statements or loops). Arrow say where the data is flowing next Using these symbols, we can plan how our data will flow through the program. Example 1 Write a program that will let you enter any number and that will print its square root or the message: 'Negative numbers do not have a square root value'. Example 2 Average Calculation: Write a program that calculates and prints the average of five entered numbers. VICO Table - Variables, Input, Calculation Output Table Before you write one line of code, you can plan what variables you might need, what input you need to get, what calculation might be done on the input variables, what output you will produce. Example Write a program that prompts the user to enter the radius of a circle and prints both the circumference and the area of the circle. Variables Input Calculation Output dblRadius dblRadius dblCirc = 2*pi*dblRadius dblCirc dblCirc dblArea = pi*dblRadius^2 dblArea dblArea Example 2 Fibonacci Sequence: Write a program that lets you enter a number 𝑛 and calculates the 𝑛th Fibonacci number: 1, 1, 2, 3, 5, 8, etc., where each new number is the sum of the last two. Example Input: 𝑛 = 6 Example Output: The 6th Fibonacci number is 8 Variables Input Calculation Output intN intN intFib = intPre + intPrePre intFib intCount = 0 intPrePre = intPre intFib intPre = intFib intPre = 0 intPrePre = 0 For loop to count from 0? to the intN number