1 - Qu'est ce que le génie logiciel ?
1.1 Qu'est ce qu'un logiciel ?
Définition
Un logiciel (software en anglais) est un ensemble de programmes informatiques conçus pour exécuter des tâches spécifiques sur un ordinateur ou un appareil électronique. Il peut inclure des applications, des systèmes d'exploitation, des outils de développement et d'autres types de logiciels. Les logiciels peuvent être installés sur un ordinateur ou accessibles en ligne à travers le cloud computing.
1.2 Qu'est ce que le génie logiciel ?
Définition:
Le génie logiciel(software engineering en anglais) est une discipline du génie informatique regroupant un ensemble de connaissances scientifiques et techniques afin d'améliorer la conception et le développement de logiciels de qualité.
2. Processus de développement d'un logiciel
2.1 Analyse des besoins
L'analyse des besoins en génie logiciel est une étape cruciale dans le développement de logiciels. Elle consiste à comprendre les exigences et les attentes des utilisateurs pour déterminer les fonctionnalités et les caractéristiques nécessaires pour le logiciel. Cela peut inclure:
- l'identification des objectifs de l'entreprise,
- la définition des utilisateurs cibles,
- la collecte de données sur les processus métier actuels
- l'analyse des besoins fonctionnels et non fonctionnels etc.
L'analyse des besoins aide à garantir que le logiciel développé répond aux attentes des utilisateurs et remplit les objectifs de l'entreprise.
2.2 Conception (voir l'article en détails)
La conception de logiciel est un processus de planification pour le développement de logiciels. Elle implique:
- la définition de la structure générale du logiciel,
- l'interface utilisateur,
- les algorithmes de traitement de données
- autres aspects techniques etc.
La conception de logiciel vise à produire un plan clair et cohérent pour le développement du logiciel, en veillant à ce que les exigences des utilisateurs soient prises en compte et à ce que les solutions technologiques soient sélectionnées en conséquence. Les concepteurs de logiciels travaillent souvent en étroite collaboration avec les analystes de besoins et les développeurs pour s'assurer que la conception est viable et peut être mise en œuvre efficacement. voir l'article en détails.
2.3 Outils & méthodes
Il existe de nombreux outils et méthodes utilisés dans le génie logiciel, notamment :
- Gestion de version : Git, SVN, Mercurial
- Planification et suivi des projets : Jira, Asana, Trello
- Tests et vérification de qualité : Junit, Selenium, Cucumber
- Automatisation de build : Jenkins, Travis CI, CircleCI
- Gestion de configuration : Ansible, Puppet, Chef
- Documentation : Swagger, Postman, Confluence
- Méthodes Agiles : Scrum, Kanban, XP (eXtreme Programming)
- Modélisation UML: (Unified Modeling Language)
- Diagrammes de flux de travail : BPMN (Business Process Model and Notation)
Noter bien que la sélection des outils et méthodes dépend des besoins et des préférences de chaque projet et organisation.
2.4 Construction
2.5 Test du logiciel
Les méthodes de test de logiciel comprennent généralement plusieurs étapes pour vérifier la qualité et la fiabilité du logiciel, telles que :
- Planification du test : définition des objectifs de test, sélection des cas de test, détermination des ressources nécessaires.
- Création de cas de test : élaboration de scénarios de test pour couvrir les fonctionnalités du logiciel et identifier les erreurs potentielles.
- Exécution des tests : exécution des cas de test sur le logiciel et enregistrement des résultats.
- Rapport de bogue : identification et documentation des erreurs détectées lors des tests.
- Correction de bogue : correction des erreurs et retest pour vérifier que les erreurs ont été résolues.
- Clôture du test : évaluation finale de la qualité du logiciel et détermination s'il est prêt à être livré.
Il existe différents types de tests de logiciel, tels que:
- les tests fonctionnels,
- les tests de performance,
- les tests de charge,
- les tests de sécurité, etc.
La méthode de test choisie dépend des objectifs de test et de la nature du logiciel.
2.6 Gestion de la qualité
2.7 Gestion du projet
2.8 Maintenance du logiciel
3. Qualité du logiciel
Qualité du logiciel
Certificat ISO9000
SEICMM
PCMM
Six Sigma
4. Les grands principes du génie logiciel
Ref : C. Ghezzi. Fundamentals of Software Engineering. Prentice Hall, 2nd edition, 2002
Pour développer un logiciel de qualité, C. Ghezzi propose un certain nombre de grands principes à prendre en considération:
- La rigueur
- La décomposition des problèmes en sous-problèmes
- La modularité
- L’abstraction
- L’anticipation des évolutions
- La généricité
- La construction incrémentale
Younes Derfoufi
CRMEF OUJDA