79
Conception et mise en œuvre d’un système de gestion des temps pour une PME T RAVAIL DE B ACHELOR E LIRA S HEHU Juin 2010 Supervisé par : Prof. Dr. Jacques P ASQUIER –R OCHA & Minh Tuan N GUYEN Software Engineering Group Software Engineering Group Département d’Informatique Université de Fribourg (Suisse)

TRAVAIL DE BACHELOR - diuf.unifr.chdiuf.unifr.ch/drupal/sites/diuf.unifr.ch.drupal.softeng/files/... · Conception et mise en œuvre d’un système de gestion des temps pour une

  • Upload
    hanhan

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Conception  et  mise  en  œuvre  d’un  système  de  gestion  des  temps                     

pour  une  PME 

TRAVAIL  DE  BACHELOR  

ELIRA  SHEHU  Juin 2010

Supervisé  par   :  

Prof. Dr. Jacques PASQUIER–ROCHA & Minh Tuan NGUYEN Software Engineering Group

Software Engineering Group

Département d’Informatique

Université de Fribourg

(Suisse)

 

ii

“Il n’y a que le temps qui ne perde pas son temps.” 

‐ Jules Renard 

Remerciements 

iii

Remerciements 

Mes remerciements vont à tous ceux qui m’ont aidée et soutenue dans mon travail, en

particulier à mon superviseur, Prof. Jacques Pasquier-Rocha, pour toute sa gentillesse, pour

ses précieux conseils et pour sa patience, et à Minh Tuan Nguyen, pour sa disponibilité et

pour son soutien.

Je remercie également la société Chronos SA pour leur collaboration et pour toutes les

informations qui m’ont été transmises gracieusement de leur part.

Finalement, toute ma reconnaissance est adressée à mes parents, pour leurs sacrifices et leur

soutien, même à distance, durant ces années d’études. Ce n’est que grâce à eux que tout cela a

été rendu possible.

Ce travail est dédié à Nicolas, source inépuisable d’encouragement.

 

 

 

 

 

 

 

 

 

 

 

Résumé 

iv

Résumé 

Dans un univers hautement concurrentiel, la gestion des temps dans l’entreprise moderne est

devenue un véritable enjeu stratégique. Afin de créer ou de maintenir ses avantages

concurrentiels, l’entreprise est continuellement menée à améliorer ses performances, ce qui se

traduit souvent par l’optimisation de ses processus et donc par une maitrise de ses ressources,

que celles-ci soient matérielles ou humaines. Or, bien gérer son capital humain passe par un

suivi adéquat de ses activités et donc, de ses temps de travail et de ses absences. La

complexité de cette tâche varie en fonction de l’organisation, de la taille et de la culture de

l’entreprise, mais aussi selon la législation en vigueur. Ce travail fournit un effort d’analyse et

de développement d’un système d’information facilitant le suivi des temps de travail et des

absences des employés dans une PME orientée projet. Il aborde les thèmes de la gestion des

temps dans les entreprises, du cadre légal suisse régissant les relations de travail, de l’analyse

des processus de l’entreprise et du recueil des exigences du futur système à l’aide de

diagrammes UML et Entité-Association, pour terminer avec le développement d’un

prototype programmé en PHP et MySQL.

Mots-clés : gestion des temps, ressources humaines, SIRH, e-RH, UML, RUP, SGBD, base

de données relationnelle, schéma Entité-Association, processus de gestion, PHP, MySQL,

WAMP.

Table des matières 

v

Table des matières 

 

1 Introduction  1 

1.1  Motivation et Objectifs .............................................................................................. 1 

1.2  Organisation ............................................................................................................... 2 

2 La gestion des temps dans une PME  3 

2.1  Comprendre la problématique ................................................................................... 3 

2.1.1  La gestion des temps, pour qui et pourquoi ? ..................................................... 4 

2.1.2  Pratiques courantes dans les entreprises ............................................................. 4 

2.2  Les dispositions légales en Suisse ............................................................................. 7 

2.2.1  La durée du travail et du repos ........................................................................... 7 

2.2.2  Les vacances ....................................................................................................... 9 

2.2.3  Autres absences .................................................................................................. 9 

2.2.4  Grossesse et maternité ...................................................................................... 10 

3 Le cas de l’entreprise Chronos  11 

3.1  Présentation du cas Chronos .................................................................................... 11 

3.1.1  Organisation ..................................................................................................... 11 

3.1.2  État actuel du système d’information de l’entreprise et vision du futur .......... 12 

3.2  Buts et contraintes du nouveau système automatisé ................................................ 14 

3.2.1  Principaux flux de travail supportés ................................................................. 14 

3.2.2  Règles de gestion internes ................................................................................ 15 

3.2.3  Critères non-fonctionnels du futur système ..................................................... 16 

4 Spécification des exigences  17 

4.1  Explication préalable de la démarche ...................................................................... 17 

4.2  Repérage du domaine et des acteurs ........................................................................ 18 

4.2.1  Identification des processus ............................................................................. 18 

4.2.2  Acteurs ............................................................................................................. 20 

4.2.3  Définitions, acronymes et abréviations ............................................................ 21 

4.3  Modélisation du point de vue utilisateur ................................................................. 23 

4.3.1  Administration des données du personnel ........................................................ 23 

4.3.2  Administration des projets ............................................................................... 25 

4.3.3  Suivi des Projets ............................................................................................... 26 

4.3.4  Gestion des temps ............................................................................................. 27 

Table des matières 

vi

5 Analyse et conception  35 

5.1  Architecture du futur système .................................................................................. 35 

5.2  Modélisation du point de vue logique ..................................................................... 36 

5.2.1  Identification des Entités .................................................................................. 36 

5.2.2  Le modèle Entité-Association .......................................................................... 36 

5.2.3  Le schéma de base de données relationnelle .................................................... 38 

6 Implémentation du prototype  42 

6.1  Considérations préalables ........................................................................................ 42 

6.2  La base de données .................................................................................................. 43 

6.2.1  Les tables, les attributs et les contraintes ......................................................... 43 

6.2.2  Les requêtes SQL ............................................................................................. 48 

6.3  L’interface utilisateur ............................................................................................... 49 

6.3.1  Organisation des fichiers .................................................................................. 49 

6.3.2  Sélection d’une période (calendrier) ................................................................ 52 

6.3.3  Affichage des données ..................................................................................... 52 

6.3.4  Insertion des données ....................................................................................... 53 

6.3.5  Statistiques ....................................................................................................... 55 

6.4  Guide d’utilisation et tests ....................................................................................... 55 

6.4.1  Connexion / Déconnexion ................................................................................ 55 

6.4.2  Consulter ses activités pour une période au choix ........................................... 57 

6.4.3  Saisir une nouvelle activité .............................................................................. 58 

6.4.4  Visualiser ses absences ..................................................................................... 59 

6.4.5  Insérer une absence/ demande de congé .......................................................... 60 

6.4.6  Consulter son solde horaire .............................................................................. 60 

6.4.7  Autres fonctionnalités ...................................................................................... 63 

6.4.8  Un cas de discussion : les heures supplémentaires .......................................... 64 

7 Conclusion  65 

7.1  Rétrospective ........................................................................................................... 65 

7.2  Difficultés rencontrées et leçons apprises ................................................................ 66 

7.3  Améliorations futures .............................................................................................. 66 

A CD­ROM  67 

Bibliographie  68 

Liste des Figures 

vii

Liste des Figures 

Figure 1 : Intégration des nouvelles technologies dans la FRH (Baromètre RH 2009) ............. 5 

Figure 2: Définir en amont le niveau de suivi requis (Chambet-Weil 2010) ............................. 7 

Figure 3: Intervalles de travail (SECO 2009) ............................................................................. 8 

Figure 4: Durée des pauses (SECO 2009) .................................................................................. 8 

Figure 5: Structure de la société Chronos ................................................................................ 12 

Figure 6: Utilité d'un système de gestion des temps (source: Chronos) .................................. 13 

Figure 7: Découverte d’informations et d’objectifs visés ........................................................ 15 

Figure 8: Diagramme de paquetage "Domaines" ..................................................................... 19 

Figure 9: Diagramme de cas d'utilisation processus avec les acteurs ...................................... 21 

Figure 10: Diagramme d'activités "Administration des Données du Personnel" ..................... 24 

Figure 11 - Diagramme de cas d'utilisation "Administration des Données du Personnel" ...... 25 

Figure 12: Diagramme de cas d'utilisation "Administration des Projets" ................................ 25 

Figure 13: Diagramme de cas d'utilisation "Suivi des Projets" ................................................ 26 

Figure 14: Diagramme d’activités "Saisie des Activités" ........................................................ 27 

Figure 15: Diagramme d'activités "Gestion des salaires" ........................................................ 28 

Figure 16: Diagramme d'activités "Enregistrement des Absences" ......................................... 29 

Figure 17: Diagramme d'activités "Validation des demandes de congé" ................................. 30 

Figure 18: Diagramme de cas d'utilisation "Gestion des Temps Perso" .................................. 33 

Figure 19: Diagramme de cas d’utilisation "Gestion des Temps Admin" ............................... 34 

Figure 20: Exemple d'association ............................................................................................. 37 

Figure 21: Modèle de données Entité-Association .................................................................. 38 

Figure 22: Fenêtre principale phpMyAdmin ............................................................................ 43 

Figure 23: Structure de la Table "Employé" ............................................................................ 45 

Figure 24: Structure de la table "Activité" ............................................................................... 46 

Figure 25: Structure de la Table "Absence" ............................................................................. 46 

Figure 26: Structure de la Table "Projet" ................................................................................. 46 

Figure 27: Contenu de la Table "Motif" ................................................................................... 47 

Figure 28: Contenu de la Table "Type_Activité" ..................................................................... 47 

Figure 29: Contenu de la Table "Jour_Férié" ........................................................................... 47 

Liste des Figures 

viii

Figure 30: Liste des participants à un projet donnée (E-claim) ............................................... 49 

Figure 31: L'employé Xavier Hinkel dans la Table "Employé" ............................................... 55 

Figure 32: Login sur l'interface employé ................................................................................. 56 

Figure 33: Page d'accueil employé ........................................................................................... 56 

Figure 34: Sélection d'une période ........................................................................................... 57 

Figure 35: Liste des activités de l’employé Xavier Hinkel ...................................................... 58 

Figure 36: Ajouter une nouvelle activité .................................................................................. 59 

Figure 37: Table « Mes activités d'aujourd'hui » ..................................................................... 59 

Figure 38: Liste des absences de l'employé ............................................................................. 59 

Figure 39 : Insérer une absence /demande de congé ................................................................ 60 

Figure 40: Table "jours_feries" ................................................................................................ 61 

Figure 41: Statistiques de l'employé pour le mois de mars ...................................................... 61 

Figure 42: Détail du tableau "statistiques" 1 ............................................................................ 62 

Figure 43: Détail du tableau "statistiques" 2 ............................................................................ 63 

Figure 44: Détail du tableau "statistiques" 3 ............................................................................ 63 

Liste des Codes Sources 

ix

Liste des Codes Sources 

Code 1: Création de la table "Employé" .................................................................................. 44 

Code 2: Créer nouvel employé ................................................................................................. 48 

Code 3: Participants au Projet E-claim .................................................................................... 48 

Code 4: Extrait du fichier db.php ............................................................................................. 49 

Code 5: Menu utilisateur employé ........................................................................................... 50 

Code 6: La fonction getWorkingDays (cf. get_working_days.php) ........................................ 51 

Code 7: Utilisation de la fonction getWorkingDays (cf. daysoff.php) .................................... 52 

Code 8: Requête SQL sous PHP (Sélection des activités de l’utilisateur, timesheet.php) ...... 53 

Code 9: Code PHP pour saisir une absence (daysoff.php) ....................................................... 54 

Code 10: Code PHP pour sauvegarder une absence dans la BD (save_absence.php) ............. 55 

1 Introduction    Motivation et Objectifs 

1

 

Introduction 

1.1 Motivation et Objectifs  1 

1.2 Organisation  2 

1.1 Motivation et Objectifs 

Dans  le  cadre  du  cours  de  Bachelor  « Introduction  à  l’Informatique  de  Gestion  I » 

(Pasquier et Nguyen 2009), l’exemple du « Bureau Sympa SA » a été présenté. Plusieurs 

exercices (Exercices 7 à 14) avaient pour but le développement d’un modèle de données 

pour un système de gestion des heures de travail, des  jours de congé et d’absence des 

employés de cette PME fictive. Ce travail a en outre été repris dans le cadre d’un travail 

de séminaire (Levi‐Mazloum 2009) aboutissant à la réalisation d’un prototype en PHP et 

MySQL. 

Le but du présent travail est de revenir sur cet exemple et de présenter un modèle plus 

réaliste et complété avec les aspects d’analyse de processus et de recueil des exigences 

d’un futur système d’information (SI), inspiré des principes du Processus Unifié (UP) et 

à l’aide de diagrammes UML et Entité‐Association. L’étude du futur système a été menée 

en  collaboration avec Chronos SA, une  jeune PME  informatique basée en Suisse. Cette 

entreprise se trouve en pleine phase de croissance et emploi à ce jour près de vingt‐cinq 

collaborateurs.  Elle  opère  selon  un  mode  d’organisation  par  projets  et  elle  souhaite 

améliorer la gestion du personnel à l’aide d’un nouveau SI lui permettant un suivi facilité 

des  activités  et  des  absences  de  ses  employés,  ainsi  que  des  projets  auxquels  ils 

participent.  Un  prototype  basé  sur  le  nouveau modèle  et  implémentant  certaines  des 

fonctionnalités  souhaitées,  a  été  programmé  en  PHP  et  MySQL  à  l’aide  du  service 

WAMP1 et sera présenté selon les points de vue programmeur et utilisateur final. 

1 WAMP : Apache, MySQL & PHP pour Windows

1 Introduction    Organisation 

2

1.2 Organisation 

Le deuxième chapitre de ce  rapport définit  le  cadre général de  la problématique de  la 

