0:05
In the previous video, we discussed the importance of software design. And we suggested that you should first design your program on paper, before implementing it in Scratch.
0:15
But there's one more thing that you need to think about, even before designing your program. What it is that you want your program to do.
0:23
In software engineering, this is called software requirements. The gathering and analysis of requirements involves figuring out the goal of the software, and the needs it is meant to address. It is the what, rather than the how question.
0:38
Specifying the software requirements is a crucial phase of the software engineering process. It is so important that there are computer scientists specializing in this area, they're called requirements engineers. Let's discuss an example of software requirements.
0:55
Suppose that you were asked to develop a software system to help doctors keep electronic medical records for their patients.
1:03
In this case, you would need to first talk to the doctors to see what type of information they want to record, when this should be recorded, and how, and if they would need any additional functionality, for example, to search the medical records. In our case, we've been mostly developing Scratch programs for ourselves, so we didn't need to interview potential users. But even in this case, we would encourage you to always think about what it is you want to program, and write it down in a small paragraph.
1:33
This will also help you stick to your goals, and not get carried away with details that don't matter.
1:40
We now have a new programming challenge! We'll create a game for my friend, Callum, so it is important to find out what he wants.
1:49
I had a chat with him a few days ago and here are the notes that I kept during our discussion.
1:56
As you can see, some of these points have to do with Callum's gaming preferences, while others involve equipment that he has access to.
2:05
After studying these notes, I scribbled down different game ideas for Callum. My favorite is a game in which a helicopter will move across the sky, avoiding the clouds.
2:16
We can move the helicopter with the keyboard arrows.
2:20
I presented my idea to Callum, who really liked it, but he also had an additional request, that we have different cloud configurations so that the game is a bit more challenging.
2:32
So now that we have clarified what kind of game we're going to build, let's write down a general description of the program.
2:40
The game involves controlling a helicopter with the keyboard arrows, so as to make it move across the sky while avoiding clouds. The sky may have different cloud configurations.
2:52
In addition to this description, we'll take into account the following requirements.
3:06
Good stuff! Now that we've gathered all our requirements, we can move on to design and implement our program.