Baccalauréat technologique 2010 Filière STG GSI Gestion des systèmes d'information Epreuve écrite de spécialité (durée 4h coefficient 7) Dossier 1 : Observation du processus de demande de logement (50 points) Documents à exploiter : Document 1 : Entretien avec M. Nguyen, DSI Document 2 : Schéma du processus de demande de logement Document 3 : Schéma simplifié du réseau de l entreprise Document 7 : Copie d'écran de la page d accueil du site actuel Actuellement, un site internet statique, assez rudimentaire, permet de présenter l organisation aux usagers et de demander l envoi d un dossier de candidature pour un logement. Les échanges se font ensuite par voie postale ou dans les agences. Le schéma événement-résultat présenté dans le document 2 représente le processus manuel de demande d un logement. Celui-ci est incomplet et doit être amélioré si l on tient compte notamment de l évolution liée à la candidature en ligne. 1.1. Dans le cadre du processus de demande d un logement, expliquer pourquoi le demandeur est un acteur externe. Un acteur est un émetteur ou un récepteur d un flux d information lié à une activité au sein du système d information d une organisation. Selon le cas, il peut s agir d une catégorie de personne, d un service ou du système d information d une autre organisation. Un acteur reçoit un flux d information, qui lui permet d agir en transformant l information et en renvoyant un ou plusieurs autres flux d information à d autres acteurs. On distingue : les acteurs internes qui font partie du domaine d étude et les acteurs externes qui ne font pas partie pas du domaine mais qui ont des échanges avec les acteurs internes dans le cadre de l activité étudiée. Dans le cas étudié, le demandeur de logement est un acteur externe au traitement du processus de demande de logement, laquelle est pour le moment intégralement prise en charge par le service commercial, comme le souligne M. Nguyen, directeur du système d information dans le document 1. 1.2. Quelle est la nature du processus décrit par le schéma événement - résultat du document 2? Justifier votre réponse. Un processus est défini comme un ensemble organisé d activités déclenché par un événement et orienté vers la production d un résultat clairement identifié et l'objectif est de
satisfaire le client. Un processus ne se définit pas par ce qu'il doit faire mais par ce qu'il doit obtenir. Le schéma évènement résultat décrit un processus métier : délivrance d un bien ou d un service au client et regroupent les activités dédiées au cycle de vie du produit. Les processus décrits contribuent directement à la réalisation du produit, de la détection du besoin client à sa satisfaction. Dans le cas précis, il s agit de délivrer un logement à un demandeur et le processus regroupe toutes les activités (réception et envoi du dossier, vérification du dossier, mise à jour du dossier, etc.) dédiées au «cycle de vie» d attribution d un logement. 1.3. En reproduisant sur votre copie les acteurs concernés, terminer le processus de demande de logement en complétant l activité «Recherche de logement» du document 2. Présenter son équation de synchronisation, ses règles d émission, et ses événements résultats. Règle de synchronisation : Elle représente une condition préalable au démarrage d une activité. C est une expression logique (et/ou) indiquant la combinaison nécessaire des événements en entrée pour déclencher l'activité. Dans le cas précis, il s agit du «ET» au dessus de l activité recherche de logement Règle d émission : elle porte sur le résultat des tâches constituant l activité. Elle conditionne la production d évènements résultats d une activité : l offre doit correspondre à la demande ou non Evénement résultat : attribution d un logement ou relance courrier Lorsqu'une opération est activée par plusieurs événements, on peut faire figurer (dans une sorte d'entonnoir), l'équation de synchronisation. C'est une expression booléenne qui précise les combinaisons d'événements possibles permettant le déclenchement de l'opération. 1.4. Dans l organisation actuelle, recenser les différentes fonctions du système d information mises en œuvre dans ce processus ainsi que les supports qu elles utilisent. Désigner l acteur qui assure toutes ces fonctions. Justifier vos réponses. Un système d'information (noté SI) représente l'ensemble des éléments participant à la gestion, au traitement, au transport et à la diffusion de l'information au sein de l'organisation. Les 4 grandes fonctions sont de : Collecter, stocker, traiter et diffuser l'information. Supports utilisés : base de données informatisée à partir des dossiers des demandeurs, courriers, téléphone. Acteur en charge de ces fonctions: le service commercial 1.5. Préciser la fonction de la page «Présentation» obtenue à partir du lien qui lui est associé dans la page d accueil (document 7). La fonction de la page «Présentation» est de fournir une présentation institutionnelle de l'organisation (à partir des objectifs poursuivis par Cité Nouvelle = attribution de logements,
et des éléments d information sur la taille, le nombre d employés, la présence géographique présents page 3). 1.6. Après avoir identifié le(s) acteurs concernés par le processus de candidature en ligne, recenser les activités du document 2 qui ne seront plus prises en charge par le personnel du service commercial. Les acteurs concernés par le processus de candidature en ligne seront les demandeurs, le CETE, le SI, le Service commercial. Les activités qui étaient autrefois dévolues au service commercial sont : la saisie des informations (charge du demandeur) et le transfert de ces données au CETE, la vérification et la mise à jour des dossiers. Le service commercial ne gérera plus que la dernière étape et la recherche d appartements : «Le service commercial pourra alors se concentrer sur la recherche d'appartements et le processus d attribution des logements» (document 1) 1.7. Décrire les gains organisationnels et humains engendrés par cette solution pour Cité Nouvelle et pour le client demandeur d un logement. Gains de temps : le client ne se déplace pas, le dossier est collecté/traité/stocké plus rapidement, l information est diffusée de manière fluide Meilleurs allocation des moyens humains : le service commercial se recentre sur son cœur de métier, la recherche d appartement, le suivi des locataires en place et l attribution de logement en fonction des critères des demandeurs. Cité Nouvelle peut donc assurer le développement de son activité de manière productive Conséquence : augmentation de la satisfaction client par l augmentation du nombre de logements disponibles (grâce à une meilleurs allocation des ressources de Cité Nouvelle) et par le gain de temps dans la recherche de cette satisfaction (délais de traitement raccourcis) 1.8. Proposer une adresse IP pour le nouveau serveur de données, compatible avec les adresses fournies. Justifier votre choix. Il s agit d un réseau de classe C (masque de sous réseau 255.255.255.0). La partie cachée par le masque est donc «192.168.30», on attribuera donc une IP comprise entre 192.168.30.1 et 192.168.30.254 qui n est pas déjà attribuée à un autre ordinateur / serveur. Vu que le serveur Web a l IP 192.168.30.103, une IP logique pour le serveur de BDD aurait été : 192.168.30.104. 1.9. Pourquoi l application n est-elle pas développée uniquement en HTML? Justifier la réponse. Le langage HTML (langage de balisage) ne permet d interaction avec une base de données. Pour pouvoir renseigner une base de données via l utilisation d un formulaire, il est forcement nécessaire d utiliser un langage de script, tel que le PHP.
1.10. À quel type d architecture cette application correspond-elle? Processus d une connexion d un client sur l application. Le client interroge le serveur Web. Le serveur Web interroge le serveur de base de données. Le serveur de base de données interroge la base de données, qui renvoie l information au serveur de BDD qui renvoie l information au serveur applicatif Web, qui sur la base du PHP génère une page HTML affichée au client. Client Serveur Web Serveur de base de données Il s agit donc d une architecture 3 tiers.
Dossier 2 : Analyse des informations nécessaires pour le développement du système d'information (50 points) 2.1. Parmi les informations contenues dans le document 4, distinguer les immobilisations des charges. Les immobilisations sont les valeurs et biens durables (à usage long) employés par une entreprise et qui constituent une partie de ses actifs. L'ensemble de ses immobilisations constitue "l'actif immobilisé". L'appellation "immobilisations" fait allusion aux capitaux utilisés pour acquérir ces biens (moyens) et qui sont, de ce fait, immobilisés sous cette forme dans l'entreprise. On distingue les immobilisations corporelles (terrains, bâtiments, agencements, machines, mobilier, véhicules, etc.) des immobilisations incorporelles (frais de constitution de l'entreprise, licence, fonds de commerce, etc.), et des immobilisations financières (titres de participation détenus sur d'autres entreprises par exemple) D où, à partir du document 4, les immobilisations suivantes : - 2 PC - Mobilier Les charges représentent des frais réguliers qu'engendre l'existence de l'entreprise quel que soit son niveau d'activité. Même quand l'entreprise n'a pas de chiffres d'affaires elle a à supporter les charges fixes, comme par exemple le loyer du local commercial, les salaires, les primes d'assurance, etc. Dans une entreprise l'ensemble des charges courantes se répartit en charges fixes et les charges variables, lesquelles dépendent du niveau de l'activité. D où, à partir du document 4, les charges suivantes : - loyer - internet - une personne à temps plein (charges salariales et patronales) - Frais généraux (entretien, électricité, chauffage, fournitures, téléphone ) 2.2. Calculer le coût mensuel lié au fonctionnement d'une agence. Les calculs doivent être détaillés. Loyer mensuel : 8 du m² 120m² = 960 Internet : 40 2 PC : 540 2 pc 3 années 12 mois = 30 Mobilier : 2100 5 années 12 mois = 35 1 personne à temps plein = salaire mensuel [151,67 heures par mois 10 de l heure = 1516,7 ] + 40% du salaire brut en charges patronales (1516,7 0.4 = 606,8 ) = 2123,5 Frais généraux : 3600 12 = 300 Coût mensuel lié au fonctionnement d une agence : addition des charges et des immobilisations = 3488,50 Par ailleurs, M. Nguyen a demandé à la SSII qui travaille habituellement avec l entreprise de chiffrer le développement du site dynamique et son hébergement. La SSII a établi un devis de 15 000 HT pour le développement du site et de 480 HT annuel pour l hébergement. Ce site sera amorti sur 5 ans.
2.3 Montrer que le coût mensuel de développement et d hébergement du site internet interactif s élève à 290. Le coût mensuel de développement et d hébergement du site internet est composé du montant du devis (15 000 ) du site, divisé par la durée de l amortissement et le nombre de mois, à savoir 15000 5 12 = 250 auquel il faut ajouter le coût de l hébergement, fixé à 480 annuellement, divisé par 12 pour obtenir le montant mensuel (480 12) = 40 Soit 250 + 40 = 290 H.T. mensuel Les tâches liées à la gestion des dossiers de candidatures représentent, pour l ensemble des agences, l équivalent de 50% d un emploi à temps plein au service commercial. Le déploiement d un site dynamique permettra donc de libérer ce temps pour le personnel des agences commerciales. Ce temps récupéré sera affecté à des tâches plus valorisantes au service de la gestion des affectations de logement (visite des appartements) et de la gestion de leur entretien. 2.4.Évaluer l économie réalisée par Cité Nouvelle et conclure sur les gains qualitatifs attendus par le déploiement de la solution. Par agence, un employé coûte 2123,5 donc 50% d un emploi à temps plein équivaut à 2123,5 2 = 1061,75 Et le coût mensuel de développement et d hébergement du site internet = 290 Soit une économie substantive réelle de 1061,75 290 = 771,75 Les gains qualitatifs attendus du redéploiement de la situation sont importants, puisque dans chaque agence, c est 50% d un ETP au service commercial qui va pouvoir désormais prospecter de nouveaux logements, assurer le suivi des locataires et se charger de l allocation de nouveaux logements aux demandeurs 2.5. Quels sont les inconvénients liés à l obligation pour le demandeur de formuler sa demande par internet? Les inconvénients liés à l obligation pour le demandeur de formuler sa demande par internet sont multiples puisqu il faut : Être en possession d un ordinateur, Être capable de s en servir (difficultés pour les personnes n ayant pas reçu de formation préalable dans ce domaine), Posséder une connexion à Internet et que celle-ci soit fonctionnelle Que le serveur de Cité Nouvelle fonctionne 2.6. En vous appuyant sur le schéma relationnel, expliquer si un même demandeur peut déposer plusieurs demandes. Pour déposer plusieurs demandes, un demandeur doit pouvoir inscrire plusieurs entrées dans DemandeLogement. La question revient donc à savoir si pour un même id de «Demandeur», on
peut avoir plusieurs lignes dans DemandeLogement. La réponse est oui, car la clef primaire de la table DemandeLogement est composée de l id demandeur et de la date de la demande. Un élève protocolaire aurait même ajouté qu il convient de se poser la question de savoir si le champ datedemande est au format DATE ou DATETIME! 2.7. Lors de la saisie d une demande de logement, comment peut-on contrôler automatiquement que le champ nombrepersonnes (qui stocke le nombre d'individus qui occuperont l'appartement) contienne une valeur supérieure à zéro? Une simple condition «if» dans le code PHP permettant d enregistrer la demande de logement permet de contrôler la présence d une valeur supérieure à zéro dans le champ nombrepersonnes. 2.8. Rédiger en langage SQL, les deux requêtes permettant d obtenir ces informations. Pour connaitre quelles personnes ont formulé une demande de logement dans le secteur «Loire- Sud» : SELECT Demandeur.nom, DemandeLogement.dateDemande FROM Demandeur, DemandeLogement, SecteurDemande WHERE Demandeur.id = DemandeLogement.idDemandeur AND DemandeLogement.idSecteurDemande = SecteurDemande.id AND SecteurDemande.nom = "Loire-Sud" ; Pour connaitre l ensemble des secteurs représentant plus de 150 demandes : SELECT SecteurDemande.id, SecteurDemande.nom, count(demandelogement.*) as nbdemandes FROM SecteurDemande, DemandeLogement WHERE SecteurDemande.id = DemandeLogement.idSecteurDemande GROUP BY SecteurDemande.id HAVING nbdemandes > 150 2.9. Rédiger les requêtes permettant d effacer le client 126 qui vient d obtenir satisfaction après avoir justifié l ordre et le nombre des requêtes exécutée Afin d effacer le client 126, il convient de respecter les dépendances entre les tables. La table DemandeLogement content une clef étrangère vers la table client, l effacement des données concernant le client 126 doit être commencé par cette table. Puis il convient d effacer le client 126. Deux requêtes SQL permettront donc de venir à bout de Mr Jean DUPONT, id 126. DELETE FROM DemandeLogement WHERE iddemandeur = 126 ; DELETE FROM Demandeur WHERE id = 126 ;
Dossier 3 : Dématérialisation du processus de demande de logement (40 points) 3.1. Quel est l intérêt du fichier style.css unique pour l ensemble du site? Les intérêts d utiliser un fichier style.css unique sont multiples : - Mutualiser les informations de style pour l ensemble des pages du site (pas de répétition d un même code) - Faciliter de maintenance (une modification dans le fichier style.css impactera l ensemble du site, il ne sera pas nécessaire de modifier chaque fichier) - Cohérence dans l aspect graphique des différentes pages du site - Alléger le serveur Web, car le fichier sera placé en cache du navigateur, évitant les multiples appels et lectures du client au serveur 3.2 Quel est le rôle du fichier connexion.php? Le fichier connexion.php contient les différents paramètres de connexion à la base de données (identifiant, mot de passe, adresse du serveur, nom de la base, etc..). L utilisation d un fichier unique connexion.php rangé dans la Bibliothèque permet de mutualiser dans un seul fichier les appels de connexion à la base de données pour les autres fichiers.php, permettant de ne pas avoir à réécrire l information dans chacun des fichiers.php ayant besoin de faire un appel à la BDD. 3.3. Donner deux exemples pour lesquels le cas particulier prévu dans l étape 5.1 du scénario nominal pourrait se réaliser. Les scénarii dans lesquels le cas particulier 5.1 du scénario nominal pourrait se réaliser sont nombreux. Lors de la saisie du formulaire «Demande de logement» : - L utilisateur peut valider le formulaire sans n avoir rien rempli (ou rempli partiellement le formulaire) - L utilisateur peut saisir des données qui ne sont pas conformes au format attendu (des lettres dans le champ «Nombre de personnes vivant au foyer», des lettres dans le champ «Date de disponibilité souhaitée», etc..) - L utilisateur peut saisir des données qui ne sont pas fonctionnellement conforme («Nombre de personnes vivant au foyer» inférieur à 1, une date inférieure à la date du jour, etc ) - Enfin, en se basant sur le script DemandeLogement.php, toutes les informations qui feraient que la fonction «verifierdonnees()» renvoie une valeur «false». 3.4 Quelle table de la base de données est approvisionnée par le script DemandeLogement.php (document 10)? Dans le script DemandeLogement.php, la seule information d «insert» en base de données se trouve ligne 100 : insert into DemandeLogement values ($numdemandeur, date(),$idsecteur, $idmotif, $nbpersonnes, $nbenfants, $datedispo, $commentaire)
La table approvisionnée par ce script est la table : DemandeLogement. 3.5 Expliquer pourquoi la fonction «verifier Donnees», à la ligne 85, ne prend que trois paramètres. Sur le formulaire «Demande de Logement», on trouve 6 champs à remplir. Or, les deux premiers champs sont des listes déroulantes pour lesquels on s attend à ce que les informations sélectionnées soient justes. Enfin, le dernier champ est un champ de commentaire facultatif, sa présence n est donc pas requise. Il ne reste donc à contrôler que les informations de «$nbpersonnes», «$nbenfants» et «$datedispo», qui sont justement les trois paramètres de la fonction «verifierdonnees()». 3.6 Quel champ de la table est approvisionné par la fonction date () en ligne 100? Dans le cas où les champs ne sont pas spécifiés lors d un INSERT, c est l ordre par défaut des champs dans la table qui est pris en compte. Soit ici : DemandeLogement (iddemandeur, datedemande, idsecteurdemande, idmotifdemande, nombrepersonnes, nombreenfants, datedisponibilite, commentaire) Le champ de la table approvisionné par la fonction date() est donc le champ «datedemande». 3.7. Écrire le code en PHP permettant de remplir cet objectif. Indiquer à partir de quelle ligne ce code doit être inséré. Il s agit ici de remplacer l input permettant la saisie libre de l information nbpersonnes par un select comprenant des valeurs comprises entre 1 et 12. La ligne 270 doit donc être supprimée et remplacée par le code suivant : (attention à l utilisation du caractère " qui ferait sortir de l echo) 270 <td><select name='nbpersonnes'>" ; 271 for($i = 1 ; $i < 13 ; $i++) { 272 echo "<option value='$i'>$i</option>"; } 273 echo "</select></td>";