TD

9
UFRMI 2016 [email protected] TD Génie Logiciel (L3 SI) Culture logicielle Qualité Quels sont les caractéristiques d’un logiciel modulaire ? Rappelez les niveaux de maturité du CMMI. Citez des propriétés permettant de caractériser la qualité d’un logiciel. Quels sont les conséquences d’une complexité élevée selon Mc Cabe ? Architecture logicielle Expliquez le pattern architectural MVC. Donnez des exemples d’architecture logicielle. Donnez le modèle de référence pour un compilateur. Qu’est-ce qu’un design pattern (patron de conception) ? Donnez des exemples de design pattern et des cas d’utilisation de ces patterns. Modélisation Citez les différents modèles de la méthode MERISE ? Citez les diagrammes de la notation UML ? Quelles sont les types relations d’un diagramme de classe ? Processus de développement Rappelez les quatre principaux points du manifeste Agile ? Donnez une raison pour un chef de projet de développer en utilisant la méthode en spirale. POO Expliquez les concepts suivants : encapsulation, délégation, héritage et polymorphisme. Enoncez les principes Open/Close et de substitution de Liskov. Que peut-on dire d’une classe ayant un WMC et NOC élevés. Que recommandez-vous ? Environnement de développement Qu’est-ce que la gestion de configuration ? Citez des exemples d’outils de gestion de configuration. Gestion de projet Cycle de vie On souhaite développer un système dont les clients ne sont pas sûrs de ce qu’ils souhaitent. De ce fait les exigences sont souvent mal définies. Quel serait un modèle de processus approprié pour ce type de développement ? L’équipe d’un projet développant un nouveau système est expérimenté dans le domaine. Bien que le nouveau projet soit assez large, il est peu différent de d’applications qui ont été développées dans le passé. Quel modèle de processus serait approprié pour ce type de développement ?

Transcript of TD

Page 1: TD

UFRMI 2016 [email protected]

TD Génie Logiciel (L3 SI)

Culture logicielle

Qualité Quels sont les caractéristiques d’un logiciel modulaire ?

Rappelez les niveaux de maturité du CMMI.

Citez des propriétés permettant de caractériser la qualité d’un logiciel.

Quels sont les conséquences d’une complexité élevée selon Mc Cabe ?

Architecture logicielle Expliquez le pattern architectural MVC.

Donnez des exemples d’architecture logicielle.

Donnez le modèle de référence pour un compilateur.

Qu’est-ce qu’un design pattern (patron de conception) ?

Donnez des exemples de design pattern et des cas d’utilisation de ces patterns.

Modélisation Citez les différents modèles de la méthode MERISE ?

Citez les diagrammes de la notation UML ?

Quelles sont les types relations d’un diagramme de classe ?

Processus de développement Rappelez les quatre principaux points du manifeste Agile ?

Donnez une raison pour un chef de projet de développer en utilisant la méthode en spirale.

POO Expliquez les concepts suivants : encapsulation, délégation, héritage et polymorphisme.

Enoncez les principes Open/Close et de substitution de Liskov.

Que peut-on dire d’une classe ayant un WMC et NOC élevés. Que recommandez-vous ?

Environnement de développement Qu’est-ce que la gestion de configuration ?

Citez des exemples d’outils de gestion de configuration.

Gestion de projet

Cycle de vie On souhaite développer un système dont les clients ne sont pas sûrs de ce qu’ils souhaitent.

De ce fait les exigences sont souvent mal définies. Quel serait un modèle de processus

approprié pour ce type de développement ?

L’équipe d’un projet développant un nouveau système est expérimenté dans le domaine. Bien

que le nouveau projet soit assez large, il est peu différent de d’applications qui ont été

développées dans le passé. Quel modèle de processus serait approprié pour ce type de

développement ?

Page 2: TD

Réalisation du WBS Vous êtes recrutés pour un stage de fin d’étude dans une SSII. Vous devez réaliser un logiciel

de mutualisation de ressources documentaires. Le projet se termine par la rédaction d’un

mémoire et une soutenance. Identifier les activités et la structure de votre WBS.

Chemin critique avec PERT On considère le diagramme de PERT suivant.

Q1 : Quel est le chemin critique de A à J.

