Les flux expriment les interactions des supports d’information(documents, écrans,…) de même nature qui circulent entre un émetteur(origine)et un destinateur(but)[JOL1970].Ces flux peuvent être représentés par le diagramme de circulation ci-dessous qui, bien sur, n’est qu’une vue partielle du diagramme de circulation de l’information chez OCC , adapté à notre exemple :
Kinshasa |
Finance |
1
Compte fonctionnaire de dotation |
2
3
Compte bancaire |
Agent |
4
Figure 2.1 : Exemple de circulation de l’information de l’OCC
2.2. Critiques des conceptions et implantation d’une application informatique
Les points suivants sont néanmoins à déplorer :
Un système est un ensemble d’élément en interaction dynamique organisés en fonction d’un but [JOE2010]. Une de données est un ensemble structuré d’informations.
|
Lorsque l’on décide de créer une base de données relationnelle, on doit surtout veiller à définir clairement ses caractéristiques. Les données du problème doivent être énoncées avec précision et décidées en amont selon les besoins à traiter, la réalisation et l’installation de la base de données s’avérant alors beaucoup plus souples. En effet, une erreur de conception pourrait en générer d’autres biens plus graves lors de l’installation de la base, allant parfois même jusqu’à la perte de certaines données. Raison pour laquelle des méthodes de conception des bases de données ont été mises au point afin d’éviter les erreurs majeures [KAS2011].
Pour notre cas, nous avons fait le choix de La méthode telle que MERISE pour concevoir notre système. Cela se justifie par le fait que cette méthode est très utilisée en entreprises ; surtout elle a fait ses preuves dans la conception des BDR. [ENC2009].
Le dictionnaire de données est le « le document dans lequel on récapitule toutes les données utiles à une application, hormis les constantes, avec leur description, leur nature et les règles et contraintes qui s’y rapportent [UYE2008]
Tableau 1.1. : Fiche de paie de l’OCC.. 16
Documents |
Champs |
Libellé explicatif |
Types |
Agent |
Matricule |
Matricule de l’agent |
T50 |
Nom |
Nom de l’agent |
T20 |
|
Post nom |
Post nom de l’agent |
T50 |
|
Prénom |
Prénom de l’agent |
T50 |
|
Adresse |
Adresse de l’agent |
T50 |
|
Etat_civil |
Etat civil de l’agent |
T50 |
|
Nationalité |
Nationalité de l’agent |
T50 |
|
Année |
Année du programme de l’agent |
NEL |
|
Fonction |
Fonction d’un agent |
T50 |
|
Date_enga |
Date d’engagement d’un agent |
T50 |
|
Grade |
Code_grade |
Grade de l’agent |
T50 |
Désign_grade |
Désignation de l’agent |
T50 |
|
categorie |
Catégorie de l’agent |
T50 |
|
Annee_obst |
Année d’observation d’un agent |
NEL |
|
Congé |
Code_conge |
Code congé d’un agent |
T50 |
designation |
Désignation congé |
D10 |
|
Date_fin |
Date fin de l’agent |
D10 |
|
Date_deb |
Date début de l’agent |
D10 |
|
Absence |
Code_abs |
Code d’absence de l’agent |
T50 |
Date_deb |
Date de début d’absence de l’agent |
D10 |
|
motif |
Motif de l’absence |
T50 |
|
observation |
Observation de l’agent |
||
Date_fin |
Date fin d’absence de l’agent |
D10 |
|
Service |
Code_Service |
Code de service |
T50 |
Localisation |
Localisation service |
T50 |
|
Design_service |
désignation du service |
T50 |
|
Salaire |
Code_salaire |
code salaire de l’agent |
T50 |
Nbr_jourouvrabl |
Nombre jour ouvrable de l’agent |
NEL50 |
|
Jour_preste |
Jour preste de l’agent |
NEL50 |
|
Mois_sal |
Mois de salaire de l’agent |
T50 |
|
Taux |
Taux salaire de l’agent |
M20 |
|
Nbre_enfant |
Nombre enfant par salaire |
NEL50 |
|
Taux_enfant |
Taux enfant |
NEL50 |
|
Retenu |
Libelle du retenu |
M50 |
|
Prime |
Libellé de la prime accordée |
M50 |
|
année |
Année salaire |
NEL50 |
|
Allocation |
Libellé d’allocation de l’agent |
T50 |
Légende :
NEL : type Numérique de taille entier long
M : monétaire
D10 : type Date de taille 10
T50 : type texte de taille 50
MNG : Monétaire nombre général
Le modèle conceptuel de données (MCD) a pour but d'écrire de façon formelle les données qui seront utilisées par le système d'information. Il s'agit donc d'une représentation des données, facilement compréhensible, permettant de décrire le système d'information à l'aide d’entités [KAS2011].
Le MCD se rapportant à la paie des agents à l’OCC se présente comme suit :
Figure II.2 : Schéma conceptuel des agents
Le modèle logique des données à décrire la structure de données utilisées sans faire référence à un langage de programmation.il s’agit donc de préciser le type de données utilisées lors des traitements. Ainsi, le modèle logique est dépendant du type de base de données utilisé.
Le but du MLD est de préparer l’implantation de la Base de Données.la finalité d’un MCD est de nous faciliter la création d’une base de données pour gérer un tel domaine.
Généralement, Le MLD s’obtient à partir du MCD.
Le MLD peut être relationnel, hiérarchique ou réseau selon le SGBD à utiliser.
Les règles de passage du MCD vers le MLD utilisées ici concernent le SGBDR du fait qu’il est le plus répandu. Un MLD est essentiellement compose de tables logiques reliées entre elles par flèches. Le but du MLD est de prépare l’implantation de la base de données.
De notre MCD, nous déduisons le MLD suivant :
Figure 2.3 : Schéma logique des données
C’est la traduction du MLD dans un langage de description des données spécifiques c’est à dire mettre le MLD sur un support physique. En d’autres termes, c’est la mise en place de la Base de données c’est à dire implanter une à une de chaque table en créant leur structure puis en les remplissant de données.
Le but du MPD est d’adapter la Base de données aux spécifications du SGBD et de l’aspect matériel sur lequel doit tourner l’application.
Les BD sont gérées à l'aide d'un logiciel spécialisé appelé Système de Gestion de Base de Données (SGBD). Selon le type de base de données à gérer, il existe différents types de SGBD (hiérarchique, réseau, relationnel, etc.). En ce qui nous concerne, dans ce travail, nous utiliserons un système de gestion de base de données relationnel (SGBDR) pour la simple raison que notre BD est de type relationnel.
Une table est une structure fondamentale du système de gestion de base de données relationnelle. Selon Patrick Morié et Yvan Picot, une table contient des données de même nature. Ces données sont organisées en colonnes (champs ou rubriques) et en lignes (enregistrements ou fiches) [MOR2004].
Une table est une collection des listes d’enregistrements, ceux-ci correspondant à des champs ou une table contient des données de même nature. Une table est donc un tableau à deux dimensions.
Faisant suite au MLD précédent, nous avons pris en compte 6 tables à savoir : AGENT, GRADE, CONGES, ABSENCE, SALAIRE, et SERVICE.
Microsoft ACCESS nous a permis de créer toutes ces tables en mode création avec possibilité de voir leur contenu en mode Feuille de données. A titre d’illustration, l’on peut visualiser dans les figures ci-dessous la table Agent dans les deux modes.
Figure 2.4 : Exemple d’une table en mode Création
Figure 2.5 : Exemple d’une table en mode feuille de données
Le mode feuille de données permet de saisir, modifier et visualiser le contenu d’une table et mode création de modifier sa structure.
2.3.5.2. Les requête
Une requête est la formulation d’une interrogation concernant les enregistrements d’une ou plusieurs tables [MOR2003]. Il existe plusieurs sortes de requêtes. Celles retenues pour notre BD sont :
Figure 2.6 : Exemple de requête avec critère
Figure 2.7 : Exemple de requête avec paramètres
C’est pour calculer le salaire de base, le salaire net, et le retenu par exemple. Requête par matricule par nom par post nom par prénom, fonction, design service, localisation, sal_net.
Figure 2.8 : Exemple de requête avec un champ calculé
En mode feuille de données, la requête ci-dessus donne :
Figure 2.9 : Exemple de requête avec regroupement
Un formulaire sert à saisir, à modifier et à consulter le contenu d’une table ou plusieurs tables liées, enregistrement par enregistrement. Un formulaire est un masque permettant de saisir et de modifier les données d’une table ou d’une feuille de réponse plus efficacement qu’avec la présentation en feuille de données [MOR2003]. Il met en valeur les données avec des polices, des couleurs, des effets d’ombres choisies par le concepteur de la base de données. Pour la table Agent, on devrait avoir les possibilités de créer, de modifier ou de supprimer les informations relatives à un agent. C’est ainsi qu’on a créé trois formulaires notamment celui d’enregistrement, de la modification et de la suppression d’un agent.Le formulaire d’enregistrement frm_Agent, le formulaire de modification frm_ModifierAgent et le formulaire de suppression frm_supprimerAgent que nous présentons ci-dessous constituent des modèles de formulaire Access que nous avons dans notre base de données.
A titre d’exemple, nous allons donner quelques codes VBA associés au formulaire d’enregistrement, modification, suppression frm_Agent.
Figure 2.10 : Exemple d’un formulaire
Les codes VBA associés aux boutons de commande qui permet d’enregistrer, de modifier, de supprimer les données sur l’agent se présentent comme suit :
Private Sub ENREGISTRER_Click()
Dim db As Database, rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Agent", dbOpenDynaset)
rs.FindFirst "matricule='" & Me!matricule & "'"
If Not rs.NoMatch then
Me!matricule = rs!matricule
Me!code_service = rs!code_service
Me!code_grade = rs!code_grade
Me!nom = rs!nom
Me!postnom = rs!postnom
Me!prenom = rs!prenom
Me!adresse = rs!adresse
Me!genre = rs!genre
Me!etat_civil = rs!etat_civil
Me!nationalite = rs!nationalite
Me!fonction = rs!fonction
Me!date_enga = rs!date_enga
Else
rs.AddNew
rs!matricule = Me!matricule
rs!code_service = Me!code_service
rs!code_grade = Me!code_grade
rs!nom = Me!nom
rs!postnom = Me!postnom
rs!prenom = Me!prenom
rs!adresse = Me!adresse
rs!genre = Me!genre
rs!etat_civil = Me!etat_civil
rs!nationalite = Me!nationalite
rs!fonction = Me!fonction
rs!date_enga = Me!date_enga
MsgBox "données enregistrées"
rs.Update
Me!matricule = ""
Me!code_service = ""
Me!code_grade = ""
Me!nom = ""
Me!postnom = ""
Me!prenom = ""
Me!adresse = ""
Me!genre = ""
Me!etat_civil = ""
Me!nationalite = ""
Me!fonction = ""
Me!date_enga = ""
End If
End Sub
Private Sub matricule_AfterUpdate()
Dim db As Database, rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Agent", dbOpenDynaset)
rs.FindFirst "matricule='" & Me!matricule & "'"
If Not rs.NoMatch Then
Me!matricule = rs!matricule
Me!code_service = rs!code_service
Me!code_grade = rs!code_grade
Me!nom = rs!nom
Me!postnom = rs!postnom
Me!prenom = rs!prenom
Me!adresse = rs!adresse
Me!genre = rs!genre
Me!etat_civil = rs!etat_civil
Me!nationalite = rs!nationalite
Me!fonction = rs!fonction
Me!date_enga = rs!date_enga
MsgBox "code existe deja"
End If
rs.Close
End Sub
Private Sub MODIFIER_Click()
Dim db As Database, rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Agent", dbOpenDynaset)
rs.FindFirst "matricule='" & Me!matricule & "'"
If Not rs.NoMatch Then
rs.Edit
Me!matricule = rs!matricule
Me!code_service = rs!code_service
Me!code_grade = rs!code_grade
Me!nom = rs!nom
Me!postnom = rs!postnom
Me!prenom = rs!prenom
Me!adresse = rs!adresse
Me!genre = rs!genre
Me!etat_civil = rs!etat_civil
Me!nationalite = rs!nationalite
Me!fonction = rs!fonction
Me!date_enga = rs!date_enga
MsgBox "données modifiés"
rs.Update
Me!matricule = ""
Me!code_service = ""
Me!code_grade = ""
Me!nom = ""
Me!postnom = ""
Me!prenom = ""
Me!adresse = ""
Me!genre = ""
Me!etat_civil = ""
Me!nationalite = ""
Me!fonction = ""
Me!date_enga = ""
Else
rs.AddNew
rs!matricule = Me!matricule
rs!code_service = Me!code_service
rs!code_grade = Me!code_grade
rs!nom = Me!nom
rs!postnom = Me!postnom
rs!prenom = Me!prenom
rs!adresse = Me!adresse
rs!genre = Me!genre
rs!etat_civil = Me!etat_civil
rs!nationalite = Me!nationalite
rs!fonction = Me!fonction
rs!date_enga = Me!date_enga
MsgBox "données enregistrées"
rs.Update
Me!matricule = ""
Me!code_service = ""
Me!code_grade = ""
Me!nom = ""
Me!postnom = ""
Me!prenom = ""
Me!adresse = ""
Me!genre = ""
Me!etat_civil = ""
Me!nationalite = ""
Me!fonction = ""
Me!date_enga = ""
End IF
End Sub
Private Sub SUPPRIMER_Click()
Dim db As Database, rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Agent", dbOpenDynaset)
rs.FindFirst "matricule='" & Me!matricule & "'"
If Not rs.NoMatch Then
NoMsg = MsgBox("Etes-vous sur(e)?", vbYesNoCancel, "Suppression")
If NoMsg = vbYes Then
rs.Delete
MsgBox "suppresion effectuée"
End If
Me!matricule = ""
Me!code_service = ""
Me!code_grade = ""
Me!nom = ""
Me!postnom = ""
Me!prenom = ""
Me!adresse = ""
Me!genre = ""
Me!etat_civil = ""
Me!nationalite = ""
Me!fonction = ""
Me!date_enga = ""
rs.Close
End If
End Sub
Le formulaire frm_paiesalaire
Figure 2.11 : Exemple d’un formulaire de paie
Un état est un document présentant des informations organisées pour leur visualisation ou leur impression. Il n’y a pas de modification ni de mise à jour possible des informations. Un état est un document imprimé qui liste le contenu d’une ou de plusieurs tables liées ou le résultat d’une requête [MOR2004].
On utilise un état pour imprimer une série d’enregistrements dans un format et une mise en page personnalisées. Dans un état, on peut regrouper des enregistrements sur divers critères et effectuer des calculs sur les champs.
Figure II.12 : Etat de fiche de paie
Figure II.13 : Etat du salaire net par service
Figure II.14 : Etat des agents par salaire
Figure 2.15 : Etat des agents par congé
Le menu général est la présentation condensée de toute la base de données. Il donne les grandes lignes (parties) du travail (logiciel). C’est le menu général qui s’ouvre après l’exécution de la macro pour permettre à l’utilisateur de consulter la base de données selon ses besoins, d’y ajouter des nouvelles données, de modifier des données préexistantes ou de les supprimer si nécessaire.
C’est un moyen d’accès rapide, par des simples clics aux différentes parties du logiciel. D’ici, on peut soit voir tout les formulaires et tout les états, et les imprimer si nécessaire, soit quitter Access à partir du menu général, soit actualiser les données et bien d’autres opérations.
Illustration :
Figure II.16 : Menu général
Pour une bonne exécution de notre logiciel et la sécurité de données dans la base de données, nous avons procédé à la constitution d’une macro et à certaines mesures de sécurité (une clé servant de mot de passe) pour limiter les accès à la base de données. Dans cette macro, l’utilisateur n’a pas accès même s’il possède la clé, aux codes sources de la BD. Seul le menu général est accessible et où il y a tout ce que pourrait utiliser l’utilisateur.