GL1-II2 Des objectifs ambitieux…
Face Des à cette objectifs complexité, ambitieux…
on veut :
▪ Livrer coûts et des les délais logiciels de bonne qualité en respectant les ▪ Préparer et faciliter la maintenance et les extensions du système
▪ Simplifier projet, programmeur, d’analyste, le travail du testeur de du l’équipe et concepteur, du mainteneur) de développement d’architecte, (chef du de ▪ Travailler isolation tout sur en des garantissant parties individuelles leur intégration du système en La vie d’un logiciel ne se limite pas à la programmation !
Ecole Nationale des Sciences de l’Informatique
PLAN DU MODULE
1
Processus Logiciels
GÉNIE LOGICIEL 1 II2-ENSI
GL1-II2
Introduction au Génie Logiciel
Analyse & Spécification des Logiciels
Conception des logiciels
Tests logiciels
Gestion de configuration
5
GL1-II2 Motivations…
▪ Besoin croissant en des systèmes logiciels avancés
▪ Les applications logicielles sont de plus en plus complexes (besoins fonctionnels, environnements distribués, interopérabilité des langages et des plates-formes hétérogènes)
▪ Exigences croissantes des clients et évolution des besoins en cours de projet,
▪ Mutation technologique rapide : langages et environnements de développement
▪ L’équipe de développement (souvent de grande taille) travaille à distance (moins de communication)
2
Objectifs de module
GL1-II2
▪ 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
Software Engineering, Ian Sommerville, 10th Edition, 2015
GL1-II2
Software Engineering-A Practitioners Approach-Roger S. Pressman-8th Edition-2015.
6
12/09/20171
PLAN DU COURS
GL1-II2
- 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
1.2 Typologie des logiciels
Section 1 Le Logiciel
1ère classification : deux grandes catégories
▪Logiciels génériques (Generic products) : des systèmes dédiés au grand public qui sont commercialisés et vendus à n’importe quel client qui souhaite les acheter.
▪Logiciels sur mesure (Customized products) : des systèmes développés pour répondre à des besoins particuliers d’un client.
11
▪A voir aussi les vidéos
▪http://iansommerville.com/sof tware-engineering- book/videos/
7
Chapitre 1 Introduction au génie logiciel
1.2 Typologie des logiciels
Section 1 Le Logiciel
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
▪ Logiciels embarqués : intégrés à un dispositif ou une machine Ex: système de freinage automobile, guidage automatique de train
12
Chapitre 1 Introduction au génie logicel
1.1 Définition du logiciel
Section 1 Le 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, …)
10
École Nationale des Sciences de l’Informatique Génie Logiciel 1
CHAPITRE 1
II2-ENSI
12/09/20172
Chapitre 1 Introduction au génie logiciel
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é
Chapitre 1 Introduction au génie logiciel
1.2 Typologie des logiciels
Section 1 Le Logiciel
▪ interdire Le logiciel ou limiter propriétaire à l’utilisateur : soumis suivant aux droits un de contrat. son auteur qui peut ▪ Il est distribué uniquement sous forme binaire (sans source).
▪ Différents types de logiciels 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)
▪ Les partiellement partagiciels gratuits. (sharewares) : des logiciels propriétaires La période logiciel logiciels version avant de d’essai. gratuite promouvoir de Ceci procéder est très donne tous limitée à leurs l’achat l’occasion ou produits. encore et permet au offerte consommateur aussi gratuitement aux entreprises d’évaluer pour une en le 15
1.2 Typologie des logiciels
▪ Logiciels pour ordinateur personnel : Ex: calculatrice, calendrier, capture
▪ Logiciels d’applications Web (Webapps): manipulables grâce à un navigateur Web, Ex: moteurs de recherche, webmail, wiki, blogs, googleMap,
▪ Applications mobiles : Ex: OS ANDROID, WinDowsMobile
▪ Logiciels d’intelligence artificielle: Ex: Systèmes de robotique, système expert, reconnaissance
des formes, les jeux
13
Section 1 Le Logiciel
17
http://www.01net.com
Chapitre 1 Introduction au génie logiciel
1.3 Qualités
- 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.
- Compatibilité : aptitude d’un logiciel de communiquer avec une autre application.
Chapitre 1 Introduction au génie logiciel
1.2 Typologie des logiciels
Section 1 Le Logiciel
3ème classification :
▪ Le logiciel libre (Open source) : L’auteur met le code source du logiciel à la disposition de tous les utilisateurs désireux de le réutiliser ou d’y apporter des améliorations.
▪ Il se définit par 4 libertés :
▪ Liberté 1 : la liberté d’exécuter le programme pour 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 publier vos améliorations.
Le logiciel libre n’est pas nécessairement gratuit!
14
Chapitre 1 Introduction au génie logiciel
1.2 Typologie des logiciels
12/09/2017Section 1 Le Logiciel
16
Section 1 Le Logiciel
18
3
Chapitre 1 Introduction au génie logiciel
1.3 Qualités
Section 1 Le Logiciel
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
1.3 Qualités
12/09/2017Section 1 Le Logiciel
12/09/2017Section 1 Le Logiciel
12/09/2017Section 1 Le Logiciel
- 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é ou Performance : utilisation optimale des ressources disponibles (mémoire, CPU…)
- 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.
▪ 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) !
PLAN DU COURS
GL1-II2
- 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
21
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie 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
liens de communications et trop d’interrelations entre modules
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
22
Chapitre 1 Introduction au génie logiciel
2.1 La crise de logiciel
Section 2 Le Génie Logiciel
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
2.2 Définition
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
▪ 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.
La naissance du Génie Logiciel
23
19
▪ 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.
24
2.1 La crise de logiciel
20
▪ La non fiabilité : logiciels souvent en panne
▪ Difficulté de maintenance : Complexe et coûteuse, trop de
4
Chapitre 1 Introduction au génie logiciel
2.2 Définition
Processus
Section 2 Le Génie Logiciel
▪ Le génie logiciel est défini comme 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.
25
Chapitre 1 Introduction au génie logiciel
2.3 Objectifs du GL
Section 2 Le Génie Logiciel
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
- Quoi ?
- Définissent les activités à mener
GL Qualitatif
GL Quantitatif
s’appuient sur des s’appuient sur des
Méthodes
- Comment ?
- Définissent les techniques à utiliser
Section 2 Le Génie Logiciel
Outils
- Avec quoi ?
- Assistent la mise en œuvre des méthodes
29
- Exemple d’activités
- Spécification
- Conception
- Codage
- Installation
- Test
- Documentation
Chapitre 1 Introduction au génie logiciel
2.2 Définition
Processus
Chapitre 1 Introduction au génie logiciel
2.3 Objectifs du GL
Section 2 Le Génie Logiciel
Plan de Développement (Planification)
GL Qualitatif
GL Quantitatif
Chapitre 1 Introduction au génie logiciel
2.3 Objectifs du GL
30
Objectifs du GENIE LOGICIEL
Processus de Développement Cycle de Vie
s’appuient sur des s’appuient sur des
- Exemples de méthodes
- Méthode fonctionnelle
- L’approche orientée objets
- La méthode Merise
Méthodes
Un BESOIN de Coordination, Communication et Coopération
- Exemples d’outils
- Outils de modélisation
- Compilateurs et environnements de programmation
- Outils d’analyse de programmes et code
- Outils de tests
- Outils de documentation
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
Outils
12/09/201726
28
30
5
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
Section 2 Le Génie Logiciel
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
▪ 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,
▪ Les utilisateurs : ne participent pas au management de projet mais ils sont finalement les vrais juges de la 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,
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
Section 2 Le Génie Logiciel
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
▪ 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
▪ 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:
▪ Affecter les moyens sur le projet.
▪ Assurer le suivi contractuel avec le maître d’ouvrage.
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
Section 2 Le Génie Logiciel
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
12/09/2017Section 2 Le Génie Logiciel
12/09/2017Section 2 Le Génie Logiciel
12/09/2017Section 2 Le Génie Logiciel
La structure organisationnelle d’un projet
31
33
35
▪ L’utilisateur de niveau hiérarchique supérieur définit les objectifs stratégiques.
▪ La maîtrise d’ouvrage (MOA): C’est 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.
32
34
36
▪ Elle regroupe les acteurs suivants :
▪Le maître d’ouvrage
▪Les experts du métier
▪Les utilisateurs
▪Les groupes de validation
▪ Garantir la qualité des produits finis.
6
Chapitre 1 Introduction au génie logiciel
Section 2 Le Génie Logiciel
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
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
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 d’assurance qualité formalisées dans le plan d’assurance qualité.
▪définit les actions correctives si les dispositions ne sont pas appliquées.
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
Section 2 Le Génie Logiciel
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
2.5 Les acteurs du GL
12/09/2017Section 2 Le Génie Logiciel
12/09/2017Section 2 Le Génie Logiciel
12/09/2017Section 2 Le Génie Logiciel
▪ Les sous-traitants : pour la réalisation de certaines tâches du projet, le maître d’œuvre peut faire appel à une ou plusieurs entreprises externes lorsqu’il ne possède pas en interne les ressources nécessaires (chaque entreprise est appelée sous- traitant ou prestataire).
▪ 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.
▪ 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 projet en respectant (dans le cadre d’un contrat avec la maîtrise d’œuvre)
▪ les délais,
▪ 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.
Chapitre 1 Introduction au génie logiciel
Section 2 Le Génie Logiciel
2.4 Ethique du GL
Chapitre 1 Introduction au génie logiciel
Chapitre 1 Introduction au génie logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
Section 2 Le Génie Logiciel
2.4 Ethique du GL
▪ Le comportement éthique implique non seulement le respect de la loi, mais aussi le respect d’un ensemble des principes morales.
▪ Le génie logiciel implique des responsabilités plus larges que simplement la demande et l’application des compétences techniques.
▪ Les ingénieurs logiciel doivent se comporter d’une façon honnête et éthiquement responsables s’ils doivent être respectés comme des professionnels.
▪ 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.
41
37
39
Exemples:
- INTERËT PUBLIC : les ingénieurs logiciel agiront en respect de
l’intérêt public.
- CLIENT ET L’EMPLOYEUR : les ingénieurs logiciel agiront dans une façon qui est dans les intérêts supérieurs de leur client et employeur compatible avec l’intérêt public.
- PRODUIT : les ingénieurs logiciel assureront que leurs produits et les
modifications liées respectent les normes professionnelles.
- JUGEMENT : les ingénieurs logiciel maintiendront l’intégrité et
l’indépendance dans leur jugement professionnel.
40
38
- …
▪ les coûts
7
Chapitre 1 Introduction au génie logiciel Quiz 3
Libre Graticiel Partagiciel Propriétaire Utiliser Oui Oui Limite
temporelle et/ou fonctionnelle
Limité selon licence d’utilisation
Copier Oui Oui Oui Non sauf
copie de sauvegarde Etudier Oui Non Non Non Modifier Oui Non Non Non Payer gratuit ou
payant
gratuit gratuit (ou
partiellement)
payant
47
Chapitre 1 Introduction au génie logiciel
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 …………………
Section 2 Le Génie Logiciel
45
43
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
Activités Sortie BESOINS
DEVELOPPER ET
LOGICIEL
MAINTENIR
Moyens
Processus
Méthodes
Outils
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
Quiz
12/09/201746
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
49
12/09/20179
télécharger gratuitement cours de GÉNIE LOGICIEL