12/09/2017
Ecole Nationale des Sciences de l’Informatique
Motivations…
GL1-II2
GÉNIE LOGICIEL 1
II2-ENSI
Besoin croissant en des systèmes logiciels avancés Les applications logicielles sont de plus en plus fonctionnels, environnements langages et des
(besoins interopérabilité des
complexes distribués, plates-formes hétérogènes)
Exigences croissantes des clients et évolution des
Mutation
besoins en cours de projet, technologique
rapide environnements de développement
:
langages
et
L’équipe de développement travaille
à
(souvent de grande de (moins
distance
taille) communication)
2
Des objectifs ambitieux…
GL1-II2
Objectifs de module
GL1-II2
Des objectifs ambitieux…
Face à cette complexité, on veut :
Livrer des logiciels de bonne qualité en respectant
coûts et les délais
les
Préparer et faciliter la maintenance et
système
les extensions du
Simplifier le travail de l’équipe de développement (chef de du
projet, programmeur, du testeur et du mainteneur)
d’architecte,
concepteur,
d’analyste,
du
Travailler sur des parties individuelles du système en
isolation tout en garantissant leur intégration
La vie d’un logiciel ne se limite pas à la programmation !
P LAN DU MODULE
GL1-II2
1
Introduction au Génie Logiciel
Processus Logiciels
Analyse & Spécification des Logiciels
Conception des logiciels
Tests logiciels
Gestion de configuration
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
Avoir un aperçu général sur le génie logiciel et
comprendre la valeur ajoutée de génie logiciel
Etudier
les processus de développement des logiciels en utilisant des approches semi-formelles
Appliquer
et
maitriser
les
étapes
de
développement semi-formel (études de cas)
Apprendre à choisir et à appliquer : processus,
approche, technique, outil, …
Aborder la qualité du logiciel
4
RÉFÉRENCES
GL1-II2
Software Sommerville, 2015
Engineering, 10th
Ian Edition,
Software Engineering-A Practitioners Approach-Roger S. Pressman-8th Edition-2015.
5
6
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
1
12/09/2017
A voir aussi les vidéos
http://iansommerville.com/sof tware-engineering- book/videos/
École Nationale des Sciences de l’Informatique Génie Logiciel 1
CHAPITRE 1
II2-ENSI
7
P LAN DU COURS
GL1-II2
Chapitre 1 Introduction au génie logicel
S e c t i o n 1 L e L o g i c i e l
1. Le logiciel
C’est quoi un logiciel ? Quels sont les différents types des logiciels? Quelles sont les qualités d’un bon logiciel ?
2. Le génie logiciel (GL)
C’est quoi le GL ? Pourquoi le GL ? Quels sont les acteurs qui interviennent dans le GL ? Quels défis devant le GL ?
3. Quiz
9
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
1.2 Typologie des logiciels
1ère classification : deux grandes catégories
Logiciels génériques
: des systèmes dédiés sont commercialisés et vendus à n'importe quel client qui souhaite les acheter.
(Generic products)
au grand public
qui
Logiciels sur mesure (Customized products) : des systèmes développés pour répondre à des besoins particuliers d’un client.
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
1.1 Définition du logiciel
Un logiciel (software) est un ensemble de :
1. Instructions/Programmes
informatiques/Codes sources exécutables) : exécutés pour répondre aux besoins du client.
2. Données
: manipulées
et
traitées par
les
programmes.
3. Documents : décrivent
les programmes et des données (documents d’analyse, de spécification, de conception, rapport d’implémentation, manuel d’utilisation, d’installation, de configuration, de maintenance, les jeux de tests, …)
C o u r s « G L - A C O O » E N S I
10
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
1.2 Typologie des logiciels
2 ème classification : Logiciels systèmes : les systèmes d’exploitation,
Ex: Windows, Linux,
Logiciels temps réels : réponse aux événements dans un laps
de temps limité et strict, Ex: système de monitoring de la température
Logiciels de gestion:
Ex: systèmes d’information, systèmes bancaires
Logiciels d’ingénierie : Modélisation et programmation
Ex: Eclipse
C o u r s « G L - A C O O » E N S I
Logiciels embarqués :
machine automatique de train
Ex:
intégrés à un dispositif ou une système de freinage automobile, guidage
11
12
2
12/09/2017
1.2 Typologie des logiciels
1.2 Typologie des logiciels
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
Logiciels pour ordinateur personnel :
Ex: calculatrice, calendrier, capture
Logiciels d’applications Web (Webapps): manipulables
grâce à un navigateur Web,
Ex: moteurs de googleMap,
recherche, webmail, wiki,
Applications mobiles :
Ex: OS ANDROID, WinDowsMobile Logiciels d’intelligence artificielle:
blogs,
C o u r s « G L - A C O O » E N S I
Publicité
Ex: Systèmes de robotique, système expert, reconnaissance
des formes, les jeux
3ème classification : Le logiciel
libre (Open source)
le code source du logiciel à la disposition de tous les utilisateurs désireux de le réutiliser ou d’y apporter des améliorations.
: L’auteur met
Il se définit par 4 libertés :
Liberté 1 :
la liberté d'exécuter le programme po ur tous les
usages.
Liberté 2: la liberté d'étudier le fonctionnement du programme
et de l' (l'accès au code source est une condition requise)
Liberté 3 : la liberté de redistribuer des copies.
Liberté 4 :
la libert é de modifier le programme et de p ublier
vos améliorat ions.
Le logiciel libre n’est pas nécessairement gratuit!
13
14
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
1.2 Typologie des logiciels
1.2 Typologie des logiciels
Le logiciel pr opriétaire : soumis a ux dro its de son aut eur qu i peut interdire ou limiter à l'utilisateur suivant un contrat.
Il est distribué uniquement sous forme binaire (sans source).
Différents types de logic iels propriétaires :
Les logiciels commercialisés : des logiciels propriétaires payants.
Les graticiels (freewares) : des logiciels gratuits.
L’auteur du logiciel rend disponible gratuitement son logiciel (exe) (le code n'est pas accessible)
C o u r s « G L - A C O O » E N S I
Les partagiciels
(sharewares)
: des
logiciels
propriétaires
partiellement gratuits. La version gratuite est très limitée ou encore offerte gratuitement pour une le période d’essai. Ceci donne l’occasion au consommateur d’évaluer logiciel avant de procéder à l’achat et permet aussi aux entreprises en logiciels de promouvoir tous leurs produits.
15
http://www.01net.com
16
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
1.3 Qualités
1.3 Qualités
Les qualités de logiciel peuvent être classifiées en deux types :
Externes : Observables par l’utilisateur Internes : Concernent le développement du logiciel
Critères de qualité d’un bon logiciel:
Validité Fiabilité Robustesse Extensibilité Réutilisabilité Vérifiabilité Compatibilité Portabilité Interopérabilité Efficacité Facilité d’emploi Convivialité Réparabilité Intégrité
C o u r s « G L - A C O O » E N S I
•Validité ou conformité ou adéquation : aptitude d’un produit logiciel à remplir exactement les fonctions définies par le cahier des charges
•Fiabilité : aptitude d’un logiciel à assurer de manière continue le service attendu, sans erreurs.
•Robustesse : aptitude d’un logiciel à fonctionner même dans des conditions anormales sans dysfonctionnements.
•Extensibilité ou évolutivité : facilité avec laquelle un logiciel se prête à sa maintenance
•Réutilisabilité : aptitude d’un logiciel à être réutilisable en tout ou en partie (composants logiciels) , dans de nouvelles applications.
•Vérifiabilité : facilité de préparation des procédures de test.
17
•Compatibilité : aptitude d’un logiciel de communiquer avec une autre application.
18
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
3
12/09/2017
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
Chapitre 1 Introduction au génie logiciel
S e c t i o n 1 L e L o g i c i e l
1.3 Qualités
1.3 Qualités
• Portabilité : facilité avec laquelle un logiciel peut être transféré sous différents environnements matériels et logiciels.
• Interopérabilité : facilité avec laquelle un logiciel peut coopérer et être combiné avec d’autres logiciels en passant par des standards.
• Efficacité disponibles (mémoire, CPU...)
ou Performance : utilisation optimale des
ressources
• Utilisabilité ou Facilité d’emploi : facilité d’utilisation et d’apprentissage
• Convivialité ou Ergonomie : qualité d'un logiciel que les utilisateurs trouvent agréable et facile à utiliser.
• Réparabilité : Correction facile des erreurs.
• Intégrité : aptitude d’un logiciel à protéger son code et ses données contre des accès non autorisés.
19
P LAN DU COURS
GL1-II2
1. Le logiciel
C’est quoi un logiciel ? Quels sont les différents types des logiciels Quelles sont les qualités d’un bon logiciel?
2. Le génie logiciel (GL)
Pourquoi le GL ? C’est quoi le GL ? Quels sont les acteurs qui interviennent dans le GL ?
3. Quiz
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
L’importance de ces critères de qualité variera selon
la nature du projet de développement.
Il est difficile d’optimiser
tous ces critères car
ils
peuvent être parfois contradictoires.
Le choix de compromis doit s’effectuer en fonction du
contexte
Les critères de qualité sont
sujets à la loi de la
diminution des gains (compromis) !
20
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.1 La crise de logiciel
Prise de conscience dans les années 70, appelée la crise du logiciel : • Coût de construction du logiciel plus important que celui de
la construction du matériel
• Baisse significative de la qualité des logiciels.
Cette crise du logiciel était principalement due à :
L’inadéquation : le non respect des spécifications (trop de
modifications)
Dépassement des délais : Logiciels souvent livrés en retard
Dépassement des coûts : dépassement du budget prévu
La non fiabilité : logiciels souvent en panne
Difficulté de maintenance : Complexe et coûteuse, trop de
21
liens de communications et trop d’interrelations entre modules
22
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.1 La crise de logiciel
2.2 Définition
Pour répondre à cette crise, on a essayé d’appliquer les méthodes connues de l’ingénieur au domaine du logiciel, pour établir des méthodes fiables
Il s’agit de se donner un cadre rigoureux pour :
Guider le développement du logiciel, de sa conception à sa
livraison.
Contrôler les coûts, évaluer les risques et respecter les
délais.
Établir des critères d’évaluation de la qualité d’un logiciel.
C o u r s « G L - A C O O » E N S I
D’après la Norme IEEE 610.12 : « Le Génie Logiciel est l’application d’une approche systématique, disciplinée et quantifiable au développement, à l’exploitation et à la maintenance du logiciel ». C’est-à-dire, l’application de l’ingénierie au logiciel.
La naissance du Génie Logiciel
23
24
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
4
12/09/2017
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.2 Définition
2.2 Définition
s’appuient sur des
Le génie
logiciel
est défini
l’ensemble des processus, méthodes ou techniques et outils permettant la construction de systèmes informatiques répondant à des critères de qualité préalablement définis.
comme
s’appuient sur des
s’appuient sur des
Processus
Méthodes
Publicité
Outils
• Quoi ? • Définissent les activités à mener
• Comment ? • Définissent
les techniques à utiliser
• Avec quoi ? • Assistent la mise en œuvre des méthodes
25
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.3 Objectifs du GL
Le génie logiciel vise à garantir que :
La spécification répond aux besoins réels de ses
clients ;
Le logiciel respecte sa spécification ;
Le logiciel est de bonne qualité.
Les coûts alloués de sa réalisation sont respectés ;
Les délais de sa réalisation sont respectés ;
27
Chapitre 1 Introduction au génie logiciel
2.3 Objectifs du GL
S e c t i o n 2 L e G é n i e L o g i c i e l
GL Qualitatif
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
Processus
• Exemple
d’activités
• Spécification • Conception • Codage • Installation • Test • Documentation
s’appuient sur des
Méthodes
Outils
• Exemples de méthodes
• Exemples d’outils
• Méthode fonctionnelle • L’approche orientée
objets
• La méthode Merise
• Outils de
modélisation • Compilateurs et
environnements de programmation • Outils d’analyse de programmes et code
• Outils de tests • Outils de
documentation
26
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.3 Objectifs du GL
Objectifs du GENIE LOGICIEL
Processus de Développement Cycle de Vie
GL Qualitatif
Plan de Développement (Planification)
GL Quantitatif
28
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.3 Objectifs du GL
Un BESOIN de Coordination, Communication et Coopération
GL Quantitatif
29
30
30
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
5
12/09/2017
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
2.5 Les acteurs du GL
La structure organisationnelle d’un projet
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
31
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
Le maître d'ouvrage est le propriétaire de l’application qui est réalisée. Il est le donneur d’ordre et met en place les financements nécessaires.
Rôle :
Assurer la conduite générale du projet (coût, temps,…),
Veiller au respect des objectifs généraux du projet,
Produire l'expression des besoins,
Gérer les enveloppes financières,
Valider
les documents
relatifs au projet ainsi que les
maquettes et les prototypes,
33
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
La maîtrise d’œuvre ( MOE) entité responsable de la réalisation de l’application pour la maîtrise d’ouvrage.
Elle regroupe les acteurs suivants :
Le maître d’œuvre,
L’équipe projet qui peut regrouper de nombreuses
compétences si le projet est complexe
(MOA):
La maîtrise d’ouvrage
l'entité porteuse du besoin, définissant l'objectif du projet, son calendrier et le budget consacré à ce projet. Le résultat attendu du projet est la réalisation d'un produit, appelé ouvrage.
C’est
Elle regroupe les acteurs suivants :
Le maître d’ouvrage Les experts du métier Les utilisateurs Les groupes de validation
32
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
Les utilisateurs : ne participent pas au management de les vrais juges de la
projet mais ils sont finalement qualité des produits livrés.
Plusieurs niveaux d’utilisateurs:
L’utilisateur final utilise l’application quotidiennement. Il apporte les besoins d’ergonomie et d’organisation de son poste de travail,
Le responsable du service utilisateur donne son avis
sur les choix organisationnels,
L’utilisateur de niveau hiérarchique supérieur définit
les objectifs stratégiques.
34
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
Le maître d'œuvre est la personne ou l'entité choisie par le maître d'ouvrage pour la réalisation d'un projet dans les conditions de délais, de qualité ainsi que de coûts fixés conformément à un contrat.
Tâches:
Garantir la qualité des produits finis. Affecter les moyens sur le projet. Assurer le suivi contractuel avec le maître d’ouvrage.
35
36
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
6
12/09/2017
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
2.5 Les acteurs du GL
Les sous-traitants : pour la réalisation de certaines tâches du projet, le maître d'œuvre peut faire appel à lorsqu'il ne une ou plusieurs entreprises externes ressources possède les en sous- nécessaires traitant ou prestataire).
interne entreprise
(chaque
appelée
pas
est
Chaque sous-traitant
réalise un sous-ensemble du projet directement avec le maître d'œuvre mais n'a aucune responsabilité directe avec le maître d’ouvrage.
37
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
L’équipe de développement englobe :
L’analyste : rédige les spécifications fonctionnelles et non
fonctionnelles de l’application
L’architecte: propose les architectures logicielle et matérielle
et identifie les besoins en composants et frameworks.
Le concepteur : propose la conception détaillée.
:
Le développeur
implémente les services décrits dans les spécifications fonctionnelles, en tenant compte de plusieurs facteurs: architecture applicative, frameworks techniques et règles de développement
39
Chapitre 1 Introduction au génie logiciel
Publicité
S e c t i o n 2 L e G é n i e L o g i c i e l
2.4 Ethique du GL
Le
comportement
éthique
respect de la loi, mais aussi principes morales.
implique
le le respect d’un ensemble des
non seulement
Le génie logiciel que simplement compétences techniques.
implique des responsabilités plus larges des
l'application
demande
et
la
Les ingénieurs logiciel doivent se comporter d'une façon être
s'ils doivent
responsables
éthiquement
honnête respectés comme des professionnels.
et
Les organisations ACM/IEEE ont accordé et signé un code d’étique de développement des logiciels huit principes liés aux comportement et décisions prises par des ingénieurs logiciel professionnels.
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
Le chef de projet désigne la personne retenue par le maître
d’œuvre chargée du bon déroulement du projet.
Le chef de projet est responsable la mise en œuvre du (dans le cadre d’un contrat avec la
projet en respectant maîtrise d’œuvre) les délais, les coûts les exigences de qualité.
Le chef de projet doit gérer au mieux les
ressources
humaines et matérielles qui sont affectées sur le projet.
38
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.5 Les acteurs du GL
Le testeur : prépare les jeux de test et évalue le
système avec et/ou sans exécution du code.
Le qualiticien :
définit et met en application les dispositions le plan
formalisées dans
qualité d’assurance d’assurance qualité.
définit les actions correctives si les dispositions ne
sont pas appliquées.
40
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.4 Ethique du GL
Exemples:
1. INTERËT PUBLIC :
les ingén ieurs lo gic ie l agiront en respect de
l'intérêt public.
2. CLIENT ET L'EMPLOYEUR : les in gén ieurs logic ie l agiront dans une façon qui est dans les intérêts supérieurs de leur c lient et emp lo yeur compatible avec l'intérêt public.
3. PRODUIT : les in gén ieurs lo gic iel assureront que leurs produits et les
modificat ions liées respectent les normes professionnelles.
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
4. JUGEMENT :
in gén ieurs l'indépendance dans leur jugement professionnel.
logic iel ma int iendront
les
41
5. …
l' int égrit é et
7
Chapitre 1 Introduction au génie logiciel
S e c t i o n 2 L e G é n i e L o g i c i e l
2.6 Les défis devant le GL
Hétérogénéité des plateformes
Délivrance (respecter les termes et la qualité à la fois)
Confiance des usagers
Responsabilité professionnelles et éthiques (surtout la
confidentialité)
Développement par et pour la réutilisation
Evolution technologique
Changements sociaux et économiques
Chapitre 1 Introduction au génie logiciel
Quiz 1
Le logiciel est un ensemble de :
• Code • Données • Documents
………………… ………………… …………………
Le génie logiciel est un ensemble de :
• Processus • Méthodes • Outils
………………… ………………… …………………
43
45
Chapitre 1 Introduction au génie logiciel
Quiz 3
Utiliser
Libre
Oui
Graticiel
Partagiciel
Propriétaire
Oui
Limite temporelle et/ou fonctionnelle
Limité selon licence d’utilisation
Copier
Oui
Oui
Oui
Etudier
Modifier
Payer
Oui
Oui
gratuit ou payant
Non
Non
gratuit
Non
Non
gratuit (ou partiellement)
Non sauf copie de sauvegarde
Non
Non
payant
47
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
12/09/2017
Quiz
Chapitre 1 Introduction au génie logiciel
Quiz 2
Quelle est la définition d'un logiciel propriétaire ? C'est un logiciel livré avec le code source C'est un logiciel non libre C'est un logiciel payant C'est un logiciel du domaine public
Qu'est-ce qu'un graticiel (freeware) ? Un logiciel propriétaire Un logiciel gratuit Un logiciel utilisable sur tout type d'ordinateur Un logiciel dont le code source est libre
Chapitre 1 Introduction au génie logiciel
Quiz 4
Le Génie Logiciel a
Objectifs
Améliorer la QUALITE
Améliorer la PRODUCTIVITE
Entrées BESOINS
Activités
DEVELOPPER ET MAINTENIR
Sortie
LOGICIEL
Moyens
Outils
Méthodes
Processus
46
C o u r s « G L - A C O O » E N S I
C o u r s « G L - A C O O » E N S I
8
Chapitre 1 Introduction au génie logiciel
Quiz 5
Le maître d’ouvrage est chargé de choisir :
Le chef de projet Le maître d’œuvre L’architecte Les sous-traitants Les experts Le qualiticien
Le chef de projet est chargé de :
Sous-traiter le projet Gérer le projet Tester l’application Assurer le bon déroulement du projet Concevoir la solution Choisir l’équipe de développement
C o u r s « G L - A C O O » E N S I
49
12/09/2017
9