gestion des temps en entreprise, dans laquelle s’inscrit le présent travail. Il y sera traité 

brièvement des pratiques courantes dans les entreprises d’aujourd’hui et du cadre légal 

suisse  régissant  les  relations  de  travail,  notamment  les  obligations  des  employeurs 

envers leurs employés et vice‐versa.  

Dans le troisième chapitre, l’entreprise Chronos SA fera l’objet d’une étude de faisabilité 

avec une description de son organisation, de l’état actuel de la gestion du personnel et 

de la vision concernant son futur.   

Par  la  suite,  un  cahier  des  charges  simplifié,  regroupant  les modèles  d’expression des 

besoins et d’analyse du futur SI, sera présenté dans les chapitres 4 et 5. La modélisation 

sera  menée  en  gardant  à  l’esprit  le  principe  de  représentation  du  système  en  trois 

niveaux : fonctionnel, logique et technique. 

La réalisation du prototype fera l’objet du chapitre 6, dans lequel les fonctionnalités du 

système seront présentées tout d’abord du point de vue du programmeur, puis du point 

de vue utilisateur  final,  sous  forme d’un mini‐guide d’utilisation. Quelques cas de  tests 

seront donnés pour vérifier le bon fonctionnement du prototype.   

Finalement, une rétrospective critique et des  réflexions d’améliorations  futures  seront 

données en guise de conclusion de ce travail. 

2 La gestion des temps dans une PME    Comprendre la problématique 

3

             

La gestion des temps dans une PME  

2.1 Comprendre la problématique  3 

2.1.1 La gestion des temps, pour qui et pourquoi ? ............................................................ 4 

2.1.2 Pratiques courantes dans les entreprises .................................................................... 4 

2.2 Les dispositions légales en Suisse  7 

2.2.1 La durée du travail et du repos .................................................................................. 7 

2.2.2 Les vacances .............................................................................................................. 9 

2.2.3 Autres absences ......................................................................................................... 9 

2.2.4 Grossesse et maternité ............................................................................................. 10 

 

2.1 Comprendre la problématique 

Dans un environnement changeant et marqué par une concurrence de plus en plus forte, 

l’amélioration  continue  des  performances  est  une  des  clés  du  succès  de  l’entreprise 

moderne. Faire mieux, avec moins de moyens et en moins de temps, voilà un défi global 

qui  suggère  l’augmentation de  la valeur ajoutée pour  ses  clients,  tout en  réduisant  les 

coûts. Un objectif qui pousse  les entreprises à revoir  l’utilisation de  leurs ressources à 

travers  les différents processus, que celles‐là  soient de nature matérielle,  logicielle, ou 

encore  temporelle  et humaine. C’est  ainsi que  la  gestion du  capital humain, principale 

richesse d’une entreprise, dépasse  le  statut d’une  tâche purement administrative pour 

devenir un véritable enjeu stratégique. Or, parler de ressources humaines n’aurait aucun 

sens  sans  parler  du  temps  que  ces  personnes  accordent  à  leur  entreprise,  d’où 

l’importance de parler d’une gestion des temps.   

2 La gestion des temps dans une PME    Comprendre la problématique 

4

2.1.1 La gestion des temps, pour qui et pourquoi ? 

La  gestion  des  temps  a  traditionnellement  été  rattachée  à  la  fonction  des  Ressources 

Humaines (FRH) et a  longtemps été appréhendée comme une tâche fastidieuse dont  le 

seul but était la paie.  Aujourd’hui, elle ne reste pas moins un sujet RH, mais la réflexion 

sur son utilité a beaucoup évolué.  En effet, elle se trouve au cœur du fonctionnement de 

l’entreprise et ses synergies avec le reste des fonctions en font un sujet multifonctionnel, 

multi‐acteurs,  multi‐besoins  et  donc,  bien  souvent,  un  sujet  politisé  voire  polémique 

(Chambet‐Weil 2010). 

Le  processus  de  la  gestion  des  temps  (GDT)  et  plus  généralement  la  gestion  des 

ressources humaines (GRH) dans les entreprises varie souvent selon leur taille, leur type 

d’organisation,  leurs moyens,  le  cadre  légal  du  pays  où  elles  opèrent  et  de  la  culture 

d’entreprise.  Les  différentes  contraintes  légales  (le  respect  du  maximum  d’heures  de 

travail hebdomadaires,  le  suivi des heures supplémentaires,  les  congés,  les assurances 

sociales),  le  besoin  de  mesurer  les  coûts  et  la  performance  (le  temps  accordé  à  la 

production ou aux projets, le coût du travail, le coût de l’absentéisme, les heures payées 

non  productives),  l’importance  d’une  bonne  gestion  des  relations  avec  les  employés 

(transparence,  communication,  valorisation  de  ses  compétences,  affectation  du 

personnel aux bonnes tâches), ce sont tous des facteurs qui conduisent à considérer la 

gestion des temps au‐delà du bulletin de salaire. 

2.1.2 Pratiques courantes dans les entreprises 

L’avènement  des  nouvelles  technologies  d’information  et  de  communication  (NTIC)  a 

depuis déjà quelques dizaines d’année et de manière croissante motivé les entreprises à 

automatiser  une  partie  ou  la  totalité  de  leurs  processus  GRH.  C’est  ainsi  qu’on  voit 

apparaitre  les  termes    « système  d’information  des  ressources  humaines  (SIRH) »,  

« gestion  électronique  des  ressources  humaines  (e‐RH) »  ou  encore  « gestion  des 

relations employés (ERM) ».   

Les  fonctionnalités  couvertes  par  un  SIRH  sont  nombreuses  et  selon  le  guide  RH  du 

Journal du Net (Journal du Net 2005) on peut les classifier en différentes familles : 

Les  services  liés  aux  tâches  les  plus  administratives :  gestion  des 

congés/absences, consultation des soldes, gestion des notes de frais, des temps et 

plannings, des rapports d’activités, des salaires, etc. 

2 La gestion des temps dans une PME    Comprendre la problématique 

5

Les services liés à la carrière du salarié, qui peut accéder à son dossier personnel, 

mettre  à  jour  son  profil  et  ses  compétences,  demander  une  mobilité  interne, 

gérer ses demandes de formation, etc. 

Les  services  ayant  trait  aux  procédures  internes :  notes  de  service,  entretiens 

annuels, convocation à la médecine du travail, règlement interne, etc.  

Le  service  le  plus  externalisé  semble  être  la  gestion  de  la  paie,  due  aux  procédures 

complexes  qu’elle  implique  et  à  l’édition  de  documents  soumis  à  des  réglementations 

changeantes (Journal du Net 2005). La même constatation a également eu lieu en Suisse 

par  le  Baromètre  de  la  FRH  de  Suisse  romande  dans  son  rapport  pour  l’an  2009 

(Baromètre RH 2009). Comme on peut le voir dans la Figure 1, la plupart des entreprises 

déclarent avoir intégré les nouvelles technologies dans la gestion des salaires, suivie par 

la gestion des absences et par la gestion administrative.  

Quant  aux  outils  informatiques  consacrés  à  la  GRH,  on  peut  considérer  deux  grands 

types d’éditeurs. D’un côté on trouve les éditeurs spécialisés dans la gestion des salaires, 

le recrutement en ligne, la gestion administrative du personnel ou la gestion des temps.  

De  l’autre,  les  éditeurs  de  progiciels  de  gestion  intégrés  (ERP),  dédiés  à  la  gestion  de 

l’ensemble des ressources de l’entreprise et consacrant un ou deux modules à la GRH et 

à la paie (Journal du Net 2005). 

 

Figure 1 : Intégration des nouvelles technologies dans la FRH (Baromètre RH 2009)

2 La gestion des temps dans une PME    Comprendre la problématique 

6

Concernant  la  gestion  des  temps  en  PME,    dans  un  article  du  journal  électronique 

« LeMondeInformatique.fr »  (Le  Monde  Informatique  2005),  Claire‐Marie  de  Vulliod, 

consultante au CXP2 divise les logiciels GDT en six grands domaines fonctionnels :  

la gestion des pointages  

la gestion des absences  

la gestion des activités  

la gestion des accès  

la gestion des planifications manuelles  

la gestion de la planification par optimisation 

Parmi les fournisseurs, elle distingue aussi les éditeurs généralistes (ERP, gestion de la 

paie, GRH) et  les éditeurs spécialisés. Ces derniers, au départ axés sur  les  temps et  les 

activités  ou  bien  sur  la  planification  optimisée,  chercheraient  maintenant  à  couvrir 

l’ensemble  de  ces  fonctions.  À  titre  d’exemple :  l’éditeur  Holy‐Dis3  avec  ses  deux 

produits  Planexa®  et  Tempsia™,  l’un  permettant  d’établir  les  emplois  du  temps 

prévisionnels et l’autre de recenser les heures effectives. « La différence entre les heures 

planifiées et les heures effectuées peut être utilisée dans un logiciel de gestion de la paie ou 

réinsérée dans une nouvelle planification »  (Le Monde Informatique 2005). 

Une  autre  approche,  observée  surtout  dans  les  services,  est  la  gestion  analytique  par 

projet, où les activités journalières se décomposent en tâches. Les éditeurs Horoquartz4 

et  Bodet5  confirment  et  expliquent  que  c’est  « induit  par  la  pression  économique  qui 

exige  d'ajuster  au  mieux  ses  ressources »  (Le  Monde  Informatique  2005).  Le  dernier 

souligne  aussi  le  développement  des  demandes  spécifiques  en  prenant  l’exemple  des 

collectivités locales (où l’objectif est de gérer les compétences pour l’accueil au public), 

des milieux hospitaliers (où priment  la  transmission entre  infirmières et  la répartition 

équitable  des  jours  de  repos),  de  la  distribution  (où  les  plannings  se  font  à  la  demi‐

journée) et de l’industrie (où l’on demande le suivi des temps de production). 

Enfin, différentes tailles d’entreprises font la cible de différentes solutions GDT et dans 

le marché d’aujourd’hui il existe l’embarras du choix. Les coûts d’investissement n’étant 

pas  négligeables,  il  est  important  pour  chaque  entreprise  de  choisir  la  solution 

optimale :  facile  à  utiliser  et  adaptée  à  ses  besoins  propres.  Quelques  questions  à  se 

poser pour définir ses besoins de suivi (voir Figure 2) sont proposées par le spécialiste 

S. Chambet‐Weil dans le blog RH BearingPoint (Chambet‐Weil 2010).  2 Centre d’expertise des progiciels, France (www.cxp.fr) 3 Holy-Dis (www.holydis.com) 4 Horoquartz (www.horoquartz.fr) 5 Bodet Software (www.bodet.fr)

2 La gestion des temps dans une PME    Les dispositions légales en Suisse 

7

Figure 2: Définir en amont le niveau de suivi requis (Chambet-Weil 2010)

2.2 Les dispositions légales en Suisse 

En  Suisse,  le  droit  du  travail  est  réglé  dans  plusieurs  lois  dont  les  principales  sont  le 

Code des obligations – CO (contrat de travail individuel, convention collective de travail, 

contrat‐type de travail),  la loi sur le travail (protection générale des travailleurs, durée 

du travail et du repos,  jeunes travailleurs,  femmes enceintes et mères allaitantes) et  la 

loi sur l’assurance‐accidents (sécurité au travail) (SECO 2010a).  

Quelques  points  essentiels  en  relation  avec  le  sujet  de  ce  travail  seront  présentés  ci‐

dessous : 

2.2.1 La durée du travail et du repos 

La durée maximale du travail hebdomadaire est de 45 heures pour les travailleurs 

occupés  dans  les  entreprises  industrielles  ainsi  que  pour  le  personnel  de  bureau,  le 

personnel technique et les autres employés, y compris le personnel de vente des grandes 

entreprises  de  commerce  de  détail.  Pour  tous  les  autres  travailleurs,  elle  est  de  50 

heures (LTr, art. 9). 

Le travail du jour (entre 6 heures et 20 heures) et le travail du soir (entre 20 heures 

et 23 heures) ne sont pas soumis à autorisation. L’employeur peut introduire le travail 

du  soir  après  consultation  avec  les  travailleurs  concernés  et  il  peut  fixer  l’horaire  de 

travail différemment dans un espace de dix‐sept heures entre 5 heures et 24 heures. Le 

travail  du  jour  et  du  soir  de  chaque  travailleur  doit  être  compris  dans  un  espace  de 

quatorze heures, pauses et heures supplémentaires incluses (LTr, art. 10). 

2 La gestion des temps dans une PME    Les dispositions légales en Suisse 

8

Le travail de nuit est interdit et les dérogations sont soumises à autorisation (LTr, art. 

16‐17). 

Figure 3: Intervalles de travail (SECO 2009) 

Le  travail  supplémentaire  est  autorisé  à  titre  exceptionnel,  mais  il  ne  peut  pas 

dépasser  deux  heures  par  travailleur  et  par  jour,  sauf  les  jours  chômés  ou  en  cas  de 

nécessité.  Il  ne  doit  pas  non  plus  dépasser  170  heures  par  année  civile  pour  les 

travailleurs de 45 heures hebdomadaires et 140 heures pour les autres travailleurs. Les 

heures supplémentaires sont rémunérées par un supplément de salaire d’au moins 25% 

à partir de la 61ème heure accomplie, à moins qu’il ne soit convenu dans le contrat de les 

compenser par un congé de la même durée (LTr, art. 12‐13). 

Le  travail  doit  être  interrompu  par  des  pauses  d’au  moins : ¼  h  (si  la  journée  de 

travail dure plus de cinq heures),  ½ h (si la journée dure plus de sept heures) et 1h (si la 

journée dure plus de neuf heures). Le travailleur doit pouvoir quitter sa place de travail 

(LTr, art. 15). 

Figure 4: Durée des pauses (SECO 2009)

Le dimanche doit être un jour de repos. Les dérogations sont soumises à autorisation 

et le travail dominical doit être compensé par du temps libre (LTr, art.18‐20). 

