Outils pour utilisateurs

Outils du site


departement_info:personnels:pb:r4.01

Architecture logicielle

Certaines applications simples sont constituées d'un élément auto-suffisant. Il peut s'agir d'éditeur de texte ou d'accessoire tel qu'une calculette. D'autres s'appuient sur plusieurs éléments en relation qui interagissent pour fournir à l'utilisateur le service attendu. Il peut s'agir d'applications de bureau qui sont connectées à un ou plusieurs serveurs ou d'applications web.

L’architecture logicielle décrit d’une manière symbolique et schématique les différents éléments d’un ou de plusieurs systèmes informatiques, leurs interrelations et leurs interactions. Contrairement aux spécifications produites par l’analyse fonctionnelle, le modèle d'architecture (…) ne décrit pas ce que doit réaliser un système informatique mais plutôt comment il doit être conçu de manière à répondre aux spécifications. (…) Les deux objectifs principaux de toute architecture logicielle sont la réduction des coûts et l'augmentation de la qualité du logiciel ; la réduction des coûts est principalement réalisée par la réutilisation de composants logiciels (…). wikipedia

architecture client-serveur

Une architecture client-serveur est constituée de deux types d'éléments. Les clients utilisent des services fournis par les serveurs. Les clients envoient des requêtes aux serveurs qui en retour leur envoient des réponses. Les serveurs attendent des requêtes et y répondent.

Du point de vue d'un utilisateur, l'application utilisée est un client qui assure la présentation de données obtenues auprès d'un serveur.

Le serveur peut être un SGBD et le client lui envoie des requêtes SQL. Le serveur peut être une application spécifique qui répond à des requêtes exprimées dans un langage qui lui est propre (par exemple un serveur de calcul qui répond à des opérations). On parle alors d'architecture à 2 niveaux ou 2-tiers.


Si le serveur est une application avec son propre langage de requêtes et que ce serveur interroge un autre serveur pour pouvoir répondre à son client, on parle d'architecture à 3 niveaux ou 3-tiers.

Au delà de 3 niveaux, on parle d'architecture n-tiers.

architecture d'une application

Une application (web ou de bureau) est constituée de différents éléments ou composants logiciels. Ils se distinguent par leur rôle et la séparation des rôles permet une meilleure compréhension et une maintenance facilitée. Pour les applications avec une interface graphique, on retrouve l'architecture Modèle-Vue-Contrôleur (vue en IHM).

C'est un patron d'architecture et il en existe d'autres.

On peut aussi concevoir une application en sous-ensembles de sous-programmes s'appuyant les uns sur les autres. On parle alors d'architecture en couches. Ce principe est très utilisé dans les systèmes d'exploitation (structure en couches) et dans les communications dans les réseaux informatiques (modèle OSI).

Certains composants d'une application sont parfois partagés avec d'autres applications (traitement de texte et application de présentation peuvent partager le même correcteur orthographique par exemple). Les éléments constituant une application sont stockés sous forme de fichiers distincts et contiennent des sous-programmes susceptibles d'être utilisés dans l'application. Une bibliothèque logicielle est un ensemble de sous-programmes ou routines, généralement autour du même sujet, stockés dans un fichier. La bibliothèque utilisée par une application y est référencée mais elle n'est pas contenue dans le(s) fichier(s) du programme. Par cette technique,
- une modification d'une des routines de la bibliothèque nécessite de la re-créer, sans imposer de re-créer l'application ;
- différentes applications peuvent utiliser la même bibliothèque.

Le projet

Il s'agit de développer une application utilisant une base de données. L'architecture retenue est de type client-serveur mais l'accès à la base de données se fera via un composant logiciel assurant l'interface entre l'application de bureau (le client) et le SGBD (le serveur). Ce composant pourra être développé en sollicitant le SGBD par des requêtes SQL ou en utilisant une bibliothèque disponible sur le marché (ici LINQconnect Express qui met en oeuvre Language INtegrated Query). L'intérêt d'un tel composant d'interface est de rendre le client indépendant du support de données (voir le patron de conception procuration - proxy).

sujet

Travail à réaliser

/!\ Attention : l'évaluation impose de réaliser le travail en respectant les attendus de chaque séance.

Séance 1 :

Création de la base de données
Création de la solution et des projets
Ajout de l’outil Linq
Création de la vue principale
Création de la vue de configuration des paramètres de la base de données
Connexion à la base de données (settings)

Séance 2 :

Création de la vue d’authentification du gestionnaire
Test de l’authentification
Création de la vue de gestion d’un service ou fonction
Ajout de services et fonctions à la base de données
Création de la vue gestion de personnel
Ajout de personnel à la base de données

Séance 3 :

Création de la vue liste de personnels
Affichage dans un DataGrid des personnels enregistrés dans la base de données
Modification ou suppression d’un service ou fonction à l’aide d’un ContextMenu

Séance 4 :

Recherche d’un personnel par service
Recherche d’un personnel par fonction
Recherche d’un personnel par nom
Compte-rendu

Le travail fera l'objet d'un compte-rendu écrit comportant les points suivants :

  • présentation du TP, c'est-à-dire introduction résumant le projet
    • nature de l'application (client lourd ou application de bureau cliente plutôt qu'application web)
    • objet ou vocation
    • catégories d'utilisateurs
    • fonctionnalités
  • présentation des outils utilisés
  • description de la classe BdDPersonnels
  • description des tests réalisés (manuels ou automatisés), des corrections éventuelles et résultats obtenus
  • conclusion
    • fonctionnalités non développées
    • fonctionnalités complémentaires à développer
    • intérêt d'un ORM (Object Relational Mapper) tel que LinQ
    • et surtout, en adéquation avec le thème d'architecture logicielle, l'intérêt de l'architecture client-serveur (votre application et le SGBD) et d'une architecture en couches pour le client lourd :
      • couche interface utilisateur avec architecture MVC (ou variante de MVC)
      • couche mots-clés "métier" avec la bibliothèque proposant différents services (obtenir les fonctions, les services, les employés, ajouter un employé, obtenir les employés ayant telle fonction, obtenir les employés de tel service …)
      • couche technique avec la bibliothèque externe LinQ
departement_info/personnels/pb/r4.01.txt · Dernière modification : 2024/05/30 15:41 de Brutus Philippe

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki