File: use_cases.html

package info (click to toggle)
camstream 0.27%2Bdfsg-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 12,320 kB
  • ctags: 5,393
  • sloc: cpp: 17,031; sh: 8,154; asm: 455; ansic: 440; makefile: 343
file content (116 lines) | stat: -rw-r--r-- 4,726 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<html>
<head>
<title>CamStream Use Cases</title>
<link rel="stylesheet" href="../tech.css" type="text/css">
</head>

<body>

<p><a href="../index.html" target="_top">Frames</a></p>

<h1>CamStream Use Cases</h1>

<p>Use Cases are the first step in writing software requirements. They
describe some typical scenarios in which your software is going to be used
(at least, you think so). They help you to get a global picture of what your
software is supposed to do. Basicly, you are describing your audience.</p>

<p>Also it helps you in limiting your scope. It's all to easy adding
features to your program and end up with a monstrosity that can do anything,
including the dishes and filling out your tax return form, but not what you
had in mind in the first place.</p>

<h2>Use Case #1: Your average webcamming user</h2>

<p>John likes to chat regularely on the Internet with IRC, ICQ and other
messanging systems. He plays a MUD regularely and interacts with people on a
daily basis, but he likes to know who he's talking to and doesn't mind
showing his own face, so he sets up an auto-refreshing HTML page on a
website and wants to upload a snapshot of himself at regular intervals of
about a minute. When he's done talking he stops the uploading.</p>

<h2>Use Case #2: Security camera</h2>

<p>Paul is a bit paranoid. After having been burgled three times, he's set
up an alarm with IR detectors, put 2 extra locks on his door and placed 5
webcams in and around the house. He wants to take a snapshot of all webcams
at 10 second intervals and save them to disk. In case there's a change in an
image (for example, because someone is walking through the garden), he wants
an extra command to be executed such that he can be mailed at work or a
picture SMS send to his mobile phone. He also likes the system to remain
running 24 hours a day, and recover from temporary failures.</p>

<h2>Use Case #3: Landscaping</h2>

<p>Irma has a house on a cliff at sea with a fantastic view, especially at
sunset. She likes to share this with others around the globe, so she sets
up a webcam looking outside, and puts up a simple webpage with shows the
latest snapshot. The image is refreshed every 30 minutes, but the page is
not autorefreshing since she doesn't think that is important. Also, so wants
an archive of all snapshots so that she can browse through them and select
the most interesting pictures that she will put on a separate gallery
webpage.</p>

<h2>Use Case #4: TV watching</h2>

<p>Carol is completely mad of the latest soap series and especially in love
with one of the main actors. She likes to watch the show and take snapshots
any moment she wants. She has hundreds of snapshots and uses them to post
them to a fansite she set up.</p>

<h2>Use Case #5: Recording shows</h2>

<p>George is an amateur filmer; unfortunately, he hasn't got the latest in
video equipment, so he still has an analog video camera. Once he has
recorded something 'in the field', he wants to put it on harddisk and edit
it with a video editing tool. Naturally, sound has to be recorded as well.
Also, some indoor shooting is done using a webcam.</p>

<h2>Use Case #6: Astronomy</h2>

<p>Xavier is a fervent amateur astronomer; he likes to go out at night 
and point his telescope at the skies. In order to make some pictures of 
the celestial object he sees he wants to use a webcam to capture images.
However, due to the low light conditions, noise and other problems he 
wants to capture a series of images, which he can then post-process. For
him, it's important the images contain as little as compression and/or
artefacts as possible.</p>

<hr>

<p>So there you have it, a few examples of what people can, and will do with
webcams. In fact 6 use cases are already a bit too much, but we don't have
to write every feature for version 0.01.</p>

<p>From this we can already derive a few global requirements:

<ul>
  <li>The software must support multiple webcams;</li>
  <li>We need FTP uploading;</li>
  <li>We must be able to save images to disk, in various formats;</li>
  <li>We must be able to record movies to disk;</li>
  <li>We need motion detection;</li>
  <li>Record from audio sources; multiple sources even, one for each
      webcam.</li>
</ul>
</p>

<p>Equally important is deciding on what your programs should <b>NOT</b> do.
In this case, it includes:

<ul>
  <li>Writing/parsing HTML pages;</li>
  <li>Video editing;</li>
  <li>Performing image transformations (panning, zooming, rotating, etc);</li>
  <li>Programmed video-recording (aka it's not a software VCR).</li>
</ul>

</p>
  
<p>Now, that you've determined all this, it's time to move on to 
<a href="system_req.html">System requirements</a>.

</body>
</html>