Vous êtes sur la page 1sur 8

▪ Définition

ch1 Introduction au génie logiciel ▪ C’est l’ensemble des activités ainsi que des résultantes relatives
à la production d’un logiciel.
• Génie Logiciel:
▪ Un processus de développement passe par des phases dans
o est une création intellectuelle rassemblant des programmes, des lesquelles des activités sont réalisées.
procédures, des règles et de la documentation utilisée pour faire
▪ APPROCHE:
fonctionner un système informatique (ISO)

o est l'art de spécifier, de concevoir, de réaliser, et de faire évoluer, avec


des moyens et dans des délais raisonnables, des programmes, des
documentations et des procédures de qualité en vu d'utiliser un système
informatique pour résoudre certains problèmes

o Contexte:

▪ Contexte technique:

▪ SI d’une taille importante

▪ Ressources humaines et matérielles à gérer ▪ Décomposition en phases:


▪ Différents intervenants: interne, externe, tierce partie. 1. Analyse
▪ Contexte économique: 2. Conception
▪ Coût production très élevé. 3. Réalisation
▪ Concurrence. 4. Maintenance
▪ Time to market. ▪ Activités d’un processus de développement: Ces activités peuvent
▪ Exigence de la qualité de plus en plus accru. être organisées différemment selon le type d’application

▪ Différents modèles économiques: B2B, B2C

o Objectifs: CQFD

▪ Les coûts restent dans les limites prévues au départ.

▪ La qualité correspond au contrat de service initial.

▪ Le système qui est fabriqué répond aux besoins fonctionnels.

▪ Les délais restent dans les limites prévues au départ.

o Le processus de développement
▪ Activités essentielles du processus logiciel: o Crise du logiciel:

1. Spécifications du logiciel, où les clients et les ingénieurs


définissent le logiciel qui doit être produit et les contraintes sur
son fonctionnement.

2. Développement du logiciel, où le logiciel est conçu et programmé.

3. Validation du logiciel, où le logiciel est vérifié pour s'assurer que


c'est ce que le client demande.

4. Evolution du logiciel, où le logiciel est modifié pour tenir compte


de l'évolution des besoins des clients et du marché.

• Logiciel:

o logiciel est un ensemble de programmes, qui permet à un ordinateur ou à


un système informatique d'assurer une tâche ou une fonction en
o facts:
particulier.
▪ une idée imprécise du logiciel à réaliser est la cause principale
o Programmes informatiques, procédures ainsi que la documentation et les
d'échecs
données associées pour le fonctionnement d'un système informatique
▪ même si le programme est écrit et fonctionnel, la maintenance du
o Classification des logiciels
logiciel représente un travail important: le coût de la maintenance
▪ Public cible: Les produits logiciels peuvent être développés pour un représente d'ailleurs plus du 50% du coût total d'un logiciel
client particulier ou bien pour tout un marché
▪ des changements de spécifications du logiciel peuvent se révéler
▪ Domaine d’utilisation: Finance, commerce, santé, etc coûteux et prolonger les délais.

▪ Technologies et architecture: Desktop application, application web, ▪ si la réalisation du logiciel prend du retard par rapport aux délais et
application mobile l'on ajoute des gens, il faut compter une période de familiarisation.
L'introduction de nouvelles personnes dans un projet doit être étudiée
▪ Taille: Outil/utilitaire, logiciel/Application, Système informatique et planifiée soigneusement.
o Qualités d’un logiciel

▪ Maintenable : Développé de manière à faciliter les Maintenable


changements.

▪ Robustesse : Le logiciel reste en fonctionnement même dans des


conditions exceptionnelles: connexion, support, etc

▪ Efficacité : Ne gaspille pas les ressources du système sur lequel il


est déployé tels que mémoire, processus, etc

▪ « Usabiliy »: Utilisable facilement sans un effort considérable


d’apprentissage (UI, UX)
ch2 MÉTHODOLOGIES DE
CONCEPTION

• Définition:

o Une méthodologie de conception s’intègre généralement dans un


modèle de processus de développement logiciel (Software development
life cycle: SDLC)

o Un SDLC est un ensemble de phases (événement), d’activités et de rôles ▪ Le prototypage:


