Rappel ICT201 :
LA MAITRISE D’OUVRAGE qui concerne le client ou le maitre d’ouvrage
MAITRISE D’OUVRE : équipe qui met en œuvre
Le génie logiciel est la gestion des projets ayant pour but la réalisation d’un logiciel, suivant
de bonne pratiques (règle de l’art). En respectant la contrainte de COUT, DE DELAIT ET DE QUALITE
(CDQ).
Il existe plusieurs techniques de capture des besoins.
Réalisation des questionnaires.
Les interviews
Faire une exploitation de la documentation existante (exploitation documentaire).
Étude de l’existant
Pour mettre sur pied un logiciel dans un environnement, la maitrise d’œuvre doit d’abord
comprendre les différentes activités qui s’y déroule, comment elle s’y déroule, en suite il doit
connaitre celle qui ont besoin d’être automatiser. Un processus peut regrouper plusieurs activités, ces
dernière son également appeler des taches. Au sein d’un environnement, lorsque l’on a identifié les
processus, il en existe 3 types de processus selon le niveau d’automatisation :
- Manuels
- Semi-automatiques
- Automatiques
Un processus manuel est celui qui s’exécute sans l’intervention d’un automate (appareil électronique
qui permet d’effectuer des opérations arithmétiques et logiques). Les opérations arithmétiques sont
l’addition et la soustraction. La multiplication est une forme d’addition et la division est une forme de
soustraction. Les operateurs logiques sont le OU, le ET et enfin le NON.
Un processus est dit semi-automatique lorsqu’il fait intervenir au moins un automate.
Un processus est dit automatique lorsqu’il s’exécute sans l’interversion de l’être humain.
La phase d’analyse permet d’identifier les besoins attendus pour le futur logiciel. On catégorise ces
besoins attendus en fonction de leur utilité en deux classe :
Les besoins fonctionnels
Les besoins non fonctionnels
Les besoins fonctionnels sont les besoins attendus au niveau du future logiciel et les besoin non
fonctionnels sont les contraintes qu’il doit respecter de manière a s’appliquer son le bon
fonctionnement.
Exemple : Le gérant d’un supermarché veut vous pouvez identifier une bonne partie des besoins
fonctionnels et les besoins non fonctionnels du futur logiciel.
Exemple de besoin fonctionnel : enregistrer un acheteur
Exemple de besoin non fonctionnel : le logiciel doit être rapide (durée pour passer d’une page a une
autre est de 1miliseconde).
La phase d’analyse permet de faire ressortir principalement, d’un point de vue technique les besoins
fonctionnels et les besoins non fonctionnels.
NB : Un extrant est un élément qu’on obtient a la sortie d’une phase. On l’appelle aussi output.
Comme élément d’entrée d’une phase par contre on a des intrants qu’on appelle encore input.
Conception
La phase de conception d’un logiciel permet d’obtenir son architecture. Celui qui réalise cette tâche
s’appelle architecte logiciel. L’architecture d’un logiciel représente les différents modules de ce logiciel
et les interfaces pour la communication entre ces modules. Une interface pour un module est un
point d’entrée et de sortie de ce dernier. Chaque module contient un ensemble de fonctionnalités
(lesquelles ont été obtenu lors de la phase d’analyse) regroupées en fonction de leur similarité.
Exemple de fonctionnalité : module de gestion des stocke affiche produit et ajouter produit.
Lors de la conception détaillée, on écrit les algorithmes.
Lors de la phase d’implémentation on écrit les programmes associent aux algorithmes obtenus lors
de la phase de conception détaillé
L’intégration permet de relier les différents programmes pour les rendre cohérents en vue
d’obtention du logiciel.
Le déploiement permet de rendre le logiciel opérationnel c’est-à-dire sur le terrain.
Les tests sont utilisés suivant le cycle de développement choisi. Dans le cycle de développement en V,
les tests unitaires sont réalisés au sein d’un module. Il s’agit du test des différentes fonctionnalités.
Les tests d’intégration permettent de s’assurer que l’intégration a été fait avec succès pour la
cohérence de tout le logiciel. Les tests d’acceptations sont ceux réaliser en rapport avec la phase
d’analyse qui sont fais en présence du client qui s’assure que les besoins qu’il a exprimés sont
respectés. On appelle cela de la satisfaction des besoins.
Les tests logiciels
En génie logicielle, l’on rencontre différent type de tests. En rapport avec le processus de
développement, l’on distingue des tests de vérifications et des tests de validations. En rapport avec la
visibilité du travail effectue par l’équipe projet, l’on distingue les tests Boites blanches et les tests
Boites noire. Dans les tests Boites blanches, on vérifier, on a accès a toutes les étapes qui permet
d’aboutir au résultat teste. Dans les tests Boites noire on s’intéresse juste au résultat.
Les tests de vérifications se font entre les membres de l’équipe projet. Le test de vérification répond a
la question suivante : « Est-ce que le produit que nous construisons est bon ? » Cette question
interpelle sur le fait de savoir si effectivement l’équipe projet réalise le logiciel ou alors une partie du
logiciel (la partie testée) selon les règles de l’art, les bonnes pratiques du génie logiciel.
Les tests de validations par contre se font à la fin de la réalisation du projet et en présence du client
et répond à la question « Est-ce que nous construisons le bon logiciel ».
En génie logiciel pour la phase d’analyse et la phase de conception les extrants obtenus sont chaque
fois représentes suivant un formalisme (la manière de mettre en forme de manière technique). Il
existe 3 types de modélisations :
- La modélisation non formelle ;
- La modélisation semi-formelle ;
- La modélisation formelle.
La modélisation non formelle se fait par la description dans une langue. On appelle cela le langage
naturel.
La modélisation semi-formelle se fait quand elle use des graphismes, des symboles et des schémas
comme formalisme.
La modélisation formelle se fait exclusivement avec des symboles et les notations mathématiques.
Chaque règle qui y est exprimée doit être vrai d’un point de vue mathématique et logique.
Il est à note que la modélisation exacte est vraie.
Comme exemple pour le langage naturel c’est toute langue parlée (français, moundang, …), pour la
modélisation semi-formelle on a le langage UML (Unified Modélisation Language). Il nous propose 14
diagrammes. Dans la phase d’analyse, on utilise le diagramme des cas d’utilisation pour représenter
les besoins fonctionnels et le diagramme des classes dans la phase de conception pour représenter
l’architecture du logiciel.
En dehors de UML, pour la modélisation semi-formelle, l’on peut également utiliser la méthodes
merise (Méthodes de réalisation informatiques des systèmes d’entreprise). Cette méthode en plus de
proposer un cheminement offre des modèles suivant les données et suivant les traitements.
Niveaux Données Traitement
Conceptuel MCD MCT
Logique MLD MLT
Opérationnel MOD MOT
Dans la modélisation formelle, on peut utiliser le langage Z