Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et...

15
LOG1000 - Ingénierie logicielle Hiver 2014 Examen intra Enseignant : Bram Adams Date : jeudi, le 27 février 2014 Durée : 2 heures, de 18h à 20h Cet examen comporte 6 questions Pondération : 30% de la note finale Directives : Toute documentation permise. Calculatrices, téléphones cellulaires, tablettes et ordinateurs non permis. Écrivez les réponses dans votre cahier, mais n’oubliez pas de remettre aussi le questionnaire dûment signé !

Transcript of Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et...

Page 1: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Ingénierie logicielle

Hiver 2014

Examen intra

Enseignant : Bram Adams

Date : jeudi, le 27 février 2014

Durée : 2 heures, de 18h à 20h

Cet examen comporte 6 questions

Pondération : 30% de la note finale

Directives :Toute documentation permise.Calculatrices, téléphones cellulaires, tablettes et ordinateurs nonpermis.Écrivez les réponses dans votre cahier, mais n’oubliez pas deremettre aussi le questionnaire dûment signé !

Page 2: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

1 Questions générales (5 points)

Pour les cinq questions suivantes, choisissez la réponse qui vous semble être la bonne et indiquez votrechoix dans votre cahier (0.5 point par question).

1. L’établissement d’une communication efficace et continue entre le client et les développeurs :a) est une caractéristique principale des approches agiles, car seulement en communication continue

avec le client on peut éviter de diverger trop des requis envisionnés par le client. Réponseb) (paradoxalement) n’est pas une caractéristique principale des approches agiles, car la phrase

« Customer collaboration over contract negotiation » réfère plutôt à l’utilisateur final du produit,c.-à-d. il faut inviter quelques utilisateurs du produit pour participer au processus de développe-ment.

c) (paradoxalement) n’est pas une caractéristique principale des approches agiles, car la phrase« Customer collaboration over contract negotiation » réfère plutôt au fait qu’il vaut mieux pourun groupe de clients avec des requis similaires de collaborer dans un projet open source que denégocier avec une entreprise dispendieuse pour développer le système.

d) est nécessaire pour ne pas perdre du temps avec des adresses de courriel incorrectes ou desconnexions Internet lentes.

e) est optionnelle dans les approches agiles, il vaut mieux établir d’abord un processus de dévelop-pement flexible qui permet de mettre en production des produits désirés par le client.

2. Le coût principal du développement logiciel est le personnel parce que :a) la réutilisation des logiciels open source fait qu’il ne faut pas payer des frais de licenses exorbi-

tants pour réutiliser des composants existants.b) il est un fait notoire que les développeurs demandent trop d’argent pendant la négociation de leur

contrat.c) juste comme la construction physique le développement logiciel requiert des dizaines de per-

sonnes pour collaborer intensivement pendant des mois pour créer quelque chose de nouveau,alors tous les autres investissements sont négligables en comparaison avec le salaire de ces per-sonnes. vrai

d) les développeurs n’ont pas de discipline et réussissent toujours de se faire arrêter par la policepour des actes de sabotage.

e) Aucune de ces réponses n’est vraie.

3. Le projet Wireshark a annoncé le 15 octobre 2013 que « We’re switching our user interface library fromGTK+ to Qt. Both libraries make it easy for developers to write applications that will run on differentplatforms without having to rewrite a lot of code. ». À quelle caractéristique interne de qualité logiciellefait-on référence ?

a) Fiabilitéb) Efficiencec) Portabilité Réponsed) Utilisabilitée) Réutilisabilité

Page 1 de 14

Page 3: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

4. Bien que des bogues introduits par le codage n’ont qu’un coût relatif de 25 quand ils sont résolus aprèsla livraison en comparaison avec un coût relatif de 100 pour des bogues introduits par les requis :

a) les utilisateurs et les clients préfèrent le deuxième type de bogues.

b) ils requièrent l’expertise des analystes pour les résoudre.

c) ils sont beaucoup plus difficiles à résoudre.

d) ils sont beaucoup plus nombreux. Réponse

e) c) et d)

5. La différence entre le document SRS et l’approche des cas d’utilisation est :