Q2 : Quelle est la longueur du chemin critique.

Q3 : Quelle est la date de démarrage au plutôt de l’activité F.

GANTT On considère cet extrait d’un diagramme de GANTT. Combien de ressources au minimum

sont nécessaires pour mener à bien le projet ?

Estimation avec points d’application (voir Annexes) L’objectif de cet exercice est d’illustrer les points d’application dans la méthode COCOMO II,

qui permet de faire des estimations pour les applications graphiques avant la phase de

conception.

On souhaite développer un logiciel de réservation de vol de la compagnie Africa Airlines à

développer en C/C++. Le serveur de base de données héberge déjà les tables nécessaires au

développement.

Page 3: TD

Dans la phase de spécification, on identifie 3 écrans et un rapport :

o Un écran de réservation pour l’enregistrement d’une nouvelle réservation.

o Un écran de tarification affichant les prix quotidiens par vol.

o Un écran de disponibilité montrant les vols disponibles.

o Un rapport de vente montrant les totaux des ventes pour le mois et l’année, et les

comparants avec les mois et années précédentes

L’écran de réservation requiert trois tables de données, à savoir la table d’information de

contact des clients, la table qui enregistre l’historique du client et la table des slots de temps

disponible. Une vue est suffisante pour l’écran.

Q 1: Quelle est la complexité de cet écran ?

On supposera que les écrans de facturation, de disponibilité et le rapport des ventes sont

respectivement de complexité simple, simple et moyenne. On suppose qu’il n’y a pas de

composant complexe de troisième génération.

Q2 : Quel est le nombre de points d’applications ?

Une évaluation de l’environnement et des développeurs révèle que l’expérience des développeurs est très faible et que le CASE est de catégorie faible.

Q3 : Quel est en hommes-mois l’estimation de l’effort du projet selon COCOMO II ?

Q4 : Que devient l’effort si le taux de réutilisation du projet est estimé à 40% ?

Estimation en points de fonction (voir Annexes) Dans cette question, on souhaite développer un système de gestion de stock. La conception

générale a identifié les fonctions suivantes : o Ajout d’un enregistrement o Suppression d’un enregistrement o Affichage d’un enregistrement o Modification d’un enregistrement o Impression d’un enregistrement

Q1 : Classifier les fonctions selon leur type. On suppose que toutes les fonctions sont simples à l’exception de l’impression qui est complexe. Q2 : Quel est le nombre de points de fonction pour cette application. Q3 : On suppose qu’un point de fonction correspondant correspond à 128 LOC pour le langage et 53 LOC pour le langage Java. Estimez la taille du logiciel si le langage choisi est Java (Idem langage C). Q4 : Après estimation des facteurs d’échelle et des facteurs d’ajustement de l’effort, quel est l’effort nécessaire pour réaliser ce système ?

Inspection MCD Dans le cadre d’un projet un étudiant produit le MCD suivant. Vous êtes chargé de vérifier les

cardinalités du modèle.

Page 4: TD

Les règles de gestion sont les suivantes :

Un étudiant est inscrit dans une seule filière.

Le nombre de classes par filières est variable mais n’excède pas 10.

Le nombre d’étudiants par classe est variable mais n’excède pas 40.

Diagrammes de classe et de cas d’utilisation (UML) Cas d’étude support – le club vidéo

Un club vidéo a une activité de prêt de cassettes magnétoscope (un film par cassette). Le club dispose

de plusieurs boutiques ou ses adhérents peuvent emprunter des cassettes qu’ils rapportent par la

suite.

Un adhérent peut emprunter un nombre quelconque de cassettes en une ou plusieurs fois. On devra

lui interdire de faire plusieurs emprunts le même jour dans la même boutique mais il pourra le même

jour faire des emprunts dans des boutiques différentes. On devra lui interdire d’emprunter une

cassette s’il a dépassé la date de retour prévue d’une des cassettes qu’il a en emprunt. Lorsqu’il peut

emprunter une cassette, l’adhérent donne le nombre de jours pendant lesquels il compte il compte la

garder (le boutiquier s’arrangera toujours avec l’adhérent pour que la date de retour prévue ne soit

pas un jour de fermeture avant de saisir ce nombre de jours).

