Chapitre 5 : Architecture du futur logiciel
Introduction partielle
Dans ce chapitre nous allons définir les objectifs à atteindre en termes de performance et de robustesse. Nous allons définir l’architecture de l’application telle qu’elle sera implémentée et déployée. Premièrement, nous identifierons les différents outils et deuxièmement, nous présenterons l’architecture logicielle de notre système ainsi que le coût de réalisation de notre projet.
Identification des outils
Nous avons utilisé plusieurs technologies qui interagissent ensemble afin de donner un meilleur rendu. Comme technologie, nous avons utilisé entre autres :
WinDev 24
WinDev est un atelier de génie logiciel (AGL) édité par la société française PC SOFT et conçu pour développer des applications, principalement orientées données pour Windows et également pour Linux, .NET et Java. Il propose son propre langage : le WLangage. WinDev a connu de nombreuses améliorations et la dernière version est WinDev 26 (9 décembre 2020) ;
SQL SERVER Management Studio 18 (SSMS)
SQL SERVER Management Studio est un environnement intégré de gestion des infrastructure SQL. SSMS est utilisé pour accéder à, configurer, gérer, administrer et développer tous les composants de SQL SERVER, Azure SQL Database et Azure Synapse Analytics. SSMS fournit un utilitaire unique et complet qui associe un vaste ensemble d’outils graphiques à différents éditeurs de script performant, pour permettre aux développeurs et aux administrateurs de base de données de tous niveaux d’avoir accès à SQL Server. SSMS a connu de nombreuses améliorations et la dernière version est SSMS 18.9.2 (15 juillet 2021) ;
Microsoft SQL SERVER 2017
Microsoft SQL SERVER est un système de gestion de base de données (SGBD) en langage SQL incorporant entre autres un SGBDR (SGBD relationnel) développé et commercialisé par la société Microsoft. Il fonctionne sous les OS Windows et Linux (depuis mars 2016), mais il est possible de le lancer sur MAC OS via Docker, car il en existe une version en téléchargement sur le site de Microsoft. SQL SERVER a connu de nombreuses améliorations et la dernière version est SQL SERVER 2019 (4 novembre 2019).
Architecture logicielle
L’architecture d’un logiciel décrit les manières dont seront agencées les différents éléments d’une application et comment ils interagissent entre eux. Cette étape est donc l’une des premières étapes du développement logiciel et intervient lors de la phase de conception. Elle est généralement réalisée par un architecte logiciel ou un architecte solution, élément central du projet de développement.
De ce point, la conception de l’architecture est une phase particulièrement importante du développement d’un logiciel. Elle conditionne sa stabilité, son efficacité et sa pérennité.
C’est ainsi que plusieurs critères guident le choix de l’architecture applicative. Comme critères nous pouvons entre autres citer le besoin métier et des contraintes fonctionnelles et non fonctionnelles du logiciel.
Pour notre projet, nous avons adopté l’architecture MVP (Modèle, Vue et Présentation) qui est une manière d’architecturer le code en la décomposant en trois (03) parties :
La couche MODELE : contient les données « Métier » de l’application ainsi que la logique qui permet de les manipuler. Cette couche est constituée d’un ensemble d’objets basés sur des classes représentant les données à manipuler. La logique qui permet de manipuler ces données est représentée par des classes et des méthodes ;
La couche VUE : représente la partie UI de l’application. Elle correspond à l’interface utilisateur (UI). Une vue peut être sous la forme d’une fenêtre, d’un état, d’une page Web ou d’une fenêtre mobile ;
La couche PRESENTATION : c’est la classe qui effectue la liaison entre la VUE et le MODELE. Elle organise et formate les données du MODELE à afficher dans la VUE. La couche PRESENTATION n’a pas accès directement à la VUE. Par contre la couche PRESENTATION peut demander à la VUE de se mettre à jour.
Estimation du coût
L’estimation des coûts est une prévision des dépenses futures liées à un investissement, qui se base sur les données et les renseignements disponibles à un moment donné.
Elle est très importante car elle permet d’avoir le budget total de réalisation d’un projet afin d’éviter les retards de livraison des livrables et les dérives budgétaires. Elle prend en compte le coût de développement, de formation des utilisateurs, d’achat de matériel et des logiciels.
Figure 16 : Techniques et modèles d’estimation d’effort
Source : Google
Dans notre cas, nous avons choisi de travailler avec la méthode COCOMO (Constructive COst Model). Il existe deux méthodes COCOMO :
COCOMO 81 : pour les projets basés sur une technologie traditionnelle. Cette méthode est constituée de trois (3) modèles :
Modèle de Base ;
Modèle Intermédiaire ;
Modèle Expert.
COCOMO II : pour les projets basés sur une technologie moderne de réutilisation de composants. Cette méthode est constituée de trois (3) modèles :
Modèle de composition d’application ;
Modèle avant-projet ;
Modèle post-architecture.
Pour notre projet, nous avons décidé de prendre le modèle de Base de la méthode COCOMO 81.
Ce modèle de Base est assez simpliste. Il permet d’estimer le coût de développement d’un logiciel à partir du type de projet, la taille de l’application (nombre de lignes de code à écrire) et du salaire moyen d’un informaticien.
Selon ce modèle, il existe trois (03) types de projets :
Figure 17 : Modèle de type de projet
Source : Google
Les projets organiques : leurs réalisations sont assurées par une équipe de petite taille ;
Les projets médians : ce sont des projets dont la complexité est moindre et qui sont pilotés par une équipe dont les membres se connaissent. Les technologies utilisées peuvent être nouvelles mais pas difficiles à appréhender ;
Les projets imbriqués : le niveau d’innovation est important, l’organisation est complexe et dispose d’un couplage fort avec beaucoup d’interactions.
La figure suivante donne les formules de calcul des coûts avec COCOMO.
Figure 18 : Formules de calcul des coûts avec COCOMO
Source : Google
Le présent projet est classé dans la catégorie Organique de COCOMO. Le nombre de ligne de code est estimé à 4500 et le coût de développement est résumé dans le tableau suivant :
Tableau 16 : Coûts de développement
Intitulé | Formule | Valeur |
MM | 2,4*(4,5) 1,05 | 11,6 Homme-mois |
TDev | 2,5*(11,6) 0,38 | 6.34~7 mois |
Nombre de personne nécessaire | Effort/TDev : 11,6/6.34 | 1,82~2 personnes |
Coût du financement | Effort*Salaire moyen :
11,6*300 000 |
3 480 000 FCFA |
Tableau 17 : Coût total de mise en œuvre
Désignation | Détail | Prix Total (en FCFA) |
SQL Server Standard
+ Licence |
Cout du serveur pour le stockage des informations de l’application + la licence | 590 000 FCFA |
Coût de développement | Coût total de développement de l’application | 3 480 000 FCFA |
Coût de réalisation du projet | Coût total de réalisation du projet | 4 070 000 FCFA |
Conclusion partielle
Au terme de ce chapitre, nous avons identifié les outils qui seront utilisés dans la mise en place de notre logiciel. Aussi avons-nous calculé l’estimation du coût total de notre projet. Dans le chapitre suivant, nous allons exposer le processus de conception de la solution.
Chapitre 6 : Conception de la solution
Introduction partielle
Dans ce chapitre, nous allons définir les différentes manières dont le système sera implémenté. Pour ce faire, nous allons identifier d’abord les concepts clés du domaine. Ensuite, nous présenterons le diagramme de classe. Enfin, nous présenterons le diagramme de déploiement.
Identification des concepts clés du domaine
Les concepts clés désignent les classes pertinentes pour les objets du domaine de notre logiciel. Comme classes pertinentes, nous avons identifié :
Inscription ;
Eleve ;
Professeur ;
Personnel ;
Administrateur ;
Utilisateur ;
Parent ;
Categorie ;
Serie ;
Niveau ;
Classe ;
Matiere ;
Note ;
Sms ;
AnneeAcademique ;
PaiementScolarite ;
Droit ;
Bge ;
DetailVote ;
Projecteur ;
DetailEmprunt.
Diagramme de classe
Le diagramme de classe est un schéma utilisé en génie logiciel pour la représentation des classes et des interfaces d’un système ainsi que les différentes relations entre celles-ci. Il appartient à la partie statique d’UML car son rôle est d’indiquer ce que le système EST.
.
Figure 19 : Diagramme de classe
Un Extrait de la base de données
Source : Astah Community
Description détaillée de quelques classes
La description ci-dessous des classes a pour objectif de faciliter la compréhension du diagramme de classe :
Tableau 18 : Description détaillée de la classe utilisateur.
Classe : Utilisateur | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDUtil | Identifiant de l’utilisateur | AN | 8 | Clé primaire |
Nom | Nom de l’utilisateur | Texte | 25 | |
Prenom | Prénom de l’utilisateur | Texte | 30 | |
DateNaiss | Date de naissance | Date | 8 | |
Telephone | Téléphone | AN | 12 | |
Nationalite | Nationalité | Texte | 20 | |
LieuNaissance | Lieu de naissance | Texte | 20 | |
Image | Image | Image | 8 | |
Password | Mot de passe | Texte | 12 | |
Matricule | Matricule de l’utilisateur | AN | 8 | |
Texte | 20 | |||
Sexe | Sexe | Texte | 8 | |
CompteActif | Compte Actif | AN | 1 | |
Méthode | ||||
Nom | Description | Observation | ||
bloquer_compte | Bloquer compte | |||
debloquer_compte | Débloquer compte |
Classe : Classe | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDClasse | Identifiant de la classe | AN | 8 | Clé primaire |
LibelleClasse | Libellé | Texte | 10 | |
Scolarite | Frais de scolarité | N | 6 | |
NbrPlace | Nombre de place disponible | AN | 3 | |
Classe : Note | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDNote | Identifiant de la note | AN | 8 | Clé primaire |
Note1 | Note 1 | N | 2 | |
Note2 | Note 2 | N | 2 |
Classe : Matiere | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDMatiere | Identifiant de la matière | AN | 8 | Clé primaire |
LibelleMat | Libellé | Texte | 10 | |
CoefMat | Coefficient de la matière | N | 1 |
Classe : Inscription | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDInscription | Identifiant de l’inscription | AN | 8 | Clé primaire |
Classe : Niveau | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDNiveau | Identifiant du niveau | AN | 8 | Clé primaire |
LibelleNiveau | Libellé | Texte | 10 |
Classe : Categorie | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDCategorie | Identifiant de la catégorie | AN | 8 | Clé primaire |
LibelleCateg | Libellé | Texte | 10 |
Classe : PaiementScolarite | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDPaiement | Identifiant du paiement | AN | 8 | Clé primaire |
MontantPaye | Montant du paiement | N | 6 | |
DatePaiement | Date du paiement | Date | 8 | |
Méthode | ||||
Nom | Description | Observation | ||
afficherpaiement | Afficher paiement effectués | |||
payer | Faire le paiement |
Classe : Sms | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDSms | Identifiant de l’sms | AN | 8 | Clé primaire |
Contenu | Contenu de l’sms | Texte | 50 | |
Type | Type de l’sms | Texte | 10 | |
Statut | Statut de l’sms(envoyé ou non envoyé) | Texte | 8 | |
DateSms | Date d’envoi de l’sms | Date | 8 | |
NumeroDest | Numéro de destinataire | AN | 12 | |
Méthode | ||||
Nom | Description | Observation | ||
affichersms | Afficher un sms | |||
envoyer | Envoyer un sms |
Classe : Droit | ||||
Attributs | ||||
Nom | Description | Type | Taille | Observation |
IDDroit | Identifiant du droit | AN | 8 | Clé primaire |
DroitAdministrateur | Droit pour l’administrateur | AN | 1 | |
DroitEleve | Droit pour l’élève | AN | 1 | |
DroitProfesseur | Droit pour le professeur | AN | 1 | |
DroitComptable | Droit pour le comptable | AN | 1 | |
DroitDRH | Droit pour le DRH | AN | 1 | |
DroitSuperviseur | Droit pour superviseur | AN | 1 | |
DroitScolarite | Droit pour la scolarité | AN | 1 | |
DroitParent | Droit pour le parent | AN | 1 |
Diagramme de déploiement
Un diagramme de déploiement est une vue statique qui sert à représenter l’utilisation de l’infrastructure physique par le système et la manière dont les composants du système sont repartis. Les éléments utilisés par ce diagramme sont principalement les nœuds, les composants, les associations et les artefacts. Il est couramment utilisé pour décrire l’architecture technique et générale d’un système.
Figure 20 : Diagramme de déploiement
Source : Astah Community
Conclusion partielle
Dans ce chapitre, nous avons présenté l’aspect conceptuel de la structure des données de notre application. Pour cela, nous avons identifié les domaines clés. C’est ainsi que nous avons obtenu le diagramme de classe ainsi que le diagramme de déploiement. Dans la prochaine partie de ce document, nous allons nous consacrer à la réalisation du projet ainsi que son bilan.