a) que les processus en cascade typiquement utilisent un SRS, tandis que les processus itératifspréfèrent les cas d’utilisation.

b) artificielle, les deux approches sont identiques.

c) minimale, dans le sens que les deux produisent exactement le même contenu.

d) que la première décrit les requis du point de vue des scénarios d’utilisation concrets au lieu d’êtreune collection triée de façon arbitraire.

e) que la dernière décrit les requis du point de vue des scénarios d’utilisation concrets au lieu d’êtreune collection triée de façon arbitraire. Réponse

Pour chaque énoncé qui suit, dites s’il est vrai ou faux (une bonne réponse vaut 0.5 point et une mauvaiseréponse vaut -0.25 point).

6.Une application web en Javascript et HTML 5 ne deviendra jamais un logicielpatrimonial. F

7.En fait, le docteur Winston W. Royce n’a jamais recommandé le modèle encascade, son papier a été mécompris. V

8.Le règle de 20/80 définit que 20% des bogues rapportés sont responsables pour80% des problèmes des utilisateurs, alors il faut se concentrer préférablementsur ces 20%. V

9.Le manifesto des approches agiles est contre toute forme de documentation,incluant le SRS, le document d’architecture et des diagrammes UML. F

10. Une spécification non-fonctionnelle réfère à un requis optionnel. F

Page 2 de 14

Page 4: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

2 Assurance qualité (5 points)

a) (2 pts) L’entreprise Adams & Co est responsable dans un grand projet pour l’analyse des requis,la conception du design, le codage et l’intégration des changements des développeurs. On estimeque chaque étape introduit 25% des défauts. Depuis des années, Adams & Co utilise des révisionsde requis (efficacité de 40%, coût pour enlever des bogues de 1$ par bogue), des tests unitaires(40%, 10$ par bogue) et des tests d’intégration (50%, 20$ par bogue).Pour améliorer l’assurance qualité, le propriétaire de l’entreprise, le docteur Adams, insiste quel’on ajoutera des inspections formelles dans le processus. Malheureusement, la connexion télé-phonique avec le docteur Adams avait des problèmes de qualité, alors son partenaire, M. Co,n’a pas pu comprendre si le docteur Adams voulait ajouter des inspections formelles des requis(configuration A ; efficacité de 67%, coût pour enlever des bogues de 1$ par bogue) ou de laconception (configuration B ; efficacité de 50%, coût pour enlever des bogues de 5$ par bogue).Pour ne pas déranger le docteur Adams pendant son voyage en Europe, M. Co s’adresse à unjeune stagiaire dans son bureau (vous !).

(a) Aidez M. Co à déterminer la configuration d’assurance qualité optimale, c.-à-d. la configura-tion (A) ou la configuration (B). Faites une simulation de l’efficacité des deux configurationsen termes du pourcentage de bogues touchant l’utilisateur, le coût total (en $) de l’assurancequalité avant la mise en production du système, et le coût des bogues qui touchent l’utilisateur(coût pour résoudre ces bogues de 40$ par bogue).

(b) Est-ce que le résultat est surprenant ? Pourquoi (pas) ?

Il est surprenant que faire plus d’activités en avance est plus coûteux et moins efficace. Laraison est que aucune bogue est résolue actuellement pendant la conception pour configuration(A), tandis qu’une plus petite portion de bogues ayant survécu les révisions de requis est attaquépendant l’analyse des requis (on n’a plus beaucoup à gagner dans cette phase).

b) (3 pts) Répondez aux questions suivantes pour chacune des outils montrés dans les Figures 2, 3et 4 :

(a) Quel outil est montré ?

(b) Quel est le but de cet outil en général ?

(c) Est-ce que l’auteur principal dans la Figure a obtenu ce but (oui/non) ?

(d) Expliquez pourquoi, d’après vous, ce but a été obtenu, ou pourquoi ce but n’a pas été obtenu.git : gestion des révisions des fichiers ; oui, une bogue a été résoluegerrit : révision technique ; non, contribution rejetée à cause des commentaires de boguesbugzilla : rapportage de bogues (et de fonctionnalités nouvelles) ; non, pas de réplication

