Arrow Table de matières
2564152

CHAPITRE 2 : CONCEPTION ET IMPLANTATION D’UNE APPLICATION INFORMATIQUE

 

2.1. circulation de l’information

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

  • Virement d’argent dans le compte de dotation c.à.d. Kinshasa donne l’ordre de payement de l’agent.
  • Etablissement de check   dans le compte de dotation c.à.d. le chef de finance dispose de check pour les agents.
  • Virement dans le différent compte
  • Retire c.à.d. l’agent vient retirer son argent dans le compte

2.2.  Critiques des conceptions et implantation d’une application informatique

  1. Points négatifs des conceptions et implantation d’une application informatique

Les points suivants sont néanmoins à déplorer :

  • Lenteur dans l’exécution des taches administratives
  • Difficultés dans l’établissement des états de salaire
  • Correspondances difficiles avec les centres (communication)
  • Manque de matériel pour traiter le nombre élève de dossiers
  1. Solution envisagée des conceptions et implantation d’une application informatique
  • Pouvoir produire automatiquement les projets d’autorisation d’absence
  • Moyen de transmissions modernes des données
  • D’un logiciel capable d’aider dans la gestion du personnel
  • Produire dans un temps record ce rapport centralisé de toutes les opérations enregistrées et les états financiers pour une période donnée.

2.3. Conception du système

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].

2.3.1. Dictionnaires des données

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

2.3.2.  Les règles de gestion

  • RG1 : Un agent ne peut être affecté dans plusieurs services à la fois.
  • RG2: Un agent peut avoir un et un seul grade.
  • RG3: Un agent est concerné par un et un seul 
  • RG4: un salaire est attribué à un ou plusieurs agents.
  • RG5: Tout agent est immédiatement affecté à un ou plusieurs services.
  • RG7: Les autorisations d’absences et de congé sont individuelles ou collectives.

2.3.3. Le modèle conceptuel des données(MCD)

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

2.3.4. Le modèle logique des données(MLD)

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 :

  1. Représentation graphique du MLD

Figure 2.3 : Schéma logique des données

  1. Représentation textuelle  du MLD
  • AGENT(#matricule ,Nom,Postnom ,Prénom ,Adresse, genre,etat_civil, ,Nationalité ,Année ,Fonction ,date_enga ,Code_Service,code_grade)
  • GRADE (#Code_grade, Design_grade, Categorie, annee_obst)
  • CONGES (#code_conge, désignation, Date_deb, date_fin,#matricule)
  • ABSENCE (#code_abs, Date_deb, Date_fin, Motif, observation, matricule)
  • SALAIRE (#code_salaire, nbr_jourouvrabl, Jour_Preste, taux, nbre_enfant, prime, retenu, mois_sal,Annee)
  • SERVICE (#Code_Service, design_service, localisation)
  • ETRE_ABSENT (#Code_abs,#matricule)
  • ETRE EN CONGE (#code_congé, #matricule)
  • CONCERNER (#code_salaire,#matricule)

 

2.3.5. Le modèle physique 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.

2.3.5.1. Table

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 :

  • Des requetés avec critère : Rqt_AgentCode0 pur les agents dont le code est 0

Figure 2.6 : Exemple de requête avec critère

  • Requêtes avec paramètres : Rqt_identification Agent Cette requête nous permet de faire des recherches sur des informations nécessitées selon les circonstances. Requêtes par matricule par nom par post nom par prénom par designgrade par catégorie par anneeobst.

Figure 2.7 : Exemple de requête avec paramètres

  • Requêtes avec un champ calculé :

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

2.3.5.3. Les formulaires

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

2.3.5.4. Les états

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é

2.3.5.5. Utilisation de logiciel

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

2.3.5.6. La macro et la sécurité

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.

Partager ce travail sur :