L’adhérent peut rendre des cassettes (toutes ou en partie) empruntées par lui ou par un autre

adhérent et il n’est pas obligé d’effectuer ce retour dans la ou les boutiques ou l’emprunt a eu lieu. Le

prix de la location d’une cassette est proportionnel au nombre de jours d’emprunt. Le club veut

pouvoir :

Gérer son stock de cassettes, les emprunts et les retours des cassettes des adhérents.

Enregistrer de nouveaux adhérents (on ne prévoir pas la suppression des adhérents).

Effectuer des statistiques.

Le club a déjà prévu l’ensemble des informations suivantes :

Page 5: TD

Nom, adresse, numéro de téléphone d’une boutique

Nom, adresse, numéro de téléphone d’un adhérent

Titre, classification (aventure, historique, policier,…), durée de projection, prix journalier de

location d’un film.

Il y’a bien sur plusieurs exemplaires de cassettes pour un même film, on les distinguera par un numéro

d’exemplaire. De plus les cassettes peuvent être situées dans des boutiques différentes.

Eventuellement un certain nombre d’informations seront ajoutées afin d’effectuer les opérations

suivantes :

Prêt et retour de cassettes

Enregistrement d’un nouvel adhérent

Edition des films disponibles, des films empruntés,

Edition de statistiques afin de déterminer les films les plus demandés, les adhérents qui sont

les plus gros consommateurs…

Le gérant du club souhaite automatiser les requêtes suivantes :

Pour un prêt

o Vérifier le droit d’un adhérent d’emprunter une cassette.

o Vérifier qu’au titre du film qu’il veut emprunter correspond une cassette disponible

dans la boutique ou le prêt est demandé.

o Le cas échéant, renseigner cet adhérent, c’est-à-dire lui fournir les noms des boutiques

éventuelles où il y’a des cassettes disponibles correspondant à ce film.

o Quand le prêt peut être réalisé dans la boutique où se trouve l’adhérent, mettre à jour

toute la base.

Pour un retour :

o Fournir le prix à payer pour chaque cassette rendue et mettre à jour toute la base, que

le retour d’une cassette soit celui de l’adhérent présent dans la boutique ou celui qu’il

effectue pour un autre.

Q1: Réaliser le diagramme de cas d’utilisation. Développez le cas d’utilisation « Gestion des prêts » Q2 : Réaliser le diagramme de classe (métier) correspondant à ce problème.

Génération de code (Java) à partir d’un diagramme de classe Le CROU gère des logements en ville pour les étudiants. Il dispose de renseignements concernant des

propriétaires de villas, appartements, garages…

- nom, prénom et adresse des propriétaires.

- nature et adresse du bien possédé par un propriétaire

Un propriétaire peut vouloir louer des biens. Nous ne souhaitons pas toutefois d’auto-location. En

outre, la location se fait à partir d’une date donnée, pour une période donnée et moyennant un loyer

mensuel précis.

Le CROU envisage de percevoir sur les loyers un pourcentage, variable selon la nature du bien. Cela

pourrait servir à alimenter un fond social d’aide aux étudiants en difficulté.

Q1 : Proposez un diagramme de classes. Q2 : Transformez le diagramme de classes en code Java. Q3 : Comparez avec votre AGL (StarUML ou ArgoUML).

Page 6: TD

Test Logiciel Au cours d’un de vos projets, il vous est demandé d’écrire un programme vérifiant la validité

d’un numéro de sécurité social.

Le numéro de sécurité social est constitué de 9 chiffres :

o Le premier chiffre correspond au sexe (1 : homme, 2 : femme)

o Les chiffres 2 et 3 correspondent au mois de naissance

o Les chiffres 4 et 5 correspondent à l’année de naissance (89 pour 1989 et 01 pour

2001)

o Les chiffres 6, 7, 8 correspondent au département de naissance (Il y’a 108

départements dans le pays – les codes des départements sont compris entre 001 et

108, la valeur 000 est réservée pour l’étranger)

o Le dernier chiffre est une la somme des 8 premiers chiffres modulo 10.

Rédigez les cas de tests nécessaires pour tester le logiciel.

On considère les deux programmes erronés ci-dessous. Chacun inclus un cas de test qui