possible et pas de suivi par la personne

Page 3 de 14

Page 5: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

révision des requisrequis

conception

codage

intégration

tests unitaires

tests d'intégration

utilisateur

25

rien25

25

25

10 x 1 = 10

0

5

30

22 x 10 = 220

33

29 x 20 = 580

29 x 40 = 1160

+

820

+

71

inspection formelle

10 x 1 = 10

révision des requisrequis

conception

codage

intégration

tests unitaires

tests d'intégration

utilisateur

25

inspection formelle25

25

25

10 x 1 = 10

20 x 5 = 100

15

20

18 x 10 = 180

27

26 x 20 = 520

26 x 40 = 1040

+

810

+

74

FIGURE 1 – Réponse pour 2a.

Page 4 de 14

Page 6: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

FIGURE 2 – Outil #1.

Page 5 de 14

Page 7: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

FIGURE 3 – Outil #2.

Page 6 de 14

Page 8: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

FIGURE 4 – Outil #3.

Page 7 de 14

Page 9: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

3 UML (5 points)

Un individu célèbre, disons M. Z., contacte l’entreprise Adams & Co pour ajouter une fonctionnalitéà son site populaire (http://fb.qc.ca). Le site actuellement permet aux utilisateurs de créer unepage web avec des photos, des messages et de l’information discrète comme des dates d’anniversaire.Cette page personnelle peut contenir plusieurs de ces types d’entités, et est partagée avec le monde entier.Les autres utilisateurs peuvent consulter ces pages personnelles en ligne ou via une application mobile(iPhone).

Maintenant, M. Z. vous demande de modifier son système pour que les utilisateurs puissent êtrenotifiés des changements des entités des pages personnelles qu’ils veulent suivre de plus près. Ces noti-fications doivent être envoyés à l’application mobile et/ou par courriel : un utilisateur peut choisir quelmécanisme de notification est utilisé pour quelle page, et il/elle peut changer à n’importe quel momentles pages suivies ou le mécanisme de notification.

a) (1 pt) Donnez le diagramme de cas d’utilisation pour les modifications du système.

System

Utilisateur

(un)register for page

Utilisateur Notifié

update page

FIGURE 5 – Réponse pour 3a.

b) (2 pts) Donnez un diagramme de séquence pour le scénario principal demandé par M. Z.

c) (2 pts) Donnez le diagramme de classe pour les classes utilisées dans le diagramme de séquence.Expliquez quelle(s) heuristique(s) vous avez utilisée(s) pendant la conception.

4 Gestion de configuration (5 points)

a) (1 pt) Dans le contexte d’un système de gestion de configuration, utilisez le diagramme ci-dessouspour expliquer la différence entre une révision, une configuration et une version officielle. Est-cequ’un « baseline « correspond à une ligne horizontale dans ce diagramme ? Pourquoi (pas) ?

b) Supposez l’entrepôt SVN de l’entreprise Adams & Co, qui contient un fichier sabotage.confplacé sous contrôle de version. Ce fichier est utilisé dans un ancien produit de l’entreprise pourrendre le produit de plus en plus lent pour les utilisateurs afin de les « encourager » d’acheter le

Page 8 de 14

Page 10: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

aPage: FBPage

User

myiOSApp: iOSApp email: Notification

notifyAll()modify()

update()

update()

FIGURE 6 – Réponse pour 3b.

+subscribe()+unsubscribe()+notifyAll()

Subject+update()Observer

+ modify(): void- titre: string

FBPage FBEntity- description: string

FBMessage FBPhoto FBBirthday

*1 contains

**

FBClient

iOSApp- emailAddressNotification

FIGURE 7 – Réponse pour 3c.

FIGURE 8 – Révisions, configurations et versions.

Page 9 de 14

Page 11: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

révisions/temps

fichiers

configurations a & b

release 1.0

FIGURE 9 – Réponse pour 4a.