Les jours fériés sont assimilés au dimanche et incluent la fête nationale et huit autres 

jours au plus, décidés par les cantons. Les travailleurs peuvent prendre des congés pour

2 La gestion des temps dans une PME    Les dispositions légales en Suisse 

9

assister  à  des  fêtes  religieuses  autre  que  les  jours  prévus,  avec  l’autorisation  de 

l’employeur (LTr, art. 20a).

Demi­journée de congé hebdomadaire : Lorsque le travail est réparti sur plus de cinq 

jours, le travailleur a droit à une demi‐journée de congé par semaine (LTr, art. 21). 

Les temps de repos ne peuvent  être remplacés par d’autres prestations (LTr, art. 22). 

2.2.2 Les vacances 

Au moins 5 semaines de vacances payées par an sont octroyées aux travailleurs jusqu’à 

l’âge de 20 ans révolus et au moins 4 semaines de vacances par an sont octroyées aux 

autres travailleurs (CO, art. 329a, al. 1). 

La durée des vacances peut être réduite d’un douzième par mois complet, lorsque le 

travailleur est, par sa propre faute, empêché de travailler pendant plus d’un mois  (CO, 

art. 329b). 

Les vacances doivent être accordées pendant l’année de service correspondante et elles 

doivent comprendre au moins deux semaines consécutives (CO, art. 329c, al. 3). 

Les  vacances  ne  peuvent  pas  être  remplacées  par  d’autres  prestations  ou  avantages, 

pendant la durée du contrat de travail (CO, art 329d, al. 1). 

2.2.3 Autres absences 

D’après le Secrétariat d’Etat à l’Economie (SECO 2010b) : 

En  cas  d’empêchement  du  travailleur  sans  faute  de  sa  part,  comme  en  cas  de 

maladie,  d’accident,  lors  de  l’accomplissement  du  service  militaire,  etc.,  la  loi 

prévoit  toutefois que  le salaire doit continuer à être versé. Le salaire doit être 

maintenu  pendant  trois  semaines  la  première  année,  puis  pendant  une 

période  plus  longue  dans  la  suite  des  rapports  de  travail.  La  durée  exacte  [de 

celle‐ci]  varie  en  fonction  du  canton  […]  et  en  fonction  de  la  pratique  des 

différents tribunaux. 

Des  congés  payés  sont  également  prévus  par  la  loi  en  cas  d’empêchement  pour  des 

raisons  familiales,  telles  que  mariage,  naissance  d’un  enfant  propre,  décès,  etc.  Le 

nombre de jours accordés varie selon le motif. 

2 La gestion des temps dans une PME    Les dispositions légales en Suisse 

10

2.2.4 Grossesse et maternité 

Il  est  interdit,  durant  les  8  semaines  avant  l’accouchement,  d’occuper  une 

travailleuse enceinte entre 20 heures et 6 heures (LTr, art. 35a, al. 4).  

La travailleuse enceinte ne doit pas dépasser 9 heures de travail par jour (OLT 1, art. 

324a, al. 3). 

Si  la  travailleuse n’a pas pu  travailler pendant plus de 2 mois à cause de sa grossesse, 

l’employeur peut réduire la durée de ses vacances payées. 

La  travailleuse  a  droit,  après  l’accouchement,  à  un  congé maternité  d’au  moins  14 

semaines  (ou  98  jours).  Si  elle  le  désire,  elle  peut  reprendre  son  travail  avant 

l’écoulement  des  14  semaines, mais  en  aucun  cas  avant  la  fin  de  8  semaines  (CO,  art. 

329f). 

Pendant le congé maternité, elle a droit à 80% de son salaire, sous forme d’indemnités 

journalières (LAPG, art. 16e). 

Pendant la première année de la vie de l’enfant, l’allaitement compte comme temps 

de  travail.  Si  l’allaitement  a  lieu dans  l’entreprise,  la  totalité du  temps  compte  comme 

temps de travail et sinon, seulement la moitié du temps compte (OLT 1, art. 60, al. 2). 

3 Le cas de l’entreprise Chronos    Présentation du cas Chronos 

11

      

Le cas de l’entreprise Chronos 

3.1 Présentation du cas Chronos  11 

3.1.1 Organisation ............................................................................................................. 11 

3.1.2 État actuel du système d’information de l’entreprise et vision du futur .................. 12 

3.2 Buts et contraintes du nouveau système automatisé  14 

3.2.1 Principaux flux de travail supportés ........................................................................ 14 

3.2.2 Règles de gestion internes ....................................................................................... 15 

3.2.3 Critères non-fonctionnels du futur système ............................................................. 16 

3.1 Présentation du cas Chronos 

Le travail dans ce chapitre est basé sur des renseignements obtenus auprès de Chronos 

SA6,  une  PME  suisse  basée  à  Fribourg.  Les  informations  présentées  viennent 

principalement du manuel du personnel de l’entreprise, ainsi que de quelques entretiens 

avec ses représentants. 

3.1.1 Organisation 

La  société  Chronos  a  comme  activité  le  développement,  la  commercialisation  et 

l’entretien  d’applications  informatiques.  Fondée  en  2003,  elle  s’est  développée 

graduellement et harmonieusement et a toujours privilégié la qualité de ses produits à la 

productivité.  Aujourd’hui  elle  emploie  près  de  vingt‐cinq  personnes :  entre  autre,  des 

programmeurs, des gestionnaires de projet, des webdesigners, des développeurs métier, 

etc. Concernant l’organisation, on remarque l’affectation du personnel par projet, au lieu 

d’un rattachement à un département. Ainsi, plusieurs collaborateurs peuvent participer 

à divers projets de développement simultanément. La fonction des ressources humaines, 

6 Nom d’emprunt. L’entreprise a exprimé le souhait de garder l’anonymat.

3 Le cas de l’entreprise Chronos    Présentation du cas Chronos 

12

quant à elle, est assimilée à une seule personne, le responsable RH, qui assume la quasi‐

totalité des tâches liées à ce domaine. De même, pour les fonctions de comptabilité et de 

facturation. La Figure 5 montre la structure de la société avec ses fonctions de Direction, 

RH,  Comptabilité,  Facturation,  et  Production.  Cette  dernière  regroupe  tous  les  autres 

collaborateurs.  

 

Figure 5: Structure de la société Chronos

3.1.2 État actuel du système d’information de l’entreprise et vision du 

futur 

Du point de vue informatique, la société possède des outils développés en interne pour 

gérer  ses  activités  liées  à  la  comptabilité  et  à  la  facturation.  La  tenue  de  la  base  des 

clients/projets  et  la  gestion  du  personnel,  par  contre,  se  font  à  l’aide  de  feuilles  de 

tableur (Excel).  

Dans le souci d’améliorer certains de ses processus de gestion, la société souhaite établir 

un système d’information en intranet, qui lui permettrait de recenser plus facilement le  

temps  de  travail  et  les  activités  de  ses  collaborateurs.  Plusieurs  avantages  sont 

envisagés : 

Simplifier  les  procédures  liées  au  traitement  des  fiches  des  heures  (timesheet), 

des absences et des demandes de congé.  

Décentraliser  la  fonction  des  ressources  humaines  et  donner  aux  employés  un 

moyen d’autocontrôle, par un système self‐service7.  

Réduire les risques en matière de conformité avec la loi ou le règlement interne. 

7 Système permettant aux employés de se servir soi-même, par exemple pour la modification de ses données personnelles, la déclaration des activités, les demandes de congé, etc.

Direction

Comptabilité FacturationProjet (Production)

Ressources Humaines

3 Le cas de l’entreprise Chronos    Présentation du cas Chronos 

13

Contrôler les coûts du travail : 

- Visibilité en temps réel des activités des employés permettant de mieux gérer 

leur potentiel. 

- Visibilité en temps réel du temps de travail consacré à différents projets  pour 

simplifier le calcul du montant facturé pour des projets T&M8. 

- Mesurer la productivité/ l’efficience du travail.  

- Suivre l’absentéisme, etc. 

En  résumé,  d’après  la  société,  une  meilleure  gestion  des  temps  profiterait  en  même 

temps : à  l’entreprise (et à ses clients), à  la FRH et aux employés. Elle serait  la base de 

l’efficience opérationnelle et de la transparence en entreprise (voir Figure 6).  

Figure 6: Utilité d'un système de gestion des temps (source: Chronos)9

 

Néanmoins,  il  faut  aussi  garder  à  l’esprit  que  comme  pour  tout  projet  informatique, certains risques existent, comme par exemple :  

Le  risque  de  rejet  du  système  par  les  employés :  ceux‐ci  peuvent  avoir  le sentiment d’être sous contrôle permanent.  

Les risques techniques : le système ne fonctionne pas selon les attentes, etc.  

8 Time & Material : Terme utilisé pour désigner les projets facturés d’après les ressources employées. 9 Extrait d’une carte heuristique (mind map) réalisée durant un entretien avec la société.

3 Le cas de l’entreprise Chronos  Buts et contraintes du nouveau système automatisé 

14

3.2 Buts et contraintes du nouveau système automatisé  

3.2.1 Principaux flux de travail supportés 

Après  un  entretien  avec  les  représentants  de  la  société,  il  en  ressort  que  le    nouveau 

système de gestion des temps de travail (SGTT) devra, entre autre, permettre : 

Le rapport des activités: 

o Pour  chaque  collaborateur,  le  responsable  doit  pouvoir  consulter  ses 

heures  de  travail  et  ses  activités  pour  une  période  donnée.  Le 

collaborateur doit aussi pouvoir consulter lui‐même ses propres activités.  

o Chaque collaborateur doit pouvoir saisir par lui‐même ses activités. 

o Les  temps  de  début  et  de  fin  d’activité  doivent  être  indiqués  à  cinq 

minutes près. 

o Les activités sont distinguées par type : travail sur projets T&M, travail de 

garantie, temps de voyage, etc. 

o Chaque activité doit être décrite de manière adéquate et attribuée au bon 

projet. 

o Les temps de pauses (café, repas, etc.) doivent être notés. 

o La  saisie  des  heures  doit  se  faire  le  jour  même  ou  au  plus  tard,  le 

lendemain matin. 

o Le collaborateur et  son responsable doivent pouvoir  consulter  son solde 

horaire  à  tout  moment  donné  (par  ex. :  heures  prévues  vs.  heures 

effectuées). 

La déclaration des absences des collaborateurs : 

o Pour chaque collaborateur, les absences doivent pouvoir être notées par le 

collaborateur  lui‐même  (sous  forme  de  demande  de  congé)  ou  par  son 

responsable (en cas d’empêchement imprévu). 

o Les  demandes  de  congé  doivent  être  validées  (autorisées)  par  le 

responsable du collaborateur. 

o Pour chaque absence,  les dates de début et de fin doivent être indiquées, 

ainsi que le motif. 

o Chaque collaborateur doit pouvoir consulter ses absences à tout moment 

et son responsable doit pouvoir faire de même. 

La gestion des données des collaborateurs : 

o Ajout/modification  des  données  personnelles,  par  le  collaborateur  lui‐

même ou par son responsable. 

3 Le cas de l’entreprise Chronos  Buts et contraintes du nouveau système automatisé 

15

o Ajout/modification  des  données  concernant  son  contrat  de  travail  (taux 

d’engagement, salaire, etc.) par un responsable. 

La gestion des projets : 

o Création/modification d’un projet par la direction. 

o Consultation, par projet, des personnes impliqués et des heures de travail 

prestées. 

La saisie (par le responsable) et la consultation (par tous) des jours fériés légaux. 

La  gestion  des  autorisations :  authentification,  accès  des  données  par  les 

utilisateurs autorisés uniquement. 

Figure 7: Découverte d’informations et d’objectifs visés  

3.2.2 Règles de gestion internes 

Concernant la gestion des temps des collaborateurs, les règles suivantes sont observées : 

Heures de présences :  

o Le travail   doit être effectué entre 6 heures et 20 heures (travail du jour, 

voir 2.2.1). 

o L’entreprise n’a pas d’autorisation pour le travail de nuit. (voir 2.2.1) 

o Un taux d’engagement à 100% correspond à 41 heures hebdomadaires. 

o Le nombre exact d'heures de travail à effectuer au cours d'une année est 

calculé  par  rapport  aux  jours  ouvrables  de  l'année  civile  ainsi  que  par 

rapport au taux d'occupation convenu. 

Legal Holidays Absence Types

Absences Employees

Timesheet entry 

types (activities)

Timesheet Projects

Tasks

Project reporting 

HR reporting 

3 Le cas de l’entreprise Chronos  Buts et contraintes du nouveau système automatisé 

16

Solde horaire flexible : 

o Les  collaborateurs  ont  la  possibilité  d’organiser  librement  leur  travail 

dans une plage de ‐10 et +40 heures. 

o Le solde est établi chaque année le 31 décembre. 

o Les heures excédentaires dépassant les 40 heures, sont supprimées.  

o Les  déficits  horaires  supérieurs  à  10  heures  (heures  ayant  dû  être 

effectuées  et  dont  la  responsabilité  incombe  au  collaborateur)  sont 

soustraits  du  nombre  de  jours  de  vacances  de  l’année  écoulée,  ou  sont 

comptabilisés (déduits) avec le salaire du mois de janvier. 

o En  cas  de  départ,  le  collaborateur  doit  s’efforcer  d’atteindre  un  solde 

horaire  raisonnable.  Les  heures  excédentaires  sont  rémunérées  pour 

autant qu’elles ne dépassent pas 15 heures. 

o Les  heures  supplémentaires :  le  collaborateur  peut  être  demandé 

exceptionnellement d’en effectuer. Elles sont compensées par des congés 

de la même durée. 

Absences : la comptabilisation se fait en principe de la manière suivante:  

o jour complet d'absence (sauf voyages d'affaires) = 8.2 heures 

o ½‐jour d'absence = 4.1 heures. 

3.2.3 Critères non­fonctionnels du futur système 