provoque un échec du programme :

Répondez aux questions suivantes pour chaque programme :

Q1 : Identifiez la faute. Q2 : Si possible identifiez un cas de test qui n’exécute pas la faute.

Q3 : Si possible identifiez un cas de test qui exécute la faute mais qui ne résulte pas en un état erroné. Q4 : Si possible identifiez un cas de test qui résulte en une erreur, mais pas un échec. Q5 : Pour ce cas de test, identifiez le premier état d’erreur. Q6 : Corrigez la faute et vérifiez que le test produit désormais le résultat attendu.

Page 7: TD

Annexe 1: Estimation des Points d’application dans Cocomo II d’après B. Boehm.

Step 1: Assess Application Counts: estimate the number of screens, reports, and 3GL components that will comprise this application. Step 2: Classify each element instance into simple, medium and difficult complexity levels depending on

values of characteristic dimensions. Use the following scheme:

For Screens For Reports

Numbe

r of

Views

contain

ed

# and source of data tables Number of

Sections

contained

#and source of data tables

Total<4

(<2srvr<3

clnt)

Total<8

(2/3 srvr

3-5 clnt)

Total 8+

(>3 srvr

>5 clnt)

Total<4

(<2srvr<3

clnt)

Total<8

(2/3 srvr

3-5 clnt)

Total 8+

(>3 srvr

>5 clnt)

<3 Simple simple medium 0-1 simple simple medium

3-7 Simple medium difficult 2 or 3 simple medium difficult

>8 Medium difficult difficult 4+ medium difficult difficult

Step 3: Weigh the number in each cell using the following scheme. The weights reflect the relative effort

required to implement an instance of that complexity level:

Element Type Complexity-Weight

Simple Medium Difficult

Screen 1 2 3

Report 2 5 8

3GL Component 10

Step 4: Determine application Points: add all the weighted element instances to get one number, the Application Point count. Step 5: Estimate percentage of reuse you expect to be achieved in this project. Compute the New

Application Points to be developed, NAP=(Application Points) (100-%reuse)/100.

Step 6: Determine a productivity rate, PROD=NAP/person-month, from the following scheme.

Developers’ experience and capability Very Low Low Nominal High Very High

CASE maturity and capability Very Low Low Nominal High Very High

PROD (Productivity factor) 4 7 13 25 50

Step 7: Compute the estimated person-months: PM=NAP/PROD.

Page 8: TD

Annexe 2 : Estimation des facteurs d’échelle

(COCOMO II / Estimation en points de fonction)

Name Very low

(0.05)

Low

(0.04)

Nominal

(0.03)

High

(0.02)

Very High

(0.01)

Extra High

(0.00)

Precedentedness Thoroughly

unprecedented

Largely

unprecedented

Somewhat

unpreceden

ted

Generally

familiar

Largely

familiar

Thoroughly

familiar

Flexibility Rigorous Occasional

relaxation

Some

relaxation

General

conformity

Some

conformity

General

goals

Significant risks

eliminated

Little (20%) Some (40%) Often (60%) Generally

(75%)

Mostly

(90%)

Full (100%)

Team interaction

process

Very

difficult

Some difficult Basically

cooperative

Largely

cooperative

Highly

cooperativ

e

Seamless

interaction

s

Process maturity Level 1 Level 2 Level 2+ Level 3 Level 4 Level 5

Annexe 3 : Estimation des facteurs d’ajustement de l’effort

(COCOMO II / Estimation en points de fonction)

Identifier Name Ranges

(VL – EH)

VL/L/N/H/VH/EH

RCPX product Reliability and

ComPleXity

0.5 – 1.5

RUSE required reusability 0.5 – 1.5

PDIF Platform DIFficulty 0.5 – 1.5

PERS PERSonnel capability 1.5 – 0.5

PREX PeRsonnel EXperience 1.5 – 0.5

FCIL FaCILities available 1.5 – 0.5

SCED SChEDule pressure 1.5 – 0.5

Page 9: TD

Annexe 4 : COCOMO II / Estimation des points de fonction

Type of functions Complexity

Low Average High

External input 3 4 6

External output 4 5 7

Internal file 7 10 15

External file 5 7 10

External Inquiry 3 4 6