Worksheet: J8
Worksheets are self-guided activities that reinforce lectures. They are not graded for accuracy, only for completion.
Create a new repo using all the steps in Lab 0 called yourgitusername-worksheet-J8
. Submit a file called worksheet-J8.md
to BB.
Questions
-
What is the difference between a functional and non-functional requirement?
Reveal Solution
Both must be testable and capture behavior of the system, but a non-functional requirement is usually some kind of “-ity” (usability, compatibility, security, speed, performance, etc.) that isn’t generally something that a single developer could code up (like, for example, a widget on a GUI).
-
Give two example functional requirements for Instagram.com.
Reveal Solution
Many options here;
- The system shall allow the user to upload a photo to their account.
- The system shall allow the user to ‘like’ photos of users they are following
-
Give two example non-functional requirements for Instagram.com.
Reveal Solution
Many options here;
- The system shall encrypt all passwords stored in the database
- The system shall load each image within one second
-
Draw a use case diagram for Instagram.com with at least three uses cases shown, where at least one use case extends another, and there are two actors.
Reveal Solution
-
Why has software engineering evolved to often embrace agile development models over waterfall ones?
Reveal Solution
It is generally impossible to obtain clear, consistent, and complete requirements up-front at the start of a software project, as the waterfall model assumes. Therefore, agile approaches can be used to have flexibility around the requirements discovery that inevitably happens during the software development process.
-
Draw a diagram where there are at least two interconnected paths: a critical path, and at least one non-critical path.
Reveal Solution