Le  nouveau  SGTT  doit  également  remplir  certains  critères  en  dehors  de  ses fonctionnalités, notamment en matière de : 

disponibilité : le système doit être accessible à tout moment de la journée 

fiabilité :  les  informations  fournies  par  le  système  doivent  être  pertinentes  et fiables. 

ergonomie : le système doit être facile à utiliser, etc. 

4 Spécification des exigences    Explication préalable de la démarche 

17

 

Spécification des exigences  

4.1 Explication préalable de la démarche  17 

4.2 Repérage du domaine et des acteurs  18 

4.2.1  Identification des processus ..................................................................................... 18 

4.2.2 Acteurs ..................................................................................................................... 20 

4.2.3 Définitions, acronymes et abréviations .................................................................... 21 

4.3 Modélisation du point de vue utilisateur  23 

4.3.1 Administration des données du personnel ............................................................... 23 

4.3.2 Administration des projets ....................................................................................... 25 

4.3.3 Suivi des Projets ...................................................................................................... 26 

4.3.4 Gestion des temps .................................................................................................... 27 

4.1 Explication préalable de la démarche 

Dans  le Chapitre 3 de  ce  rapport,  le  cas de  l’entreprise Chronos a été présenté  et une 

collecte d’informations  sur  les  attentes des utilisateurs  finaux du nouveau  système de 

gestion des  temps  a  été  effectuée.  Le  but  du  présent  chapitre  est  de  revenir  sur  cette 

étape d’expression des besoins et d’élaborer une spécification des exigences logicielles, 

en s’inspirant de la discipline Requirements (Recueil des Exigences) de la méthodologie 

RUP10. Une description détaillée du RUP dépasserait le cadre de ce travail. Néanmoins, il 

convient  de  préciser  qu’il  s’agit  d’une  méthodologie  célèbre  de  gestion  de  projets 

informatiques  et  qui,  comme  il  a  été  défini  par  Kruchten  (2001,  cité  par  Martenet, 

2009) : 

 […] fournit une approche disciplinée pour assigner des tâches et des responsabilités 

à  l’intérieur  d’une  organisation  de  développement.  Son  but  est  d’assurer  la 

10 Rational Unified Process

4 Spécification des exigences    Repérage du domaine et des acteurs 

18

production de  logiciels de qualité qui  satisfassent  les besoins des utilisateurs  […]. 

RUP a été conçu et documenté en utilisant le langage de modélisation UML (p. 29). 

La discipline Recueil des Exigences  a pour but de décrire ce que le système doit faire et il 

est central pour un projet de développement. C’est la raison pour laquelle, avec RUP, on 

se  sert  des  cas  d’utilisation11  comme  fil  conducteur,  tout  au  long  du  projet  de 

développement,  afin  de  garantir  que  le  résultat  sera  à  la  hauteur  des  espérances  des 

utilisateurs.  

Les diagrammes qui seront présentés dans ce chapitre ont été réalisés à l’aide du logiciel 

MagicDraw UML12. 

4.2 Repérage du domaine et des acteurs 

4.2.1 Identification des processus 

Afin d’avoir une meilleure idée de ce qui doit être automatisé dans le cadre du projet, il a 

été  procédé par  un  repérage des  domaines  d’activité  et  par  une  identification des  cas 

d’utilisation processus13 pour chacun d’entre eux. Dans ce cas, un domaine correspond à 

une fonction précise de l’entreprise ayant une pertinence pour la modélisation du futur 

système. 

La  Figure  8: Diagramme de paquetage "Domaines"représente  les  deux  domaines 

principaux:  RH   et  Projet,  sous  forme  de  paquetage  de  haut  niveau.  Chacun  des  deux 

contient sous forme de paquetage de plus bas niveau, les processus ou les flux de travail 

qu’ils  supportent.  Ainsi,  le  domaine  RH  contient  les  processus   Administration  des 

Données du Personnel, Gestion des Temps, etc. En d’autres  termes, cela veut dire que  la 

fonction  des  ressources  humaines  s’occupe  d’administrer  les  données  du  personnel, 

ainsi que de la gestion des temps, etc.  

11 En anglais : use cases. Un cas d’utilisation décrit une manière précise d’utiliser le système, une fonctionnalité de celui-ci. 12 http://www.magicdraw.com/ 13 Cas d’utilisation processus : ceux que l’on peut diviser en plus petits cas d’utilisation.

4 Spécification des exigences    Repérage du domaine et des acteurs 

19

Figure 8: Diagramme de paquetage "Domaines"

De  l’observation  de  ce  diagramme,  on  comprend  que  le  domaine Projet dépend,  en 

quelque sorte, ou communique avec le domaine RH. Cela  indique que certains produits 

de  sortie  des  processus  de  ce  dernier  fournissent  des  éléments  d’entrées  au  premier. 

Ainsi, par ex. : pour le suivi des projets,  il y a besoin de connaître les heures de travail 

des  employés,  information  fournie  par  le  processus  de  gestion  des  temps.  Les  cas 

d’utilisation processus qui seront concernés par le nouveau système sont, donc :  

1.  Administration des données du personnel  

2.  Administration des projets  

3.  Suivi des projets 

4. Gestion des temps  

La gestion des salaires et des assurances sociales et fortement liée avec les processus 1 

et  2 :  le  calcul  de  la  paye,  à  titre  d’exemple,  dépend  du  décompte  horaire  du  salarié. 

Néanmoins, cette fonction ne sera pas prise en compte directement, dans le cadre de ce 

projet. Elle pourra faire objet d’une extension future du système.  

Les  deux  autres  domaines  figurant  dans  le  diagramme  de  paquetages,  notamment  la 

Comptabilité  et  la Facturation, ne  feront pas  l’objet d’automatisation, mais elles  seront 

4 Spécification des exigences    Repérage du domaine et des acteurs 

20

concernées  par  les  données  de  sortie  des  deux  autres  domaines.  À  titre  d’exemple,  le 

processus Gestion  des  Factures  utilise  des  données  concernant  les  projets  facturables 

(T&M) et fournies par le processus Suivi des Projets.

4.2.2 Acteurs  

Les acteurs sont les entités (personnes ou machines) qui vont interagir avec le nouveau 

système. En d’autres termes, ce sont les futurs utilisateurs de celui‐ci. Un acteur humain 

ne représente pas forcément un individu. Il se réfère plutôt à un rôle distinct, lequel peut 

être assumé par une ou plusieurs personnes. Il représente une façon distincte d’utiliser 

le système. 

La  Figure  8  montre  les  acteurs  ayant  été  identifiés  dans  le  cadre  du  nouveau 

SGTT (baptisé ChronoSys),  notamment : Employé, Responsable RH, Directeur Général  et 

les  cas  d’utilisation  processus  par  lesquels  ils  sont  directement  concernés,  en  tant 

qu’usagers.  Comme  il  peut  être  constaté,  il  existe  des  relations  d’héritage  entre  les 

acteurs.  Ainsi, on peut dire que le Directeur Général a aussi les privilèges du Responsable 

RH,  en  plus  de  la  liaison  aux  flux  de  travail  qui  lui  sont  propres  (Suivi  de  Projets  et 

Administration des Projets). Le Responsable RH, quant à lui, est logiquement lui‐même un 

Employé. Il sera impliqué en tant que tel, dans les mêmes cas d’utilisation que ce dernier. 

Bien évidemment, il aura des privilèges supplémentaires qui lui seront propres, mais ces 

derniers  ne  sont  pas  visibles  pour  l’instant.  Ils  ressortiront  durant  l’élaboration  d’un 

modèle détaillé de cas d’utilisations.  

4 Spécification des exigences    Repérage du domaine et des acteurs 

21

Figure 9: Diagramme de cas d'utilisation processus avec les acteurs14

4.2.3 Définitions, acronymes et abréviations  

Établir un vocabulaire commun entre les utilisateurs et les  réalisateurs d’un projet est 

une  tâche  importante de  la discipline Recueil des exigences  (Martenet 2009). En effet, 

cela contribue à éviter certains malentendus : 

Absence : une période (en jours ou demi‐jours ouvrables) de défaut de présence    

d’un Employé au travail. 

Activité : une période (en heures) pendant laquelle l’Employé effectue son travail, 

ou prend une pause, à l’intérieur d’une journée. 

Activité  (Type  d’) :  correspond  au  genre  de  travail  (ou  de  pause)  effectué  par 

l’Employé  (travail  sur  projet  facturable,  travail  de  garantie,  voyage  d’affaires, 

pause‐repas, pause‐café, etc.). 

Administrer  les  données  du  personnel :  gérer  (créer/modifier/supprimer)  les 

données concernant un Employé. 

Authentifier (s’) : se connecter à l’aide de son Login et Password 

ChronoSys : le futur système de gestion des temps ou SGTT. 

14 L’acteur Comptable n’est pas directement concerné par le SGTT, raison pour laquelle il n’a été lié à aucun cas d’utilisation processus.

4 Spécification des exigences    Repérage du domaine et des acteurs 

22

ChronoSys Admin :  l’interface  utilisateur  vu  par  un  administrateur  (le  DG  ou  le 

Responsable RH). 

ChronoSys (Mon) : l’interface utilisateur vu par un Employé. 

Employé:  toute  personne  ayant  signé  un  contrat  de  travail  avec  la  société 

Chronos. 

Jours fériés : jours légaux assimilés au dimanche. 

Jours  ouvrables :  jours  pendant  lesquels  la  société  reste  ouverte  (du  lundi  au 

vendredi). 

Login : le nom d’utilisateur . 

Motif : raison d’une Absence. 

Menu « Mes Activités » : Liste des Activités et des heures d’un Employé et saisie des 

activités. (Timesheet) 

Menu « Mes Absences » : Liste des périodes d’absence d’un Employé et saisie des 

absences. 

Menu « Mes Statistiques » : Tableau de bord de l’Employé avec ses soldes horaires. 

Password : mot de passe de l’utilisateur. 

Projet : un projet de développement mené par la société. 

Prestation théorique : nombre d’heures que l’Employé est sensé travailler durant 

une  période  donnée,  en  tenant  compte  des  week‐ends,  des  jours  fériés  et  des 

absences justifiées.  

Prestation effective : nombre d’heures de travail que  l’Employé a effectué durant 

une période donnée. 

Solde horaire : différence entre Prestation théorique et Prestation effective. 

SGTT : système de gestion des temps de travail (voir également ChronoSys). 

User : utilisateur de type Employé. 

Manager : utilisateur de type Responsable RH ou Directeur Général. 

Vacances : une période d’Absence accordée par année à un Employé et payée. 

Valider une Absence (par un responsable) : Justifier / prendre acte / donner son 

accord pour une absence de l’Employé. 

Visée : (pour une absence) non encore validée 

 

 

 

 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

23

4.3 Modélisation du point de vue utilisateur 

Nous  allons  maintenant  reprendre  chacun  des  quatre  processus  identifiés  dans  la 

section 4.2.1 et les étudier à l’aide de diagrammes UML d’activités. Cette étape permettra 

par  la suite d’identifier  les différents cas d’utilisation, pour arriver à un Modèle de Cas 

d’Utilisation (Use Case Model), répondant de manière plus détaillée à la question que va 

faire le système et qui l’utilisera. 

4.3.1 Administration des données du personnel 

Le  diagramme  d’activités  présenté  dans  la  Figure  10,  montre  un  déroulement 

imaginable  des  activités,  pour  le  processus  d’administration  des  données.  Les  deux 

acteurs concernés sont représentés par des swimlanes :  

1. Le processus est déclenché au moment où un employé se fait engager.  

2. Il se suit par la création d’une nouvelle entrée de type Employé dans le système 

(nouveau compte Employé).  

3. L’employé reçoit, par la suite son Login et Password et se connecte au système.  

4. Il vérifie ses données personnelles (par ex. : nom, prénom, adresse, etc.) et décide 

si elles sont correctes ou pas.   

5. Si oui, il n’a rien à faire et se déconnecte du système. Si non, il fait des corrections.  

6. La  modification  est  sauvegardée  dans  le  système  et  le  responsable  peut  la 

consulter à tout moment. Il accepte la modification et peut en informer l’employé.   

Des déroulements alternatifs peuvent exister. Par exemple : 

1. Le  processus  est  déclenché  au  moment  où  il  y  a  nécessité  de  la  part  du 

responsable  de  modifier  certaines  données  concernant  un  employé  (ou  un 

groupe d’employés). 

2. Le responsable apporte par lui‐même les modifications souhaitées. 

Une analyse de cette description nous permet d’identifier les cas d’utilisation suivants : 

UC1 : S’authentifier  

UC2 : Créer un nouvel Employé 

UC3 : Consulter les données d’un Employé 

UC4 : Consulter ses données personnelles 

UC5 : Modifier/supprimer les données d’un Employé 

UC6 : Fermer session (se déconnecter) 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

24

 

Figure 10: Diagramme d'activités "Administration des Données du Personnel"

Pour  faciliter  la  tâche  de  leur  représentation,  nous  allons  considérer  les  deux  sous‐

systèmes Mon ChronoSys  et ChronoSys Admin  séparément. Ce dernier  regroupe  les  cas 

UC1,  UC2,  UC3,  UC5  dans  le  diagramme  des  cas  d’utilisation  « Administration  des 

