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)
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 CDROM 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).
Demijourné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 nonfonctionnels 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. Celuici 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 nonclé.
5 Analyse et conception Modélisation du point de vue logique
41
3FN : Aucun attribut nonclé 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.
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 AddisonWesley
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.» erh.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).