diff --git a/livesupport/doc/model/Architecture.svg b/livesupport/doc/model/Architecture.svg new file mode 100644 index 000000000..9bacf14e6 --- /dev/null +++ b/livesupport/doc/model/Architecture.svg @@ -0,0 +1,179 @@ + + + + diff --git a/livesupport/doc/model/Authentication/Authenticateuser_SequenceDiagram.svg b/livesupport/doc/model/Authentication/Authenticateuser_SequenceDiagram.svg new file mode 100644 index 000000000..f0749190e --- /dev/null +++ b/livesupport/doc/model/Authentication/Authenticateuser_SequenceDiagram.svg @@ -0,0 +1,139 @@ + + + + diff --git a/livesupport/doc/model/Authentication/Concepts.svg b/livesupport/doc/model/Authentication/Concepts.svg new file mode 100644 index 000000000..40419681f --- /dev/null +++ b/livesupport/doc/model/Authentication/Concepts.svg @@ -0,0 +1,259 @@ + + + + diff --git a/livesupport/doc/model/Authentication/EssentialUseCases.svg b/livesupport/doc/model/Authentication/EssentialUseCases.svg new file mode 100644 index 000000000..e9d9969d2 --- /dev/null +++ b/livesupport/doc/model/Authentication/EssentialUseCases.svg @@ -0,0 +1,63 @@ + + + + diff --git a/livesupport/doc/model/Authentication/Systembehaviour.svg b/livesupport/doc/model/Authentication/Systembehaviour.svg new file mode 100644 index 000000000..db94174e9 --- /dev/null +++ b/livesupport/doc/model/Authentication/Systembehaviour.svg @@ -0,0 +1,145 @@ + + + + diff --git a/livesupport/doc/model/Authentication/index.html b/livesupport/doc/model/Authentication/index.html new file mode 100644 index 000000000..38ba10327 --- /dev/null +++ b/livesupport/doc/model/Authentication/index.html @@ -0,0 +1,500 @@ + + +
+ +function category + |
+ meaning + |
+
---|---|
evident + |
+ Should perform, and the user should be cognizant
+that it is performed + |
+
hidden + |
+ Should perform, but not visible to the users. + |
+
frill + |
+ Optional + |
+
ref# + |
+ function + |
+ category + |
+
---|---|---|
F1.1 + |
+ Authenticate users + |
+ evident + |
+
+ |
+ + |
+ + |
+
ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|
A1.1 + |
+ operating system platform + |
+ Linux + |
+ must + |
+
A1.2 + |
+ local interface + |
+ locally callable API + |
+ must + |
+
A1.3 + |
+ remote interface + |
+ remote interface via some RPC method like
+XML-RPC or SOAP + |
+ want + |
+
+ |
+ + |
+ + |
+ + |
+
ref# + |
+ function + |
+ ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|---|---|
+ |
+ + |
+ + |
+ + |
+ + |
+ + |
+
ref# | +UC-1 | +
use case | +Authenticate user | +
type | +primary, essential | +
actors | +User | +
purpose | +Authenticate a user | +
overview | +The user contacts the Authentication module with +the intention of verifying his integrity. | +
references | +F1.1 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +User connects to the authentication component
+with the intention of authenticating + |
+ + |
+ + |
+
2. | +The User provides authentication +information | +3. | +The system checks the authentication information +againts its internal database, and informs the user if the provided +information was correct. | +
+ |
+ + |
+ + |
+ + |
+
concept + |
+ description + |
+
---|---|
Authentication database + |
+ A database containing authentication
+information, against which user-sent authentication information can be
+checked. + |
+
Authentication + |
+ Component responsible for doing the
+authentications + |
+
Authentication info + |
+ The information a user sends during
+authentication, provides the basis for authentication + |
+
User + |
+ The party that wants to authenticate + |
+
Authentication interface + |
+ The local or remote interface for authentications + |
+
+ |
+ + |
+
source + |
+ association + |
+ target + |
+ description + |
+
---|---|---|---|
Authentication + |
+ Checks authentication info in + |
+ Authentication database + |
+ + |
+
Authentication database + |
+ Stores + |
+ Authentication info + |
+ + |
+
User + |
+ Contains + |
+ Authentication info + |
+ + |
+
User + |
+ Authenticates by + |
+ Authentication interface + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
Name + |
+ authenticate +(authInfo : AuthenticationInfo) +: boolean + |
+ |
Responsibilities + |
+ Check if the the
+provided authentication info is recognized. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-1 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none | +|
Output + |
+ true if the provided
+authentication is recognized, false otherwise + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
function category + |
+ meaning + |
+
---|---|
evident + |
+ Should perform, and the user should be cognizant
+that it is performed + |
+
hidden + |
+ Should perform, but not visible to the users. + |
+
frill + |
+ Optional + |
+
ref# + |
+ function + |
+ category + |
+
---|---|---|
F1.1 + |
+ Store audio clips + |
+ evident + |
+
F1.2 + |
+ Provide seekable access to audio data + |
+ evident + |
+
F1.3 + |
+ Delete stored clips + |
+ evident + |
+
F1.4 + |
+ Update stored clips + |
+ evident + |
+
F1.5 + |
+ Search Audio clips by querying metadata + |
+ evident + |
+
+ |
+ + |
+ + |
+
ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|
A1.1 + |
+ operating system platform + |
+ Linux + |
+ must + |
+
A1.2 + |
+ local interface + |
+ locally callable API + |
+ must + |
+
A1.4 + |
+ supported audio formats + |
+ Ogg Vorbis, MP3, wav + |
+ must + |
+
A1.5 + |
+ file system level interface + |
+ adding, updated and delete from the local
+storage can be done by moving files within the file system by legacy
+tools + |
+ frill + |
+
A1.6 + |
+ uniquely identifiable Audio clips + |
+ all audio clips should be uniquely identifiable,
+even when moved among Local storage systems + |
+ must + |
+
+ |
+ + |
+ + |
+ + |
+
ref# + |
+ function + |
+ ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|---|---|
F1.2 + |
+ Provide seekable access to audio data + |
+ A1.3 + |
+ provide file handle + |
+ provide randomly seekable file level access to
+raw
+audio data + |
+ must + |
+
+ |
+ + |
+ + |
+ + |
+ + |
+ + |
+
ref# | +UC-1 | +
use case | +Store or update Audio clip + |
+
type | +primary, essential | +
actors | +Storage maintainer | +
purpose | +To store a new Audio clip in the local storage,
+or update (replace) an already stored Audio clip + |
+
overview | +The Storage maintainer contacts the Local
+storage with the aim
+of uploading and storing a new Audio Clip. If the uploaded Audio clip
+is already stored in Local storage (with respect of having the same
+unique id), the stored one is replaced with the uploaded one. + |
+
references | +F1.1, F1.4, A1.6 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Storage maintainer connects to the Local storage
+with the
+intention of storing an Audio clip + |
+ + |
+ + |
+
2. | +The Storage maintainer provides authentication +information | +3. | +The system authenticates the Storage maintainer
+and grants
+access. + |
+
4. + |
+ The Storage maintainer presents the new Audio
+clip data,
+including raw audio data and metadata + |
+ 5. + |
+ The system verifies the received data + |
+
+ |
+ + |
+ 6.1 + |
+ If the presented Audio clip does not contain a
+unique id, one is generated. + |
+
+ |
+ + |
+ 6.2 + |
+ If the presented Audio clip contains a unique
+id, and there already is an Audio clip stored with the same id, the
+stored one is replaced with the uploaded Audio clip. + |
+
+ |
+ + |
+ 7. + |
+ The system stores the received Audio clip and
+notifies the Storage maintainer of the actions taken and the unique id
+of the stored clip. + |
+
8. + |
+ The Storage maintainer disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-2 | +
use case | +Delete Audio clip + |
+
type | +primary, essential | +
actors | +Storage maintainer | +
purpose | +To delete an existing Audio clip in the local
+storage + |
+
overview | +The Storage maintainer contacts the Local
+storage with the aim
+of deleting an existing Audio Clip + |
+
references | +F1.3 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Storage maintainer connects to the Local storage
+with the
+intention of deleting an Audio clip + |
+ + |
+ + |
+
2. | +The Storage maintainer provides authentication +information | +3. | +The system authenticates the Storage maintainer
+and grants
+access. + |
+
4. + |
+ The Storage maintainer presents the unique id of
+an Audio clip stored in Local storage for deletion + |
+ 5. + |
+ The system deletes the Audio clip corresponding
+to the presented unique id. + |
+
6. + |
+ The Storage maintainer disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-3 | +
use case | +Update Audio clip metadata + |
+
type | +primary, essential | +
actors | +Storage maintainer | +
purpose | +To update the metadata of an Audio clip, without
+uploading raw audio data again. + |
+
overview | +The Storage maintainer contacts the Local
+storage with the aim
+of updating the metadata for an already stored Audio clip + |
+
references | +F1.4 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Storage maintainer connects to the Local storage
+with the
+intention of updating the metadata for an Audio clip + |
+ + |
+ + |
+
2. | +The Storage maintainer provides authentication +information | +3. | +The system authenticates the Storage maintainer
+and grants
+access. + |
+
4. + |
+ The Storage maintainer presents the unique id of
+an Audio clip stored in Local storage and the new metadata for that
+Audio clip + |
+ 5. + |
+ The system verifies the clip id and the metadata + |
+
+ |
+ + |
+ 6. + |
+ The system replaces the metadata of the Audio
+clip with the presented one + |
+
7. + |
+ The Storage maintainer disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-4 | +
use case | +Access raw audio data + |
+
type | +primary, essential | +
actors | +Audio player + |
+
purpose | +To access raw audio of Audio clips stored in the
+Local storage. + |
+
overview | +The Audio player accesses the raw audio data
+with the ability of randomly seeking in it. + |
+
references | +F1.2, A1.3 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Audio player connects to the Local storage with
+the
+intention of accessing raw audio data + |
+ + |
+ + |
+
2. | +The Audio player provides authentication +information | +3. | +The system authenticates the Audio player and
+grants
+access. + |
+
4. + |
+ The Audio player presents the unique id of an
+Audio clip stored in Local storage that he wants to access + |
+ 5. + |
+ The systems looks up the Audio clip, and
+provides a seekable handle to the Audio player + |
+
6. + |
+ The Audio player accesses the raw audio data,
+including seeking in it. + |
+ + |
+ + |
+
7. + |
+ The Audio player closes it's access and
+disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-5 | +
use case | +Search in metadata + |
+
type | +primary, essential | +
actors | +Storage maintainer + |
+
purpose | +To search in the metadata of audio clips + |
+
overview | +The Storage maintainer searches through the
+stored Audio clips by specifying search criteria for the metadata of
+the clips + |
+
references | +F1.5 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Storage maintainer connects to the Local storage
+with the
+intention of searching. + |
+ + |
+ + |
+
2. | +The Storage maintainer provides authentication +information | +3. | +The system authenticates the Storage maintainer
+and grants
+access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides a way of specifying search
+criteria with respect to the existing metadata structures + |
+
5. + |
+ The Storage maintainer specifies a search
+criteria + |
+ 6. + |
+ The system searches through the metadata of
+contained Audio clips, and presents a list of matches + |
+
7. + |
+ The Storage maintainer refines his search and
+searches again + |
+ 8. + |
+ The system does a new search according to the
+refined criteria, and presents the results to the Storage maintainer + |
+
9. + |
+ The storage maintainer reviews the results + |
+ + |
+ + |
+
10. + |
+ The storage maintainer disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
concept + |
+ description + |
+
---|---|
Authentication + |
+ Component responsible for doing the
+authentications + |
+
Unique Id + |
+ A globally unique identifier used to to
+differentiate between objects that might even be created on different
+systems. Even though the whole space of Id is not known, the Ids must
+be unique. + |
+
MetaData + |
+ Data about the AudioClip + |
+
SearchCriteria + |
+ Describes the search parameters when doing a
+search on the MetaData + |
+
AudioClip + |
+ The basic unit of audio handled by Local storage + |
+
RawAudioData + |
+ The binary audio data contained in an Audio clip + |
+
Storage maintainer + |
+ The actor that maintains the contents of the
+Local storage + |
+
Audio player + |
+ The actor that accesses the raw audio contained
+in the Local storage + |
+
+ |
+ + |
+
source + |
+ association + |
+ target + |
+ description + |
+
---|---|---|---|
AudioClip + |
+ Is identified by + |
+ UniqueId + |
+ This is a globally unique id for each Audio clip + |
+
AudioClip + |
+ Is described by + |
+ MetaData + |
+ + |
+
AudioClip + |
+ Contains + |
+ RawAudioData + |
+ + |
+
Storage maintainer + |
+ Is Authenticated by + |
+ Authentication + |
+ + |
+
Storage maintainer + |
+ Searches in + |
+ MetaData + |
+ + |
+
Storage maintainer + |
+ Searches by + |
+ SearchCriteria + |
+ The storage maintainer specifies such a
+SearchCriteria when doing a search on MetaData + |
+
Storage maintainer + |
+ Manages + |
+ AudioClip + |
+ This includes uploading, updating and deleting
+AudioClips + |
+
Audio player + |
+ Is Authenticated by + |
+ Authentication + |
+ + |
+
Audio player + |
+ Accesses + |
+ RawAudioData + |
+ This is a seekable access to raw audio data. + |
+
+ |
+ + |
+ + |
+ + |
+
Name + |
+ existsAudioClip +(audioClipId : UniqueId) +: boolean + |
+ |
Responsibilities + |
+ Check if an Audio clip
+with the specified id is stored in local storage + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ none + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ none | +|
Output + |
+ true if an Audio clip
+with the specified id is stored in Local storage, false otherwise + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ storeAudioClip +(audioClip : AudioClip) +: UniqueId + |
+ |
Responsibilities + |
+ Store a new audio clip
+or replace an existing one. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-1 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if this is an AudioClip
+update, and the RawAudioData of the already existing AudioClip is is
+being accessed (see UC-4), report as an error. + |
+ |
Output + |
+ the unique id of the
+stored audio clip + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
if this is a new audio clip: | +an AudioClip object is created | +instance creation + |
+
+ |
+ a UniqueId is generated for the new clip + |
+ instance creation + |
+
+ |
+ the UniqueId is associated with the AudioClip + |
+ association formed + |
+
+ |
+ a MetaData object is created and filled with the
+presented contents + |
+ instance creation + |
+
+ |
+ the MetaData is associated with the AudioClip + |
+ association formed + |
+
+ |
+ a RawAudioData object is created and filled with
+the presented contents + |
+ instance creation + |
+
+ |
+ the RawAudioData is associated with the AudioClip + |
+ association formed + |
+
if the clip already existed: + |
+ the contents of MetaData for the AudioClip are
+replaced by the presented contents + |
+ attribute modification + |
+
+ |
+ the contents of RawAudioData for the AudioClip
+are replaced by the presented contents + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ deleteAudioClip +(audioClipId : UniqueId) +: void + |
+ |
Responsibilities + |
+ Delete an existing Audio
+clip + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-2 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip with
+the specified id exists, report as an error. +if the RawAudioData for AudioClip is being accessed (see UC-4), report +as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ the UniqueId for the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ the MetaData for the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ the RawAudioData for the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ + |
+ + |
+
Name + |
+ updateAudioClipMetadata +(audioClipId : UniqueId, +newMetadata : MetaData) +: void + |
+ |
Responsibilities + |
+ Update the metadata of
+an Audio clip stored in Local storage + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-3 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip with
+the specified id exists, report as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ the contents of MetaData for the AudioClip are
+replaced with the presented contents + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ accessRawAudioData +(audioClipId : UniqueId) +: RawAudioData + |
+ |
Responsibilities + |
+ Get access to raw audio
+data of an AudioClip + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip with
+the specified id exists, report as an error. + |
+ |
Output + |
+ the RawAudioData for the
+AudioClip identified with the supplied UniqueId + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ the currentlyAccessing attribute for
+RawAudioData for AudioClip is increased by one + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ releaseRawAudioData +(rawAudioData : RawAudioData) +: void + |
+ |
Responsibilities + |
+ Release access for raw
+audio data + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if the specified
+RrawAudioData is not stored in Local storage, indicate as an error + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ the currentlyAccessing attribute for
+RawAudioData for AudioClip is decreased by one + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ searchMetadata +(criteria : SearchCriteria) +: UniqueId + |
+ |
Responsibilities + |
+ Search through the
+metadata of stored AudioClips, and return all matching clip ids + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-5 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ A range of Audio clip
+ids, for which MetaData matches the supplied search criteria + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ getAudioClip +(audioClipId : UniqueId) +: AudioClip + |
+ |
Responsibilities + |
+ Return the contents of
+an Audio clip. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ see Playlist editor + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip by the
+specified id exists, report as an error. + |
+ |
Output + |
+ The Audio clip,
+specified by the supplied id. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
function category + |
+ meaning + |
+
---|---|
evident + |
+ Should perform, and the user should be cognizant
+that it is performed + |
+
hidden + |
+ Should perform, but not visible to the users. + |
+
frill + |
+ Optional + |
+
ref# + |
+ function + |
+ category + |
+
---|---|---|
F1.1 + |
+ Store audio clips + |
+ evident + |
+
F1.2 + |
+ Provide remote access to audio data + |
+ evident + |
+
F1.3 + |
+ Delete stored clips + |
+ evident + |
+
F1.4 + |
+ Update stored clips + |
+ evident + |
+
F1.5 + |
+ Search Audio clips by querying metadata + |
+ evident + |
+
+ |
+ + |
+ + |
+
ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|
A1.1 + |
+ operating system platform + |
+ Linux + |
+ must + |
+
A1.2 + |
+ remote interface + |
+ the Media archive is remotely accessible + |
+ must + |
+
A1.3 + |
+ supported audio formats + |
+ Ogg Vorbis, MP3, wav + |
+ must + |
+
A1.4 + |
+ uniquely identifiable Audio clips + |
+ all audio clips should be uniquely identifiable,
+even when moved among Media archive systems + |
+ must + |
+
A1.6 + |
+ consistent downloads during updates + |
+ when an audio clip is being updated while also
+being downloaded, make sure that the downloads can continue with the
+original content + |
+ frill + |
+
+ |
+ + |
+ + |
+ + |
+
ref# + |
+ function + |
+ ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|---|---|
F1.2 + |
+ Provide remote access to audio data | +A1.5 + |
+ partial downloads + |
+ provide the possibility of interrupted (partial)
+downloads of raw audio data + |
+ must + |
+
+ |
+ + |
+ + |
+ + |
+ + |
+ + |
+
ref# | +UC-1 | +
use case | +Store or update Audio clip + |
+
type | +primary, essential | +
actors | +Archive maintainer | +
purpose | +To store a new Audio clip in the media archive,
+or update (replace) an already stored Audio clip + |
+
overview | +The Archive maintainer contacts the Media
+archive with the aim
+of uploading and storing a new Audio Clip. If the uploaded Audio clip
+is already stored in Media archive (with respect of having the same
+unique id), the stored one is replaced with the uploaded one. + |
+
references | +F1.1, F1.4, A1.4 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Archive maintainer connects to the Media archive
+with the
+intention of storing an Audio clip + |
+ + |
+ + |
+
2. | +The Archive maintainer provides authentication +information | +3. | +The system authenticates the Archive maintainer
+and grants
+access. + |
+
4. + |
+ The Archive maintainer presents the new Audio
+clip data,
+including raw audio data and metadata + |
+ 5. + |
+ The system verifies the received data + |
+
+ |
+ + |
+ 6.1 + |
+ If the presented Audio clip does not contain a
+unique id, one is generated. + |
+
+ |
+ + |
+ 6.2 + |
+ If the presented Audio clip contains a unique
+id, and there already is an Audio clip stored with the same id, the
+stored one is replaced with the uploaded Audio clip. + |
+
+ |
+ + |
+ 7. + |
+ The system stores the received Audio clip and
+notifies the Archive maintainer of the actions taken and the unique id
+of the stored clip. + |
+
8. + |
+ The Archive maintainer disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-2 | +
use case | +Delete Audio clip + |
+
type | +primary, essential | +
actors | +Archive maintainer | +
purpose | +To delete an existing Audio clip in the media
+archive + |
+
overview | +The Archive maintainer contacts the Media
+archive with the aim
+of deleting an existing Audio Clip + |
+
references | +F1.3 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Archive maintainer connects to the Media archive
+with the
+intention of deleting an Audio clip + |
+ + |
+ + |
+
2. | +The Archive maintainer provides authentication +information | +3. | +The system authenticates the Archive maintainer
+and grants
+access. + |
+
4. + |
+ The Archive maintainer presents the unique id of
+an Audio clip stored in Media archive for deletion + |
+ 5. + |
+ The system deletes the Audio clip corresponding
+to the presented unique id. + |
+
6. + |
+ The Archive maintainer disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-3 | +
use case | +Update Audio clip metadata + |
+
type | +primary, essential | +
actors | +Archive maintainer | +
purpose | +To update the metadata of an Audio clip, without
+uploading raw audio data again. + |
+
overview | +The Archive maintainer contacts the Media
+archive with the aim
+of updating the metadata for an already stored Audio clip + |
+
references | +F1.4 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Archive maintainer connects to the Media archive
+with the
+intention of updating the metadata for an Audio clip + |
+ + |
+ + |
+
2. | +The Archive maintainer provides authentication +information | +3. | +The system authenticates the Archive maintainer
+and grants
+access. + |
+
4. + |
+ The Archive maintainer presents the unique id of
+an Audio clip stored in Media archive and the new metadata for that
+Audio clip + |
+ 5. + |
+ The system verifies the clip id and the metadata + |
+
+ |
+ + |
+ 6. + |
+ The system replaces the metadata of the Audio
+clip with the presented one + |
+
7. + |
+ The Archive maintainer disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-4 | +
use case | +Download audio data + |
+
type | +primary, essential | +
actors | +Archive client + |
+
purpose | +To download raw audio data stored in the Media
+archive + |
+
overview | +The Archive client downloads the raw audio data. + |
+
references | +F1.2, A1.3 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Archive client connects to the Media archive
+with
+the
+intention of downloading raw audio data + |
+ + |
+ + |
+
2. | +The Archive client provides authentication +information | +3. | +The system authenticates the Archive client and
+grants
+access. + |
+
4. + |
+ The Archive client presents the unique id of an
+Audio clip stored in Media archive that he wants to download + |
+ 5. + |
+ The systems looks up the Audio clip, and starts
+to send the raw audio content as a stream + |
+
6. + |
+ The Archive client receives the stream of raw
+audio data and saves it. + |
+ + |
+ + |
+
7. + |
+ The Archive client closes it's access and
+disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-5 | +
use case | +Search in metadata + |
+
type | +primary, essential | +
actors | +Archive client + |
+
purpose | +To search in the metadata of audio clips + |
+
overview | +The Archive client searches through the
+stored Audio clips by specifying search criteria for the metadata of
+the clips + |
+
references | +F1.5 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Archive client connects to the Media archive
+with the
+intention of searching. + |
+ + |
+ + |
+
2. | +The Archive cleint provides authentication +information | +3. | +The system authenticates the Archive client
+and grants
+access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides a way of specifying search
+criteria with respect to the existing metadata structures + |
+
5. + |
+ The Archive client specifies a search
+criteria + |
+ 6. + |
+ The system searches through the metadata of
+contained Audio clips, and presents a list of matches + |
+
7. + |
+ The Archive client refines his search and
+searches again + |
+ 8. + |
+ The system does a new search according to the
+refined criteria, and presents the results to the Archive client + |
+
9. + |
+ The Archive client reviews the results + |
+ + |
+ + |
+
10. + |
+ The Archive client disconnects + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
concept + |
+ description + |
+
---|---|
Authentication + |
+ Component responsible for doing the
+authentications + |
+
Unique Id + |
+ A globally unique identifier used to to
+differentiate between objects that might even be created on different
+systems. Even though the whole space of Id is not known, the Ids must
+be unique. + |
+
MetaData + |
+ Data about the AudioClip + |
+
SearchCriteria + |
+ Describes the search parameters when doing a
+search on the MetaData + |
+
AudioClip + |
+ The basic unit of audio handled by Media archive + |
+
RawAudioData + |
+ The binary audio data contained in an Audio clip + |
+
Archive maintainer + |
+ The actor that maintains the contents of the
+Media archive + |
+
Archive client + |
+ The actor that accesses the data stored in the
+Media archive + |
+
+ |
+ + |
+
source + |
+ association + |
+ target + |
+ description + |
+
---|---|---|---|
AudioClip + |
+ Is identified by + |
+ UniqueId + |
+ This is a globally unique id for each Audio clip + |
+
AudioClip + |
+ Is described by + |
+ MetaData + |
+ + |
+
AudioClip + |
+ Contains + |
+ RawAudioData + |
+ + |
+
Archive maintainer + |
+ Is Authenticated by + |
+ Authentication + |
+ + |
+
Archive client + |
+ Searches in + |
+ MetaData + |
+ + |
+
Archive client + |
+ Searches by + |
+ SearchCriteria + |
+ The Archive client specifies such a
+SearchCriteria when doing a search on MetaData + |
+
Archive maintainer + |
+ Manages + |
+ AudioClip + |
+ This includes uploading, updating and deleting
+AudioClips + |
+
Archive client + |
+ Is Authenticated by + |
+ Authentication + |
+ + |
+
Archice client + |
+ Downloads + |
+ RawAudioData + |
+ Download RawAudioData as a binary stream. + |
+
+ |
+ + |
+ + |
+ + |
+
Name + |
+ storeAudioClip +(audioClip : AudioClip) +: UniqueId + |
+ |
Responsibilities + |
+ Store a new audio clip
+or replace an existing one. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-1 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if this is an AudioClip +update, and the RawAudioData of the already existing TODO: handle the +case of the raw audio data of the Audio clip is +currently +being downloaded (see UC-4, A1.6) | +|
Output + |
+ the unique id of the
+stored audio clip + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
if this is a new audio clip: | +an AudioClip object is created | +instance creation + |
+
+ |
+ a UniqueId is generated for the new clip + |
+ instance creation + |
+
+ |
+ the UniqueId is associated with the AudioClip + |
+ association formed + |
+
+ |
+ a MetaData object is created and filled with the
+presented contents + |
+ instance creation + |
+
+ |
+ the MetaData is associated with the AudioClip + |
+ association formed + |
+
+ |
+ a RawAudioData object is created and filled with
+the presented contents + |
+ instance creation + |
+
+ |
+ the RawAudioData is associated with the AudioClip + |
+ association formed + |
+
if the clip already existed: + |
+ the contents of MetaData for the AudioClip are
+replaced by the presented contents + |
+ attribute modification + |
+
+ |
+ the contents of RawAudioData for the AudioClip
+are replaced by the presented contents + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ deleteAudioClip +(audioClipId : UniqueId) +: void + |
+ |
Responsibilities + |
+ Delete an existing Audio
+clip + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-2 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip with
+the specified id exists, report as an error. +TODO: handle the case of the raw audio data of the Audio clip is +currently +being downloaded (see UC-4, A1.6) + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ the UniqueId for the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ the MetaData for the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ the RawAudioData for the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ the AudioClip is deleted + |
+ instance deletion + |
+
+ |
+ + |
+ + |
+
Name + |
+ updateAudioClipMetadata +(audioClipId : UniqueId, +newMetadata : MetaData) +: void + |
+ |
Responsibilities + |
+ Update the metadata of
+an Audio clip stored in Media archive + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-3 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip with
+the specified id exists, report as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ the contents of MetaData for the AudioClip are
+replaced with the presented contents + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ downloadRawAudioData +(audioClipId : UniqueId, +offset : int) +: RawAudioData + |
+ |
Responsibilities + |
+ Get access to raw audio
+data of an AudioClip as a data stream. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip with
+the specified id exists, report as an error. + |
+ |
Output + |
+ the RawAudioData as a
+stream for the
+AudioClip identified with the supplied UniqueId, started at the
+specified offset. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ searchMetadata +(criteria : SearchCriteria) +: UniqueId + |
+ |
Responsibilities + |
+ Search through the
+metadata of stored AudioClips, and return all matching clip ids + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-5 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ A range of Audio clip
+ids, for which MetaData matches the supplied search criteria + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
function category + |
+ meaning + |
+
---|---|
evident + |
+ Should perform, and the user should be cognizant
+that it is performed + |
+
hidden + |
+ Should perform, but not visible to the users. + |
+
frill + |
+ Optional + |
+
ref# + |
+ function + |
+ category + |
+
---|---|---|
F1.1 + |
+ Create and edit playlists + |
+ evident + |
+
F1.2 + |
+ Access to Local storage + |
+ hidden + |
+
F1.3 + |
+ Access to Media archive + |
+ hidden + |
+
F1.4 + |
+ Search in Local storage or Media archive + |
+ evident + |
+
F1.5 + |
+ Upload playlist to Scheduler daemon + |
+ evident + |
+
F1.6 + |
+ Smooth transitions between Audio clips + |
+ evident + |
+
F1.7 + |
+ Play back created playlist + |
+ evident + |
+
F1.8 + |
+ Maintain configuration information + |
+ evident + |
+
+ |
+ + |
+ + |
+
ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|
A1.1 + |
+ operating system platform + |
+ Linux + |
+ must + |
+
A1.2 + |
+ easy to use user interface + |
+ intuitive user interface + |
+ must + |
+
A1.3 + |
+ supported audio formats + |
+ Ogg Vorbis, wav, possibly MP3 + |
+ must + |
+
A1.4 + |
+ Playlist support for Audio clips from Local +storage | +Created playlists may include audio sources from +Local storage | +must + |
+
A1.5 + |
+ Playlist support for Audio clips from Media
+archive + |
+ Created playlists may include audio sources from
+a remote Media archive + |
+ must + |
+
A1.6 + |
+ Playlist support for remotely accessible audio
+files + |
+ Created playlists may include remotely
+accessible audio sources, e.g. audio files downloadable via HTTP + |
+ must + |
+
A1.7 + |
+ Playlist support for audio streams + |
+ Created playlists may include remotely
+accessible audio streams, e.g. icecast or shoutcast streams + |
+ must + |
+
A1.12 + |
+ Playlist format + |
+ SMIL 2.0 + |
+ frill + |
+
A1.13 + |
+ Standalone GUI application + |
+ The Playlist editor is a standalone graphical
+user interface application + |
+ must + |
+
A1.14 + |
+ Supported audio interfaces + |
+ ALSA (maybe also OSS?) + |
+ must + |
+
+ |
+ + |
+ + |
+ + |
+
ref# + |
+ function + |
+ ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|---|---|
F1.6 + |
+ Smooth transitions between Audio clips + |
+ A1.8 + |
+ Fade-in / fade-out support + |
+ Support for fade-in / fade-out as a transitions,
+with customizable fade curve + |
+ must + |
+
F1.2 + |
+ Access to Local storage + |
+ A1.9 + |
+ Full access to Local storage + |
+ The Playlist editor is a user interface to Local
+storage, enabling uploading, deletion and updating of Audio clips in
+Local storage + |
+ must + |
+
F1.3 + |
+ Access to Media archive + |
+ A1.10 + |
+ Full access to Media archive + |
+ The Playlist editor is a user interface to Media
+archive, enabling
+uploading, deletion and updating of Audio clips in Media archive + |
+ must + |
+
F1.7 + |
+ Play back created playlist + |
+ A1.11 + |
+ Complete and partial playback + |
+ The Playlist editor provides the possibility of
+complete playback, and random seeks for the whole of the playlist
+duration + |
+ must + |
+
+ |
+ + |
+ + |
+ + |
+ + |
+ + |
+
ref# | +UC-1 | +
use case | +Create a Playlist + |
+
type | +primary, essential | +
actors | +Playlist maintainer + |
+
purpose | +To create a new, empty Playlist + |
+
overview | +The Playlist maintainer accesses the Playlist
+editor application with the purpose of creating a new, empty Playlist. + |
+
references | +F1.1 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
4. + |
+ The Playlist maintainer creates a new, empty
+playlist + |
+ 5. + |
+ The system creates a new, empty playlist. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-2 | +
use case | +Add an Audio clip to Local storage + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage + |
+
purpose | +To add a new Audio clip to local storage. + |
+
overview | +The Playlist maintainer accesses the Playlist
+editor application with the purpose of adding a new audio file to the
+Local storage associated with the Playlist editor. + |
+
references | +F1.2, A1.9 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
4. + |
+ The Playlist maintainer provides an audio file
+and corresponding metadata description. + |
+ 5. + |
+ The system receives the data, and contacts
+Local storage with the purpose of storing it. + |
+
+ |
+ + |
+ 6. + |
+ The system provides authentication information
+to Local storage + |
+
7. + |
+ The Local storage checks for the provided
+authentication information, and grants access. + |
+ 8. + |
+ The system presents the audio data and metadata
+to the Local storage + |
+
9. + |
+ The Local storage receives the provided audio
+file and metadata, and stores it, returning the unique id for the
+newly created Audio clip + |
+ 10. + |
+ The system receives the new unique id from Local
+storage, and presents it to the Playlist maintainer. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-3 | +
use case | +Delete an Audio clip from Local storage + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage + |
+
purpose | +To delete an Audio clip from local storage. + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of deleting an Audio clip stored in Local storage + |
+
references | +F1.2, A1.9 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides authentication information
+to Local storage + |
+
5. + |
+ The Local storage checks for the provided
+authentication information, and grants access. + |
+ + |
+ + |
+
6. + |
+ The Playlist maintainer selects an Audio clip
+from the Local storage through the Playlist manager + |
+ + |
+ + |
+
7. + |
+ The Playlist maintainer indicates the selected
+Audio clip to be deleted. + |
+ 8. + |
+ The system contacts Local storage with the
+selected Audio clip to be deleted. + |
+
9. + |
+ Local storage deletes the specified Audio clip + |
+ 10. + |
+ The system notifies the Playlist maintainer of
+the deletion of the selected Audio clip + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-4 | +
use case | +Update an Audio clip in Local storage + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage + |
+
purpose | +To update an already existing Audio clip in
+local storage. + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of replacing the data for an Audio clip in Local storage + |
+
references | +F1.2, A1.9 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides authentication information
+to Local storage + |
+
5. + |
+ The Local storage checks for the provided
+authentication information, and grants access. + |
+ + |
+ + |
+
6. + |
+ The Playlist maintainer selects an Audio clip
+from the Local storage through the Playlist editor. + |
+ + |
+ + |
+
7. + |
+ The Playlist maintainer presents the new audio
+data and metadata for the selected Audio clip. + |
+ 8. + |
+ The system receives the audio data and metadata
+for the new Audio clip. + |
+
+ |
+ + |
+ 9. + |
+ The system presents the new audio data and
+metadata for the specified Audio Clip to Local storage. + |
+
10. + |
+ The Local storage updates the specified Audio
+clips contents with the presented content, and notifies the system of
+this. + |
+ 11. + |
+ The system notifies the Playlist maintainer of
+the changes made. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-5 | +
use case | +Add or update an Audio clip to Media archive + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage, Media archive + |
+
purpose | +To add or update an Audio clip to Media archive + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of adding or updating an Audio clip already in Local storage to
+the remote Media archive + |
+
references | +F1.2, F1.3, A1.9, A1.10 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides authentication information +to the Local storage | +
5. + |
+ The Local storage checks for the provided +authentication information, and grants access. | ++ |
+ + |
+
6. + |
+ The Playlist maintainer selects an Audio clip
+from Local storage through the Playlist editor. + |
+ + |
+ + |
+
7. + |
+ The Playlist maintainer indicates the selected
+Audio clip to be added to the Media archive. + |
+ 8. + |
+ The system provides authentication information +to the Media archive | +
9. + |
+ The Media archive checks for the provided +authentication information, and grants access. | +10. + |
+ The system transfers the Audio clip from Local
+storage to the Media archive, adding it to the Media archive + |
+
11. + |
+ The Local storage provides the contents of the
+requested Audio clip to the system. + |
+ + |
+ + |
+
12. + |
+ Media archive receives the Audio clip | ++ |
+ + |
+
13.1 + |
+ If no Audio clip with the unique id of the
+supplied clip exists in Media archive, it is stored as a new Audio
+clip. The Media archive notifies the system of the acceptance of the
+Audio clip. + |
+ + |
+ + |
+
13.2 + |
+ If an Audio clip with the unique id of the +supplied clip already exists in +Media archive, its contens are updated with that of the supplied Audio +clip. The Media archive +notifies the system of the acceptance of the Audio clip. | ++ |
+ + |
+
+ |
+ + |
+ 14. + |
+ The system notifies the Playlist maintainer
+about the result of adding the Audio clip to the Media archive + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-6 | +
use case | +Search for Audio clips + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage, Media archive + |
+
purpose | +To search for Audio clips by metadata search
+criteria in both Local storage and Media archive + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of searching for Audio clips based on some metadata search
+criteria. The list if matching Audio clips is presented, both from
+Local storage and Media archive. + |
+
references | +F1.2, F1.3, F1.4, A1.9, A1.10 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides authentication information +to the Local storage | +
5. + |
+ The Local storage checks for the provided +authentication information, and grants access. | ++ |
+ + |
+
+ |
+ + |
+ 6. + |
+ The system provides authentication information +to the Media archive | +
7. + |
+ The Media archive checks for the provided +authentication information, and grants access. | +8. + |
+ The system provides an interface to enter search
+criteria + |
+
9. + |
+ The Playlist maintainer enters a search criteria. + |
+ 10. + |
+ The system executes a search with the search
+criteria on Local storage + |
+
11. + |
+ Local storage returns a list of marching Audio
+clips. + |
+ 12. + |
+ If the Media archive is accessible, the system
+executes a search on it with the search criteria + |
+
13. + |
+ The Media archive returns a list of matching
+Audio clips. + |
+ 14. + |
+ The system displays the list of matching Audio
+clips to the Playlist maintainer. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-7 | +
use case | +Mirror an Audio clip from a remote Media archive
+in Local storage + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage, Media archive + |
+
purpose | +To mirror an Audio clip stored in Media archive
+in Local storage + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of downloading and mirroring an Audio clip from the Media
+archive into Local storage. + |
+
references | +F1.1, F1.2, F1.3 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides authentication information
+to the Media archive + |
+
5. + |
+ The Media archive checks that the provided
+authentication information is correct, and grants access. + |
+ 6. + |
+ The system provides authentication information
+to Local storage + |
+
7. + |
+ Local storage checks that the provided +authentication information is correct, and grants access. | ++ |
+ + |
+
8. + |
+ The Playlist maintainer selects an Audio clip
+from the Media archive, via the Playlist editor, for mirroring. + |
+ 9. + |
+ The system accesses the Media archive,
+downloading the requested Audio clip. + |
+
10. + |
+ The Media archive presents the requested Audio
+clip + |
+ 11. + |
+ The system stores the downloaded Audio clip in
+Local storage + |
+
12. + |
+ Local storage stores the Audio clip + |
+ 13. + |
+ The system notifies the Playlist maintainer of
+the success of the operation. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-8 | +
use case | +Add an Audio clip to a Playlist + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage, Media archive + |
+
purpose | +To add an Audio clip to a Playlist, either from
+Local storage or the Media archive + |
+
overview | +The Playlist maintainer accesses the Playlist
+editor application with the purpose of adding an Audio clip to a
+Playlist. The Audio clip may reside in Local storage or a Media archive. +The details of the added Audio clip are stored locally, even if it's +from a remote Media archive. When adding a remote Audio clip (from +Media archive), the possibility is given to mirror the clip in Local +storage (see UC-7). + |
+
references | +F1.1, F1.2, F1.3 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
4. + |
+ The Playlist maintainer selects a Playlist. + |
+ + |
+ + |
+
+ |
+ + |
+ 5. + |
+ The system provides authentication information
+to Local storage + |
+
6. + |
+ Local storage checks that the provided +authentication information is correct, and grants access. | +7. + |
+ The system provides authentication information +to the Media archive | +
8. + |
+ The Media archive checks that the provided +authentication information is correct, and grants access. | ++ |
+ + |
+
9. + |
+ The Playlist maintainer selects an Audio clip,
+to be added to the Playlist. The Playlist manager also provides an
+offset in the playlist where he wants the Audio clip to be. + |
+ 10. + |
+ The system adds the selected Audio clip at the
+specified offset to the playlist. If this is overlapping with existing
+clips on all audio layers, the clip is added to an additional audio
+layer. + |
+
+ |
+ + |
+ 11. + |
+ If the added clip is from a remote Media
+archive, the Playlist editor is presented with a choice of downloading
+it to Local storage. + |
+
12. + |
+ The Playlist editor specifies if he wants the
+clip to be downloaded to Local storage. + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-9 | +
use case | +Move the position of an Audio clip in a Playlist + |
+
type | +primary, essential | +
actors | +Playlist maintainer + |
+
purpose | +To change the offset of when an Audio clip is
+played in a Playlist + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of changing the offset of an Audio clip in a Playlist. + |
+
references | +F1.1 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
4. + |
+ The Playlist maintainer selects a Playlist. + |
+ + |
+ + |
+
5. + |
+ The Playlist maintainer selects an Audio clip in
+the Playlist + |
+ + |
+ + |
+
6. + |
+ The Playlist maintainer moves the selected Audio
+clip to a new offset. + |
+ 7. + |
+ The system updates the offset information for
+the selected Audio clip. + |
+
8. + |
+ The Playlist maintainer moves the Audio clip to
+another layer. + |
+ 9. + |
+ The system moves the Audio clip to the new layer. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-10 | +
use case | +Edit the transition of an Audio clip + |
+
type | +primary, essential | +
actors | +Playlist maintainer + |
+
purpose | +To change the fade-in / fade-out of an Audio clip + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of changing the fade-in / fade-out of an Audio clip + |
+
references | +F1.1 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
4. + |
+ The Playlist maintainer selects a Playlist. + |
+ + |
+ + |
+
5. + |
+ The Playlist maintainer selects an Audio clip in
+the Playlist + |
+ + |
+ + |
+
6. + |
+ The Playlist maintainer edits the fade-in
+parameters of the Audio clip + |
+ 7. + |
+ The system updates the fade-in parameters of the
+Audio clip. + |
+
8. + |
+ The Playlist maintainer edits the fade-out
+parameters of the Audio clip + |
+ 9. + |
+ The system updated the fade-out parameters of
+the Audio clip. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-11 | +
use case | +Listen to a Playlist + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Local storage + |
+
purpose | +To preview a Playlist + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of listening to a Playlist, to verify that when it is played,
+it will have the desired effect. + |
+
references | +F1.7, A1.11, A1.14 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides authentication information
+to Local storage + |
+
5. + |
+ Local storage checks that the provided
+authentication information is correct, and grants access. + |
+ + |
+ + |
+
6. + |
+ The Playlist maintainer selects a Playlist. + |
+ + |
+ + |
+
7. + |
+ The Playlist maintainer starts to play the
+Playlist. + |
+ 8. + |
+ The system looks up the Audio clips to be played
+in the immediate future, and accesses them from Local storage. + |
+
9.1 + |
+ If the requested Audio clip is contained in
+Local storage, seekable access to the raw audio data of the requested
+Audio clips is provided + |
+ + |
+ + |
+
9.2 + |
+ If the requested Audio clip is not in Local
+storage, the system is notified. + |
+ + |
+ + |
+
+ |
+ + |
+ 10. + |
+ The system plays the raw audio data on the local
+audio interface if available, silence otherwise. + |
+
11. + |
+ The Playlist maintainer seeks into the Playlist + |
+ 12. + |
+ The system updates the offset where the audio
+clips are to be played from, and continues playing from there. + |
+
13. + |
+ The Playlist maintainer ends playing + |
+ 14. + |
+ The system release access to all accessed Audio
+clips from Local storage + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-12 | +
use case | +Upload a Playlist to a Scheduler daemon + |
+
type | +primary, essential | +
actors | +Playlist maintainer, Scheduler + |
+
purpose | +To publish a Playlist + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of uploading a Playlist to a Scheduler daemon, so that it would
+be executed at a specified time. + |
+
references | +F1.5 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
+ |
+ + |
+ 4. + |
+ The system provides authentication information
+to the Scheduler + |
+
5. + |
+ The Scheduler checks that the provided
+authentication information is correct, and grants access. + |
+ + |
+ + |
+
6. + |
+ The Playlist maintainer selects a Playlist. + |
+ + |
+ + |
+
7. + |
+ The Playlist maintainer indicates the selected
+Playlist to be uploaded to a Scheduler daemon, to be played at a
+specified time. + |
+ 8. + |
+ The system connects to the Scheduler with the
+specified Audio clip and time, and uploads the Playlist. + |
+
9. + |
+ The Scheduler receives the playlist, and
+schedules it for playing. The system is notified of this. + |
+ 10. + |
+ The system notifies the Playlist maintainer of
+the success of the operation. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-13 | +
use case | +Maintain configuration information + |
+
type | +primary, essential | +
actors | +Playlist maintainer + |
+
purpose | +To add, update or delete the systems that the
+Playlist editor knows about. + |
+
overview | +The
+Playlist maintainer accesses the Playlist editor application with the
+purpose of reviewing and possibly changing the registered system the
+Playlist editor connects to. These include Local storage, Media archive
+and Scheduler, but also other details, like the local audio interface. + |
+
references | +F1.8 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist maintainer starts the Playlist editor
+application. + |
+ + |
+ + |
+
2. | +The Playlist maintainer provides authentication +information | +3. | +The system checks that the provided
+authentication information is correct, and grants access. + |
+
4. + |
+ The Playlist maintainer selects to to view the
+configuration information + |
+ 5. + |
+ The system displays the configuration
+information to the Playlist maintainer + |
+
6. + |
+ The Playlist maintainer selects to add a new
+registered external system. + |
+ 7. + |
+ The system verifies the new registry entry, and
+adds it to the configuration + |
+
8. + |
+ The Playlist maintainer selects to update a
+registered external system. + |
+ 9. + |
+ The system verifies the new values for the
+registry entry, and updates the configuration + |
+
10. + |
+ The Playlist maintainer deletes a registered
+external system. + |
+ 11. + |
+ The system deletes the external system, if there
+remain a minimum required of such system. + |
+
+ |
+ + |
+ + |
+ + |
+
concept + |
+ description + |
+
---|---|
Scheduler + |
+ The Scheduler daemon, executing playlists. + |
+
Local storage + |
+ The Local storage, holding Audio clips locally. + |
+
Media archive + |
+ The remote Media archive, holding Audio clips
+remotely + |
+
Playlist uploader + |
+ The component responsible for uploading
+Playlists to the Scheduler + |
+
Playlist player + |
+ Plays Playlists for preview locally. + |
+
Clip retriever + |
+ Responsible for the transfer of Audio clips to
+and from Local storage and Media archive + |
+
Playlist + |
+ A series of Audio clips, and information on how
+they come one after the other. + |
+
Playlist element + |
+ A connection object about a specific appearance
+of an Audio clip in a Playlist + |
+
Audio clip + |
+ The basic unit of audio data handled by the
+system. + |
+
Audio layer + |
+ An audio layer in the playlist, a sequence of
+non-overlapping Audio clips + |
+
FadeInfo + |
+ The details of the transition of the specific
+instance of the Audio clip on a Playlist. Basically a fade-in and
+fade-out info + |
+
MetaData + |
+ The metadata associated with an Audio clip + |
+
SearchCriteria + |
+ Criteria for searching Metadata + |
+
Configuration + |
+ The configuration parameters of the Playlist
+editor + |
+
Authentication + |
+ Component providing authentication services + |
+
+ |
+ + |
+
source + |
+ association + |
+ target + |
+ description + |
+
---|---|---|---|
Playlist uploader + |
+ Uploads to + |
+ Scheduler + |
+ The Playlist uploader uploads Playlists to the
+Scheduler + |
+
Playlist player + |
+ Accesses audio data from + |
+ Local storage + |
+ For playing on the local audio interface + |
+
Clip retriever + |
+ Stores clips in + |
+ Local storage + |
+ + |
+
Clip retriever + |
+ Stores clips in + |
+ Media archive + |
+ + |
+
Clip retriever + |
+ Retrievers clips from + |
+ Media archive + |
+ + |
+
Local storage + |
+ Contains + |
+ Audio clip + |
+ + |
+
Media archive + |
+ Contains + |
+ Audio clip + |
+ + |
+
Playlist uploader + |
+ Uploads + |
+ Playlist + |
+ + |
+
Playlist player + |
+ Plays + |
+ Playlist + |
+ + |
+
Playlist + |
+ Contains + |
+ Audio layer + |
+ + |
+
Playlist element + |
+ References + |
+ Audio layer + |
+ Shows which layer the given Audio clip is on + |
+
Playlist element + |
+ Fades in with + |
+ FadeInfo + |
+ + |
+
Playlist element + |
+ Fades out with + |
+ FadeInfo + |
+ + |
+
Audio clip + |
+ Is described by + |
+ MetaData + |
+ + |
+
Playlist maintainer + |
+ Searches by + |
+ SearchCriteria + |
+ + |
+
Playlist maintainer | +Creates and edits + |
+ Playlist + |
+ + |
+
Playlist maintainer | +Listens to + |
+ Playlist + |
+ + |
+
Playlist maintainer | +Edits + |
+ FadeInfo + |
+ + |
+
Playlist maintainer | +Maintains + |
+ Configuration + |
+ + |
+
Playlist maintainer | +Is authenticated by + |
+ Authentication + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
Name + |
+ createPlaylist +() +: Playlist + |
+ |
Responsibilities + |
+ Create a new, empty
+Playlist + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-1 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ none | +|
Output + |
+ a new, empty Playlist + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ a Playlist is created + |
+ instance creation + |
+
+ |
+ + |
+ + |
+
Name + |
+ addAudioClip +(rawAudioData : RawAudioData, +metaData : MetaData) +: UniqueId + |
+ |
Responsibilities + |
+ add an Audio Clip to
+Local storage through the Playlist editor + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-2 + |
+ |
Notes + |
+ All the relevant work is
+done in Local storage + |
+ |
Exceptions + |
+ none | +|
Output + |
+ the unique id of the
+added audio clip + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ deleteAudioClipFromLocalStorage +(audioClipId : UniqueId) +: void + |
+ |
Responsibilities + |
+ delete an Audio Clip
+from Local storage through the Playlist editor + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-3 + |
+ |
Notes + |
+ All the relevant work is
+done in Local storage + |
+ |
Exceptions + |
+ if no Audio clip exists +in Local storage with the specified id, indicate as an error. | +|
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ updateAudioClipInLocalStorage +(audioClipId : UniqueId, +rawAudioData : RawAudioData, +metaData : MetaData) +: void + |
+ |
Responsibilities + |
+ update the contents of
+an Audio Clip in Local storage through the Playlist editor + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ All the relevant work is
+done in Local storage + |
+ |
Exceptions + |
+ if no Audio clip exists
+in Local storage with the specified id, indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ addAudioClipToMediaArchive +(audioClipId : UniqueId) +: void + |
+ |
Responsibilities + |
+ add an Audio clip stored
+in Local storage to the Media archive + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-5 + |
+ |
Notes + |
+ All the relevant work is
+done in Local storage and Media archive. + |
+ |
Exceptions + |
+ if no Audio clip exists +in Local storage with the specified id, indicate as an error. | +|
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ searchMetadata +(criteria : SearchCriteria) +: audioClipIds + |
+ |
Responsibilities + |
+ to search the Local
+storage and remote Media archive accessible through the Playlist editor. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-6 + |
+ |
Notes + |
+ All the relevant work is
+done in Local storage and Media archive. + |
+ |
Exceptions + |
+ none | +|
Output + |
+ a list of Audio clip
+ids, which have metadata matching the search criteria. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ mirrorAudioClipInLocalStorage +(audioClipId : UniqueId) +: void + |
+ |
Responsibilities + |
+ to download and store an
+Audio clip in Local storage, which is available in the remote Media
+archive. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-7 + |
+ |
Notes + |
+ All the relevant work is
+done in Local storage and Media archive. + |
+ |
Exceptions + |
+ if no Audio clip exists +in Media archive with the specified id, indicate as an error. | +|
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ addAudioClipToPlaylist +(playlist : Playlist, +audioClipId : UniqueId, +offset : Time) +: void + |
+ |
Responsibilities + |
+ to add an Audio clip to
+a Playlist, with the specified offset + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-8 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no Audio clip exists +in either Local storage or Media archive with the specified id, +indicate as an error. | +|
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ create a new PlaylistElement instance + |
+ instance creation + |
+
+ |
+ associate the PlaylistElement with the specified
+Playlist + |
+ association formed + |
+
+ |
+ associate the PlaylistElement with the specified
+Audio clip + |
+ association formed + |
+
+ |
+ set the relativeOffset value of PlaylistElement
+to the supplied offset + |
+ attribute modification + |
+
find an Audio layer in the Playlist in which the
+new clip at specified offset does not overlap other clips + |
+ associate the found Audio layer with the created
+PlaylistElement + |
+ association formed + |
+
if the Audio clip is overlapping other clips in
+all Audio layers in the Playlist + |
+ create a new Audio layer + |
+ instance creation + |
+
+ |
+ associate the Audio layer with the Playlist + |
+ association formed + |
+
+ |
+ associate the Audio layer with the
+PlaylistElement + |
+ association formed + |
+
+ |
+ + |
+ + |
+
Name + |
+ updateAudioClipPositionInPlaylist +(playlist : Playlist, +playlistElement : PlaylistElement, +newOffset : Time) +: void + |
+ |
Responsibilities + |
+ to move an Audio clip
+within a playlist to an other offset + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-9 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if the new position of
+the Audio clip in its present Audio layer overlaps with other clips,
+indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ set the relativeOffset value of PlaylistElement
+to the supplied offset + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ moveAudioClipToOtherLayer +(playlist : Playlist, +playlistElement : PlaylistElement, +newLayer : Audio layer) +: void + |
+ |
Responsibilities + |
+ to move an Audio clip
+within a playlist to another Audio layer + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-9 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if the specified Audio
+layer is not associated with the specified Playlist, indicate as an
+error. +if the Audio clip overlaps other clips in the new Audio layer, indicate +as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ remove association between the PlaylistElement
+and its current Audio layer + |
+ association broken + |
+
+ |
+ associate PlaylistElement with the supplied
+Audio layer + |
+ association formed + |
+
+ |
+ + |
+ + |
+
Name + |
+ updateFadeParameters +(playlistElement : PlaylistElement, +newFadeInInfo : fadeInfo, +newFadeOutInfo : fadeInfo) +: void + |
+ |
Responsibilities + |
+ to update the fade-in
+and fade-out of an Audio clip in a Playlist + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-10 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ replace the contents of the fadeInInfo
+associated with the playlistElement with that of the supplied fadeInInfo + |
+ attribute modification + |
+
+ |
+ replace the contents of the fadeOutInfo +associated with the playlistElement with that of the supplied +fadeOutInfo | +attribute modification | +
+ |
+ + |
+ + |
+
Name + |
+ playPlaylist +(playlist : Playlist, +offset : Time) +: void + |
+ |
Responsibilities + |
+ to play a playlist on
+the local audio interface + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-11 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if offset points outside
+of playlist, report as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ stopPlaying +() +: void + |
+ |
Responsibilities + |
+ to stop playing whatever
+is played. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-11 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if there is no Playlist
+currently playing, indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ schedulePlaylist +(playlist : Playlist, +schedule : Schedule) +: void + |
+ |
Responsibilities + |
+ to upload a Playlist to
+a Scheduler daemon for later execution + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-12 + |
+ |
Notes + |
+ All the relevant work is +done in the Scheduler daemon. | +|
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ addConfiguration +(configuration : Configuration) +: void + |
+ |
Responsibilities + |
+ to add a new
+Configuration item + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-13 + |
+ |
Notes + |
+ none | +|
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ create a new Configuration instance + |
+ instance creation + |
+
+ |
+ fill the created configuration instance with the
+supplied information + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ updateConfiguration +(configuration : Configuration) +: void |
+ |
Responsibilities + |
+ to update a
+Configuration item + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-13 + |
+ |
Notes + |
+ none | +|
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ fill the corresponding configuration instance
+with the supplied information + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ deleteConfiguration +(configuration : Configuration) +: void |
+ |
Responsibilities + |
+ to delete a
+Configuration item + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-13 + |
+ |
Notes + |
+ none | +|
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ delete the corresponding configuration item + |
+ instance deletion + |
+
+ |
+ + |
+ + |
+
function category + |
+ meaning + |
+
---|---|
evident + |
+ Should perform, and the user should be cognizant
+that it is performed + |
+
hidden + |
+ Should perform, but not visible to the users. + |
+
frill + |
+ Optional + |
+
ref# + |
+ function + |
+ category + |
+
---|---|---|
F1.1 + |
+ Accept uploaded playlists + |
+ evident + |
+
F1.2 + |
+ Retrieve remote files referenced by playlists + |
+ hidden + |
+
F1.3 + |
+ Access local files + |
+ hidden + |
+
F1.4 + |
+ Provide status information + |
+ evident + |
+
F1.5 + |
+ Log playlist execution for proof of broadcast
+reasons + |
+ evident + |
+
F1.6 + |
+ Purge local file storage of unused audio clips + |
+ hidden + |
+
F1.7 + |
+ Execute playlists + |
+ evident + |
+
F1.8 + |
+ Play live streams as part of the playlist + |
+ hidden + |
+
F1.9 + |
+ Remove playists from the schedule + |
+ evident + |
+
F1.10 + |
+ Re-schedule playlsits + |
+ evident + |
+
F1.11 + |
+ Delete playlists + |
+ evident + |
+
F1.12 + |
+ Create playlists + |
+ evident + |
+
F1.13 + |
+ Edit playlists + |
+ evident + |
+
F1.14 + |
+ Start the scheduler daemon + |
+ evident + |
+
F1.15 + |
+ Stop the scheduler daemon + |
+ evident + |
+
+ |
+ + |
+ + |
+
ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|
A1.1 + |
+ operating system platform + |
+ Linux + |
+ must + |
+
A1.2 + |
+ supported audio interfaces + |
+ ALSA (maybe also OSS?) + |
+ must + |
+
A1.3 + |
+ supported playlist format + |
+ SMIL 2.0. only partial support is required,
+which focuses only on audio aspects of SMIL. + |
+ must + |
+
A1.4 + |
+ supported audio clip formats + |
+ Ogg Vorbis, mp3, wav + |
+ must + |
+
+ |
+ + |
+ + |
+ + |
+
ref# + |
+ function + |
+ ref# + |
+ attribute + |
+ details and constraints + |
+ category + |
+
---|---|---|---|---|---|
F1.7 + |
+ Execute playlists + |
+ A1.5 + |
+ low latency + |
+ when executing playlists, very low latency
+should be achieved + |
+ must + |
+
+ |
+ + |
+ A1.6 + |
+ handle time skew + |
+ the
+daemon has to take into account that the system's clock is not
+accurate. the clock is synchronized to an external regularly, but the
+resulting time-jump must be handled. + |
+ must + |
+
F1.8 + |
+ Play live streams as part of the playlist | +A1.7 + |
+ supported audio stream formats + |
+ Ogg Vorbis via HTTP, mp3 via HTTP + |
+ must + |
+
F1.14 +F1.15 + |
+ Start / stop the scheduler daemon + |
+ A1.8 + |
+ provide System V init style services + |
+ Provide a System V init interface to starting
+and stopping the scheduler daemon + |
+ must + |
+
+ |
+ + |
+ + |
+ + |
+ + |
+ + |
+
ref# | +UC-1 | +
use case | +Upload playlist | +
type | +primary, essential | +
actors | +Playlist editor | +
purpose | +Upload a playlist | +
overview | +The Playlist editor uploads a new playlist. | +
references | +F1.1 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist editor connects to the scheduler daemon
+with the intent of uploading a new playlist. + |
+ + |
+ + |
+
2. | +The Playlist editor provides authentication +information | +3. | +The system authenticates the Playlist editor and +grants access. | +
4. | +The Playlist editor presents the new playlist
+and the intended schedule for the playlist. + |
+ 5. | +The system validates the new playlist, and sees +that it does not conflict with existing schedule. | +
+ |
+ + |
+ 6. | +The system stores the new playlist, adds it to +the schedule, and sends confirmation to the Playlist editor. | +
7. | +The Playlist editor receives confirmation and +disconnects. | + + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# + |
+ UC-2 | +
use case | +Manage schedule | +
type + |
+ primary, essential | +
actors + |
+ Playlist editor | +
purpose + |
+ View the schedule and remove or re-schedule
+playlists + |
+
overview + |
+ The Playlist editor reviews the schedule. If he +decides to, he might remove or re-schedule some of these playlists. | +
references + |
+ F1.4, F1.9, F1.10 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist editor connects to the scheduler daemon
+with the intent of viewing and editing the schedule. + |
+ + |
+ + |
+
2. | +The Playlist editor provides authentication +information | +3. | +The system authenticates the Playlist editor and +grants access. | +
+ |
+ + |
+ 4. + |
+ The system shows the Schedule to the Playlist
+editor + |
+
5. + |
+ The Playlist editor browses the Schedule,
+selects a playlist for detailed viewing. + |
+ 6. + |
+ The system shows the details of the selected
+Playlist. + |
+
7. + |
+ The playlist editor removes a playlist from the
+schedule. + |
+ 8. + |
+ The system removes the playlist from the
+schedule, than re-displays the updated schedle. + |
+
9. + |
+ The Playlist editor re-schedules a playlist + |
+ 10. + |
+ The system removes the selected playlist from
+the schedule, and re-enters it at a new timepoint + |
+
11. + |
+ The Playlist editor browses the Schedule + |
+ 12. + |
+ The system shows the Schedule to the playlist
+editor + |
+
13. + |
+ The Playlist editor disconnects. + |
+ + |
+ + |
+
ref# + |
+ UC-3 | +
use case | +Manage playlists | +
type + |
+ primary, essential | +
actors + |
+ Playlist editor | +
purpose + |
+ View and delete playlists | +
overview + |
+ The Playlist editor reviews the uploaded +playlists. If he decides so, he might delete some of these playlists. | +
references + |
+ F1.4, F1.11 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist editor connects to the scheduler daemon
+with the intent of viewing and deleting playlists. + |
+ + |
+ + |
+
2. | +The Playlist editor provides authentication +information | +3. | +The system authenticates the Playlist editor and +grants access. | +
+ |
+ + |
+ 4. + |
+ The system lists the available Playlists + |
+
5. + |
+ The Playlist editor browses the playlists, and
+selects one for detailed viewing. + |
+ 6. + |
+ The system shows the details of the selected
+Playlist. + |
+
7. + |
+ The playlist editor deletes a playlist. + |
+ 8. + |
+ The system deletes the playlist, than
+re-displays the list of available Playlists. + |
+
9. + |
+ The Playlist editor disconnects. + |
+ + |
+ + |
+
ref# | +UC-4 | +
use case | +Retrieve remote files | +
type + |
+ primary, essential | +
actors + |
+ (internal actor, initiator), Media archive,
+Local storage + |
+
purpose + |
+ Retrieve remote files referenced by active
+playlists and store them in the local storage + |
+
overview + |
+ The +daemon contacts the remote media archive and retrieves audio clips +referenced by active playlists. The clips are stored locally for +playing. | +
references + |
+ F1.2 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +An Internal actor triggers the retrieval of some
+remote files. + |
+ 2. | +The system looks up the URN of the remote file, +and determines the Media archive to contact regarding the file. | +
+ |
+ + |
+ 3. + |
+ The system contacts the Local storage and sends
+authorization information + |
+
4. + |
+ Local storage authenticates the system and
+grants access + |
+ 5. + |
+ The system iniquires the local storage about the
+availability of the file to download in the Local storage by presenting
+its unique ID + |
+
6. + |
+ Local storage tells if the required file is
+already stored or not. + |
+ 7. + |
+ If the file is available in the local storage,
+the use case ends. Otherwise, it continues. + |
+
+ |
+ + |
+ 8. + |
+ The system contacts the Media archive and sends +authorization information | +
9. | +Media archive authenticates the system and +grants access | +10. | +The system requests an audio clip by presenting +its unique ID | +
11. | +Media archive looks up the file, and presents it +to the system | +12. | +The system retrieves the file and closes the
+connection to the Media archive + |
+
+ |
+ + |
+ 13. + |
+ The system presents the file to Local storage + |
+
14. + |
+ Local storage stores the file under the
+specified unique ID + |
+ 15. + |
+ The system closes the connection to Local
+storage. + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-5 | +
use case | +Review play log | +
type | +secondary, essential | +
actors | +Broadcast auditor | +
purpose | +Review what has been played | +
overview | +The +Broadcast auditor reviews the audio clips that have been played in a +selected time interval. He may generate reports for proof of broadcast +reasons. | +
references | +F1.4 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Broadcast auditor connects to the scheduler
+daemon with the intent of reviewing what has been played. + |
+ + |
+ + |
+
2. | +The Broadcast auditor provides authentication +information | +3. | +The system authenticates the Broadcast auditor +and grants access. | +
3. + |
+ The Broadcast auditor browses through the play
+log in a time-ordered manner. + |
+ 4. + |
+ The system displays the play log entries. + |
+
5. + |
+ The Broadcast auditor requests a play report for
+a given time period. + |
+ 6. + |
+ The system displays the requested report. + |
+
7. + |
+ The Broadcast auditor disconnects. + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-6 | +
use case | +Create playlist + |
+
type | +secondary, essential | +
actors | +Playlist editor + |
+
purpose | +Create a new playlist, and then edit it. + |
+
overview | +The Playlist editor connects to the Scheduler
+with the aim of creating a new playlist. A basic user interface is
+provided, which allows professionals to create and edit the playlsits
+on the system. + |
+
references | +F1.12, F1.13 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist editor connects to the scheduler with
+the intent of creating a new playlist. + |
+ + |
+ + |
+
2. | +The Playlist editor provides authentication +information | +3. | +The system authenticates the Playlist editor and +grants access. | +
4. + |
+ The Playlist editor signals that he whishes for
+a new playlist + |
+ 5. + |
+ The system creates a new, empty playlist, and
+opens it for editing. + |
+
6. + |
+ The Playlist editor edits the new playlist. See
+UC-7 actions 7-15 for details. + |
+ + |
+ + |
+
7. + |
+ The Playlist editor disconnects. + |
+ + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
ref# | +UC-7 | +
use case | +Edit playlist + |
+
type | +secondary, essential | +
actors | +Playlist editor + |
+
purpose | +Edit a previoulsy uploaded playlist + |
+
overview | +The Playlist editor connects to the
+Scheduler with the aim of either editing an existing playlist. A basic
+user interface is provided, which allows
+professionals to edit the playlsits on the system. + |
+
references | +F1.12 | +
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +Playlist editor connects to the scheduler with
+the intent of editing a playlist. + |
+ + |
+ + |
+
2. | +The Playlist editor provides authentication +information | +3. | +The system authenticates the Playlist editor and +grants access. | +
+ |
+ + |
+ 4. + |
+ The system lists the available playlists. + |
+
5. + |
+ The Playlist editor selects a playlist for
+editing. + |
+ 6. + |
+ The system opens the playlist in editing mode. + |
+
7. + |
+ The Playlist editor browses the available Audio
+clips + |
+ 8. + |
+ The system shows the list of available audio
+clips + |
+
9. + |
+ The Playlist editor selects an Audio clip + |
+ 10. + |
+ The system displays details on the audio clip. + |
+
11. + |
+ The Playlist editor ads a new audio clip to the
+playlist, at a certain timepoint in the playlist. + |
+ 12. + |
+ The new audio clip is added to the playlist. + |
+
13. + |
+ The Playlist editor removes an audio clip from
+the playlist. + |
+ 14. + |
+ The audio clip is removed from the playlist. + |
+
15. + |
+ The Playlist editor edits the fade-in or
+fade-out of a clip in the playlist. + |
+ 16. + |
+ The fade-in or fade-out is edited. + |
+
17. + |
+ The Playlist editor saves the playlist. + |
+ 18. + |
+ The playlist is validated. + |
+
+ |
+ + |
+ 19. + |
+ The playlist is saved. + |
+
20. + |
+ The Playlist editor disconnects. + |
+ + |
+ + |
+
ref# | +UC-8 | +
use case | +Start/stop scheduler + |
+
type | +primary, essential | +
actors | +Administrator + |
+
purpose | +Start and stop the scheduler daemon + |
+
overview | +The adminisitrator starts the scheduler deamon
+by invoking a System V init-style startup script. He may also stop the
+deamon with the same script. + |
+
references | +F1.14, F1.15, A1.8 + |
+
actor action + |
+ system response + |
+ ||
---|---|---|---|
1. | +The Administrator invokes the scheduler's System
+V init script with the start parameter + |
+ + |
+ + |
+
+ |
+ + |
+ 2. | +The scheduler daemon starts up. + |
+
3. + |
+ The Administrator checks to see if the scheduler
+daemon is running + |
+ 4. + |
+ The scheduler daemon reports that it is running. + |
+
5. + |
+ The Administrator stops the scheduler deamon. + |
+ 6. + |
+ The scheduler daemon stops. + |
+
concept + |
+ description + |
+
---|---|
Media archive + |
+ An archive external to the system, which holds
+Audio clips. The archive offers its clips for download by requesting
+clips based on their unique ids. + |
+
Clip retriever + |
+ Retrieves Audio clips from the Media archive and
+stores them in local storage. + |
+
Local storage + |
+ A local store of Audio clips. Provides access to
+each clip based on the clips' unique id. Allows random access to the
+clip files. + |
+
Audio clip + |
+ A uniquely identified audio file. + |
+
Playlist + |
+ A metafile, containing references to Audio
+clips, and information on how the clips should be played. + |
+
PlaylistElement + |
+ An association class describing the specifics of
+an instance of an Audio clip in a playlist. + |
+
FadeInfo + |
+ A class describing fade in or fade out
+characteristics for an Audio clip in a Playlist + |
+
Playlist store + |
+ A container holding a range of playlists. + |
+
Schedule + |
+ Contains Schedule entries + |
+
Schedule entry + |
+ Contains the time and details of when a playlist
+should be played. + |
+
Scheduler daemon + |
+ Executes playlists at timepoints specified by
+the schedule. + |
+
Play log + |
+ A logging facility, holding Play log entries. + |
+
Play log entry + |
+ A record of when an Audio clip was played. + |
+
Play report + |
+ An audit report of what Audio clips have been
+played in a certain time period + |
+
Authentication + |
+ Provides authentication services + |
+
Playlist editor + |
+ An external editor, managing playlists. + |
+
Broadcast auditor + |
+ An external auditor, browsing the Play log. + |
+
Administrator + |
+ The administrator responsible for starting and
+stopping the scheduler daemon. + |
+
+ |
+ + |
+
source + |
+ association + |
+ target + |
+ description + |
+
---|---|---|---|
Clip retriever + |
+ Retrieves clips from + |
+ Media archive + |
+ + |
+
Media archive + |
+ Contains + |
+ Audio clip + |
+ + |
+
Clip retriever + |
+ Stores clips in + |
+ Local storage + |
+ + |
+
Local storage + |
+ Contains + |
+ Audio clip + |
+ + |
+
Playlist + |
+ References by PlaylistElement + |
+ Audio clip + |
+ + |
+
PlaylistElement + |
+ Fades in with + |
+ FadeInfo + |
+ + |
+
PlaylistElement + |
+ Fades out with + |
+ FadeInfo + |
+ + |
+
Playlist store + |
+ Contains + |
+ Play list + |
+ + |
+
Playlist editor + |
+ Uploads playlist to + |
+ Playlist store + |
+ + |
+
Playlist editor + |
+ Manages schedule in + |
+ Schedule + |
+ The Playlist editor schedules playlists. + |
+
Schedule + |
+ Contains + |
+ Schedule entry + |
+ + |
+
Schedule entry + |
+ References + |
+ Playlist + |
+ + |
+
Scheduler daemon + |
+ Executes + |
+ Schedule + |
+ The Scheduler daemon plays the scheduled
+playlists. + |
+
Scheduler daemon + |
+ Logs into + |
+ Play log + |
+ The Scheduler daemon logs all the played audio
+clips into the Play log for proof of broadcast purposes. + |
+
Play log + |
+ Contains + |
+ Play log entry + |
+ + |
+
Play log + |
+ Generated + |
+ Play report + |
+ The play log generates reports based on Play log
+entries. + |
+
Play log entry + |
+ References + |
+ Audio clip + |
+ + |
+
Broadcast auditor + |
+ Browses entries from + |
+ Play log + |
+ + |
+
Broadcast auditor + |
+ Requests + |
+ Play report + |
+ + |
+
Playlist editor + |
+ Is authenticated by + |
+ Authentication + |
+ + |
+
Broadcast auditor + |
+ Is authenticated by + |
+ Authentication + |
+ + |
+
Administrator + |
+ Manages + |
+ Scheduler daemon + |
+ + |
+
+ |
+ + |
+ + |
+ + |
+
Name + |
+ uploadPlaylist +(playlist : Playlist, +playtime: Schedule) +: void + |
+ |
Responsibilities + |
+ Upload a playlist and
+put it into the schedule. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.1, UC-1 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ If the uploaded playlist
+is not valid, indicate as an error +If the proposed schedule conflicts with existing schedules, indicate as +an error + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ A new Playlist is created, storing the uploaded
+playlist + |
+ instance creation | +
+ |
+ Playlist is entered into the Playlist store + |
+ association formed + |
+
+ |
+ A new Schedule is created, according to the
+supplied schedule + |
+ instance creation + |
+
+ |
+ Schedule is associated with the Playlist + |
+ association formed + |
+
+ |
+ + |
+ + |
+
Name + |
+ displaySchedule +(from : TimeStamp, +to : TimeStamp) +: Schedule + |
+ |
Responsibilities + |
+ Display Schedule entries
+for a time period. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.4, UC-2 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ The Schedule entries for
+the specified time period. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ displayPlaylist +(playlistId : UniqueId) +: Playlist + |
+ |
Responsibilities + |
+ Display a specific
+playlist + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.4, UC-3 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ If no playlist exists
+for the specified playlistId, indicate as an error. + |
+ |
Output + |
+ The requested playlist. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ displayPlaylist +(playlist : Playlist) +: void + |
+ |
Responsibilities + |
+ Delete a specific
+playlist + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.11, UC-3 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ If no playlist exists
+for the specified playlistId, indicate as an error. +If the playlist is referenced by any Schedule entry, indicate as an +error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The playlist is removed from the Playlist store. + |
+ association broken + |
+
+ |
+ References by the playlist to Audio clips removed + |
+ association broken + |
+
+ |
+ The playlist is deleted + |
+ instance deletion + |
+
+ |
+ + |
+ + |
+
Name + |
+ removeFromSchedule +(scheduleEntry : Schedule entry, +playlist : Playlist) +: void + |
+ |
Responsibilities + |
+ Remove a specific
+playlist from a schedule entry + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.9, UC-2 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ If the specified
+scheduleEntry does not exist, indicate as an error. +If the specified playlist does not exist, indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ Reference to the playlist by the scheduleEntry
+is removed. + |
+ association broken + |
+
+ |
+ + |
+ + |
+
Name + |
+ reschedule +(scheduleEntry : Schedule entry, +playlist : Playlist, +playtime : TimeStamp) +: void + |
+ |
Responsibilities + |
+ Change when a certain
+playlist is scheduled to play. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.10, UC-2 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ If the specified
+scheduleEntry does not exist, indicate as an error. +If the specified playlist does not exist, indicate as an error. +If the new playtime conflicts with other schedule entries, indicate as +an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The time attribute of scheduleEntry is updated
+to the supplied playtime. + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ displayPlaylists +() +: Playlist + |
+ |
Responsibilities + |
+ Display Playlists
+contained in the Playlist store + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.4, UC-3 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ The playlists contained
+in the Playlist store. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ displayPlaylists +() +: Play log + |
+ |
Responsibilities + |
+ Display Play log entries
+contained in the Play log + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.4, UC-5 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ The play log entries
+contained in the Play log. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ generatePlayReport +(from : TimeStamp, +to : TimeStamp) +: Play report + |
+ |
Responsibilities + |
+ Present a report on what
+Audio clips have been played to the Broadcast auditor. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.4, UC-5 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ A report on the played
+Audio clips played in the specified time period. + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ createPlaylist +() +: Playlist + |
+ |
Responsibilities + |
+ Create a new playlist + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.12, UC-6 + |
+ |
Notes + |
+ A new playlist is
+created, and is immediately locked for editing. + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ A new Playlist is created + |
+ instance creation + |
+
+ |
+ The lockedForEditing attribute is set to true
+for the playlist + |
+ attribute modification + |
+
+ |
+ The playlist is added to the Playlist store + |
+ association formed + |
+
+ |
+ + |
+ + |
+
Name + |
+ openPlaylistForEditing +(playlist : Playlist) +: void + |
+ |
Responsibilities + |
+ Open a playlist for
+editing + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ A playlist is opened for
+editing. The playlist may not be played when being edited. Also, active
+(currently executing) playlists may not be opened for editing. This is
+in effect a lock, which is released by saving the playlist. + |
+ |
Exceptions + |
+ if the playlist is
+currently being executed, indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The current version of the playlist is stored,
+in case the user wants to revert to the last saved version (see
+revertEditedPlaylist) + |
+ instance creation + |
+
+ |
+ The lockedForEditing attribute is set to true
+for the playlist + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ addAutioClipToPlaylist +(playlist : Playlist, +audioClip : AudioClip, +relativeOffset : Time) +: void + |
+ |
Responsibilities + |
+ Add an Audio clip to a
+Playlist + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ The Audio clip is added
+to the playlist with the specified relativeOffset from the beginning of
+the Playlist. + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ the Playlist is
+currently opened for editing + |
+ |
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The new PlaylistElement is created associating
+the playlist with the audio clip, with the specified relativeOffset + |
+ association formed, instnace creation + |
+
+ |
+ + |
+ + |
+
Name + |
+ displayAudioClips +() +: AudioClip + |
+ |
Responsibilities + |
+ Display the audio clips
+known to the Scheduler + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ The Audio clips kown to
+the Scheduler + |
+ |
Pre-conditions + |
+ none + |
+ |
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ displayAudioClip +(audioClipId : UniqueId) +: AudioClip + |
+ |
Responsibilities + |
+ Display the audio clip
+specified by the audioClipId + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ if no audio clip by the
+specified id exists, indicate as an error + |
+ |
Output + |
+ The Audio clip specified
+by the audioClipId + |
+ |
Pre-conditions + |
+ none + |
+ |
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ removeAutioClipFromPlaylist +(playlist : Playlist, +audioClip : AudioClip) +: void + |
+ |
Responsibilities + |
+ Remove an Audio clip
+from a Playlist + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ The Audio clip is
+removed from the Playlist. + |
+ |
Exceptions + |
+ If the Audio clip is not
+in the playlist, indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ the Playlist is
+currently opened for editing + |
+ |
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The PlaylistElement associating the AudioClip
+with the Playlist is removed, with the related FadeInfo instances + |
+ instance deletion, association broken + |
+
+ |
+ + |
+ + |
+
Name + |
+ updateFadeInFadeOut +(audioClip : AudioClip, +playlist : Playlist) +: void + |
+ |
Responsibilities + |
+ Update the fade-in and
+fade-out parameters for an audio clip playing in a playlist. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ If the Audio clip is not
+in the playlist, indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ the Playlist is
+currently opened for editing + |
+ |
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The fade-in and fade-out parameters for the
+audio clip in the playlist are updated + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ validatePlaylist +(playlist : Playlist) +: boolean + |
+ |
Responsibilities + |
+ Validate a playlist for
+being complete. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ The playlist is checked
+for being complete (not containing silence) and other sanity criteria. + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ none + |
+ |
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ savePlaylist +(playlist : Playlist) +: void + |
+ |
Responsibilities + |
+ The playlist is saved. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ none + |
+ |
Exceptions + |
+ If the playlist is not
+valid, indicate as an error. + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ the Playlist is
+currently opened for editing + |
+ |
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The lockedForEditing attriubute is set to false
+for the playlist + |
+ attribute modification + |
+
+ |
+ The old version of the Playlist that could have
+been used for reverting is deleted (see revertEditedPlaylist) + |
+ instance deletion + |
+
+ |
+ + |
+ + |
+
Name + |
+ revertEditedPlaylist +(playlist : Playlist) +: void + |
+ |
Responsibilities + |
+ Changes are discarded
+for a Playlist that is being edited. + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.13, UC-7 + |
+ |
Notes + |
+ The contents of the
+playlist are reverted to the state prior to when editing began on it. + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ the Playlist is
+currently opened for editing + |
+ |
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The contents of the Playlist are reverted to the
+last saved version. This includes deleting all created PlaylistElement
+and FadeInfo instances. + |
+ attribute modification, instance deletion + |
+
+ |
+ The lockedForEditing attriubute is set to false
+for the playlist + |
+ attribute modification + |
+
+ |
+ + |
+ + |
+
Name + |
+ start +() +: void + |
+ |
Responsibilities + |
+ Starts the scheduler
+daemon + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.14, UC-8 + |
+ |
Notes + |
+ A System V init-style
+daemon starting entry point + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ The scheduler daemon is
+currently not running + |
+ |
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The scheduler daemon object is created + |
+ instance creation + |
+
+ |
+ All the necessary structures are created for the
+deamon to run + |
+ instance creation + |
+
+ |
+ + |
+ + |
+
Name + |
+ isRunning +() +: boolean + |
+ |
Responsibilities + |
+ Tells if the scheduler
+daemon is running + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ UC-8 + |
+ |
Notes + |
+ A System V init-style
+daemon status entry point + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ true of the daemon is
+running, false otherwise + |
+ |
Pre-conditions + |
+ none + |
+ |
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ stop +() +: void + |
+ |
Responsibilities + |
+ Stops the scheduler
+daemon + |
+ |
Type + |
+ system + |
+ |
Cross-reference + |
+ F1.15, UC-8 + |
+ |
Notes + |
+ A System V init-style
+daemon stopping entry point + |
+ |
Exceptions + |
+ none + |
+ |
Output + |
+ none + |
+ |
Pre-conditions + |
+ The scheduler daemon is
+currently running + |
+ |
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ The scheduler daemon object is deleted + |
+ instance deletion + |
+
+ |
+ + |
+ + |
+
Name + |
+ authenticate +(authenticationInfo : AuthenticationInfo) +: boolean + |
+ |
Responsibilities + |
+ Check if the provided
+authentication info is recognized. + |
+ |
Type + |
+ interface + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none | +|
Output + |
+ true if the provided
+authentication is recognized, false otherwise + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ retrieveAudioClip +(clipId : UniqueId) +: AudioClip + |
+ |
Responsibilities + |
+ Retrieve an AudioClip
+specified by the supplied audio clip id. + |
+ |
Type + |
+ interface + |
+ |
Cross-reference + |
+ F1.2, UC-4 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ if no audio clip exists
+with the supplied id, indicate as an error + |
+ |
Output + |
+ the requested audio clip + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ condition + |
+ type + |
+
+ |
+ A new Audio clip is created and filled with the
+contents of the retrieved audio clip + |
+ instance creation | +
+ |
+ Audio clip is entered into Local storage + |
+ association formed + |
+
+ |
+ + |
+ + |
+
Name + |
+ authenticate +(authenticationInfo : AuthenticationInfo) +: boolean + |
+ |
Responsibilities + |
+ Check if the provided
+authentication info is recognized. + |
+ |
Type + |
+ interface + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none | +|
Output + |
+ true if the provided
+authentication is recognized, false otherwise + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ existsAudioClip +(audioClipId : UniqueId) +: boolean + |
+ |
Responsibilities + |
+ Tell if an audio clip by
+the provided unique id is stored in the Local storage + |
+ |
Type + |
+ interface + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none | +|
Output + |
+ true if an audio clip
+with the provided id exists, false otherwise + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ none + |
+ + |
+
+ |
+ + |
+ + |
+
Name + |
+ storeAudioClip +(audioClip : AudioClip) +: void + |
+ |
Responsibilities + |
+ Store an audio clip. + |
+ |
Type + |
+ interface + |
+ |
Cross-reference + |
+ UC-4 + |
+ |
Notes + |
+ + |
+ |
Exceptions + |
+ none | +|
Output + |
+ none + |
+ |
Pre-conditions + |
+ none | +|
Post-conditions + |
+ The supplied audio clip is stored in the storage. + |
+ + |
+
+ |
+ + |
+ + |
+
[0] Set BIF branch (hxclient_1_3_0_neptunex)
+[1] Set Target(s) (splay)
+[2] Set Profile (helix-client-all-defines)
+[3] run: build
+[4] Toggle make depend & makefiles (-e -n)
+[5] Toggle release (-trelease)
+[6] Toggle 'make clean' (-c)
+[7] Toggle clobber (Dangerous!) (-C)
+[8] Toggle halt-on-error (-p green)
+[9] Toggle verbose mode (-v)
+[10] Toggle static build (-tnodll)
+[11] Checkout source for selected target now
+[12] Set Tag/Branch/Timestamp
+[13] Help Page (full help in build/doc/index.html)
+[14] run history: build
+[Q] Quit
LiveSupport will feature an +easily-localizable and intuitive user interface that draws on the +applicants’ extensive previous project experience.
+Most audio formats allow the storage of +some information inside the media file itself. However, this feature +was developed primarily to handle music tracks, storing information +on artist, title, record, genre, track number and so on. It is +impossible to store essential information like the language of an +audio file – essential for spoken word productions, such as +educational or news material.
+LiveSupport will use existing open +standards, such as RSS feed standards in XML format, to store all +information needed to describe a file sufficiently. Additionally, +this metadata information will fully support the Unicode format, +making the database of metadata available to all character sets and +fully searchable.
+LiveSupport will provide a scheduler, +allowing stations to fill parts of the radio schedule with automated +broadcasts. Throughout automated broadcasting times, the station will +still be able to deliver advertisement, generating income while +minimizing the running costs. Longer times of daily broadcasts via +automation also help the station to make its frequency known in the +community.
+Small radio stations in the developing +world mainly use playlists generated by audio player software such as +MusicMatch, Windows MediaPlayer or WinAMP. Such simple playlists +provide no more information than a list of file names, and are +inaccessible for full text search. As mentioned above, LiveSupport +will use the potential of XML metadata in Unicode to manage and +archive playlists.
+Proof of broadcast is essential to +establish serious business relationships with advertisers. +LiveSupport will provide accurate and detailed log files stating the +precise time each item was broadcast over the system. In a +radio-network context, the proof of broadcast tool developed by MDLF +in conjunction with Radio 68H in Indonesia will be used to aggregate +and analyze logs created by individual LiveSupport installations.
+A producer running LiveSupport in a +studio will be able to mix audio files (e.g. reports, music, +jingles), phone calls and the microphone into a live broadcast.
+If connected to the Internet, and given +enough available bandwidth, LiveSupport will be able to play local +files (stored on the system’s hard disk), remote files (stored +anywhere on the Internet) or include audio streams from the Internet +as part of the local transmission – all of which could also become +part of a playlist.
+A radio reporter/producer will be able +to remotely access all of LiveSupport’s scheduling features over +the Internet using a standard web browser. She will be able to upload +audio programs as well as create playlists and schedule transmission.
+feature + |
+ component + |
+ |
---|---|---|
3.3.1 + |
+ Intuitive User Interface + |
+ Playlist editor + |
+
3.3.2 + |
+ Storing Metadata + |
+ Media archive + |
+
3.3.3 + |
+ Automation and Scheduling + |
+ Scheduler + |
+
3.3.4 + |
+ Playlist Management + |
+ Scheduler, Playlist editor + |
+
3.3.5 + |
+ Proof of Broadcast + |
+ Scheduler + |
+
3.3.6 + |
+ Mixing Local Audio Sources + |
+ + |
+
3.3.7 + |
+ Mixing Local and Remote Sources + |
+ Local storage, Media archive, Scheduler,
+Playlist editor + |
+
3.3.8 + |
+ Remote Control of Transmitter Locations + |
+ Scheduler, Playlist editor + |
+