34
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

1. Notions de base · 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:

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

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

8. Solutions logicielles Le choix d’une solution dépend essentiellement de:

Nature de l’application (SIA, SIAD, …)

Son aspect standard ou non ;

Profil du client (PME/Grande compagnie, Public/Privé ; ….)

Urgence des besoins

Préférences des décideurs (Responsables ; Bailleurs de fond ; …)

34