University of Ottawa
SEG-2506 : Construction de logiciel
Gregor v. Bochmann
Hiver
2015

SEG-2506 - Lab-1

 

Modélisation des exigences - un système téléphonique

Au préalable: S.v.p., regarder ces exemples:

Définition du problème

Nous considérons un système de téléphone simple utilisé par un groupe de personnes, par exemple dans une compagnie. Nous supposons que le système consiste en un certain nombre de téléphones qui sont connectés à un commutateur central (ou par des fils de communication fixes, ou par un système de communication sans fil). Un modèle de la structure du système est donné dans la figure suivante:

sy;system structure

Ces téléphones sont utilisés par des gens pour faire ou recevoir des appels (en suivant les procédures standards pour établir des connections téléphoniques). Nous considérons seulement des conversations bout-en-bout, pas de téléconférences entre plus que deux personnes.

Pour établir une conversation téléphonique, typiquement, l'usager d'un téléphone ouvre le téléphone, sélectionne le numéro de téléphone de la partie de destination et demande une connexion. Si le téléphone à la destination n'est pas occupé, le téléphone à la destination va sonner, pendant que l'usager originateur entendra une sonorité de sonnerie dans son téléphone. Si l'usager à la destination ouvre le téléphone, alors les deux usagers peuvent parler. La conversation est terminée quand un des téléphones est fermé.

Partie 1: Un système téléphonique: modèle du domaine et les interactions

Méthodologie:

  1. Analyse du domaine:
    1. Normalement, une description textuelle du domaine et des exigences est donnée dans une forme ou une autre.
    2. Etablissez un dictionnaire des termes qui inclut les mots les plus importants de la description textuelle.
    3. Modélisation du domaine: Chaque nom indique un objet ou une classe d'objet qui pourrait être représenté dans le modèle. Ce sont les "entités" de l'approche de modélisation par entités et relations. Chaque verbe indique une relation entre objets qui pourrait être représentée dans le modèle. On distingue entre objets actifs et passifs.
  2. Identifier les frontières du système
  3. Identifier les interfaces du système et les interactions: En considérant les relations entre les classes d'objets, identifiez les interactions entre entités. Il pourrait y avoir différents types d'interactions à un niveau d'abstraction donné (voir détails plus bas): appels d'opérations (de méthodes), interactions en rendez-vous, l'échange de messages.
  4. Identifier les états de composantes: Certains objets identifiés pourraient exister dans différents états, et leur comportement dynamique pourrait dépendre de leur état. Identifiez ces états en construisant un modèle de machine d'états pour ces objets.

Tâche 1: Svp, suivez cette méthodologie. La description textuelle (point 1.1 de la méthodologie) est donnée dans la Définition du problème ci-haute. Nous considérons ici les systèmes téléphoniques comme une boîte noire, c'est-à-dire, pour les points 3 de la méthodologie nous considérons les interactions entre les usagers et le système.

Note: Le point 4 de la méthodologie est adressé dans la Partie 2.

Partie 2: Définir le comportement dynamique du système téléphonique (approche boîte noire) - les exigences pour le système

Tâche 2: Ici, on adresse le point 4 de la méthodologie ci-haute. S.v.p, définir le comportement dynamique du téléphone comme vu par un usager. Nous considérons seulement les états d'un téléphone individuel. Il est suggéré de décrire le comportement séparément pour l'usager appellant et pour l'usager appelé. Pour cela:

  1. Écrivez des cas d'utilisation d'un usager avec un téléphone pour les cas suivants:
    1. Usager A appelle un autre usager qui accepte l'appel.
    2. Usager A appelle un autre usager qui ne répolnd pas.
    3. Usager A appelle un autre usager dont le téléphone est occupé.
    4. Usager B est appelé et répond à l'appel

Partie 3: Conception du système: le comportement dynamique d'un téléphone (vue d'une composante dans le système) - modèle de machine à états

Maintenant nous considérons la structure interne du système téléphonique, comme montrée dans la figure ci-haut. Il est clair que le téléphone interagit pas seulement avec l'usager mais aussi avec le commutateur. L'objectif de votre travail dans cette partie 3 est de fournir un modèle du comportement dynamique d'un téléphone incluant les interactions avec l'usager (comme élaboré ci-dessus) ET les interactions avec la composante commutateur.