nouveau produit de l’entreprise. Malheureusement, l’OIQ a reçu une plainte officielle, et ils ontdécidé de faire un audit externe surprise du code source de l’ancien produit.Par hasard, M. Co a appris de cet audit externe surprise (car il a aussi développé le système demessagerie de l’OIQ), tandis que le docteur Adams (toujours en Europe) a vu que ses compéti-teurs sabotent leurs anciens produits beaucoup plus que lui et décide de rendre son logiciel ancienencore plus lent. Tous les deux, ils tentent au même moment de modifier les lignes suspectes dufichier sabotage.conf, pour deux buts différents. Voici la séquence de commandes exécutéespar chacun (toutes les commandes 1 sont montrées, rien n’a été enlevé !).

# Dr Adams M. Co12345678

svn updateecho "vitesse=plus_lent" > sabotage.conf

echo "memoire=lente" >> sabotage.conf

svn updatesvn commit -m "Augmenter le sabotage"

svn status -u #verifier etat des fichiers

echo "vitesse=super_vite" > sabotage.conf

svn update

Juste au moment où M. Co tape la dernière commande, un agent de l’OIQ entre dans son bureauet lui ordonne de lui donner la copie actuelle du code source sur sa machine.Vu que le sabotage des anciens produits logiciels est une activité punie par la loi au Québec (aumoins dans le contexte de cette question de l’intra), répondez aux questions suivantes :— (2 pts) Est-ce que M. Co sera arrêté par la police, c.-à-d. est-ce que les auditeurs externes de

l’OIQ découvriront qu’il était en train d’obscurcir le fichier sabotage.conf ? Expliquezclairement votre raisonnement.

— (2 pts) Est-ce que l’approche de blocage des fichiers directement après le premier svnupdate du docteur Adams aurait changé la situation ? En plus, est-ce que l’approche deblocage des fichiers aurait permis à M. Co de savoir que le docteur Adams était en train dechanger sabotage.conf ?

M. Co sera arrêté, car il aura un fichier qui contient des conflits : les lignes ajoutées par le docteurAdams seront dans ce fichier ! Si on utilise "svn lock", M. Co pourrait voir avec "svn status -u"

1. La commande echo "a" > bla.txt remplace le contenu du fichier bla.txt par a, tandis que la commandeecho "a" >> bla.txt ajoute a à la fin du fichier bla.txt sans modifiant le reste du fichier.

Page 10 de 14

Page 12: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

que quelqu’un a bloqué le fichier, et il pourrait ne pas faire le "svn update", mais s’il fait tout demême la dernière commande, il aura les mêmes problèmes qu’avec la fusion.

5 La construction collaborative et les approches agiles (5 points)

Répondez de manière claire et concise aux questions suivantes.

a) (3 pts) L’entreprise Adams & Co, c.-à-d. le docteur Adams (car après la dernière question il n’estpas clair si M. Co est en prison ou en vacances), a reçu une commande du PDG d’une usine desaucisses connue en Europe, M. L. Vu la crise dans le domaine des saucisses, M. L. veut investirdans un logiciel web qui permettra d’optimiser la production des saucisses. En particulier, ildésire les fonctionnalités suivantes (avec coûts de développement estimés) :

(a) configuration des différents types et variations de saucisses produits (2 semaines)

(b) connexion en temps réel avec les machines dans l’usine pour consultation (interface textuelle)et manipulation (6 semaines)

(c) visualisation luxueuse de l’information obtenue de l’usine (3 semaines)

(d) possibilité d’imprimer des auto-collants avec des slogans personnalisés comme "J’adore lessaucisses de M. L. !" (1 semaine)

(e) accès sécuritaire multi-utilisateur au logiciel web (2 semaines)

Dessinez et expliquez le calendrier de développement, sachant que l’entreprise Adams & Co suitune approche agile avec des itérations de 4 semaines. Notez que les fonctionnalités au-dessussont mentionnées dans une ordre arbitraire. Expliquez ce qui se passe idéalement si, après 7semaines, M. L. désire ajouter une fonctionalité d’un compétiteur pour recevoir des notificationsdes activités importantes dans l’usine (2 semaines).

(a) consultation de l’usine (2 semaines)