Données du Personnel » (voir Figure 11 - Diagramme de cas d'utilisation "Administration

des Données du Personnel") et les mets en relation avec leur acteur : le Responsable RH. 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

25

  

Figure 11 - Diagramme de cas d'utilisation "Administration des Données du Personnel"

4.3.2 Administration des projets 

Comme il a déjà été énoncé, cette tâche appartient au Directeur Général. Un diagramme 

d’activité n’a pas été jugé nécessaire pour identifier les cas d’utilisation suivants : 

Figure 12: Diagramme de cas d'utilisation "Administration des Projets"

4 Spécification des exigences    Modélisation du point de vue utilisateur 

26

UC7 : Créer un Projet 

UC8 : Modifier/supprimer les données d’un Projet 

L’authentification du Directeur est également demandée, mais comme il s’agit d’un cas 

d’utilisation commun pour tous les acteurs, elle ne sera pas répétée. 

La mise en relation de ces cas avec leur acteur est montrée par la Figure 12: Diagramme

de cas d'utilisation "Administration des Projets". 

4.3.3 Suivi des Projets 

Alors  que  l’Administration  des  Projets  est  un  processus  secondaire,  dans  le  sens  où 

l’accomplissement de son but n’est pas la mission du domaine, mais le résultat produit est 

nécessaire aux processus métiers  (Morley, Hugues  et  Leblanc  2006,  p.  37),  le  Suivi  des 

Projets peut, quant à lui être considéré comme un processus de pilotage, dans le sens où 

il traite des informations utiles à la prise de décisions. Pour cette raison, les deux ont été 

traités  séparément.  Les  cas  d’utilisation  identifiés  dans  le  Suivi  des  Projets  sont  (voir 

Figure 13) : 

Figure 13: Diagramme de cas d'utilisation "Suivi des Projets"

4 Spécification des exigences    Modélisation du point de vue utilisateur 

27

UC9 : Consulter les Heures de Travail effectués pour un Projet 

UC10 : Consulter les Participants d’un Projet 

UC11 : Consulter l’Etat d’Avancement du Projet 

UC12 : Consulter le Coût du Temps du Projet 

On remarque que le cas UC12 inclut  les cas UC9 et UC10. En effet, on pourrait dire que 

pour calculer le coût des heures de travail passées sur un projet, il faut des informations 

sur qui a participé au projet et combien de temps il a consacré à ce dernier. 

4.3.4 Gestion des temps 

Nous venons maintenant au processus le plus important du projet, concernant la gestion 

des temps. Les diagrammes d’activités suivants ont été élaborés pour décrire les flux de 

travails principaux : Saisie des Activités, Gestion des Salaires, Traitement des Absences, 

Validation des Demandes de Congé (Figure 14, Figure 15, Figure 16 et Figure 17). 

Figure 14: Diagramme d’activités "Saisie des Activités" 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

28

Figure 15: Diagramme d'activités "Gestion des salaires"

Le  diagramme  « Saisie  des  Activités » montre  le  déroulement  normal  de  la  procédure 

souhaitée de la saisie des activités par un employé, en fin de journée (l’événement Fin de 

journée de travail apparait à titre d’exemple seulement, car l’employé doit pouvoir saisir 

une  activité  à  n’importe  quel moment  de  la  journée, même  si  cette  dernière n’est  pas 

terminée). 

Le diagramme « Gestion des  Salaires » montre un processus de  la  FRH qui  ne  fait  pas 

entièrement  l’objet  du  SGTT.  Néanmoins,  son  déroulement  requiert  des  étapes  de 

consultation  d’informations  que  le  SGTT  fournit,  comme  les  heures  de  travail  et  les 

absences. 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

29

Figure 16: Diagramme d'activités "Enregistrement des Absences"

Le  diagramme  ci‐dessus  montre  un  enchainement  imaginable  des  étapes  pour 

l’enregistrement  des  absences.  Il  distingue  entre  deux  cas  principaux :  absences 

prévisibles (enregistrées sous forme de demande de congé) et absences non‐prévisibles 

(où  l’employé  a  un  empêchement  imprévu).  Dans  le  premier  cas  de  figure,  l’employé 

remplit lui‐même le formulaire en intranet et annonce son intention de s’absenter. Dans 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

30

le  deuxième  cas,  il  informe  son  responsable,  qui  se  charge  d’enregistrer  l’absence  de 

l’employé.  Dans  les  deux  cas,  l’absence  doit  être  validée  par  un  responsable.    Notons, 

tout de même, que l’employé a aussi la possibilité d’enregistrer une absence ayant déjà 

eu lieu (par ex. : dans le cas où son responsable aurait oublié de le faire). 

 

Figure 17: Diagramme d'activités "Validation des demandes de congé"

4 Spécification des exigences    Modélisation du point de vue utilisateur 

31

La  Figure  17 montre  la  procédure  pour  valider  les  demandes  de  congé :  le  directeur 

général voit une liste de demandes de congé en attente sur son « tableau de bord » et il 

choisit de les refuser et ou de les valider. 

À partir de ces diagrammes d’activités, il est possible d’identifier les cas d’utilisation suivants : 

 

Acteur Employé : 

UC13 : Consulter ses Activités 

UC14 : Ajouter une Nouvelle Activité 

UC15 : Consulter ses Absences 

UC16 : Enregistrer une Absence Employé 

UC17 (extends UC16) : Enregistrer une Demande de Congé 

UC18 : Consulter ses statistiques 

o UC 18.1 : Consulter son solde horaire 

o UC 18.2 : Consulter son solde vacances 

o UC 18.3 : Consulter les jours fériés 

 

Acteur Responsable RH : 

UC 19 : Enregistrer une Absence Employé  

UC 20 : Valider une Absence 

UC21 : Consulter le plan des présences des collaborateurs 

 

Acteur Directeur Général : 

UC22 : Consulter les demandes de congé 

UC23 : Traiter les demandes de congé 

o UC23.1: Valider congé 

o UC23.2 : Refuser congé 

UC24 : Consulter les statistiques 

o UC24.1 : Consulter les Activités des Employés 

o UC24.2 : Consulter les Soldes Horaires des Employés 

o UC24.3 : Consulter les temps de pause des Employés 

o UC24.4 : Consulter le taux d’absentéisme 

o UC24.5 : Consulter les temps passés en voyage 

o UC24.6 : Consulter les Soldes Vacances des Employés 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

32

Les FiguresFigure 18 18Figure 1919 montrent les deux diagrammes de cas d’utilisation : 

« Gestion  des  Temps  Perso »  et  « Gestion  des  Temps  Admin »,  représentant  les 

fonctionnalités des interfaces utilisateur user (employé) et manager (responsable RH ou 

directeur)  respectivement.  Elles  correspondent  aux  deux  sous‐systèmes :  Mon 

ChronoSys  et  ChronoSys  Admin.  Les  diagrammes  correspondants  de  cas  d’utilisation 

sont affichés ci‐dessous (Figure 18 et Diagramme de cas d’utilisation "Gestion des Temps

Admin19) : 

4 Spécification des exigences    Modélisation du point de vue utilisateur 

33

Figure 18: Diagramme de cas d'utilisation "Gestion des Temps Perso"

On remarque que pour l’acteur Employé, le cas d’utilisation Enregistrer une Demande de

Congé (UC17) est une extension du cas Enregistrer une Absence Employé (UC16). En effet,

les deux sont des entrées comportant une date de début et une date de fin, ainsi qu’un motif.

La demande de congé se différencie par sa saisie d’avance.

4 Spécification des exigences    Modélisation du point de vue utilisateur 

34

Figure 19: Diagramme de cas d’utilisation "Gestion des Temps Admin"

Le  cas  « Traiter  les  Demandes  de  Congé »  peut,  lui  aussi,  être  considéré  comme  une 

extension  du  cas  « Enregistrer  une  Absence  Employé »,  dans  le  sens  où  le  traitement 

d’une demande consiste à modifier un ou plusieurs attributs  d’une entrée existante de 

type absence (les types de données et leurs attributs seront discutés dans la section 5.2). 

5 Analyse et conception    Architecture du futur système 

35

 

Analyse et conception  

5.1 Architecture du futur système  35 

5.2 Modélisation du point de vue logique  36 

5.2.1  Identification des Entités ......................................................................................... 36 

5.2.2 Le modèle Entité-Association .................................................................................. 36 

5.2.3 Le schéma de base de données relationnelle ........................................................... 38 

Dans la section précédente, nous avons modélisé ce que le système doit faire, sans pour 

autant aborder la question du comment il le fera. Le but de cette partie du travail  est de 

se  pencher  sur  l’aspect  logique  du  futur  système.  Encore  une  fois,  nous  allons  nous 

inspirer des pratiques du processus unifié (RUP, voir 4.1), dont la discipline Analysis and 

Design  (Analyse  et  Conception)  a  pour  but  de  décrire  comment  le  système  sera 

implémenté (RSCorp 1998, cité par Martenet 2009, p. 37).  Parmi les multiples tâches de 

cette discipline, sont l’analyse architecturale et la conception de la base de données. 

5.1 Architecture du futur système 

L’architecture décrit les composantes du futur système d’information. Dans le cadre de ce travail, le futur système sera implémenté sur une architecture en trois couches :

1) Une couche de présentation, qui sert d’interface entre le système et ses utilisateurs : un site web tournant sur un serveur local Apache.

2) Une couche de logique métier, qui implémente les règles de gestion et effectue les calculs : des pages programmées en PHP

3) Une couche d’accès aux données, qui communique avec la base de données à l’aide d’un langage de requêtes : MySQL

La base de données sera créée selon les principes d’une base de donnée relationnelle, décrites par Meier (2002)

5 Analyse et conception    Modélisation du point de vue logique 

36

5.2 Modélisation du point de vue logique  

Cette section traite de la conception de la base de données (BD).

5.2.1 Identification des Entités 

D’après Meier (2002, p.18) : 

Une  entité  est  un  objet  spécifique  (c’est‐à‐dire,  qui  peut  être  identifié 

distinctement parmi d’autres objets) dans  le monde  réel  ou dans notre pensée. 

[…] Les entités du même type forment un ensemble d’entités caractérisées par un 

certain nombre d’attributs. […] Pour chaque ensemble d’entités, nous définissons 

une  clé  d’identification,  c’est‐à‐dire  un  attribut  ou  un  ensemble  d’attributs  qui 

permet de distinguer sans ambiguïté les entités dans l’ensemble considéré.  

Les entités qui ont été repérées pour le cas Chronos et leurs principaux attributs : 

EMPLOYE (ID, Nom, Adresse,…) 

CATEGORIE D’EMPLOYE (ID, Catégorie, Description) 

POSTE (ID, Poste) 

ACTIVITE (ID, Employé, Type d’actvité, Projet, Date, Début, Fin, Description) 

TYPE D’ACTIVITE (ID, Description) 

PROJET (ID, Nom, Client, Début, Délais, Livré, Description, T&M ,…) 

ABSENCE (ID, Début, Fin, Employé, Motif)  

MOTIF (ID, Catégorie, Détails, Jours_accordés) 

JOURS FERIES (ID, Occasion, Date) 

5.2.2 Le modèle Entité­Association 

Les  associations  sont  des  liens  orientés  d’une  entité  à  une  autre.  Elles  décrivent  des 

relations entre les entités et on peut les classifier en quatre catégories :  

1: simple (« un et un seul ») 

c : conditionnelle (« aucun ou un ») 

m: multiple (« plusieurs »)  

mc : multiple conditionnelle (« aucun, un ou plusieurs ») (Meier 2002). 

5 Analyse et conception    Modélisation du point de vue logique 

37

Ainsi, par exemple, on pourrait dire qu’un EMPLOYE occupe un et un seul POSTE au sein 

de  l’entreprise, mais que  le même POSTE peut être assigné à plusieurs EMPLOYES. On 

observe, dans ce cas, une relation simple‐multiple (Figure 20). 

Figure 20: Exemple d'association

La Figure 21 montre  le modèle complet des données du cas Chronos,  sous  forme d’un 

diagramme  Entité‐Association.  Les  différentes  entités  y  apparaissent  avec  leurs 

principaux  attributs,  dont  les  clés  primaires  soulignées.  Les  associations  sont 

représentées par des losanges : 

Appartenance :  Un  EMPLOYE  appartient  à  une  et  une  seule 

CATEGORIE_EMPLOYE,  mais  une  CATEGORIE_EMPLOYE  peut  correspondre  à 

plusieurs EMPLOYES 

Réalisation : Un EMPLOYE réalise aucune, une ou plusieurs ACTIVITES, mais une 

ACTIVITE est associée à un seul EMPLOYE 

Attribution :  Une  ACTIVITE  est  attribuée  à  un  seul  PROJET,  mais  un  PROJET 

regroupe plusieurs ACTIVITES 

Caractérisation : Une ACTIVITE est caractérisée par un seul TYPE_ACTIVITE, mais 

un TYPE_ACTIVITE a plusieurs instances d’ACTIVITE 

Effectuation : Un EMPLOYE peut  effectuer aucune, une ou plusieurs ABSENCES, 

mais  une  ABSENCE  désigne  une  période  unique  d’empêchement  d’un  seul 

EMPLOYE. 

Justification : Une ABSENCE se justifie par un seul MOTIF15, mais le même MOTIF 

peut être à la base de plusieurs ABSENCES. 

Participation :  Un  EMPLOYE  peut  participer  à  aucun,  un  ou  plusieurs  projets, 

mais un PROJET est mené à bien par un ou plusieurs EMPLOYES. 

 

  15 On pourrait également imaginer une période d’absence due à plus d’un motif, par exemple : un employé malade qui entretemps déménage ou dont la femme vient de mettre son enfant au monde. Néanmoins, pour une raison de simplicité, nous allons considérer trois entrées de type ABSENCE au lieu d’une, chacune avec son propre motif.

5 Analyse et conception    Modélisation du point de vue logique 

38

 

Figure 21: Modèle de données Entité-Association 

 

5.2.3 Le schéma de base de données relationnelle 

Le modèle entité‐association donne un aperçu global des données et de leurs relations. 

Cependant, sa  finalité ne s’arrêtant pas  là,  il doit être traduit en un schéma de base de 

données  relationnelle.  Celui­ci  contient  la  description  d’une  base  de  données,  plus 

précisément, la spécification de la structure des données et de leurs contraintes d’intégrité. 

[…][Il] contient la définition des tables, des attributs et des clés primaires. Les contraintes 

d’intégrité imposent des limites aux domaines des attributs et définissent les dépendances 

entre les tables (Meier 2002, p. 27). 

Pendant la transformation du modèle,  il a été veillé au respect d’un certain nombre de 

règles de passages, telles que définies par Meier (2002, p. 27‐38) : 