(compétences) qui ont comme objectif la production d’un logiciel ▪ Il s’agit d’une implémentation limitée du futur produit
répondant aux besoins fonctionnels selon les contraintes imposées. dont l’objectif est de montrer la faisabilité au client
• Classification des méthodologies ▪ types de prototypages:
o Plan-driven: Minimiser les risques en maximisant la planification avec ▪ Prototype qui seront jetés une fois les besoins
une hypothèse sur des besoins inchangés validés, le cas des interfaces utilisateur (U.I).
o Agile-driven/Change-driven: Livraison rapide avec prise en charge des ▪ Prototypes qui seront évolués à travers les
changements et bien sur du risque. itérations.
• Quelques modèles de processus: o Approche Itérative:
o Le modèle en cascade ▪ Les processus itératifs désignent la pratique qui consiste à créer,
affiner et améliorer un projet, un produit ou une initiative.
o Le modèle en V
▪ L'approche itérative permet de passer d'un mode traditionnel
o Le Prototypage
prédictif à une approche répondant mieux aux changements
o Le RAD: Rapid Application development fréquents auxquels certains projets sont soumis.

o Le modèle en spiral ▪ La gestion de projet itérative est une méthode qui permet, tout
en respectant les délais de livraison et coûts définis selon une
o Le RUP: Rational Unfied Process planification et une organisation déjà maîtrisée, de prendre en
compte toutes les idées d'amélioration rencontrées au cours de la
o Les approches Agile
phase de développement.
• Approches(logiques) de plusieurs modèles
o Approche Incrémentale: permet de construire un produit petit à petit en le
o Approche linéaire: Modèle en cascade( WATERFALL model) découpant en pièces détachées. Elles sont le plus souvent indépendantes
les unes des autres mais ont pour caractéristiques d’améliorer le produit.
o Approche Agile

▪ Une méthode agile est une approche itérative et incrémentale


pour le développement de logiciel, réalisé de manière très
collaborative par des équipes responsabilisées appliquant un
cérémonial minimal qui produisent, dans un délai contraint, un
logiciel de grande qualité répondant aux besoins changeants des
utilisateurs.

▪ Fondement des méthodes Agile: Manifeste Agile

▪ 4 valeurs

1. Les individus et leurs interactions plus que les


processus et les outils
o ⇒ Modèle incrémentale et Itérative: 2. Des produits opérationnels plus qu’une
documentation exhaustive
▪ Il se base sur le développement d’une version initiale du
système qui sera présentée aux utilisateurs et de la faire évoluer 3. L’adaptation au changement plus que le suivi d’un
progressivement jusqu’à atteindre la version adéquate. plan
▪ Chaque version (incrément) est un produit final. 4. La collaboration avec les clients plus que la
négociation contractuelle
▪ Admet plusieurs itérations
▪ 12 Principes:
▪ Les activités de spécification, développement et validation sont
répétées à travers les itérations. ▪ Prioriser la satisfaction client
▪ Les besoins les plus importants sont traités au début donc ▪ Livrer fréquemment un produit opérationnel
évalués par le client en premier et par conséquent minimiser le
risque d’échec. ▪ Collaborer avec des équipes motivées

▪ Mesurer l’avancement sur le plan opérationnel

▪ Contrôler l’excellence de la réalisation

▪ Construire avec une équipe auto-organisée

▪ Accueillir le changement même tard

▪ Assurer une collaboration client-équipe

▪ Privilégier le dialogue direct

▪ Avancer à un rythme soutenable

▪ Privilégier la simplicité
▪ Améliorer l’efficacité de l’équipe

▪ Quelques méthodes Agiles: ch3 Le processus unifié


▪ Orienté gestion de projet : SCRUM, Agile Unified
Process

▪ Orientée pratiques de développement: Agile


Modeling(AM)

▪ Limitation des pertes : Lean, Kanban


• Méthode = Processus + Notation

o UML est une notation graphique pour décrire les différents aspects d’un
logiciel aux différents moments de son cycle de vie

o Le Processus Unifié est un exemple de processus logiciel qui utilise la


notation UML

• Principe: s’applique à mettre en oeuvre les six directives de l’ingénierie logicielle


(Best practices)