(b) configuration des types (2 semaines)

(c) —-

(d) manipulation de l’usine (4 semaines)

(e) —-

(f) notifications (2 semaines)

(g) sécurité (2 semaines)

(h) —-

(i) visualisation luxueuse (3 semaines)

(j) auto-collants (1 semaine)

Triage des requis à base de leur priorité ; couper en plusieurs morceaux s’ils ne peuvent pasêtre faits en 4 semaines ; révisiter le triage avant chaque itération, ne pas changer pendant uneitération.

b) (1 pt) Qu’est-ce que c’est le "développement open source" ? Donnez aussi deux exemples deprojets qui suivent ce concept.Code source disponible pour consultation/changement avec une certaine licence, par exempleFirefox et Wireshark

Page 11 de 14

Page 13: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

itér. 1 itér. 2 itér. 3 itér. 4

ab1 b2 f e c d

FIGURE 10 – Réponse pour 5a.

c) (1 pt) Discutez la relation entre le "développement open source", la loi de Linus Torvalds et laconstruction collaborative.Plusieurs gens travaillant/révisant/testant le même code (construction collaborative) permet passeulement de trouver plus de bogues, mais aussi d’en trouver une plus grande variété (loi de LinusTorvalds), ce qui est la raison principale dans le développement open source pour rendre le codesource disponible à tout le monde.

6 Makefile (5 points)

Voici le code source de l’ancien produit de l’entreprise Adams & Co.

/********* main.c **********/

#include "fonctionnalite.h"

int main(void) {faisLe();

return 0;}

/******* fonctionnalite.h **********/

void faisLe(void);

/******* sabotage.h *********/

void ralentirLeTruc(void);

/******** fonctionnalite.c ***********/

#include "fonctionnalite.h"#include "sabotage.h"

void faisLe(void){/*calculations utiles*/ralentirLeTruc();

Page 12 de 14

Page 14: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

/*montrez la reponse sur l’ecran*/}

void ralentirLeTruc(void){/*ouvrez et lisez sabotage.conf pendant l’execution*/for(int i=0;i<une_certaine_valeur;i++){

/*accedez a quelques sites web lents pour perdre du temps*/}

}

a) (2 pt) Utilisez une notation textuelle ou un dessin pour présenter le graphe des dépendances né-cessaires pour construire ce logiciel. Est-ce qu’il faut aussi inclure le fichier sabotage.conf ?

b) (2 pt) Transformez le graphe dans un Makefile. N’oubliez pas le support pour nettoyer le dossier.Il doit être facile de changer le nom du compilateur et/ou de ses paramètres.

c) (1 pt) Imaginez que le docteur Adams avait compilé le système avant le déroulement de la ques-tion 4b. Une heure après l’intervention de l’OIQ et sans avoir mis à jour sa copie de travail (c.-à-d.le seul fichier changé est sabotage.conf), il exécute de nouveau la commande make. Quelsfichiers seront recompilés ?

main :— main.o

— main.c— fonctionnalite.h

— fonctionnalite.o— fonctionnalite.c— fonctionnalite.h— sabotage.h

pas de sabotage.conf, car lu pendant l’exécution, pas pendant la manufactureCC=gcc

CFLAGS=-c -WallLDFLAGS=SOURCES=main.c fonctionnalite.cOBJETS=$(SOURCES :.c=.o)EXECUTABLE=main

$(EXECUTABLE) : $(OBJECTS)$(CC) $(LDFLAGS) $(OBJETS) -o $@

.cpp.o :$(CC) $(CFLAGS) $< -o $@

main.o : fonctionnalite.h

fonctionnalite.o : fonctionnalite.h sabotage.h

clean :

Page 13 de 14

Page 15: Banque de Quiz - LOG1000 - Ingénierie logicielle …...5. La différence entre le document SRS et l’approche des cas d’utilisation est : a)que les processus en cascade typiquement

LOG1000 - Contrôle périodique - Hiver 2014

rm -rf $(OBJETS)

mrproper : cleanrm -rf $(EXECUTABLE)

rien n’est récompilé

Page 14 de 14