[1] Chaque ensemble d’entités doit  être  traduit  en une  table distincte,  avec une  clé 

primaire unique.  

5 Analyse et conception    Modélisation du point de vue logique 

39

[2] Chaque  ensemble  de  liens  peut  être  traduit  en  une  table  distincte.  Elle  doit 

contenir  les  clés  d’identification  des  ensembles  d’entités  participantes  comme 

clés étrangères. 

[3] Chaque  ensemble  de  liens  complexe‐complexe  ((m,m);  (m, mc);  (mc, mc)) doit 

être transformé en une table distincte. 

[4] Un ensemble de liens simple‐complexe peut s’exprimer dans les deux tables des 

ensembles d’entités participantes, sans avoir besoin de créer une table distincte.  

[5] Un ensemble de liens simple‐simple peut s’exprimer également selon [4]. Une des 

clés d’indentification de la table référencée est choisie comme clé étrangère dans 

la seconde table. 

Ainsi, les tables suivantes doivent être créées : 

EMPLOYE

ID Nom Prénom Adresse NPA Lieu Catégorie Date de Naissance

Taux d’Occupation

CATEGORIE_EMPLOYE

ID Catégorie Description

ACTIVITE

ID EmpID TypeActivitéID ProjetID Date Début Fin Description Update

TYPE_ACTIVITE

ID Description

PROJET

ID Nom Projet Client Début Délais Livré Description T&M

5 Analyse et conception    Modélisation du point de vue logique 

40

ABSENCE

ID EmpID Début Fin MotifID Remarque Statut Date d’inscription

Update

MOTIF

ID Catégorie Détail Jours Accordés par année

POSTE

ID Poste

En plus, selon  les règles de transformation,  le  lien Participation devrait être traduit en une table distincte : 

 

PARTICIPATION

ID EmpID ProjetID Taux de participation

Cependant,  l’attribut  « Taux  de  participation »  d’un  employé  à  un  projet  donné,  serait 

redondant puisqu’il s’agit d’une donnée calculable qui peut être dérivée des données sur 

les  activités.  Cette  table  serait  nécessaire  uniquement  dans  le  cas  où  le  « Taux  de 

participation » serait un taux prévu (par exemple, au début du projet). Alors il servirait 

de point de référence pour vérifier si le taux effectif équivaut celui prévu. 

Un autre principe à observer durant la transformation du modèle en schéma de base de 

données  relationnelle  est  que  celui‐ci  soit  normalisé  selon  les    cinq  Formes Normales 

(FN).  Les dernières permettent d’éliminer  les  anomalies,  et par  la même   occasion  les 

redondances qui en sont la cause. Dans la pratique, on se limite généralement aux trois 

premières FN (Meier 2002, p. 41): 

1FN : Les domaines des attributs de la table sont constitués de valeurs atomiques 

2FN : Il existe une dépendance fonctionnelle totale reliant la clé à chaque attribut non­clé. 

5 Analyse et conception    Modélisation du point de vue logique 

41

3FN : Aucun attribut non­clé ne dépend d’une clé quelconque par transitivité. 

Ainsi, par exemple, nous pouvons constater dans la table EMPLOYE, que l’attribut NPA 

dépend de l’attribut ID, et que l’attribut Lieu dépend de NPA. Cette table ne se trouve pas 

dans la troisième forme normale. La solution est simple : les données de la colonne Lieu 

peuvent  être  supprimées  et  recréées  dans  une  table  à  part,  avec  sa  propre  clé 

d’identification. Dans la table EMPLOYE,   uniquement le LieuID apparaitra, en tant que 

clé étrangère, et pas le nom du Lieu lui‐même. 

 

6 Implémentation du prototype    Considérations préalables 

42

 

Implémentation du prototype  

6.1 Considérations préalables  42 

6.2 La base de données  43 

6.2.1 Les tables, les attributs et les contraintes ................................................................. 43 

6.2.2 Les requêtes SQL ..................................................................................................... 48 

6.3 L’interface utilisateur  49 

6.3.1 Organisation des fichiers ......................................................................................... 49 

6.3.2 Sélection d’une période (calendrier) ........................................................................ 52 

6.3.3 Affichage des données ............................................................................................. 52 

6.3.4  Insertion des données ............................................................................................... 53 

6.3.5 Statistiques ............................................................................................................... 55 

6.4 Guide d’utilisation et tests  55 

6.4.1 Connexion / Déconnexion ....................................................................................... 55 

6.4.2 Consulter ses activités pour une période au choix ................................................... 57 

6.4.3 Saisir une nouvelle activité ...................................................................................... 58 

6.4.4 Visualiser ses absences ............................................................................................ 59 

6.4.5  Insérer une absence/ demande de congé .................................................................. 60 

6.4.6 Consulter son solde horaire ..................................................................................... 60 

6.4.7 Autres fonctionnalités .............................................................................................. 63 

6.4.8 Un cas de discussion : les heures supplémentaires .................................................. 64 

6.1 Considérations préalables 

Après  les  phases  d’analyse  et  de  conception,  un  prototype  du  système  de  gestion  des temps de travail a été implémenté. L’environnement de développement a été le service WAMP, pour plusieurs raisons : 

Facilité de mise  en œuvre et  architecture en  trois  couches:  ce  service peut être téléchargé gracieusement depuis son site web  (WampServeur 2009) et il installe 

6 Implémentation du prototype    La base de données 

43

à  la  fois  un  serveur web  en  local  (Apache),  un  système de  gestion  de  bases  de données ou SGBD (MySQL) et des librairies PHP. 

PHP est un langage de script relativement facile à assimiler par un débutant. 

Portabilité :  le service est  indépendant du système d’exploitation (OS) et  il peut être  installé  sur  un  Macintosh  (MAMP)  ou  sur  Unix  (XAMP).  Ses  composantes peuvent être installées sur une seule ou sur plusieurs machines, selon les besoins. 

Compatibilité de MySQL avec d’autres SGBDs. 

Un bon éditeur de texte, Notepad++, a été utilisé pour l’édition des pages PHP. 

6.2 La base de données  

6.2.1 Les tables, les attributs et les contraintes 

La première étape de l’implémentation est la construction de la base de données. Celle‐ci 

sera appelée « SGTT » et elle a été créée à l’aide de l’interface phpMyAdmin sous WAMP.  

 

Figure 22: Fenêtre principale phpMyAdmin

6 Implémentation du prototype    La base de données 

44

Les  tables  créées  correspondent  aux  entités  ayant  été  identifiées  dans  la  partie 

d’analyse. L’association EMPLOYE – Participation – PROJET n’a pas été jugée utile dans 

un premier lieu et n’a pas été reprise dans une table distincte. 

La  création  d’une  table  se  fait  facilement  en  exécutant  une  requête  SQL sur 

phpMyAdmin (voir  Code  1:  Création  de  la  table  "Employé").  De manière  visuelle,  cela 

donne  ce  qui  est  affiché  dans  la  Figure  23.  Le même  principe  s’applique  à  toutes  les 

autres tables. 

Le choix du « type de données » pour chaque attribut à été fait en gardant à l’esprit les 

besoins de l’entreprise et les évolutions futures possibles, tout en essayant de limiter les 

espaces de stockage inutiles.  

