Académique Documents
Professionnel Documents
Culture Documents
Par
Martin Lesage
PLAN DE COURS
SESSION: HIVER 2002
SIGLE: INF-232-99
TITRE: Génie Logiciel II
GROUPE : 05
HORAIRE COURS : Jeudi 19H15 à 22H05 LOCAL: K-410
DÉBUT : 10 janvier 2002
CHARGÉ DE COURS :
Martin Lesage
Bureau : K-113
Téléphone(UQAR) : 724-1986 Poste :1277
Téléphone(CÉGEP de Rivière-du-Loup) : (418) 862-6903 Poste : 561
Télécopieur : 724-1879
Courriel : marles@cegep-rdl.qc.ca
Site internet du cours : http://www3.uqar.uquebec.ca/coursroy/inf23299
OBJECTIFS DU COURS
Initier les étudiantes et étudiants à la discipline du génie logiciel mais plus spécifiquement à
l'architecture et à la conception des logiciels, ainsi qu'au contrôle de la qualité des logiciels tant
dans la phase de conception que dans la phase de réalisation technique.
CONTENU DU COURS
Une rencontre de trois (3) heures chaque semaine avec le professeur pour couvrir les aspect
théoriques, faire des études de cas et des exercices dirigés. Des lectures personnelles dans
l’ouvrage de référence obligatoire devront être effectuées par l'étudiant(e) avant chaque
rencontre avec le professeur. Quatre travaux pratiques sont aussi prévus.
LECTURES OBLIGATOIRES
Pressman, Roger S.
th
Software engineering: A practitioner’s approach, 5 edition
New York, N.Y.: McGraw-Hill, 2000.
Cet ouvrage est un classique en matière de génie logiciel. Il sera aussi utilisé dans les
cours Génie logiciel I et Génie logiciel III. Dans le cadre de Génie logiciel II, 14 chapitres
de l'ouvrage seront couverts.
ÉVALUATION
Modes d’évaluation :
Politique du français : Jusqu'à 10% des points peut être accordé à la qualité du français écrit
dans les travaux et les examens.
Cote Note
A+ 93%
A 90%
A- 87%
B+ 83%
B 80%
B- 77%
C+ 73%
C 70%
C- 67%
D+ 63%
D 60%
E <60%
CALENDRIER DES RENCONTRES
Sem Date
1 10 janvier Généralités et modèles de conception des systèmes
Lectures : Livre de Pressman, chapitre 1 et 2
2 17 janvier Assurance de la qualité du logiciel
Lectures : Livre de Pressman, chapitre 8
Remise de l’énoncé du travail pratique 1
3 24 janvier Principes de conception des systèmes
Lectures : Livre de Pressman, chapitre 10
4 31 janvier Concepts et principes d’analyse des systèmes
Lectures : Livre de Pressman, chapitre 11
5 7 février Technique d’analyse des systèmes (Modèle entité-relation, DFD)
Lectures : Livre de Pressman, chapitre 12
Remise du travail pratique 1/ Remise de l’énoncé du travail pratique 2
6 14 février Généralités et principes de la conception du logiciel
Lectures : Livre de Pressman, chapitre 13
7 21 février Examen Intra
8 28 février Semaine de Lecture
9 7 mars Méthodes de conception du logiciel
Lectures : Livre de Pressman, chapitre 14
Remise du travail pratique 2/ Remise de l’énoncé du travail pratique 3
10 14 mars Méthodes de conception des interfaces-usager
Lectures : Livre de Pressman, chapitre 15
11 21 mars Principes et méthodes d’évaluation du logiciel
Lectures : Livre de Pressman, chapitre 17
12 28 mars Stratégies d’évaluation des systèmes
Lectures : Livre de Pressman, chapitre 18
Remise du travail pratique 3/ Remise de l’énoncé du travail pratique 4
13 4 avril Techniques quantitatives d’évaluation de la performance des systèmes
Lectures : Livre de Pressman, chapitre 19
14 11 avril Ingénierie du logiciel basée sur les composantes
Lectures : Livre de Pressman, chapitre 27
15 18 avril Ré-ingénierie et rétro- ingénierie du logiciel
Lectures : Livre de Pressman, chapitre 30
Remise du travail pratique 4
16 25 avril Examen Final
Travaux
Type d’épreuve Pondération Date de Remise
Travail Pratique 1 10% 7 février
Travail Pratique 2 10% 7 mars
Travail Pratique 3 10% 28 mars
Travail Pratique 4 10% 18 avril
Examens
Plagiat : Tout élève qui aura copié ou essayé de copier, de quelque façon que ce soit sera
aussitôt renvoyé de la salle d’examen, aura son travail annulé et son cas soumis à l’autorité
compétente qui appliquera des sanctions proportionnées à la faute.
RÉFÉRENCES BIBLIOGRAPHIQUES
Sur le génie logiciel:
Jalote, Pankaj
ième
An integrated approach to software engineering, 2 édition
New York : Springer, c1997.
Sommerville, Ian
ième
Software engineering, 5 édition
Addison-Wesley, c1996.
Chapitre 1 : Le produit
- science
- génie
- transport
- médical
- télécommunications
- militaire
- industriel
- éducation
- jeux
- bureautique
- etc.
1) C’est un produit/Programme
o Système d’exploitation
o Logiciels de gestion de réseaux(Ex : Novell)
o Logiciels de création et de contrôle de programmes(Ex :
compilateurs)
Le logiciel est :
Différences :
Taux de panne
Aujourd’hui, ces mythes ont été reconnus à leur vraie valeur : des
attitudes et des méthodes qui ont causé beaucoup de problèmes aux
gestionnaires et aux développeurs de logiciels.
Définition de l’IEEE :
o gestion de la ré-utilisation
o évaluation
o gestion du risque
2.2 Processus de conception du logiciel
- génération de code
- support
2.5 Le prototypage
- Planification du projet
- Analyse du risque
- Évaluation du client(feedback)
2.7.3 Modèle en spirale WINWIN(Gagnant-Gagnant)
Au niveau du logiciel :
8.1.1 Qualité
- complexité
- cohésion
- lignes de code
Lorsque nous examinons un item basé sur ses caractéristiques
mesurables, nous pouvons retrouver deux types de qualité :
8.3.1 Historique
Phase Coût
Conception 1.0
Avant les tests fonctionnels 6.5
Durant les tests fonctionnels 15
Après la livraison entre 60 et 100
8.4.2 Amplification des défauts et correction des erreurs
- prise de notes
EI = (i x PIi)/PS
8.8 Fiabilité du logiciel
- la structure organisationnelle
- les processus
- planification de la qualité
- contrôle de la qualité,
- assurance de la qualité
- amélioration de la qualité
8.10.2 La norme ISO 9001
- responsabilités de gestion
- système de qualité
- évaluation de la conception
- vérification interne
8.11 Planification de l’assurance de la qualité des systèmes
Ce plan inclut :
- documentation
- normes
- conventions
- méthodes d’évaluation
- contrôle du changement
- gestion du risque
COURS 03
INF-23299 – GÉNIE LOGICIEL II
- un produit
- un service
o numéro de client
o nom
o prénom
o adresse
o numéro de téléphone
Une fois l’ensemble des entités identifié, les relations entre les
entités sont définies. Une relation indique comment les entités
interagissent ensemble. Comme exemple, considérons les
entités : client et produit A. Ces deux entités peuvent être
reliées par la relation achète qui définit qu’un client achète le
produit A ou que le produit A est acheté par le client.
Client Produit A
(1) logiciel
(2) matériel
(4) personnel
Une fois les besoins connus, l’ingénierie des besoins donne les
spécifications du logiciel, du matériel, des données et des
interactions du personnel constituant le nouveau logiciel.
Bien qu’il semble très simple de poser au client, aux usagers et les
autres intervenant des questions telles que :
- Est-ce que tous les besoins ont été définis au bon niveau
d’abstraction?
- un document écrit
- un modèle graphique
- un prototype
Une fois les besoins identifiés, des tables de suivi sont développées.
Chaque table de suivi établit une relation entre les besoins et un ou
plusieurs aspects du système ou de son environnement. Les tables
de suivi peuvent être de type :
(2) entrées
(4) sorties
Entité externe:
Système/Processus
Producteur ou
Flux d’information
consommateur
de l’information
produits par le
système
le domaine du problème
aperçu de la solution
o intrusion illégale,
o feu,
o inondations; et
o autres situations à être implantées ultérieurement.
- détecteurs de fumée,
- détecteurs de mouvements,
- sirènes d’alarme,
- un écran,
- programmation de l’alarme
- lecture de l’écran
- critères de performance :
11.3.2 MODÉLISATION
o entrées
o traitements
o sorties
- exigences de performance
- contraintes de conception
- critères de validation
Le rapport de spécification des besoins du logiciel a généralement le
format suivant :
(1) introduction
(6) bibliographie
(7) appendices
Des notations formelles ainsi que des traitements modernisés ont été
développés afin de favoriser les outils de conception de logiciels
assistés par ordinateur.
12.2 LES ÉLÉMENTS DU MODÈLE D’ANALYSE
(3) les relations reliant les entités les unes aux autres
ENTITÉS
Exemple :
- numéro de série
- numéro de compte
RELATIONS
Nous pouvons définir différentes relations entre ces deux entités tout
dépendant du contexte du problème.
Exemples :
Exemples :
Cardinalite/Modalité Signification
0 (0,n)
|| (1,1)
0< (0, n)
|< (1, n)
12.3.3 MODÈLE CONCEPTUEL DES DONNÉES(MCD)
MODÈLE/DIAGRAMME ENTITÉ/RELATION
Des paires d’entités reliées par des relations sont la base des
modèles de donnés. Un ensemble de paires d’entités reliées par des
relations peuvent être représentées graphiquement sous la forme
d’un diagramme entité/relation.
- Entités
- Attributs
- Relations
- Cardinalités
Dans plusieurs cas, l’analyste peut représenter les entités sous forme
hiérarchique. Une entité peut parfois représenter une classe ou une
catégorie d’informations
ASSOCIATION DES ENTITÉS
12.4 MODÈLE FONCTIONNEL ET FLUX D ‘INFORMATION
- ENTITÉ EXTERNE
Client
- PROCESSUS
ou
- FLUX D’INFORMATION
- DÉPÔT D’INFORMATION
- contraintes de conception
(5) Répéter les étapes de (2) à (4) jusqu’à ce que toutes les
relations soient définies
- un texte
- pseudocode de l’algorithme du processus
- équations mathématiques
- tables
- diagrammes
Alias : Aucun
Endroit d’utilisation
Modalités d’utilisation : Comparer avec la configuration initiale (sortie)
Signaler le numéro (entrée)
Description :
a. composantes,
b. composantes de solutions; et
c. connaissances
- Approche orientée-objet
objet : porte
méthode : ouvrir
- partition horizontale
13.5.2 COHÉSION
Une simple connexion entre les modules fait en sorte que le logiciel
est plus facile de compréhension et diminue la propagation des
erreurs.
13.6 HEURISTIQUES DE LA CONCEPTION MODULAIRE
EFFICACE
- Architecture du logiciel
- Interface personne-machine
- Documentation de validation
- Contraintes de conception
- l’analyse fonctionnelle
- l’analyse comportementale
STRUCTURES DE DONNÉES
ENTREPÔTS DE DONNÉES
a. fiabilité
b. performance
c. sécurité
d. facilité d’entretien
e. flexibilité
f. vérification/test
g. portabilité
h. réutilisation
i. interopérabilité
Analyse du spectre
Is = [(S-Sw)/(Sb-Sw)] X 100
d = (Ns/Na) X 100
14.6.1 EXEMPLE
14.7.1 EXEMPLE
Il faut cependant affirmer, que dans bien des cas, le concepteur n’a
pas fait la conception de ces applications dans le but de déplaire à
l’utilisateur.
o les données
o l’architecture de système
o l’interface
Afin de comprendre les tâches devant être réalisées pour réaliser les
objectifs du système, le concepteur d’interfaces doit comprendre les
tâches que les utilisateurs exécutent présentement (lors des
traitements manuels) pour ensuite modéliser ces tâches en un
ensemble de tâches similaires étant implantées dans le contexte de
l’interface-usager.
Une fois l’analyse des tâches complétée, toutes les tâches (ou les
objets et les actions) requises par l’utilisateur ont été identifiées en
détails et le processus de conception de l’interface débute. Les
premières étapes de la conception de l’interface peuvent être
effectuées en utilisant l’approche suivante :
a. longueur
b. variation
a. intégrée
a. abrégés
- la création de fenêtres,
Catégories de Tests
Livre de Maurice Rozenberg, Test Logiciel, chapitres 2 (équivalent à
Pressman, chapitres 17 & 18)
Phases de Développement
Développement Intégration Validation
Composants
Boîte blanche Tests de chemin Tests de chemin
Tests de fuite mémoire
Tests aux limites
Boîte noire Tests unitaires Tests d’intégration Tests de régression
Tests fonctionnels Tests de performance
Boîte grise Tests an 2000 Tests de régression
Tests euro
Tests boîte blanche
Les tests boite blanche consistent à créer des jeux d'essais validant
le code de l'application. On peut ainsi vérifier si :
Tests de chemin
Ces tests ont pour but de vérifier que tous les chemins prévus sont
parcourus au moins une fois pendant les tests. On définit ainsi des
graphiques de flux dans lesquels les nœuds représentent des
modules, les bordures décrivent les contrôles de flux (une bordure
doit terminer un nœud même s'il ne contient pas d'information).
Ensemble de base
Cet ensemble de base sert de balise pour les tests de type boîte
blanche.
boucles simples,
boucles imbriquées,
Les jeux d'essais mis en œuvre pour ces tests sont basés sur les
valeurs limites de la boucle.
On testera ainsi:
L'intérêt principal des tests boîte noire est qu'ils valident les
fonctionnalités du logiciel plus que la qualité du développement. Ils
sont donc plus proches des préoccupations quotidiennes des
utilisateurs.
La régression
La régression joue un rôle essentiel dans les tests boîte noire -- toute
personne ayant programmé a été confrontée à ce problème car elle
fait partie de la nature même des logiciels. En voici le principe:
Contrairement aux tests boîte noire classiques qui sont guidés par les
exigences de l'application et les types d'anomalie que l'on cherche à
débusquer, ces tests sont définis à partir des résultats de l'analyse du
code. On n'exécutera pas les mêmes tests si la date est utilisée dans
le calcul d'une prime d'ancienneté, que si elle est exploitée comme
date de dépôt d'un chèque.
TYPES DE TEST
Type 1 Type 2 Type 3
Étiquette date Module
D1 Comptabilité X X
D2 Comptabilité X X
D3 Ventes X X
D4 Achat X
D5 Suivi Commercial X X
D6 Facturation X X X
D7 Relances clients X
L'étiquette date sert à repérer les différentes dates d'un module
donné alors que les types de test définissent les tests qui seront
exécutés sur chacune de ces dates. Chaque fois qu'une date sera
affichée à l'écran, on l'identifiera par son étiquette et on lui appliquera
les types de test prévus dans la matrice de correspondance.
Les tests unitaires font appel à deux concepts spécifiques: les drivers
de test et les bouchons (stub en anglais).
On utilise pour cette méthode les drivers de test, et non plus les
bouchons.
Comme son nom l'indique, dans cette approche, le module est testé
indépendamment des autres, et on combine les deux approches
top/down et bottom/up. On remplacera ainsi chaque module appelant
par un driver de test, et chaque module appelé par un stub.
Il est ainsi facile de tester chaque module, quelle que soit la
complexité de l'application et son impact sur les autres modules. En
revanche, on perd la dynamique de l'application, et les tests
d'intégration devront être conçus et réalisés indépendamment des
tests unitaires.
Tests de performance
Les tests de performance ne seront abordés que brièvement dans cet
ouvrage. En effet, bien que leur importance soit très grande, ils font
appel à des technologies radicalement différentes, fondées sur des
technologies de paramétrage de requêtes SQL échangées entre les
postes clients et les serveurs.
Volume
Tests unitaires
Tests d’installation
Tests bêta
l’utilité,
la simplicité,
l'objectivité,
la facilité de calcul,
la robustesse.
MÉTRIQUES DE BASE
Métrique Unité de Description
mesure
Nombre de jeux VP/WOA Le nombre de jeux d’essais est
d’essais mesuré en fonction du nombre de
points de contrôle (Verification
Points – VP) par fenêtre (WOA).
Ces mesures sont précieuses pour les chefs de projet et les testeurs.
Contrairement aux tests de régression qui sont exclusivement de
type boîte noire, les métriques de test font également appel aux tests
de types boîte blanche ou grise, et nécessitent d'avoir une
connaissance de l'architecture interne de l'application et des modules
mis en œuvre. Comme ces informations ne sont pas toujours
disponibles aux testeurs, ces métriques seront surtout utilisées par
les chefs de projet. Pour les étudier efficacement, référons-nous à
des concepts liés au contenu de l'application comme:
Détaillons maintenant les métriques les plus utilisées dans les tests.
Pour chacune d'elles, nous examinerons son objectif, sa formule et
son interprétation.
Métriques principales
Densité d’anomalies (DA)
Exemple:
Efficacité de la détection (EffDétect)
où:
Comme les tests ne sont pas une science exacte, on peut définir des
métriques heuristiques liées à l'expérience et au bon sens. Bien
qu'elles ne soient pas supportées par des formules mathématiques,
elles seront très utiles pour les chefs de projets car elles reflètent la
réalité quotidienne du développement des applications à base
d'interfaces graphiques et web.
1) L’analyse
2) La construction
3) La dissémination
27.3.1 LE PROCESSUS D’ANALYSE DU DOMAINE
Langages de programmation
Traitements concurrents
Un ensemble de caractéristiques du domaine pour les composantes
logicielles réutilisables peut être représenté comme étant {Dp}, où
chaque item, Dpi, de l’ensemble représente une caractéristique du
domaine spécifique. La valeur attribuée à Dpi représente une échelle
ordinale qui est une indication de la pertinence de la caractéristique
pour la composante p. Une échelle typique pourrait être :
Qualification de la composante :
o s’assurer qu’une composante à l’étude va effectuer les
fonctions requises
o vérifier que la composante va bien s’intégrer au style
d’architecture spécifié pour le système
o vérifier que la composante va satisfaire les exigences de
qualité requises pour l’application (performance, fiabilité,
facilité d’utilisation)
Adaptation de la composante
Réalisation/composition de la composante
Pressman, chapitre 30
[Il est temps d’arrêter de paver les ruelles. Au lieu d’intégrer les
processus devenus désuets dans le matériel et le logiciel, nous
devrions les mettre de côté et repartir à neuf.
Durant les années 1990, certaines compagnies ont fait des efforts
légitimes de ré-ingénierie et les résultats ont augmenté la
compétitivité de ces entreprises.
D’autres entreprises ont axé leur stratégie sur la réduction de
personnel et l’engagement de contractuels (au lieu de la ré-
ingénierie) afin de renforcir leur structure. Les résultats de ces
réorganisations ont souvent été la création d’organisations
puissantes avec un potentiel limité de croissance future.
Une idée
Un rapport
Un produit
Systèmes de
gestion
Processus de
gestion
Sous-processus
de gestion
RESTRUCTURATION DE LA DOCUMENTATION
o Refaire la documentation
RÉTRO-INGÉNIERIE
RESTRUCTURATION DU CODE
INGÉNIERIE DE MODERNISATION
30.3 RÉTRO-INGÉNIERIE (REVERSE INGÉNIEERING)
Système
Programme
Composantes
Patrons
Instructions
SIGLE: INF-232-99
TITRE: Génie logiciel II
CHARGÉ DE COURS : Martin Lesage
DATE DE REMISE : Jeudi 7 mars 2002 au cours
PONDÉRATION : 10%
Finalement, un fichier des dommages est mis à jour afin de conserver des informations
sur l’ensemble des dommages causés par un trou ou une ornière déterminé. Ce fichier
contient également des informations sur des personnes ayant subi des dommages
causés par des trous et des ornières (nom, l’adresse, le numéro de téléphone, le type de
dommage et le montant des réparations)
Question 1 :
- les processus, les flux d’informations, les entités externes et les dépôts
d’information
Question 2 :
- niveau 1
SIGLE: INF-232-99
TITRE: Génie logiciel II
CHARGÉ DE COURS : Martin Lesage
DATE DE REMISE : Jeudi 28 mars 2002 au cours
PONDÉRATION : 10%
Finalement, un fichier des dommages est mis à jour afin de conserver des informations
sur l’ensemble des dommages causés par un trou ou une ornière déterminé. Ce fichier
contient également des informations sur des personnes ayant subi des dommages
causés par des trous et des ornières (nom, l’adresse, le numéro de téléphone, le type de
dommage et le montant des réparations)
Question 1 :
Utilisez la méthode des flux de transformation expliquée dans votre livre à la section
14.6. Effectuez les sept étapes de cette méthode expliquées aux pages 381 à 389.
Partie 1
Partie 2
Question 3 :
Question 4 :
En utilisant l’analyse des cas limites, concevez une série de tests pouvant s’appliquer au
« Système de détection et de réparation des trous et ornières basé sur l’Internet »
Question 5