Tajdid aliman - chikh abd errazek el badr - 1 edition 1437H 2016M
1. Notions de base · Génie–logiciel Azeddine Chikh 1. Notions de base 2016-2017 (Semestre 2)...
Transcript of 1. Notions de base · Génie–logiciel Azeddine Chikh 1. Notions de base 2016-2017 (Semestre 2)...
Génie–logiciel
Azeddine Chikh
1. Notions de base
2016-2017 (Semestre 2)
Université de Tlemcen
Faculté des Sciences
Départment d’informatique
Filière : L2 Informatique
Objectifs de ce cours
Comprendre:
les notions de base du Génie-logiciel
Système, Logiciel
Crise du logiciel
Qualité
Stakeholders
Stratégie d’informatisation
les terminologie (Vocabulaire) sous jacente
2
3
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés dans le Génie Logiciel
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
1. Système
Système: ensemble d’éléments interagissant entre eux suivant
un certain nombre de principes et de règles dans le but de
réaliser un objectif.
Exemples: ordinateur, université, système d’information,
logiciel…
4
5
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés dans le Génie Logiciel
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
2. Logiciel Ensemble d’entités:
Programmes
Documentation
Information de configuration
nécessaires au fonctionnement d’une application donnée.
6
2. Logiciel Interagit avec des acteurs:
Opérateurs humains
Contrôleurs matériels
Autres logiciels …
7
2. Logiciel Réalise une spécification qui traduit des besoins d’un domaine
d’application bien déterminé.
8
2. Logiciel
Spécificités du logiciel Produit immatériel (intangible), dont l'existence est
indépendante du support physique
Semblable a une œuvre d'art (roman, partition...);
Objet technique fortement contraint (Fonctionne ou ne
fonctionne pas; structure complexe)
Facile à reproduire : seule la première copie d'un logiciel a un
coût
Beaucoup de logiciels ont une mauvaise conception et se
dégradent
La demande en logiciels est élevée et croit sans cesse
9
2. Logiciel
Types de logiciels Systèmes pour la gestion (SIA: Logiciels spécifiques ou Progiciels);
Systèmes de recherche d’information (Systèmes de Recherche
d’Information; Moteurs de recherche; Recherche documentaire…);
Systèmes d’aide à la décision (SIAD; SABC; Systèmes Experts…);
Systèmes de contrôle de machines numériques (Systèmes
embarqués);
Systèmes de calcul scientifique (Astronomie ; Recherche nucléaire ; ...);
Systèmes de simulation (Simulateur de vols ; Simulateurs de guerre ;
Jeux de simulation…);
Systèmes de support d’activités variées (CAO; PAO; DAO, EAO; …);
Systèmes techniques (Systèmes d’exploitation, Compilateurs, SGBD,
SGF, Antivirus …)
…
10
2. Logiciel
Logiciels
spécifiques
Progiciels Embarqués
Nombre de copies en utilisation
low medium high
La puissance de traitement
nécessaire à l’exécution de ce
type de logiciel
low high medium
Effort de development annuel high medium low
11
Types de logiciels
2. Logiciel
Types de logiciels En général on distingue deux aspects dans les logiciels:
Temps réel :
les logiciels devant réagir immédiatement (exemple: systèmes
embarqués).
La sécurité y est souvent un souci.
Traitement de données (exemple: SIA) :
La précision et la sécurité des données y sont des caractéristiques
clés.
Certains logiciels peuvent avoir les deux aspects.
12
13
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés dans le Génie Logiciel
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
Les systèmes informatiques se composent de:
80 % de logiciel
20 % de matériel
Depuis quelques années, le matériel est devenu relativement
fiable et le marché standardisé.
Les problèmes liés à l'informatique sont dès lors d’ordre logiciel.
14
3. Crise du logiciel
Lors d’une conférence de l'OTAN a Garmish, Allemagne (1968),
on est arrivé aux conclusions suivantes :
L'informatique ne répond pas aux attentes qu'elle suscite
L'informatique coûte très cher et désorganise les entreprises ou
organisations
On a introduit pour la première fois l'expression « Génie
Logiciel » (Software Engineering).
15
3. Crise du logiciel
3. Crise du logiciel Constat d’étude sur 8380 projets (Standish Group, 1995):
Nombre de projets réussis : 16 % (terminés avec succès)
Nombre de projets problématiques : 53 % (budget ou délais non
respectés, défaut de fonctionnalités)
Nombre de projets échoués : 31 % (abandonnés)
Le taux de succès décroit avec la taille des projets et la
taille des entreprises.
16
17
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés dans le Génie Logiciel
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
4. Génie logiciel Le génie logiciel (GL) est une ingénierie qui établit les règles
en matière:
d’analyse
de conception
de construction
de maintenance
de support
des logiciels
18
4. Génie logiciel Définitions:
1. The process of solving customers’ problems by the systematic
development and evolution of large, high-quality software
systems within cost, time and other constraints
2. IEEE: the application of a systematic, disciplined, quantifiable
approach to the development, operation, maintenance of
software; that is, the application of engineering to software.
3. The Canadian Standards Association: The systematic activities
involved in the design, implementation and testing of software
to optimize its production and support.
19
4. Génie logiciel Le GL
Production d’un logiciel qui respecte sa spécification,
Réponse de la spécification aux besoins réels des clients,
Respect des coûts alloués et des délais de réalisation.
20
4. Génie logiciel Chaque développement est particulier,
Logiciel de comptabilité ≠ Log de pilotage d’une centrale nucléaire
Impossible de trouver une manière unique pour tous
Par conséquent, bien souvent en GL:
Principes généraux
Adaptation libre au contexte de développement de chaque logiciel
21
22
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés en GL
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
5. Principes utilisés en GL 1. Généralisation: regroupement d'un ensemble de fonctionnalités
semblables en une fonctionnalité paramétrable
2. Abstraction: mécanisme qui permet de présenter un contexte en
exprimant les éléments pertinents et en omettant ceux qui ne le sont pas
3. Modularité: décomposition d'un logiciel en composants discrets
4. Documentation: gestion des documents incluant leur identification,
acquisition, production, stockage et distribution
5. Vérification: détermination du respect des spécifications
23
24
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés dans le Génie Logiciel
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
6. Qualité du logiciel 1. Utilité: Adéquation entre besoins de l'utilisateur et fonctions offertes par le
logiciel.
2. Utilisabilité: Efficacité et satisfaction avec laquelle des utilisateurs spécifiés
accomplissent des objectifs spécifiés dans un environnement particulier.
Facilité d'apprentissage: comprendre ce que l'on peut faire avec le logiciel, et savoir
comment le faire.
Facilité d'utilisation: importance de l'effort nécessaire pour utiliser le logiciel à
des fins données.
25
6. Qualité du logiciel 3. Fiabilité:
Correction, justesse, conformité: le logiciel est conforme à ses
spécifications, les résultats sont ceux attendus
Robustesse, Sureté: le logiciel fonctionne raisonnablement en toutes
circonstances, rien de catastrophique ne peut survenir, même en dehors des
conditions d'utilisation prévues.
Mesures: (MTBF : Mean Time Between Failures; Disponibilité (pourcentage du
temps pendant lequel le système est utilisable); Taux d'erreur (nombre d'erreurs par
KLOC))
26
6. Qualité du logiciel 4. Interopérabilité, Couplabilité: Un logiciel doit pouvoir interagir en
synergie avec d'autres logiciels
5. Portabilité: Un même logiciel doit pouvoir fonctionner sur plusieurs
machines
6. Performance: Les logiciels doivent satisfaire aux contraintes
de temps d'exécution
27
6. Qualité du logiciel 7. Réutilisabilité: On peut espérer des gains considérables car dans la
plupart des logiciels
80 % du code est qu'on retrouve à peu près partout
20 % du code est spécifique
8. Facilité de maintenance:
Réduire la quantité de maintenance corrective (zéro défaut) ;
Rendre moins coûteuses les autres maintenances.
1. Maintenance corrective
2. Maintenance adaptative
3. Maintenance perfective, d'extension
28
29
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés dans le Génie Logiciel
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
7. Stakeholders (Parties prenantes)
On distingue les rôles suivants :
1. Utilisateurs (Users): ceux qui utilisent le logiciel
2. Clients (Customers): ceux qui payent
3. Développeurs (Developers): ceux qui développent le logiciel
Analystes
Concepteurs
Programmeurs
Ergonomes
Experts en sécurité, …)
4. Chefs de projets (Project managers): ceux qui gèrent le projet
du logiciel
On note que les besoins des uns et des autres peuvent être
conflictuels. Dans certains cas particuliers ces rôles peuvent
être assurés par la même personne.
30
7. Stakeholders (Parties prenantes)
31
QUALITY
SOFTWARE
Developer:
easy to design;
easy to maintain;
easy to reuse its parts
User:
easy to learn;
efficient to use;
helps get work done
Customer:
solves problems at
an acceptable cost in
terms of money paid and
resources used
Development manager:
sells more and
pleases customers
while costing less
to develop and maintain
32
1. Système
2. Logiciel
3. Crise du logiciel
4. Génie logiciel
5. Principes utilisés dans le Génie Logiciel
6. Qualité du logiciel
7. Stakeholders
8. Solutions logicielles
Plan du cours
8. Solutions logicielles 1. Développement spécifique
Développement en externe : par des consultants externes, des bureaux d’étude
ou des sociétés de service informatique…
Développement en interne (maison) : par le personnel informatique de la
compagnie client.
Développement de l’utilisateur final (End user): Solution de bricolage
2. Achat de progiciels
Sans modification/extension
Avec modification/extension
3. Sous-traitance
33