1 CREATE TABLE IF NOT EXISTS `employe` ( 2 `ID` tinyint(3) unsigned NOT NULL AUTO_INCREMENT, 3 `Nom` varchar(25) NOT NULL, 4 `Prenom` varchar(25) NOT NULL, 5 `Adresse` varchar(50) NOT NULL, 6 `NPA` varchar(4) NOT NULL, 7 `Lieu` varchar(25) NOT NULL, 8 `Canton` char(2) NOT NULL, 9 `DateNaissance` date NOT NULL, 10 `Sexe` enum('m','f') NOT NULL, 11 `Nationalite` varchar(3) DEFAULT NULL, 12 `Permis` enum('B','C','L','autre','aucun') NOT NULL, 13 `DateEmbauche` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 14 `TauxOccupation` tinyint(4) NOT NULL DEFAULT '100', 15 `DateFinContrat` datetime NOT NULL DEFAULT '0000-00-00

00:00:00', 16 `Role` enum('user','manager') NOT NULL DEFAULT 'user', 17 `Categorie` varchar(3) NOT NULL, 18 `Poste` tinyint(4) NOT NULL, 19 `Remuneration` enum('horaire','mensuelle') NOT NULL DEFAULT

'mensuelle', 20 `Salaire` decimal(7,2) unsigned NOT NULL, 21 `Vacances` int(10) unsigned DEFAULT '20' COMMENT 'jours de

vacances accordés par année', 22 `SoldeVacances` int(10) unsigned DEFAULT '20' COMMENT 'Jours de

vacances restantes pour l''année en cours', 23 `Email` varchar(40) NOT NULL, 24 `Login` char(4) NOT NULL, 25 `Password` varchar(50) NOT NULL DEFAULT '000000', 26 PRIMARY KEY (`ID`), 27 UNIQUE KEY `Email` (`Email`), 28 UNIQUE KEY `Login` (`Login`), 29 KEY `Nationalite` (`Nationalite`), 30 KEY `Categorie` (`Categorie`) 31 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=29 ; 32

Code 1: Création de la table "Employé"

6 Implémentation du prototype    La base de données 

45

Dans  les  lignes 26 à 30 du Code 1 on observe  la définition de  la clef primaire (ID),  les 

attributs  devant  prendre des  valeurs  distinctes  (example :  Email  –  deux personnes ne 

devraint pas avoir la même adresse e‐mail) et les clés étrangères (Nationalité, Catégorie) 

faisant référence aux clés d’identifiaction des tables correspondantes.  

En un deuxième temps, la BD a été peuplée de données fictives. 16 

Figure 23: Structure de la Table "Employé"

16 Concernant  les  employés,  toute  correspondance  avec  une  personne  réelle,  serait  le  pur  résultat  du hasard.

6 Implémentation du prototype    La base de données 

46

Figure 24: Structure de la table "Activité"

Figure 25: Structure de la Table "Absence"

Figure 26: Structure de la Table "Projet"

6 Implémentation du prototype    La base de données 

47

Figure 27: Contenu de la Table "Motif"

Figure 28: Contenu de la Table "Type_Activité"

Figure 29: Contenu de la Table "Jour_Férié"

6 Implémentation du prototype    La base de données 

48

6.2.2 Les requêtes SQL 

Une fois la base de données construite et peuplée, elle peut déjà être utilisée pour avoir 

des  réponses  à  des  questions  exprimées  sous  forme  de  besoin  des  utilisateurs.  En 

d’autres  termes,  elle  fournit  déjà  une  partie  des  fonctionnalitées  souhaitées,  grâce  au 

langage de requêtes SQL.  

Prenons par exemple le cas d’utilisation « UC2 : Créer un nouvel Employé » (cf. p23). Un 

nouvel Employé peut être créé grâce à la commande Insert : 

1 INSERT INTO `employe` (`ID`, `Nom`, `Prenom`, `Adresse`, `NPA`, `Lieu`, `Canton`, `DateNaissance`, `Sexe`, `Nationalite`, `Permis`, `DateEmbauche`, `TauxOccupation`, `DateFinContrat`, `Role`, `Categorie`, `Poste`, `Remuneration`, `Salaire`, `Vacances`, `SoldeVacances`, `Email`, `Login`, `Password`) VALUES(10, 'Ancion', 'Nicolas', 'Rue de Lausanne 56', '1700', 'Fribourg', 'FR', '1972-02-07', 'm', 'CH', 'aucun', '2002-09-02 08:00:00', 100, '0000-00-00 00:00:00', 'user', 'CD', 10, 'mensuelle', '11000.00', 20, 20, '[email protected]', 'nica', '*032197AE5731D4664921A6CCAC7CFCE6A0698693')

Code 2: Créer nouvel employé

Un autre exemple : « UC10 : Consulter les Participants à un Projet ».   

On voudrait savoir qui a travaillé pour le projet E‐claim (dont le numéro d’identification 

dans  la  table  « Projet »  et  7).    Pour  trouver  la  réponse,  on  doit  effectuer  une  jointure 

entre les tables « employé », « activité » et « projet » (voir Code 3). 

1 SELECT employe.id, employe.nom, employe.prenom 2 FROM employe, activite , projet 3 WHERE projet.id = '7' 4 AND employe.id = activite.empid 5 AND activite.projetid = projet.id 6 GROUP BY employe.id 7 LIMIT 0 , 30 

Code 3: Participants au Projet E-claim

Le résultat donne la table ci-dessous (Figure 30):

6 Implémentation du prototype    L’interface utilisateur 

49

Figure 30: Liste des participants à un projet donnée (E-claim)

Les employés Hinkel, Salzmann, Riza et Lombard ont travaillé sur E-claim.

6.3 L’interface utilisateur 

Comme il a déjà été dit plus haut, l’interface utilisateur du prototype a été programmé en PHP. Dans le cadre de ce travail, uniquement l’interface utilisateur employé (Mon Chronosys) a été implémenté. L’interface administrateur (Chronosys Admin) a été réservé à un développement futur. Pour l’instant, une partie des fonctionnalités « administrateur » peuvent être remplies par phpMyAdmin à l’aide de requêtes SQL vers la base de données en MySQL.

6.3.1 Organisation des fichiers 

Les  fichiers  se  trouvent  dans  le  répertoire  www  du  serveur  local  wamp 

(C:\wamp\www)  et  le  site  web  dynamique  est  accessible  en  local  depuis  le  port  80 

(http://localhost/). 

Le fichier db.php contient des données générales, entre autre la base de données, le nom 

d’utilisateur et le mot de passe pour MySQL : 

1 <?php 2 $server = "localhost:3306"; 3 $db = "sgtt"; 4 $user = "root"; 5 $pass = "lila"; 6 $time_option ="<option value=\"06:00\">06:00</option><option

value=\"06:05\">06:05</option><option value=\"06:10\">06:10</option><option value=\"06:15\">06:15</option><option value=\"06:20\">06:20</option><option …

Code 4: Extrait du fichier db.php

La variable $time_option est utilisée ailleurs, dans l’implémentation du formulaire pour la 

saisie des activités (des heures de début et de fin).  Elle contient des options de tranches 

6 Implémentation du prototype    L’interface utilisateur 

50

de  temps  de  cinq  minutes,  pour  répondre  à  l’exigence  de  saisir  les  activités  à  cinq 

minutes près. 

Les  fichiers  index.php,  login.php  et  logout.php  contiennent  les  instructions  pour 

l’affichage de la page de garde, l’authentification et la déconnection de l’utilisateur.  

Le fichier toc_user.php contient le menu de l’interface « Mon Chronosys » (Code 5):  

Mes Activités (timesheet.php) 

Mes Absences (daysoff.php) 

Mes Statistiques (stat.php) 

1 <div id=toc> 2 <table cellpadding=5 cellspacing=0 style=" border-bottom:2;

border-left:2;border-bottom-style:solid;border-bottom-color:#A5B8C5;border-left-style:solid;border-left-color:#A5B8C5;">

3 <tr> 4 5 <td style="background-color:white"> 6 <div class="toc_entry"><a href="timesheet.php">Mes Activités

>></a></div> 7 <div class="toc_entry"><a href="daysoff.php">Mes Absences

>></a></div> 8 <div class="toc_entry"><a href="stat.php">Mes Statistiques

>></a></div> 9 </td> 10 </table> 11 </div>

Code 5: Menu utilisateur employé

Le  fichier  get_working_days.php  contient  une  fonction  permettant  de  calculer  le 

nombre de  jours ouvrables à partir de deux dates (début et  fin) et d’une  liste de  jours 

fériés. Il évite donc, les weekends et les jours fériés (Code 6).  

Cette fonction est utilisée, par exemple, pour calculer le nombre de jours d’absence d’un 

employé (Code 7). 

6 Implémentation du prototype    L’interface utilisateur 

51

1 <?php 2 //The function returns the no. of business days between two dates

and it skips the holidays 3 function getWorkingDays($start_date, $end_date, $holidays =

array()) 4 { 5 $start_ts = strtotime($start_date); 6 $end_ts = strtotime($end_date); 7 foreach ($holidays as & $holiday) { 8 $holiday = strtotime($holiday); 9 } 10 $working_days = 0; 11 $tmp_ts = $start_ts; 12 while ($tmp_ts <= $end_ts) { 13 $tmp_day = date('D', $tmp_ts); 14 if (!($tmp_day == 'Sun') && !($tmp_day == 'Sat') &&

!in_array($tmp_ts, $holidays)) { 15 $working_days++; 16 } 17 $tmp_ts = strtotime('+1 day', $tmp_ts); 18 } 19 return $working_days; 20 } 21 ?> 22

Code 6: La fonction getWorkingDays (cf. get_working_days.php)

 

6 Implémentation du prototype    L’interface utilisateur 

52

1 //Les requêtes SQL: 2 3 $sql = "SELECT absence.ID as No, absence.EmpID, absence.Debut,

absence.Fin, absence.MotifID, absence.Remarque, absence.Statut, motif.ID, motif.Categorie FROM absence, motif WHERE EmpID = '". $_SESSION['EmpID'] ."' AND MotifID = motif.ID";

4 5 $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql); 6 7 $sql2= "SELECT Date FROM jours_feries"; 8 9 $holidays = mysql_query($sql2) or die ('Erreur SQL: br/>'.$sql2); 10 11 //Les variables: 12 $jour_ferie=array (); 13 $total_of_hours = 0; 14 15 for ($i=0 ; $i < mysql_num_rows($holidays);$i++) { 16 $data = mysql_fetch_assoc($holidays); 17 $ferier = $data['Date']; 18 19 array_push ($jour_ferie, "$ferier"); 20 } 21 22 // On vérifie que l'utilisateur existe bien: 23 if (mysql_num_rows($req) > 0) { 24 for ($i=0 ; $i < mysql_num_rows($req);$i++) { 25 $data = mysql_fetch_assoc($req); 26 27 […] 28 $days = getWorkingDays($data['Debut'], $data['Fin'],$jour_ferie);

Code 7: Utilisation de la fonction getWorkingDays (cf. daysoff.php)

6.3.2 Sélection d’une période (calendrier) 

Une  question  un  peu  délicate  au  début  de  la  conception  du  prototype  était  comment 

implémenter et gérer  le calendrier. Stocker  les données d’une année sous  forme d’une 

table avec comme attributs les mois (voire les semaines ou les jours) semblait tout sauf 

élégant.  Éviter  d’utiliser  un  calendrier  laissait  certaines  fonctionnalités  dehors.  La 

meilleure solution a été d’inclure un datepicker  (sélectionneur de date)  sous  forme de 

code PHP (TriConsole 2009).  

6.3.3 Affichage des données 

Les  fichiers  timesheet.php,  daysoff.php  et  stat.php  représentent  les  trois  sections  “Mes 

Activités”, “Mes Absences”, “Mes Statistiques”.  

6 Implémentation du prototype    L’interface utilisateur 

53

L’affichage des activités se fait grace à des requêtes SQL lancés par PHP (Code 8): 

1 <?php 2 $co = mysql_connect($server, $user, $pass); 3 mysql_select_db('sgtt',$co) or die ('db innexistante'); 4 $sql = "SELECT activite.ID, activite.EmpID, TypeActiviteID,

projet.Nom AS projetNom, activite.Date, activite.Debut, activite.Fin, activite.Description, activite.Remarques\n"

5 . "FROM activite, projet\n" 6 . "WHERE projet.ID = activite.ProjetID AND EmpID = '".

$_SESSION['EmpID'] ."' AND Date between \"" . $start_date . "\" AND \"" . $end_date . "\"

7 ORDER BY activite.ID"; 8 $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

Code 8: Requête SQL sous PHP (Sélection des activités de l’utilisateur, timesheet.php)

6.3.4 Insertion des données 

L’insertion des données, se fait également à l’aide des requêtes SQL et du datepicker sous 

forme de code PHP (Code 8‐9): 

1 <?php 2 $sql2 = "SELECT motif.ID, motif.Categorie FROM motif";

3 $req2 = mysql_query($sql2) or die('Erreur SQL : <br />'.$sql2); 4 5 $motif ="<select name=\"MotifID\" size=\"1\">"; 6 for ($i=0 ; $i < mysql_num_rows($req2);$i++) { 7 $data = mysql_fetch_assoc($req2); 8 $motif.= "<option value='".$data['ID']. "'>". 9 $data['Categorie']. 10 "</option>"; 11 } 12 $motif.="</select>"; 13 ?>

6 Implémentation du prototype    L’interface utilisateur 

54

14 </tr> 15 <tr><td style="background-color:#CBDBE0;"></td><td>Inscrire une

nouvelle absence, ci-dessous:</td></tr> 16 <tr><td style="background-color:#CBDBE0;"></td> 17 <td colspan=2><table border=0 style=background-

color:#FFC72E; width="100%"> 18 <tr><td>Début:</td><td>Fin:</td><td>Motif:</td><td>Remarques:</td

><td>Statut:</td></tr> 19 <tr><form method="GET" id="input_time" action="">

20 <td><?php 21 $myStartCalendar = new tc_calendar("start_time", true,

false); 22 $myStartCalendar->setIcon("images/iconCalendar.gif"); 23 $myStartCalendar->setDate(date('d'), date('m'), date('Y')); 24 $myStartCalendar->setPath("/kronosys/"); 25 $myStartCalendar->setYearInterval(2000, 2015); 26 $myStartCalendar->dateAllow('2008-05-13', '2015-03-01'); 27 $myStartCalendar->setDateFormat('j F Y'); 28 $myStartCalendar->writeScript(); 29 ?> 30 </td>

31 <td><?php 32 $myStartCalendar = new tc_calendar("end_time", true, false); 33 $myStartCalendar->setIcon("images/iconCalendar.gif"); 34 $myStartCalendar->setDate(date('d'), date('m'), date('Y')); 35 $myStartCalendar->setPath("/kronosys/"); 36 $myStartCalendar->setYearInterval(2000, 2015); 37 $myStartCalendar->dateAllow('2008-05-13', '2015-03-01'); 38 $myStartCalendar->setDateFormat('j F Y'); 39 $myStartCalendar->writeScript(); 40 ?> 41 </td> 42 <td> 43 <?php echo $motif; 44 ?> 45 </td> 46 <td><input class="input" type="text" name="Remarques" size="50"

value=""></td> 47 <td><select name="statut"><?php echo $statut_option;

?></select></td> 48 <td><input type="submit" name="submit" value="Add"></td>

</form></tr>

Code 9: Code PHP pour saisir une absence (daysoff.php)

6 Implémentation du prototype    Guide d’utilisation et tests 

55

1 if ( isset($_GET)) { 2 if (!empty($_GET['submit']) && $_GET['submit']=="Add"){ 3 extract($_GET); 4 $co = mysql_connect($server, $user, $pass); 5 mysql_select_db('sgtt',$co) or die ('db innexistante'); 6 $sql = "INSERT INTO absence (`ID` ,`EmpID` ,`Debut`

,`Fin` ,`MotifID` ,`Remarque` ,`Statut`) VALUES (NULL,'".$_SESSION['EmpID']."','".$start_time."','".$end_time."','".$MotifID."','".mysql_real_escape_string($Remarques)."','".$statut."');";

7 $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

8 mysql_close($co); 9 } 10 }

Code 10: Code PHP pour sauvegarder une absence dans la BD (save_absence.php)

6.3.5 Statistiques 

Le  menu  « Statistiques »  devrait  donner  à  l’utilisateur  la  possibilité  de  consulter  les 

données pour une période de son choix, tel que :  le nombre de jours ouvrables pour la 

période, le nombre d’heures qu’il aurait dû effectuer (tenant compte des absences et des 

jours fériés), ainsi que le nombre d’heures effectives. Cela lui permet connaître son solde 

horaire et de décider de travailler plus (ou moins) pour balancer et être dans les règles 

du solde horaire flexible (voir 3.2.2 Règles de gestion interne).  

6.4 Guide d’utilisation et tests 

Dans  cette  section  nous  allons  voir  comment  marche  le  prototype,  du  point  de  vue 

utilisateur. Nous allons prendre le cas d’un employé nommé Xavier Hinkel et nous allons 

prendre des cas d’utilisation et tester la fonctionnalité pour chaque cas. 

Figure 31: L'employé Xavier Hinkel dans la Table "Employé" 

6.4.1 Connexion / Déconnexion 

1) L’employé  visite  le  système  intranet  à  l’aide  de  son  browser sur  (ex : http://localhost/kronosys/)  

2) Il entre son Login et son Password  personnels : xavh , xavh (Figure 32). 

6 Implémentation du prototype    Guide d’utilisation et tests 

56

3) La page d’accueil s’affiche (Figure 33). Par défaut,  le site montre  le menu « Mes Activités ». La table centrale affiche les activités de la journée en cours, s’il y en a eue. 

4) L’employé peut se déconnecter en appuyant sur le bouton logoff. 

Figure 32: Login sur l'interface employé

Figure 33: Page d'accueil employé

6 Implémentation du prototype    Guide d’utilisation et tests 

57

6.4.2 Consulter ses activités pour une période au choix 

L’employé clique sur  les petites  icones « calendrier » en haut de page et sélectionne  la période pour  laquelle  il  veut afficher  ses activités, par exemple : du 1 mars au 7 mars (Figure 34). 

Figure 34: Sélection d'une période

Le résultat est une liste de ses activités (Figure 35) avec la date, les heures de début et 

de  fin,  le  projet  concerné,  la  description,  d’éventuelles  remarques  et  surtout  le  temps 

consacré, en heures et minutes. Le total des heures pour la période choisie est également 

donné, en fin de liste. 

6 Implémentation du prototype    Guide d’utilisation et tests 

58

Figure 35: Liste des activités de l’employé Xavier Hinkel

6.4.3 Saisir une nouvelle activité 

L’employé  sélectionne  le  type  d’activité  depuis  la  liste  (cette  liste  obtient  les  données 

depuis  la  base  de  données  et  se  met  à  jour  automatiquement  si  de  nouveaux  types 

devaient apparaitres). Il choisit le bon projet,  la date, l’heure de début et de fin et écrit 

une Description. Il clique sur le bouton add : voir Figure 36. Disons que M. Hinkel a eu un 

rendez‐vous de 8h30 à 11h45 avec un client. Ensuite il a fait une pause pour manger. 

Le résultat est maintenant visible sur la table « Activités d’aujourd’hui » (Figure 37). 

6 Implémentation du prototype    Guide d’utilisation et tests 

59

Figure 36: Ajouter une nouvelle activité

Figure 37: Table « Mes activités d'aujourd'hui »

6.4.4 Visualiser ses absences 

Sous  le menu « Mes absences » à gauche, se  trouve  la page des absences de  l’employé. 

Par défaut, les absences de l’année en cours sont affichées. M. Hinkel a été malade du 10 

mars au 12 mars, ce qui fait 3  jours ouvrables et 24,6 heures d’absence (8,2 heures de 

travail par jour). En plus il a été à l’armée entre le 14 et le 16 mars (Figure 37).  

Figure 38: Liste des absences de l'employé

6 Implémentation du prototype    Guide d’utilisation et tests 

60

6.4.5 Insérer une absence/ demande de congé  

L’employé peut  lui‐même enregistrer une absence qu’il aurait effectuée auparavant ou 

alors  il  peut  annoncer  une  absence  prévue  pour  le  futur  (demande  de  congé).  Le 

formulaire orange en bas de page  sert  à  cela.  Le  « statut »  de  l’absence  est  par défaut 

« visée », car toute absence doit être validée par un responsable, plus tard. 

Figure 39 : Insérer une absence /demande de congé

6.4.6 Consulter son solde horaire 

Sous le menu « Mes Statistiques », l’employé peut visualiser son solde horaire et d’autres 

données relatives, pour une période de son choix.  

