Génie Logiciel
Aperçu des sections
-
-
INTRODUCTION
Le terme de « Génie logiciel » a été introduit à la fin des années soixante lors d’une conférence tenue pour discuter de ce que l’on appelait alors (la crise du logiciel « software crisis ») … Le développement de logiciel était en crise. Les coûts du matériel chutaient alors que ceux du logiciel grimpaient en flèche. Il fallait de nouvelles techniques et de nouvelles méthodes pour contrôler la complexité inhérente aux grands systèmes logiciels. La crise du logiciel était perçue à travers ces symptômes :
La qualité du logiciel livré était souvent déficiente : Le produit ne satisfaisait pas les besoins de l’utilisateur, il consommait plus de ressources que prévu et il était à l’origine de pannes.
Les performances étaient très souvent médiocres (temps de réponse trop lents).
Le non-respect des délais prévus pour le développement de logiciels ne satisfaisant pas leurs cahiers des charges.
Les coûts de développement d’un logiciel étaient presque impossible à prévoir et étaient généralement prohibitifs (excessifs).
L’invisibilité du logiciel, ce qui veut dire qu’on s’apercevait souvent que le logiciel développé ne correspondait pas à la demande (on ne pouvait l’observer qu’en l’utilisant « trop tard »).
La maintenance du logiciel était difficile, coûteuse et souvent à l’origine de nouvelles erreurs.
Mais en pratique, il est indispensable d’adapter les logiciels car leurs environnements d’utilisation changent et les besoins des utilisateurs évoluent. Il est rare qu’on puisse réutiliser un logiciel existant ou un de ses composants pour confectionner un nouveau système, même si celui-ci comporte des fonctions similaires. Tous ces problèmes ont alors mené à l’émergence d’une discipline appelée « le génie logiciel ». Ainsi, Les outils de génie logiciel et les environnements de programmation pouvaient aider à faire face à ces problèmes à condition qu’ils soient eux-mêmes utilisés dans un cadre méthodologiquement bien défini.
Nul n’ignore que les plans logiciels sont connus pour leurs pléthores de budget, et leurs cahiers des charges non respectées. De façon générale, le développement de logiciel est une activité complexe, qui est loin de se réduire à la programmation. Le développement de logiciels, en particulier lorsque les programmes ont une certaine taille, nécessite d’adopter une méthode de développement, qui permet d’assister une ou plusieurs étapes du cycle de vie de logiciel.
Parmi les méthodes de développement, les approches objet, issues de la programmation objet, sont basées sur une modélisation du domaine d’application. Cette modélisation a pour but de faciliter la communication avec les utilisateurs, de réduire la complexité en proposant des vues à différents niveaux d’abstraction, de guider la construction du logiciel et de documenter les différents choix de conception.
Le génie logiciel (software engineering) représente l'application de principes d'ingénierie au domaine de la création de logiciels. Il consiste à identifier et à utiliser des méthodes, des pratiques et des outils permettant de maximiser les chances de réussite d'un projet logiciel. Il s'agit d'une science récente dont l'origine remonte aux années 1970.
A cette époque, l'augmentation de la puissance matérielle a permis de réaliser des logiciels plus complexes mais souffrant de nouveaux défauts : délais non respectés, coûts de production et d'entretien élevés, manque de fiabilité et de performances. Cette tendance se poursuit encore aujourd'hui. L'apparition du génie logiciel est une réponse aux défis posés par la complexification des logiciels et de l'activité qui vise à les produire.
-
-
OBJECTS DU COURS.
Ce cours a pour objectif principal, d’initier les étudiants, à la conception des applications informatiques de façon systématique (méthodique) et reproductible (rééditable); en les incitant à rechercher et établir les fonctionnalités d'une application, et à les modéliser sous forme de cas d'utilisation et de scénarios ainsi que rechercher les classes et les acteurs nécessaires à la conception de l'application. Et, D’une façon spécifique ce cours vise à :
Acquérir aux étudiants qui auront suivi ce cours, les bonnes pratiques de conception, comme l'utilisation de patron de conception (design pattern), le découpage en couches de l’architecture, la structuration en paquetages et le maquettage ;
Maîtriser des techniques de génie logiciel, en se focalisant sur les approches par objets et par composants ;
Présenter un aperçu de l'état de l'art en matière de génie logiciel.
Exposer les principaux courants de pensées en matière de développement logiciel.
Proposer un ensemble de pratiques pragmatiques qui permettent de survivre à un projet de développement de logiciel.
DEFINITION DES CONCEPTS CLES.
Le génie logiciel est un domaine des sciences de l’ingénieur dont l’objet d’étude est la conception, la fabrication, et la maintenance des systèmes informatiques complexes.
Un système est un ensemble d’éléments interagissant entre eux suivant un certain nombre de principes et de règles dans le but de réaliser un objectif.
Un logiciel est un ensemble d’entités nécessaires au fonctionnement d’un processus de traitement automatique de l’information. Parmi ces entités, on trouve par exemple : des programmes (en format code source ou exécutables); des documentations d’utilisation ;des informations de configuration.
Un modèle : est une représentation schématique de la réalité.
Une base de Données : ensemble de données (de l'organisation) structurées et liées entre elles : stocké sur support à accès direct (disque magnétique) ; géré par un SGBD (Système de Gestion de Bases de Données), et accessible par un ensemble d'applications.
Une analyse : c’est un processus d'examen de l'existant .
Une Conception : est un processus de définition de la future application informatique.
Un système d'Information : ensemble de moyens (humains et matériels) et des méthodes se rapportant au traitement de l'information d'une organisation.
Plan du cours .
- La justification du Génie Logiciel. (GL).
Le GL est une approche systématique du développement, de l’exploitation et de la maintenance de système logiciel. C’est l’application de principes, des pratiques et de méthodologie d’ingénieries à la conception’ au développement, aux tests et au déploiement de solutions logicielles de haute qualité.
- Pourquoi faire le GL ?
Le GL est l’essentiel pour façonner la façon dont nous interagissons avec l’environnement numérique rapide d’aujourd’hui. Bien que le terme soit utilisé à tort ou à travers, le GL est une approche disciplinée du développement des systèmes logiciels.
Car, m’ingénierie logicielle est une carrière lucrative, les ingénieurs logiciels bénéficient souvent des revenus les plus élevés. Grâce à la demande croissante d’ingénieurs logiciels t à leurs compétences spécialisées, ils peuvent obtenir des salaires élevés.
Le génie logiciel est un domaine des sciences de l’ingénieur dont l’objet d’étude est la conception, la fabrication, et la maintenance des systèmes informatiques complexes.
-
-
-
-
-