Introduction à l'ingénierie logicielle
Classified in Informatique
Written at on français with a size of 8,8 KB.
L'importance de l'ingénierie logicielle
Le terme « ingénierie logicielle » a été introduit à la fin des années 1960 en raison de la crise du logiciel. Cette crise est le résultat de l'introduction de la troisième génération de matériel informatique. Le matériel a cessé d'être un obstacle au développement de la technologie de l'information. La crise a été caractérisée par les problèmes suivants :
- Manque de clarté dans la planification des projets et l'estimation des coûts.
- Mauvaise qualité des logiciels.
- Difficulté à maintenir des programmes non structurés.
Un logiciel efficace et bon marché nécessite un certain nombre de caractéristiques comme la fiabilité, la facilité d'entretien et d'utilisation, l'efficacité, etc.
1 Concept d'ingénierie logicielle
L'ingénierie logicielle propose des méthodes et techniques pour développer et maintenir des logiciels de qualité qui permettent de résoudre des problèmes de toutes sortes. Aujourd'hui, l'ingénierie logicielle est considérée comme un nouveau domaine de l'ingénierie, et l'ingénieur logiciel devient une profession établie, avec un prestige social reconnu. Le génie logiciel porte sur des domaines de l'informatique, comme la construction de compilateurs, les systèmes d'exploitation et le développement d'intranet/Internet. Il aborde les phases du cycle de vie du développement des systèmes d'information et s'applique à des domaines comme les affaires, la recherche scientifique, la médecine, la fabrication, la logistique, les services bancaires, le contrôle de la circulation, la météorologie, le monde juridique, Internet, Intranet et Extranet, etc.
2 Méthode, technique et outils
Une méthode est une série d'étapes successives menant à un objectif. Le professionnel doit suivre la méthode la plus appropriée à son problème.
Une technique est un savoir-faire pour obtenir un résultat. Elle requiert une dextérité manuelle et intellectuelle, et l'utilisation d'outils. Les techniques sont transmises de génération en génération.
Un outil est un sous-module chargé de tâches spécifiques pour accomplir une tâche. Votre application peut avoir plusieurs outils à sa disposition.
Les outils CASE (Computer Aided Software Engineering) sont des applications informatiques destinées à accroître la productivité dans le développement de logiciels en réduisant leur coût en termes de temps et d'argent. Ces outils aident à la réalisation de tâches telles que la conception du projet, l'estimation des coûts, la mise en œuvre du code, la compilation, la documentation et la détection d'erreurs.
Objectifs des outils CASE
- Améliorer la productivité dans le développement et la maintenance des logiciels.
- Augmenter la qualité des logiciels.
- Améliorer les délais et les coûts de développement et de maintenance.
- Améliorer la planification des projets.
- Augmenter la connaissance informatique de l'entreprise.
- Automatiser le développement, la documentation, la génération de code, les tests et la gestion des erreurs.
- Aider à la réutilisation, la portabilité et la standardisation de la documentation.
- Gérer les phases de développement avec un seul outil.
- Faciliter l'utilisation de méthodes d'ingénierie logicielle.
Classification des outils CASE
La classification des outils CASE prend en compte les paramètres suivants :
- Plates-formes de soutien.
- Phases du cycle de vie du développement des systèmes couvertes.
- Architecture des applications produites.
- Fonctionnalités.
Classification basée sur les phases de développement :
- Upper CASE (U-CASE) : outils qui aident à la planification, l'analyse des besoins et la stratégie de développement, utilisant entre autres les diagrammes UML.
- Middle CASE (M-CASE) : outils pour automatiser des tâches dans la conception et l'analyse d'applications.
- Lower CASE (L-CASE) : outils de génération de code semi-automatique, création de programmes de détection d'erreur, débogage et test. Ils automatisent également la documentation de l'application. Cela inclut les outils de développement rapide d'applications.
Histoire de l'ingénierie logicielle
Le terme « ingénierie logicielle » a été utilisé pour la première fois par Fritz Bauer lors d'une conférence en 1968. Selon Alan Davis, l'ingénierie logicielle est « l'application intelligente de principes éprouvés, de techniques, de langages et d'outils pour la création et le maintien, à un coût raisonnable, de logiciels qui répondent aux besoins des utilisateurs ».
1 La crise du logiciel
L'environnement actuel de développement de logiciels souffre de :
- Retards importants dans la planification.
- Productivité médiocre.
- Frais de maintenance élevés.
- Exigences qui deviennent obsolètes.
- Basse qualité et fiabilité.
Cette situation a été appelée « crise du logiciel ».
Comment définir la crise ?
Une crise est un tournant, un événement décisif. Cependant, pour le logiciel, il ne s'agit pas d'un point tournant, mais d'une évolution lente. La crise du logiciel est un problème chronique causé par un manque de formalisme, de méthodologie et d'outils de soutien.
2 Objectifs de l'ingénierie logicielle
Les objectifs de l'ingénierie logicielle sont les suivants :
- Améliorer la qualité des processus de fabrication et des logiciels produits.
- Augmenter la satisfaction au travail et la productivité des ingénieurs.
3 Mythes du logiciel
Mythes des développeurs
- Programme en cours d'exécution = fin des travaux
- Qualité = le programme s'exécute sans erreur
- Prestation de services = programme en cours
Mythes de la gestion
- Utilisation des normes
- Utilisation d'outils
- Mauvaise planification = augmentation des programmeurs
Mythes du client
- Conditions imposées comme un énoncé général des objectifs
- Flexibilité du logiciel aux changements
Ingénierie informatique
L'ingénierie informatique applique les fondamentaux de l'ingénierie, de l'informatique et de l'électronique au développement de systèmes informatiques et de communication intégrés, capables de traiter automatiquement l'information. Elle est basée sur la technologie électronique, qui permet aux ordinateurs d'interagir avec :
- Les systèmes physiques, en développant et contrôlant les interfaces de communication entre l'ordinateur et divers dispositifs mécaniques et électriques (systèmes d'acquisition de données, instrumentation virtuelle, commande de robot, systèmes d'éclairage, etc.).
Tendances en ingénierie logicielle
L'une des préoccupations les plus pressantes de l'industrie du logiciel est de créer des systèmes fiables et de meilleure qualité avec moins d'investissement en temps et en coût, pour résoudre des problèmes de plus en plus complexes. Il est nécessaire d'utiliser les avancées de l'ingénierie logicielle pour soulager la pression dans les différentes étapes du cycle de vie. La technologie orientée objet s'est avérée être un excellent outil pour résoudre des problèmes complexes, offrant modularité, adaptabilité, réutilisabilité et interopérabilité. La réutilisation conduit à un développement plus rapide et à des programmes de meilleure qualité. Les techniques orientées objet combinées à d'autres outils tels que les outils CASE, la programmation visuelle, les générateurs de code, les bases de données, les bibliothèques de classes, la technologie client-serveur, etc., peuvent fournir l'ampleur du changement nécessaire pour progresser. Ce chapitre décrit les principaux facteurs qui déterminent la qualité du logiciel et présente les principes et concepts de base de l'ingénierie logicielle pour produire des logiciels de haute qualité. L'ingénierie logicielle est la discipline qui offre des méthodes et techniques pour développer et maintenir des logiciels de qualité. Elle traite d'une variété de domaines informatiques, tels que les compilateurs, les systèmes d'exploitation, le développement Intranet/Internet, les phases du cycle de vie du développement des systèmes d'information, et s'applique à divers domaines (affaires, recherche scientifique, médecine, production, logistique, services bancaires, contrôle de la circulation, météorologie, droit, Internet, Intranet, etc.).