École Polytechnique de Montréal Département de génie informatique et génie logiciel LOG1000 : Ingénierie logicielle Contrôle périodique SOLUTIONNAIRE Jeudi 24 février 2011, 18 h 00 à 20 h 00 Olivier Gendreau, Ph.D. Julien Gascon-Samson Directives : Le quiz est sur 20 points et comporte 6 questions sur 8 pages, ecluant la présente. La pondération pour la session est de 25 %. Toute documentation papier permise. Écrivez vos réponses directement sur le questionnaire. La durée du quiz est de 120 minutes. NOM :
1 Questions générales (10 points) Encerclez la bonne réponse. 0,5 point est accordé par bonne réponse. 1.1 Laquelle des tâches suivantes n est pas spécifique à la construction logicielle? a) Écrire le programme b) Améliorer la finition du code c) Intégrer les composants d) Élaborer la conception de haut niveau e) Optimiser le code 1.2 Quelles activités de développement font partie du domaine du problème d un projet? a) Définition du problème b) Définition du problème, spécifications c) Définition du problème, spécifications, architecture logicielle d) Spécifications, architecture logicielle e) Définition du problème, spécifications, architecture logicielle et conception 1.3 Quel est le type de couplage le plus nocif? a) Couplage objet paramètre b) Couplage donnée-paramètre simple c) Couplage sémantique d) Couplage objet simple e) Couplage objet complee 1.4 Laquelle des heuristiques de conception suivantes vise à satisfaire la caractéristique d un fan-in élevé? a) Utilisation de patrons de conception b) Identification des objets réels c) Recherche de couplage modéré d) Encapsulation des détails d implémentation e) Identification des zones potentielles de modification 1.5 Tel que vu en classe, chaque méthode agile possède un angle différent. Qu est-ce qui distingue l apport du SCRUM relativement au autres méthodes agiles? a) Gestion des caractéristiques b) Gestion de projet c) Gestion du changement d) Simplicité du design e) Gestion du personnel 1
1.6 Laquelle des techniques de construction collaborative suivantes ne nécessite pas nécessairement de rencontre entre l auteur et le ou les réviseurs? a) Programmation en binôme b) Inspection formelle c) Lecture de code d) Révision pas-à-pas (walk-through) e) Aucune de ces réponses 1.7 Au sein de classes, plutôt que de permettre l accès direct au attributs, on les enrobe avec des méthodes d accès de type get et set. À laquelle des heuristiques de conception suivantes cette technique correspond-elle? a) Recherche de couplage modéré b) Identification des objets réels c) Identification des zones potentielles de modification d) Formation d abstractions cohérentes e) Encapsulation des détails d implémentation 1.8 Lequel des facteurs suivants demande un degré de formalisation élevé de la conception? a) Projet de petite taille b) Équipe epérimentée c) Tau de roulement du personnel élevé d) Courte durée de vie du système e) Faible niveau de sécurité nécessaire 1.9 Quelle est la technique d assurance qualité la plus formelle? a) Audit eterne b) Lecture du code c) Inspection formelle d) Contrôle personnel du code e) Bêta-tests 1.10 Le choi de l architecture MVC, tel que discuté en classe, se fait à quel niveau de conception? a) Niveau 1 b) Niveau 2 c) Niveau 3 d) Niveau 4 e) Niveau 5 2
Faites une marque dans la colonne appropriée. 0,5 point est accordé par bonne réponse. 0,25 point est soustrait pour une mauvaise réponse (correction négative). 1.11 Le prototypage permet de gérer le risque technologique au sein d un projet. Vrai Fau 1.12 Un produit logiciel est un produit tangible. 1.13 L outil SVN est un gestionnaire de configuration. 1.14 Il est plus coûteu de détecter un défaut lors de la conception que lors de l architecture. 1.15 La raison d être de la définition du problème, des spécifications et de l architecture est la réduction des risques. 1.16 La révision technique est une activité d encadrement qui peut être réalisée à n'importe quelle étape du développement logiciel. 1.17 L utilisation d un processus logiciel par une organisation certifiée CMMI niveau 5 est un gage de succès d un projet. 1.18 Une eigence de bonne qualité doit être complète, cohérente et traçable. 1.19 La programmation par paire et la programmation en binôme sont deu synonymes de la même pratique logicielle. 1.20 Dans le cadre d inspections formelles, les seuls rôles obligatoires sont le modérateur, l auteur et le réviseur. 3
2 Processus logiciel (2 points) a) (0,5 point) Nous avons vu en classe deu nomenclatures des étapes de développement, soit celle de McConnell et celle de Pressman. Epliquez la différence majeure entre la construction de Pressman et la construction de McConnell. La construction de Pressman n inclut pas la conception (qui fait partie de la modélisation), contrairement à la construction de McConnell. b) (0,5 point) Dans le cadre d un processus logiciel, quelle est la différence entre une tâche et une action? Une action est constituée d une ou plusieurs tâches. c) (0,5 point) Quels sont les principau facteurs nécessitant l adaptation d un processus? la nature du problème à résoudre les caractéristiques de l équipe de développement les parties prenantes impliquées dans le projet d) (0,5 point) Quelle est LA raison principale epliquant que le modèle séquentiel ne peut être suivi que dans les projets etrêmement simples? Le changement des eigences. 4
3 Modélisation UML (2 points) a) (0,5 point) En UML2, combien y a-t-il de vues statiques et de vues dynamiques? 6 vues statiques 7 vues dynamiques b) (0,5 point) Dans un diagramme de cas d utilisation, epliquez la différence fondamentale entre les stéréotypes «include» et «etend». «Include» implique l obligation d eécuter un cas d utilisation, alors qu «etend» indique une possibilité (alternative) d eécution de cas d utilisation. c) (0,5 point) Les composants (component) sont, entre autres, utilisés dans les diagrammes de déploiement. Qu est-ce qu un composant? Officiellement, il s agit d un module possédant une ou plusieurs interfaces. De manière plus générale, on peut parler d un concept ou d un ensemble de concepts visant un objectif commun. d) (0,5 point) Dans un diagramme de séquences, il est possible d utiliser les fragments d interaction combinés, afin de représenter plus précisément un comportement. Epliquez la différence entre les opérateurs «alternative» et «option». «Option» est un «Alternative» avec un seul opérande. 5
4 Assurance qualité (2 points) a) (0,5 point) Afin de démontrer votre compréhension de la différence entre la précision et l eactitude, indiquez la disposition probable de 5 tirs sur chaque des cibles suivantes : Précision (sans eactitude) Eactitude (sans précision) + + + + + + b) (0,5 point) Pourquoi la conception collaborative influence-t-elle positivement l assurance qualité? Parce que les pratiques de révision formelle ou informelle sont incluses dans l activité de développement de la conception. c) (0,5 point) Pourquoi la méthode agile de l Etreme Programming (XP) est-elle efficace en termes d assurance qualité? Parce qu elle combine des méthodes de détection d erreur (de défauts) complémentaires soient différents types de révision informelle et de tests. d) (0,5 point) Quelles sont les deu caractéristiques de qualité interne interreliées à la caractéristique eterne de l adaptabilité? Fleibilité et portabilité. 6
5 Makefile (2 points) Soit le Makefile suivant : principal.pdf: principal.dvi dvipdf principal.dvi principal.dvi: principal.te section_speciale.te late principal.te section_speciale.te: donnees.tt tabopen.tt tabclose.tt cat tabopen.tt donnees.tt tabclose.tt > $@ secret: echo "LOG1000 est mon cours favori" all: principal.pdf secret a) (0,5 point) On eécute la commande make. Quelle est la cible atteinte? principal.pdf b) (0,5 point) Les fichiers principal.pdf, principal.dvi, section_speciale.te n eistent pas. On eécute la commande make principal.pdf. Écrivez, dans l ordre, les commandes qui seront eécutées. cat tabopen.tt donnees.tt tabclose.tt > $@ late principal.te dvipdf principal.dvi c) (0,5 point) Les fichiers principal.pdf, principal.dvi, section_speciale.te sont désormais plus récents que leurs dépendances. On eécute la commande make all. Que se produira-t-il? Affichage à la console de : LOG1000 est mon cours favori 7
d) (0,5 point) Quelles sont les lignes qu il faut ajouter au Makefile pour que l on puisse effacer les fichiers temporaires principal.dvi et section_speciale.te? clean : rm -f principal.dvi section_speciale.te 6 SVN (2 points) a) (0,5 point) Après avoir créé un nouveau fichier dans votre copie de travail, vous eécuter la commande svn add. Que se produit-il suite à l'eécution de cette commande? Le fichier est marqué comme géré par SVN et sera transmis au serveur lors du prochain "commit". b) (0,5 point) Vous désirez revenir à une version antérieure d un fichier situé dans l entrepôt. Écrivez la commande nécessaire pour récupérer la révision 37 du fichier log1000.html? svn update r37 log1000.html c) (0,5 point) Quelle est l utilité de la commande svn update? Elle permet de synchroniser la copie de travail avec l entrepôt en récupérant la dernière version des fichiers de l entrepôt. d) (0,5 point) Epliquer dans quel contete une personne travaillant seule devrait utiliser un outil comme SVN? Lorsqu elle doit travailler sur des fichiers qui possèdent plusieurs versions. Lorsqu'elle veut conserver un historique des modifications apportées à ses fichiers. 8