Tâche 3: Pour cela, vous devriez faire les étapes suivantes:

  1. Établissez une liste des interactions entre un téléphone et le commutateur. Pour chaque interaction, indiquez s'il s'agit d'une sortie vers le commutateur, ou d'une entrée venant du commutateur, ou les deux.
  2. Établissez un modèle de machine à états du téléphone avec ces états (incluant idle et connecté) et les interactions avec l'usager et le commutateur.

Partie 4: Comparaison de votre conception de système avec SIP (le protocole de téléphonie IP défini par IETF)

Le protocole SIP a été défini par la Société Internet (IETF) comme norme pour la téléphonie IP. Un téléphone SIP réalise les fonctions d'un agent usager SIP. Cette fonctionnalité inclut un comportement appelé Client (pour initier un appel téléphonique) et un comportement appelé Server (pour recevoir un appel). Un téléphone SIP peut communiquer directement avec un autre téléphone SIP (s'il connait l'adresse IP du téléphone appelé), mais normalement l'établissement d'une connexion téléphonique se fait à travers un serveur appellé SIP proxy qui joue un rôle similaire au rôle du commutateur dans le modèle de la figure ci-haute.

Les interactions entre les téléphones SIP et les proxies sont classifiées en SIP Requests (messages envoyés par un SIP user agent Client et reçus par un Server) et en SIP Responses (messages envoyés par un SIP user agent Server en réponse à un SIP Request, et reçu par un Client).

Tâche 4: L'objectif de cette partie 4 est de comparer votre conception de système (les résultats de la partie 3) avec SIP. Pour cela, svp, fournissez les informations suivantes:

  1. Pour chaque interaction identifiée dans la partie 3 entre le téléphone et le commutateur, indiquez s'il y a un message SIP qui a un rôle similaire.
  2. Comparez l'ordre des échanges de messages SIP avec l'ordre des interactions dans votre conception de la partie 3. Svp, expliquez ce qui est similaire, et ce qui est différent.

Une vue d'ensemble de SIP est donnée dans le Wikipedia (notez que la version anglaise est plus complète que la version française). Une description plus détaillée est donnée par les auteurs principaux de SIP dans un article de journal "Internet Telephony: architecture and protocols – an IETF". Je pense que, pour faire ce laboratoire, il suffit de lire cet extrait du Wikipedia. Voici est une explication sommaire du diagramme qui est à la fin de cet extrait: Ce diagramme montre l'établissement d'une connexion entre le téléphone (agent usager) "sip:user1@here.com" et le téléphone de la destination. D'abord, "sip:user1@here.com" envoie un message Invite au "SIP Stateful Proxy 1"qui ne sait pas comment trouver la destination, et pour cette raison essaie de trouver cette information en envoyant le message au "SIP Redirect Server" qui retourne le message de réponse "Moved temporarily" qui inclut l'adresse effective de l'usager de destination, c'est-à-dire "sip:user2@there.com". Ensuite, le "SIP Stateful Proxy 1" envoie le message Invite avec l'adresse effective à travers deux autres proxies jusqu'à la destination. L'agent d'usager au téléphone destination retourne un message de réponse "200 OK" qui rejoint finalement l'agent d'usager appelant. Ce dernier envoie alors un Request ACK pour confirmer que la réponse OK a été reçue. Après cela, la connexion est établie et la trafic de voie est échangé directement entre "sip:user1@here.com" et "sip:user2@there.com".

Il est à noter que la spécification du protocole SIP ne parle pas des interactions avec les usagers. Il parle seulement des interactions d' un téléphone SIP avec un autre téléphone SIP ou avec un proxy. (Remarque: Puisque les interactions avec l'usager ne sont pas définies, il est quelquefois pas claire quelle est la signification pour les usagers de certains échanges de messages entre téléphones).

Résultats à remettre: un rapport de laboratoire (à remettre sur papier au TA pendant la session de lab suivante).

Votre rapport devrait expliquer vos résultats pour les quatre tâches ci-hautes.

Le barème de notation (préliminaire) est le suivant:

S.v.p, consultez le TA pendant les sessions de laboratoire. Le rôle du TA est de vous aider à faire les travaux suggérés dans les laboratoires.