Reprenons le cas de M. Hinkel : 

Il veut voir son avancement pour le mois de Mars (du 1er au 31). Rappelons qu’il a été 

malade du 10 au 12 du mois, et qu’il a été à l’armée du 14 au 16 mars. Durant ce mois, il 

y a eu un jour férié, la fête du canton (le 11 mars)17. La table des jours fériés dans la base 

de données se présente sur la Figure 40.  

Dans  le  rapport  des  activités  de M. Hinkel,  on  trouve  des  données  saisies  entre  le  1er 

mars et le 9 mars. Il n’a pas saisi d’autres activités les autres jours. 

Les statistiques de M. Hinkel se présentent comme à la Figure 41. 

17 Il s’agit d’une fête fictive, insérée ici pour l’effet de test

6 Implémentation du prototype    Guide d’utilisation et tests 

61

Figure 40: Table "jours_feries"

Figure 41: Statistiques de l'employé pour le mois de mars

Quelques explications : 

Le tableau est composé de sept colonnes de données, chacune exprimée en nombre de 

jours, en nombre d’heures, en nombre de minutes ou alors en heures et minutes, selon le 

besoin.  

Total de : nombre total de jours dans la période (31 pour mars) 

Fériés :  nombre  total  de  jours  fériés  dans  la  période  (1  jour  ou  8,2  heures 

ouvrables, ou encore 8 heures et 12 minutes) 

Ouvrables : nombre de  jours ouvrables pour  la période. Sont considérés comme 

tels tous les jours sauf les fériés et les samedis/dimanches (22 jours en mars) 

Mes absences : nombre de jours d’absence pendant la période (4 jours).  

6 Implémentation du prototype    Guide d’utilisation et tests 

62

Rappelons que M. Hinkel avait été malade pendant 3 jours et avait été à l’armée pendant 

2 jours. Cependant, le calcul montre 4 jours d’absences, puisqu’il y a eu un jour férié (le 

11 mars) pendant sa période de grippe (du 10 au 12). 

Ma  prestation  théorique :  nombre  de  jours  ouvrables  où  l’employé  n’a  pas  été 

inscrit comme absent (18 jours). Cela correspond à 22 jours ouvrables – 4 jours 

d’absence. 

Ma prestation effective : nombre de jours que l’employé Hinkel a travaillé (ou du 

moins pour lesquels il a saisi ses activités) (env. 7.4 jours ou plus précisément 60 

heures et 25 minutes.) 

Mon  solde  horaire :  différence  entre  la  prestation  théorique  et  la  prestation 

effective    (‐  10.6  jours  ou env.  – 87 heures  et 11 mintues). En d’autres  termes, 

l’employé aurait dû travailler (ou doit travailler) encore 10 jours pendant le mois 

de mars pour arriver à un solde horaire équilibré. 

Deux  petits  tableaux :  Détail  des  jours  fériés  et  Détail  de  mes  absences  sont  donnés 

comme note explicative pour l’employé, en bas du tableau des statistiques. 

Dés détails plus lisibles du tableau des statistiques sont affichés ci‐dessous (Figures 42, 

43, 44). 

 

Figure 42: Détail du tableau "statistiques" 1

6 Implémentation du prototype    Guide d’utilisation et tests 

63

Figure 43: Détail du tableau "statistiques" 2

Figure 44: Détail du tableau "statistiques" 3

6.4.7 Autres fonctionnalités 

D’autres  fonctionnalités,  comme  Ajout/Modification  d’un  Employé  ou  d’un  Projet, 

visualisation  de  données  de  l’Employé,  etc.  n’ont  pas  été  implémentées  sur  l’interface 

web. Néanmoins, elles peuvent être satisfaites par  l’interface phpMyAdmin qui permet 

de manipuler la base de données directement. 

Cette implémentation représentant seulement un prototype, l’effort est de montrer que 

le  modèle  de  conception  est  utilisable  et  qu’il  est  possible  de  l’exploiter  de  manière 

satisfaisante. 

6 Implémentation du prototype    Guide d’utilisation et tests 

64

6.4.8 Un cas de discussion : les heures supplémentaires 

Dans  l’entreprise  Chronos,  les  employés  ont  des  soldes  horaires  flexibles,  ce  qui  les 

permet  de  gérer  eux‐mêmes  leur  travail  (avec  certaines  limites,  évidemment). 

Néanmoins,  il  ne  faut  pas  confondre  des  heures  excédentaires  (travaillé  plus  que 

nécessaire)  avec  des  heures  supplémentaires  (heures  demandées  par  la  direction  et 

rémunérées plus). Pour gérer les heures supplémentaires, une façon serait d’introduire 

un  nouveau  type  d’activité :  Travail  Supplémentaire,  au  même  titre  que  les  Pauses  / 

Voyages, etc.  

7 Conclusion    Rétrospective 

65

 

Conclusion 

7.1 Rétrospective  65 

7.2 Difficultés rencontrées et leçons apprises  66 

7.3 Améliorations futures  66 

7.1 Rétrospective 

Le but de ce projet était de concevoir et d’implémenter un prototype d’un système de 

gestion des temps pour une entreprise, en prenant à la fois le rôle de l’informaticien de 

gestion et celui du programmeur.  

En un premier temps, la problématique des systèmes de gestion de ressources humaines 

et  des  systèmes de  gestion des  temps dans  les  entreprises  d’aujourd’hui  a  été  traitée, 

afin de donner un cadre à ce travail et d’expliciter les motivations. 

Deuxièmement,  des  recherches  ont  été  effectuées  pour  comprendre  les  dispositions 

légales  suisses  qui  régissent  les  relations  de  travail  et  donc,  les  règles  auxquels  un 

système de gestion des temps doit se conformer. 

Dans un troisième temps, le cas d’une PME suisse orientée projet souhaitant améliorer 

sa  gestion  des  temps  de  travail  des  employés  a  été  présenté.  Elle  a  été  contactée  à 

quelques  reprises  pour  avoir  des  renseignements  sur  son  fonctionnement  et  sur  ses 

besoins en matière de gestion des temps.  

Ensuite,  le projet a été mené en prenant le rôle de l’analyste du métier et en analysant 

les  besoins  des  clients  (utilisateurs  finaux)  à  l’aide  du  processus  unifié  (RUP)  et  des 

diagrammes UML d’activités  et  de  cas  d’utilisation.  Ce  recensement  des  besoins  a  été, 

par après, utilisé pour concevoir le système du point de vue logique, en prenant le rôle 

de l’architecte du système.  

7 Conclusion    Difficultés rencontrées et leçons apprises 

66

Finalement, un prototype contenant une base de données et un site web programmé en 

PHP a été proposé et quelques cas de  tests ont été effectués sur celui‐ci. Ce prototype 

permet de gérer les employés, de saisir des activités/ des absences et de consulter des 

soldes horaires, entre autres. 

7.2 Difficultés rencontrées et leçons apprises 

Quelques difficultés ont certainement été rencontrées, notamment : 

Le vaste champ de la problématique de la gestion des temps a nécessité un travail de réflexion pour délimiter le projet.    

Le manque d’expérience en programmation PHP a nécessité une période intense d’auto‐apprentissage 

Le monde  du  projet  informatique  est  un monde  plein  de  prévus,  et  une majorité  des projets  dans  le  monde  échouent  par  rapport  à  l’un  des  trois  critères  (qualité,  coût, temps). En effet, il faut de la persévérance et un effort considérable pour gérer les délais.  

  

7.3 Améliorations futures 

Le prototype, par définition n’est qu’une version limitée et imparfait d’un système 

d’information final. Des améliorations sont donc, naturellement possibles : 

L’interface Chronosys Admin peut être implémentée 

Des restrictions pour empêcher la saisie des activités à une date ultérieure à 24 

heures, ou la sélection comme heure de fin une heure antérieure à celle du début, 

peuvent être programmées.  

Le système pourrait être complémenté par un module d’emploi des temps 

prévisionnels. 

Le système peut être relié à un système de comptabilité pour générer une fiche 

de salaire employé ou alors une facture pour des projets T&M.  

La base de données peut être optimisée : les dates pourraient être stockées de 

manière plus atomique, par exemple, au lieu de AAAA :MM :DD hh :mm :ss, etc.  

L’entité CLIENT peut être inclus.  

Etc.  

 

CD­ROM 

67

 

CD­ROM 

Ci-dessous vous trouvez le CD-ROM contenant le code source du projet SGTT.

Bibliographie 

68

Bibliographie 

Baromètre RH. «Baromètre de la Fonction Ressources Humaines en Suisse Romande.» 

www.barometrerh.ch. 2009. http://www.barometrerh.ch/images/BRH_2009.pdf 

(accès le 27 Mai 2009). 

Bréaud, A., C. Desaulles, A. Gilet, P. Perrenoud, V. Schoeb, et M. Serex. Guide pour la 

présentation des citations, des listes de références bibliographiques et des listes 

bibliographiques [Document Word]. 2004. 

http://biblio.hecvsante.ch/Documents/guide%20bibliographie/bibliographie_he

cvs_brochure.doc (accès le 4 Juin 2010). 

Chambet‐Weil, Stéphane. «Comment réconcilier la gestion des temps avec les 

contraintes opérationnelles et fonctionnelles de l'entreprise?» Le blog RH 

BearingPoint. 15 Février 2010. 

http://blogrh.bearingpoint.fr/2010/02/15/comment‐reconcilier‐la‐gestion‐des‐

temps‐avec‐les‐contraintes‐operationnelles‐et‐fonctionnelles‐de‐

l%E2%80%99entreprise/#more‐161 (accès le 27 Mai 2010). 

CO, Code des obligations du 30 Mars 1911. RS 220. Berne: Assemblée Fédérale de la 

Confédération Suisse, 1 Janvier 2010. 

Developpez.com. «F.A.Q. PHP ‐ Dates.» Developpez.com. 2010. 

http://php.developpez.com/faq/?page=dates (accès le 27 Mai, 2010). 

Journal du Net. «Comprendre les SIRH.» Le Journal du Net. 27 Juillet 2005. 

http://www.journaldunet.com/solutions/dossiers/pratique/sirh.shtml (accès le 

27 Mai 2010). 

Kruchten, Philippe. The rational unified process: an introduction (The Addison­Wesley 

object technology series). Boston: Addison‐Wesley, 2nd, 5th print., 2001. 

Bibliographie 

69

LAPG, Loi fédérale du 25 septembre 1952 sur les allocations pour perte de gain. RS 

834.1. Berne: Chancellerie Fédérale, 1 Juin 2009. 

Le Monde Informatique. «Quand les gestion des temps de travail se complexifie.» 

LeMondeInformatique.fr. 06 Juin 2005. 

http://solutionspme.lemondeinformatique.fr/panoramas/lire‐quand‐la‐gestion‐

des‐temps‐de‐travail‐se‐complexifie‐4.html (accès le 28 Mai 2010). 

Levi‐Mazloum, Dan. Gestion des absences d'une entreprise. Fribourg: Département 

d'Informatique de l'Université de Fribourg, 2009. 

LTr, Loi fédérale du 13 mars 1964 sur le travail dans l'industrie l'artisanat et le 

commerce. RS 822.11. Berne: Chancellerie Fédérale, 1964. 

Martenet, Hélène. Analyse des exigences d'un jeu boursier en ligne et implémentation d'un 

prototype d'amélioration (Travail de Master). Février: Université de Fribourg, 

Département d'Informatique, 2009. 

Master MRH Lille. «Les self services Ressources Humaines.» e­rh.org. 30 Novembre 

1999. http://www.e‐rh.org/doc_dess/selfserve.pdf (accès le 28 Mai 2010). 

Meier, Andreas. Introduction pratique aux bases de données relationnelles. Paris: 

Springer, 2002. 

Morley, Chantal, Jean Hugues, et Bernard Leblanc. UML 2: Pour l'analyse d'un système 

d'information, 3ème éd. Dunod, 2006. 

OLT 1, Ordonnance 1 du 10 mai 2000 relative à la loi sur le travail. RS 822.111. Berne: 

Chancellerie Fédérale, 1 Juin 2009. 

OMG. «MDA Guide Version 1.0.1.» site Web OMG. 2003. http://www.omg.org/cgi‐

bin/doc?omg/03‐06‐01 (accès le 27 Mai 2010). 

ORACLE. MySQL Developper Zone. 2010. http://dev.mysql.com (accès le 12 Avril 2010). 

Pasquier, Jacques, et Minh Tuan Nguyen. Introduction à l'Informatique de Gestion I. 

Université de Fribourg, 2009. 

Roques, Pascal. UML 2 par la pratique. 5è. Paris: Eyrolles, 2006. 

Bibliographie 

70

RSCorp. «Rational Software White Paper TP‐026A Rev 11/98.» Rational Unified Process ­ 

Best Practices for Software Development Teams. Novembre 1998. 

SECO, Secrétariat d'Etat à l'Economie. Travail et Santé ­ Durée du travail et du repos 

(L'essentiel en bref). Berne: SECO/Conditions de travail, 2009. 

—. SECO ­ Droit du travail. 2010a. 

http://www.seco.admin.ch/themen/00385/00420/index.html?lang=fr (accès le 

15 Mai 2010). 

—. SECO ­ Versemet du salaire en cas de maladie. 2010b. 

http://www.seco.admin.ch/themen/00385/00420/00423/00426/index.html?la

ng=fr (accès le 15 Mai 2010). 

Simple IT. Concevez votre site web avec PHP et MySQL. 3 Avril 2010. 

http://www.siteduzero.com/tutoriel‐3‐14668‐concevez‐votre‐site‐web‐avec‐

php‐et‐mysql.html (accès le 30 Avril 2010). 

TriConsole. «PHP Calendar Date Picker.» TriConsole. 2009. 

http://www.triconsole.com/php/calendar_datepicker.php (accès le 27 Mai 

2010). 

WampServeur. Apache, MySQL, PHP pour Windows. 2009. http://www.wampserver.com 

(accès le 23 Décembre 2009).