Professional Documents
Culture Documents
2 / 22
Avertissement
Ce guide est destin dcrire une architecture de type objet. Il prsente un document rduit adapt un petit systme qui ne prsente pas de caractre de sret ou de criticit. Dans le cas contraire un dossier plus toff serait probablement demand. En particulier pourraient tre rajouter : - les objectifs de l'architecture et les contraintes, - le rappel des cas d'utilisation avec les squences d'vnements significatives, - des diagrammes montrant la ralisation des cas d'utilisation, - des objectifs de qualit, - une matrice de traabilit entre les exigences de la STB et les sous-systmes et classes. Pour de gros systmes, une dcomposition sur plusieurs niveaux peut tre ncessaire. Enfin on pourrait y inclure des lments justificatifs (par exemple en intgrant une partie des remarques prliminaires indiques plus loin), moins que la mthode de dveloppement ait prvu un dossier justificatif d'architecture pour expliciter les choix d'architecture. Dans le cas o l'on aurait dcrire une architecture de type non objet, on pourra s'inspirer du prsent guide, mais en l'adaptant au type d'architecture.
3 / 22
1 - Objet du guide
Ce guide fournit un plan type de document d'architecture rduit adapt de petits systmes qui ne prsentent pas de caractres de sret ou de criticit. Un exemple de document partiellement rdig bas sur l'exemple prsent dans l'introduction aux guides de redaction est joint.
2 - Plan type
Le plan type suivant est recommand pour un document rduit dans le cadre d'une conception objet : 1 Introduction 1.1 Objet 1.2 Terminologie et sigles utiliss 1.3 Documents de rfrence 2 Prsentation gnrale de l'architecture 3 Les principaux objets et leurs classes 3.1 Liste des principales classes 3.2 Relations entre classes 3.3 Rles et interfaces des principales classes 4 Scnarios d'interaction entre objets 5 Les processus et le dploiement 5.1 Dploiement, programmes, processus et threads 5.2 Principes de fonctionnement des processus 5.3 Interactions entre processus ou threads 6 Interfaces externes du systme 7 Dcoupage de ralisation (sous-systmes) 7.1 Liste des sous-systmes et leurs relations 7.2 Fonctions et interfaces externes des sous-systmes 8 Dimensionnements et performances
3 - Rdaction du document
3.1 Introduction 3.1.1 Objet Prciser l'objet du document (description de l'architecture), le nom du systme et brivement sa fonction. 3.1.2 Terminologie et sigles utiliss Dfinir les abrviations employes et les termes qui ont un sens particulier.
4 / 22 3.1.3 Documents de rfrence Donner les rfrences des documents ayant servi de rfrence pour l'architecture (la STB principalement) ou pouvant aider comprendre le problme pos. 3.2 Prsentation gnrale de l'architecture Prsenter rapidement l'organisation du logiciel en indiquant les principaux lments de l'architecture et les principaux choix faits, par exemple : - dcoupage en programmes, rpartition du logiciel entre les calculateurs, - processus, et threads ventuels, - architecture rseau et accs rseau, - accs aux bases de donnes (par serveur base de donnes, base rseau), - conception objet, - mode de programmation (vnementiel ou squentiel), - langages et systmes d'exploitation, - principaux logiciels rutiliss 3.3 Les principaux objets et leurs classes 3.3.1 Liste des principales classes Les principales classes pourront tre prsentes par catgorie sous forme de tableaux indiquant : - le nom de la classe, - l'indication du rle principal de la classe. 3.3.2 Relations entre classes Les relations entre les principales classes identifies ci-dessus seront reprsentes sur des diagrammes de classes montrant les classes et les diverses relations entre classes (gnralisation, association). Pour que les diagrammes soient lisibles, il faudra rpartir les classes sur plusieurs diagrammes. On pourra par exemple rpartir les principales classes en packages de classes, et faire pour chaque package de classes un diagramme montrant les classes du package, et les classes des autres packages en relation avec ces classes. 3.3.3 Rles et interfaces des principales classes Pour chaque catgorie ou package de classes, un paragraphe indiquera pour chacune des principales classes : - le rle et les fonctions assures, - les principales donnes et les principales mthodes, - le dtail de l'interface public. Le dtail de l'interface public pourra tre prsent sous forme de tableau, ou en reproduisant le code comment (C++, Java, C#...) de cet interface.
5 / 22 3.4 Scnarios d'interaction entre objets Les scnarios d'interaction seront dfinis partir des cas d'utilisation. On choisira les squences d'vnements les plus significatives et on construira un diagramme d'interaction entre objets (diagramme de collaboration ou diagramme de squence de messages) pour chaque squence retenue. 3.5 Les processus et le dploiement 3.5.1 Dploiement, programmes, processus et threads Prsenter le dcoupage du logiciel en programmes et les processus attachs aux programmes. Pour les processus multi-threads, indiquez le rle de chaque thread. Les prsentations pourront tre faites sous forme de schmas ou de tableaux. Quelques explications sur le choix des dcoupages pourront tre fournies. Le dploiement sera reprsent sous forme d'un schma montrant les principaux matriels, les rseaux et les interfaces externes, avec indication des processus excuts sur chaque calculateur. 3.5.2 Principes de fonctionnement des processus Prsenter schmatiquement l'enchanement des traitements dans chaque processus partir de son lancement par le systme d'exploitation ou de l'arrive des principaux vnements. On pourra par exemple le montrer par des diagrammes montrant l'enchanement des appels entre objets. 3.5.3 Interactions entre processus ou threads Les interactions entre processus seront prsentes sous forme de diagrammes de squence de messages, chaque processus tant reprsent comme un objet. Ces diagrammes devront prsenter les squences les plus significatives, en particulier la squence d'initialisation du systme. Dans le cas de processus multi-threads, les interactions entre le processus et les threads seront aussi prsentes sous forme de diagrammes de squence de messages. 3.6. Interfaces externes du systme Les interfaces externes du systme varient avec le systme. On aura en gnral un interface oprateur, un interface base de donnes, des interfaces fichiers, des interfaces de communication, et parfois des interfaces avec des matriels spcifiques, des interfaces avec des outils logiciels On fera un paragraphe par type d'interface pour prciser des formats de donnes, des protocoles d'changes Pour l'interface oprateur, il n'est pas ncessaire de le dfinir de faon complte, mais on prsentera les choix de principe et des maquettes des crans les plus significatifs. Lorsque le programme utilise des bases de donnes, on prcisera :
Mthodes de dveloppement -Guide DAL
6 / 22 le contenu des bases de donnes, l'organisation des donnes (par exemple un schma conceptuel de donnes), la dfinition dtaille des tables.
Lorsque le programme utilise des fichiers de donnes, on fournira la dfinition de chacun des fichiers. 3.7 Dcoupage de ralisation (sous-systmes) Le dcoupage en sous-systmes a pour rle de rpartir les taches de ralisation entre les sousgroupe de ralisation, chaque sous-groupe se voyant confier la ralisation d'un ou plusieurs sous-systmes. Afin de permettre aux sous-groupes de travailler de faon quasi indpendante, on s'efforcera dans cette partie de dfinir de faon aussi complte et prcise que possible : - le contenu des sous-systmes, - les interfaces externes des sous-systmes 3.7.1 Liste des sous-systmes et leurs relations Un tableau prsentera les sous-systme raliser en indiquant : - le nom et le rle du sous-systme, - le rle principal du sous-systme, - les principales classes du sous-systme, - les programmes concerns. Un diagramme montrera les dpendances entre sous-systmes (un sous-systme dpend d'un autre s'il fait appel ses services ou hrite de ses classes abstraites). 3.7.2 Fonctions et interfaces externes des sous-systmes Pour chaque sous systme un paragraphe dtaillera : - ses fonctions, en prcisant les principales classes incluses dans le sous-systme, et les autres fonctions qui n'apparaissent pas explicitement dans la dfinition de ces classes, - les interfaces externes, en prcisant les principales classes du sous systme qui serviront d'interface pour le sous-systme (classes dont les mthodes sont appeles partir d'autres sous-systmes), et les autres types d'interface externes tels que des fichiers, des messages rseaux, des messages d'vnement Windows, des signaux QT. 3.8 Dimensionnements et performances On prcisera les dimensionnements ou contraintes de performances significatifs pour l'architecture, par exemple : - nombre maximum d'utilisateurs ou nombre d'utilisateurs simultans, - tailles maxima de tables, - temps de rponse - dlais respecter Pour chacun de ces points, on prcisera comment l'architecture les prend en compte.
7 / 22
8 / 22
9 / 22
1 - Introduction
1.1 Objet Ce document dcrit l'architecture du dmonstrateur de navettes d'aroport, dont le rle est de fournir des informations sur des bornes disposition des clients d'autobus navettes pour aroport. 1.2 Terminologie et sigles utiliss Ligne Trajet suivi par un autobus entre l'aroport et un terminus et inversement, avec des arrts intermdiaires Station Endroits ou l'autobus est arrt ou s'arrte pour faire monter ou descendre des passagers : aroports, terminus de lignes, arrts intermdiaire de ligne. 1.3 Documents de rfrence Spcification technique de besoin du dmonstrateur de navettes d'aroport N
du
10 / 22
La conception des programmes est de type objet, et le mode de programmation vnementiel. Les programmes sont cods en C++ pour Windows XP avec la bibliothque QT.
Classes Base de donnes (DB) Classes rseau (net) Classes relatives la borne
12 / 22 3.3 Rles et interfaces des classes Donnes partages (Data) 3.3.1 Classe Lignes La classe Ligne permet d'accder toutes les informations sur une ligne : - sens de la ligne (de ou vers l'aroport), terminus, - liste des stations de la ligne, - liste des navettes de la ligne. Donnes de la classe (donnes prives)
int lineCode; // line code bool lineSens; // line way (true from airport) QString lineTerminus; // line terminus halt ident
3.3.2 Classe Station 3.3.3 Classe Navette 3.3.4 Classe Borne 3.4 Rles et interfaces des classes Base de donnes (DB) 3.5 Rles et interfaces des classes rseau (net) 3.5.1 Classe Rezo La classe Rezo est l'interface pour tous les changes entre le centre de contrle et les bornes travers le rseau. Elle permet d'initialiser la connexion rseau au niveau d'une borne ou de mettre la fonction serveur en coute au centre de contrle, de fermer la ou les connexion rseau, d'envoyer des blocs de donnes par le rseau, et de prendre en compte les blocs de donnes reues par le rseau (qui seront transmises l'application par un signal).
13 / 22 Les oprations (connexion, envoi de donnes) tant ralises de faon asynchrone, un compte rendu est aussi transmis par signal pour chaque opration. Interface d'appel public :
// AT start connection or CC start listen : void start(void); // close all links (CC and AT) and stop listen (CC): void stop(void); // send array of bytes of type type from server to AT of ident, // or from AT to server (ident not used) // return false if ident not connected or already busy to send : bool sendData(int type, QByteArray data, QString ident=QString()); // check if ident connected (ident unused on AT) : bool isConnected(QString ident=QString());
Signaux emis :
// emit data with type type coming from ident (ident unused on AT) void postDatas(int type, QByteArray data, QString ident); // emit operation ending status void postStatus(int opCode,int status);
3.5.2 Classe Serveur 3.5.3 Classe Formateur 3.6 Rles et interfaces des classes particulires la borne (AT)
14 / 22 Vente de billets
Rception de message rseau Initialisation de la borne Initialisation du centre de contrle Surveillance des bornes au centre de contrle
15 / 22 Le dploiement du systme peut tre reprsent par le schma suivant (les processus sont indiqus en italique) : Centre de contrle PCC rseau
Borne PAT
Borne PAT
Borne PAT
Nota Le rseau est une fourniture extrieure au systme. 5.2 Principes de fonctionnement des processus 5.2.1 Processus PAT Les diagrammes qui suivent montrent les principaux objets activs et les graphes d'appels entre objets lors de l'arrive des principaux vnements : - requte usager (informations sur les lignes ou achat de billets) - dclenchement timer pour rafrachir les informations gnrales de l'cran ou message venant du rseau.
16 / 22 Requte usager
18 / 22 la table des bornes indiquant pour chaque borne le nom, la station d'implantation et son tat, la table calendrier indiquant le saint du jour pour chaque jour de l'anne la table des messages textuels, qui enregistre pour chaque message mis, la date et heure d'mission, l'metteur, les destinataires et le contenu du message, la table des cumuls qui enregistre borne par borne pour chaque jour le nombre de billets vendus par zone tarifaire et type de carte de paiement, et les montants correspondants, la table des mots de passe qui contient les identificateurs et mots de passe (sous forme code) des oprateurs et administrateurs du centre de contrle.
Pour dimensionner ces tables, on retient les valeurs suivantes : Nombre de lignes possibles 10 Nombre maximum d'arrts par ligne 10 Nombre maximum de zones tarifaires 10 Nombre maximum de circulations 10 dans chaque sens journalires sur une ligne Nombre maximum de bornes 50 Nom de station, d'oprateur, d'administrateur 20 caractres maximum Code navette 4 chiffres Taille maxima d'un message textuel 40 caractres Taille des mots de passe Entre 8 et 16 caractres Les utilitaires SGDB seront utiliss pour la cration de la base, les sauvegardes et restauration, ainsi que pour les oprations de type suppression de lignes, de stations, de messages 6.1.2 Schma des bases de donnes 6.1.3 Dtail des tables Table lignes Champ Type Contenu code INTEGER numro donn la ligne isfrom BOOLEAN indique si ligne vient de l'aroport (TRUE) ou y va (FALSE) terminus VARCHAR nom du terminus de la ligne Table des stations Table ligne - stations Table des navettes Table des horaires Table des tarifs Table des bornes
Mthodes de dveloppement -Guide DAL
19 / 22 Table calendrier Table des messages textuels Table des cumuls Table des mots de passe
6.2 - Interface oprateur 6.2.1 Borne L'interface oprateur de la borne relle est un cran tactile, et on prendra en compte les contraintes de cet cran pour le dmonstrateur. L'cran sera divis en deux zones comme prsent dans la maquette ci-dessous. La partie gauche contient les informations permanentes : nom de la station, date et heure et saint du jour, temps restant jusqu'au prochain dpart, heures des prochains dpart, et en bas le dernier message du centre de contrle.
La partie droite de l'cran est rserve pour les services la demande. En l'absence de service demand elle prsente deux pavs de slection. Lorsqu'un service est demand elle prsente des boutons de slection et des informations. Les boutons de slection ont une taille suffisante pour permettre une slection au doigt. 6.2.2 Centre de contrle
20 / 22
DONNEES
BASE DE DONNEES
PAT PCC
GESTION BORNE
PAT
GESTION CC
PCC
21 / 22 7.2.1 Sous-systme RESEAU Ce sous-systme regroupe les fonctions d'accs rseau. Il permet de constituer des fonctions d'accs rseau : - pour une borne avec les classes Rezo et Formateur, - pour le centre de contrle avec les classes Rezo, Serveur et Formateur, compltes des classes permettant de grer les changes. La classe Rezo assure l'interface de l'application pour changer des blocs de donnes (tableaux d'octets). La classe Formateur permettra les transformations entre les donnes changer et les tableaux d'octets en entre ou sortie de la classe Rezo. L'interface de programmation du sous-systme rseau est compos des interfaces des deux classes : - Rezo, - Formateur. Ces deux interfaces sont dfinis au 3. Les changes avec le rseau seront faits par l'intermdiaire de sockets TCP-IP (classe QTcpSocket), et l'coute sur le rseau par une socket (classe QTcpServer). Le nom rseau et le port d'coute du centre de contrle sont prdfinis afin de permettre les demandes de connexion par les bornes. 7.2.2 Sous-systme GESTION DONNEES
7.2.3 Sous-systme BASE DE DONNEES . 7.2.4 Sous-systme GESTION BORNE . 7.2.5 Sous-systme GESTION CC .
8 - Dimensionnements et performances
Les paramtres dimensionnants pour les tables de la base de donnes sont indiqus au 6.1. Ces paramtres seront pris en compte dans la dfinition dtaille et la cration de la base de donnes.
22 / 22 Le centre de contrle doit pouvoir assurer les dialogues avec 5 bornes simules parmi 50 bornes possibles. Les tables seront dimensionnes pour au moins les 50 bornes possibles, et les crans seront dfinis pour reprsenter les informations d'au moins 5 bornes. Les temps de rponse une demande sont limits 2 secondes. Des essais seront fait sur les premiers prototypes pour vrifier que ce dlai est bien tenu pour les requtes courantes, et voir quelles sont les types de requte qui risquent d'tre plus longues et demanderont l'affichage d'un sablier.