• Il n’existe pas un seul Processus Unifié, mais un ensemble de caractéristiques


essentielles:

o Pilotage par les cas d’utilisation


▪ Cas d’utilisation significatif(s) fonctionnellement, en terme
de risques principaux, y compris logiciel (distribution …)

▪ « Squelette muni de quelques muscles »

o Itératif et incrémental

▪ Incrément fonctionnel : injection d’un nouveau cas dans l’architecture


courante.

▪ Itération : l’ensemble de l’architecture courante est retravaillée

▪ Organisation matricielle:

▪ Découpage en phases et en activités

▪ Plusieurs itérations au sein d’une même phase


o Centré sur l’architecture
▪ Chaque itération parcourt toutes las activités avec plus ou moins
▪ Vue Globale: regroupe et organise les différents points de vue du de profondeur
système en construction
▪ On définit une architecture de référence avec un (des) cas
▪ Architecture: d’utilisation centraux et on itère en injectant de nouveaux cas
▪ Style d’architecture

▪ Standards à utiliser

▪ Sous-systèmes à ré-utiliser

▪ Distribution des sous systèmes

▪ Différentes Vues: Différentes vues qui s’appuient sur les différents


modèles.

▪ Les phases:

▪ Création (Démarrage/Pré-étude): Définit le champ d’action du


projet

▪ Architecture de référence:

▪ Style d’architecture
▪ Un planning du projet intégrant le calendrier, les coûts,
le personnel

▪ Une évaluation des risques et des éléments de


protection
▪ Objectifs:
▪ Construction : Réalise le produit temps
▪ Définir les limites du système

▪ Identifier les usages ◦ cas d’utilisation ◦ interfaces


utilisateurs

▪ Esquisser une architecture initiale

▪ Identifier les risques principaux ▪ Objectifs

▪ Résultats: ▪ Finalisation de la description et de la réalisation


des cas d’utilisation
▪ Vision.
▪ Finalisation de l’analyse, de la conception, de
▪ Feu vert du commanditaire l’implantation et des tests informatiques
▪ Élaboration : Le plan de la construction, il spécifie les exigences, ▪ Validation par rapport aux risques
l’architecture
▪ Validation par rapport à l’architecture de référence

▪ Résultats: Produit version Béta, logiciel testé en


interne, manuels

▪ Transition : Transfère le produit vers les utilisateurs finaux


▪ Objectifs

▪ Définir l’architecture de référence

▪ Préciser les cas d’utilisation (80 % des besoins


fonctionnels)
▪ Objectifs
▪ Planifier le projet
▪ Correction des derniers bugs liés au béta test
▪ Préciser les risques du projet (besoins,
▪ Validation par rapport aux besoins du client ◦
technologiques, compétences, politiques)
Logiciel ◦ Manuels
▪ Résultats
▪ Résultats: Produit validé par les utilisateurs
▪ Architecture de référence : concerne les cas d’utilisation
centraux avec l’ensemble de leurs modèles d’analyse • Les activités de développement de logiciel

o Un rôle réalise une ou plusieurs activités.


o Une activité est une unité de travail qu'un individu appartenant à un rôle o Les modèles produits par les activités: sont principalement constitués de
est sensé assurer, et qui produit un résultat significatif dans le contexte diagrammes UML
d'un projet.

o Caractéristiques d’une activité

▪ Une activité dure entre quelques heures et quelques jours.

▪ Une activité implique une personne dans une rôle donné.

▪ Une activité touche un ou plusieurs artéfacts

▪ La progression d’une activité doit être mesurable dans le


planning

▪ Une activité peut être répétée plusieurs fois sur le même artéfact
à travers les itérations

o Les artéfacts:

▪ Un artéfact est un fragment d'information qui est produit,


modifié ou utilisé par un processus.

▪ Les formes possibles :

▪ Un modèle comme un use-case diagram.

▪ Un élément de modèle comme une classe, un acteur etc

▪ Un document comme un document d'architecture


logicielle

▪ Un code source

▪ Des scripts, un exécutable

o Les Workflows:

▪ Un workflow est une séquence d'activités décrivant l’interaction


entre des rôles et produisant un résultat ayant une valeur ajoutée.

Vous aimerez peut-être aussi