Cas Enregistreur Audio Numérique en UML
Transcription
Cas Enregistreur Audio Numérique en UML
Analyse des besoins Cas Enregistreur Audio Numérique en UML Les principales caractéristiques de l'appareil au niveau de la conception sont: Ivan Porres Paltor et Johan Lilius, Turku Center of Computer Science (TUCS), Finland. 2003 • L!enregisteur audio-numérique (digital sound recorder) à développer est un appareil conçu pour enregistrer et lire des messages vocaux ; • Ces messages sont enregistrés en utilisant un microphone intégré dans une mémoire numérique ; • L'utilisateur peut rapidement écouter un message à tout moment grâce à un haut parleur situé sur la façade de l'appareil. Cet appareil doit être petit, léger, facile à utiliser et fonctionner sur batteries ; Apparence extérieure de l!appareil à développer : 1 Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE • Disposer d'une capacité de 10 messages. La longueur de chaque message est limitée par la mémoire disponible; • Facilité d'usage grâce à des menus d'écran; • L!accès direct à tout message; • Disposer d'une horloge avec alarme et d'un calendrier permettant à l'utilisateur de programmer un réveil journalier. L'alarme sonne jusqu'à ce que l'utilisateur presse un bouton ou durant 60 secondes; • L'appareil dispose d'un écran à cristaux liquide (LCD) permettant d'afficher constamment la date et l'heure. Il permet aussi de guider l'utilisateur dans l'usage de l'appareil; • L'appareil a aussi un indicateur de charge de batterie. Lorsque la batterie est faible, un bip informe l'utilisateur; • Il existe un mode "stand by" permettant d'économiser la batterie. L'appareil bascule dans ce mode lorsqu'il n'est pas en utilisation. Dès que l'utilisateur presse une touche, l'appareil passe de ce mode en mode opération; • L'appareil possède une bonne qualité sonore obtenue en traitant le son à 6 kHz en utilisant 8 bits. Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE Diagramme de contexte 2 Les évènements externes = message important depuis l!environnement Seconde suivante Temps Enregistrer message, régler l’alarme Régler l’heure Écouter message, beep alarme, regarder l’heure Utilisateur Alimentation Événement Une seconde passe Enregistreur Audio-numérique Capteurs/Actionneurs système 1 Boutons Microphone Écran Haut-parleur Jauge de batterie 2 Interfaces 3 analogique / numérique numérique /analogique numérique/ numérique 4 Batterie • • • • 5 capteurs des messages provenant de l!utilisateur = boutons et microphone ; actionneurs de l!utilisateur sont le haut-parleur et l!écran ; La jauge de la batterie détecte l!état de celle-ci ; L!acteur temps envoie un message vers le système périodiquement, il représente les messages du type « Seconde suivante » Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 3 6 7 Réponse du système Type TdR a : actualiser l!horloge interne b : surveiller l!alarme c : actualiser l!affichage de l!horloge P 0,5 sec. d : actualiser l!affichage de progression de la tâche Une période d!échantillon passe a : jouer ou enregistrer le prochain échantillon " P période L!utilisateur appuie sur un a : afficher la progression de la tâche bouton de commande b : commencer a jouer ou a enregistrer un A 0,5 sec. message L!utilisateur appuie sur le bouton a : le tâche courante est arrêtée A 0,5 sec. stop b : actualiser l!affichage Alarme de batterie faible a : avertir l!utilisateur et stopper la tâche A 1 sec. courante Entrer dans le mode veille a : éteindre l!affichage A 1 sec. L!utilisateur appuie sur un a : quitter la veille, allumer l!écran bouton quand le système est en A 1 sec. mode veille • Le type d!entrée de l!évènement peut être périodique (P) ou aléatoire (A) . • La colonne #TdR! indique le temps de réponse du système. Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 4 Cas d!utilisation Les 6 cas d!utilisation 6 cas principaux : 1. Enregistrer un message : l!utilisateur sélectionne un emplacement depuis le répertoire des messages et appuie sur la touche « Enregistrer ». Si l!emplacement est plein, les messages qui y résident sont effacés. Le système commence à enregistrer depuis le microphone jusqu'à : • l!arrêt de l!utilisateur en pressant la touche « Stop » • saturation de la mémoire. 2. Écouter un message : l!utilisateur sélectionne un emplacement et appuie sur le bouton « Play ». Si l!emplacement contient un message , le son contenu est transmis à travers le haut-parleur, jusqu!à la fin de l!enregistrement ou l!appui sur le bouton « Stop ». 3. Effacer un message : l!utilisateur sélectionne un emplacement plein et choisi l!option « Effacer » dans le menu. Le message est effacé et la mémoire est libérée. 4. Régler l!alarme : l!utilisateur peut activer ou pas l!alarme et régler l!heure d!alarme. Pour ce faire il sélectionne les différentes options dans le menu #Alarme!. 5. Régler l!heure : l!utilisateur a la possibilité de régler l!heure et la date courante à travers le menu #Date!. 6. Regarder l!heure : l!utilisateur peut à tout moment regarder l!heure sur l!écran. Enregistreur Audionumérique Enregistrer un message Écouter un message Effacer un message «!Utilisate ur!» Régler l’alarme Régler l’heure Regarder l’heure Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 5 Les scénarios 6 Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE Scénario « Ecouter un message » • Les scénarii doivent décrire les interactions entre les acteurs externes et le système ; • Même si le rôle de chaque acteur est généralement clair, il peut être difficile d!étudier tous les scénarii ; : Système Acteur Utilisateur : Haut parleur 1!: lire message { 0,5 s } 2!: commencer a jouer 3!: afficher la jauge de progression 4!: seconde suivante • Le cas d!utilisation est un outil d!analyse utilisé pour déterminer ce que l!utilisateur attend du système ; 5!: afficher l’heure { 0,5 s } 6!: afficher la jauge de progression 7!: stop • Un scénario de base pourrait être un des cas d!utilisation. { 0,5 s } 8!: arrêter de jouer Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 7 Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 8 Scénario « écoute d!un message et alarme sonne » Scénario « passage en stand-by » l!utilisateur écoute un message et l!alarme sonne : on considère l!alarme prioritaire «!Acteur!» Utilisateur : Système le système éteint l!affichage de l!écran, le microphone et le haut-parleur au bout d!un temps d!inactivité. Lorsque l!alarme se met en route, le système repasse en mode normal. Si la batterie franchit son niveau minimum, il faut repasser en mode stand-by. : HautParleur 1!: lire message 2!: commencer à jouer : Batterie : Ecran : Système : HautParleur 3!: afficher la jauge de progression 4!: seconde suivante 1!: seconde suivante Apres quelques minutes d’inactivité 5!: afficher l’heure 2!: seconde suivante 6!: afficher la jauge de progression 3!: éteindre l’écran 4!: éteindre l’amplificateur 7!: alarme 5!: seconde suivante 8!: commencer le son d’alarme 6!: alarme 9!: afficher l’indicateur d’alarme 7!: allumer l’écran 10!: stop 8!: allumer l’amplificateur 11!: stopper le son d’alarme 9!: commencer le son d’alarme 10!: seconde suivante 12!: seconde suivante 11!: batterie faible 13!: afficher l’heure 12!: arrêter le son d’alarme 13!: arrêter l’amplificateur 14!: éteindre l’écran 9 Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE Analyse Statique : Identification des objets Catégorie Objets actifs date courante Heure d’alarme Services Icône du monde réel Composants physiques Concepts clés Message d’aide Objets persistants • L!interaction avec l!utilisateur se fait grâce à un menu • A l!écran il y a toujours le menu courant Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 10 Analyse Statique : Identification des objets L!interface comprend des éléments visuels : Heure courante Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE Transaction Eléments visuels 11 Objets Message Enregistrement et Ecoute Boutons, Ecran Heure d!alarme Capteur niveau batterie Convertisseur A/N (entre le microphone et le processeur) Convertisseur N/A (entre le processeur et le microphone) Contrôleur d!écran ( gère image sur écran LCD) Date Heure Parler Ecouter Microphone, Haut-parleur Batterie Clavier, Ecran Parler, Echantillonnage, Echantillons sonores Messages sonores Collection de messages enregistrés Date, Heure courante Heure d!alarme Message Menu, Option menu, Sélection menu Horloge, Indicateur de mise en route de l!alarme Calendrier Barre d!état, ligne d!aide, indicateur de progression de tache Les boutons Play, Enregistrer, Stop, Oui, Non, Haut, Bas, Gauche et Droite Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 12 Le diagramme de classes Ecran InterfaceUtilisate ur Le diagramme de classes • L!utilisateur agit sur le système grâce à l!écran et au clavier. Comme ils sont considérés comme des objets passifs, un objet #InterfaceUtilisateur! est ajouté afin que celui-ci gère l!interaction avec l!utilisateur. Clavier • La classe #InterfaceUtilisateur! est reliée à la classe #ControleurAudio! pour exécuter les tâches. La classe #ControleurAudio! est le cœur du système, elle utilise les classes #EntreeAudio! et #SortieAudio! pour traiter les sons. Ces classes sont en relation avec le microphone et le haut-parleur grâce à une couche matérielle. HeureAlarme Batterie ControleurAu dio MemoireMsg EntreeAud io SortieAud io Microphon e HautParle ur • Les messages sont stockés dans la classe #MemoireMsg!, elle conserve un répertoire contenant les messages enregistrés, alloue de l!espace pour les nouveaux messages et efface les anciens. • Une classe #HeureAlarme! met à jour l!horloge et vérifie quand l!alarme doit être déclenchée. Au moment du déclenchement, cette classe avise la classe #InterfaceUtilisateur! de cet événement, ainsi cette classe affichera une indication à l!écran et déclenchera l!alarme avec l!aide de la classe #ControleurAudio! (pour le son). Message • L!objet #Batterie! mesure régulièrement le niveau de la batterie. Quand il franchit le niveau minimum, l!événement est reporté à la classe #InterfaceUtilisateur!. 13 Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 14 Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE Le diagramme de classes : « packages » . Le sous-système "Audio! On distingue 5 sous systèmes (packages) dans ce diagramme représentant dans une vue d!ensemble les principales classes de l!enregistreur audio numérique : • Chaque message est composé de plusieurs blocs audio et chaque bloc audio est composé de beaucoup d!échantillons sonores • Ce sous-système enregistre et joue un bloc audio complètement • On a besoin de 3 classes différentes pour traiter un son car cette opération est très complexe. «!soussystème!» HeureAlarme Le schéma suivant montre la décomposition d!un message : «!soussystème!» InterfaceUtilisat eur «!soussystème!» Batterie Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE Message «!soussystème!» Memoire joue ControleurAu dio «!soussystème!» Audio 15 Séquence de 0.. * BlocAudio joue SortieAudio Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE Séquence de * EchanSon joue HautParleur 16 . Le sous-système "Audio! BlocAudio 0..* getSample() addSample( ) Message ControleurAud io Synthétiseur getAudioBlock () - addSample() - getheader() - setheader() playMessage() recordMessage () deleteMessage( ) - playAlarm() - stop() buildAudioBlock () - playNote() - playChord() - silence() CompressedAudioBl ock Microphone - getSample() Le diagramme de séquence suivant montre l!échange de séquences afin d!écouter un message enregistré. Le diagramme a été simplifié car il faut effectuer 2000 fois la méthode playSample() avant de pouvoir passer au bloc audio suivant : SortieAudio EntreeAudio recordCompressedAudioBloc k() - selectInputFilter() Le sous-système "Audio! : diagramme de séquence Tim er playCompresseurAudioBlock () - playAudioBlock() - selectOutputFilter() Hautparleur - playSample() • Les classes #EntreeAudio! et #SortieAudio! ont des exigences temps réel c!est pourquoi la classe #Timer! procure une synchronisation exacte à ces classes. Cette classe est une couche logicielle pour le timer. • Les classes #Microphone! et #HautParleur! idem. Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 17 Cas Enregistreur Audio-Numérique – UML – Bernard ESPINASSE 18