Architecturer l’avenir: Clés de la conception logicielle moderne

 

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.


image16

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 :


image17

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.


image18

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éFormuleValeur
MM2,4*(4,5) 1,0511,6 Homme-mois
TDev2,5*(11,6) 0,386.34~7 mois
Nombre de personne nécessaireEffort/TDev : 11,6/6.341,82~2 personnes
Coût du financementEffort*Salaire moyen :

11,6*300 000

3 480 000 FCFA

 

Tableau 17 : Coût total de mise en œuvre

DésignationDétailPrix Total (en FCFA)
SQL Server Standard

+

Licence

Cout du serveur pour le stockage des informations de l’application + la licence590 000 FCFA
Coût de développementCoût total de développement de l’application3 480 000 FCFA
Coût de réalisation du projetCoût total de réalisation du projet4 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.

.


image19

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
NomDescriptionTypeTailleObservation
IDUtilIdentifiant de l’utilisateurAN8Clé primaire
NomNom de l’utilisateurTexte25
PrenomPrénom de l’utilisateurTexte30
DateNaissDate de naissanceDate8
TelephoneTéléphoneAN12
NationaliteNationalitéTexte20
LieuNaissanceLieu de naissanceTexte20
ImageImageImage8
PasswordMot de passeTexte12
MatriculeMatricule de l’utilisateurAN8
EmailEmailTexte20
SexeSexeTexte8
CompteActifCompte ActifAN1
Méthode
NomDescriptionObservation
bloquer_compteBloquer compte
debloquer_compteDébloquer compte

 

Classe : Classe
Attributs
NomDescriptionTypeTailleObservation
IDClasseIdentifiant de la classeAN8Clé primaire
LibelleClasseLibelléTexte10
ScolariteFrais de scolaritéN6
NbrPlaceNombre de place disponibleAN3
Classe : Note
Attributs
NomDescriptionTypeTailleObservation
IDNoteIdentifiant de la noteAN8Clé primaire
Note1Note 1N2
Note2Note 2N2

 

Classe : Matiere
Attributs
NomDescriptionTypeTailleObservation
IDMatiereIdentifiant de la matièreAN8Clé primaire
LibelleMatLibelléTexte10
CoefMatCoefficient de la matièreN1

 

Classe : Inscription
Attributs
NomDescriptionTypeTailleObservation
IDInscriptionIdentifiant de l’inscriptionAN8Clé primaire

 

Classe : Niveau
Attributs
NomDescriptionTypeTailleObservation
IDNiveauIdentifiant du niveauAN8Clé primaire
LibelleNiveauLibelléTexte10

 

Classe : Categorie
Attributs
NomDescriptionTypeTailleObservation
IDCategorieIdentifiant de la catégorieAN8Clé primaire
LibelleCategLibelléTexte10

 

Classe : PaiementScolarite
Attributs
NomDescriptionTypeTailleObservation
IDPaiementIdentifiant du paiementAN8Clé primaire
MontantPayeMontant du paiementN6
DatePaiementDate du paiementDate8
Méthode
NomDescriptionObservation
afficherpaiementAfficher paiement effectués
payerFaire le paiement

 

Classe : Sms
Attributs
NomDescriptionTypeTailleObservation
IDSmsIdentifiant de l’smsAN8Clé primaire
ContenuContenu de l’smsTexte50
TypeType de l’smsTexte10
StatutStatut de l’sms(envoyé ou non envoyé)Texte8
DateSmsDate d’envoi de l’smsDate8
NumeroDestNuméro de destinataireAN12
Méthode
NomDescriptionObservation
affichersmsAfficher un sms
envoyerEnvoyer un sms

 

Classe : Droit
Attributs
NomDescriptionTypeTailleObservation
IDDroitIdentifiant du droitAN8Clé primaire
DroitAdministrateurDroit pour l’administrateurAN1
DroitEleveDroit pour l’élèveAN1
DroitProfesseurDroit pour le professeurAN1
DroitComptableDroit pour le comptableAN1
DroitDRHDroit pour le DRHAN1
DroitSuperviseurDroit pour superviseurAN1
DroitScolariteDroit pour la scolaritéAN1
DroitParentDroit pour le parentAN1

 

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.


image20

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.

 

Pour citer ce mémoire (mémoire de master, thèse, PFE,...) :
📌 La première page du mémoire (avec le fichier pdf) - Thème 📜:
Réalisation d’un logiciel de gestion et de suivi des élèves à distance
Université 🏫: Université Aube Nouvelle - Institut Supérieur d’Informatique et de Gestion - Département High Tech
Auteur·trice·s 🎓:
BAOULA Nantan Abdoul Aziz

BAOULA Nantan Abdoul Aziz
Année de soutenance 📅: Rapport de stage de fin de cycle de licence - OPTION : Technologie du génie logiciel - 2019-2020
Rechercher
Télécharger ce mémoire en ligne PDF (gratuit)

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top