© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev
© Petko ValtchevUniversité de Montréal Janvier Bases Sommaire l La notion de logiciel l Génie logiciel, lingénierie du logiciel l Rappels l La qualité des logiciels l Le processus de production de logiciel
© Petko ValtchevUniversité de Montréal Janvier Bases Une définition… Un logiciel est un ensemble dentités qui forme une configuration incluant: des programmes des données des documents Un système logiciel est en général intégré au sein dun système plus grand qui comporte également des composantes matérielles et peut inclure dautres logiciels ainsi que des composantes humaines.
© Petko ValtchevUniversité de Montréal Janvier Bases Définitions l Quest-ce que cest que le Génie Logiciel? « Ensemble des connaissances, des procédés et des acquis scientifiques et techniques mis en application pour la conception, le développement, la vérification et la documentation de logiciels, dans le but d'en optimaliser la production, le support et la qualité. » Office de la langue française, 2000 « (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is the application of engineering to software. (2) The study of approaches as in (1). » IEEE Standards Collection: Software Engineering
© Petko ValtchevUniversité de Montréal Janvier Bases Software Engineering Technologie par couches Génie Logiciel orienté-qualité processus (modèle) méthodes outils [Pressman 2001]
© Petko ValtchevUniversité de Montréal Janvier Bases Les défis du GL l Minimiser les coûts de développement tout en répondant aux exigences croissantes l Réduire les temps de développement. l Assurer la qualité des logiciels produits. l Instituer lusage des nouvelles technologies (méthodes et outils) du génie logiciel. l Assurer la maintenance du nombre croissant de logiciels (vieillissants!!)? l Conserver un rythme de production logicielle qui puisse réponde à la demande
© Petko ValtchevUniversité de Montréal Janvier Bases Sommaire l Logiciel, tentative de définition l Génie logiciel, aspects historiques l La qualité des logiciels l Le processus de production
© Petko ValtchevUniversité de Montréal Janvier Bases Qualité l Quest-ce que cest? (Question ouverte) l Types de facteurs: l internes (visibles par les développeurs), l externes (visibles par les utilisateurs) l Quelques critères : l Validité, Fiabilité (ou robustesse), Efficacité l Extensibilité, Réutilisabilité, Compatibilité, Portabilité l Vérifiabilité, Intégrité l Facilité d'emploi
© Petko ValtchevUniversité de Montréal Janvier Bases Facteurs de Qualité l Validité = ? l Aptitude d'un produit logiciel à remplir exactement ses fonctions (définies par le document des spécifications). l Fiabilité = ? l Capacité dun logiciel de garder un fonctionnement correct malgré la dégradation dans les conditions externes (lenvironnement). l Extensibilité = ? l Facilité avec laquelle un logiciel se prête à une modification ou à une extension des fonctions qui lui sont demandées.
© Petko ValtchevUniversité de Montréal Janvier Bases Facteurs de Qualité ( suite ) l Vérifiabilité = ? l Facilité de préparation des procédures de test. l Intégrité = ? l Aptitude d'un logiciel à protéger son code et ses données contre des accès non autorisés. l Réutilisabilité = ? l Aptitude d'un logiciel à être réutilisé, en intégral ou en partie, dans de nouvelles applications.
© Petko ValtchevUniversité de Montréal Janvier Bases Quality is free Qualité Effort
© Petko ValtchevUniversité de Montréal Janvier Bases Sommaire l Logiciel, tentative de définition l Génie logiciel, aspects historiques l La qualité des logiciels l Le processus de production l Concepts de base l Nature du processus et phases l Modèles de processus
© Petko ValtchevUniversité de Montréal Janvier Bases Software Engineering Le processus… Génie Logiciel orienté-qualité processus (modèle) méthodes outils [Pressman 2001]
© Petko ValtchevUniversité de Montréal Janvier Bases Les Questions Questions fondamentales: l Quel est le problème à résoudre? l Quelles sont les fonctionnalités désirées du logiciel? l Comment sera conçu et construit le logiciel? l Quelle technique sera utilisée dans la détection des erreurs (bogues) dans le logiciel l Comment le logiciel sera-t-il maintenu (corrigé et/ou amélioré)?
© Petko ValtchevUniversité de Montréal Janvier Bases Les Activités Les Activités constituant le Processus: 1. Acquisition des besoins 2. Analyse 3. Conception 4. Implémentation 5. Vérification et validation 6. Maintenance 7. Retrait + Gestion des ressources humaines et matérielles
© Petko ValtchevUniversité de Montréal Janvier Bases Définitions « Processus: fournit un cadre pour le développement en apportant des réponses aux principales questions dordre organisationnel. » Pressman, 2001 Comment gérer les activités du projet? Comment utiliser les ressources techniques? Comment produire les différents documents (pour décrire modèles, données, avancement du projet, etc.)? Comment fixer les objectifs du projet à long, moyen et court terme? Comment gérer les éventuels changements? Ex. Rational Unified Process, Extreme Programming, etc.
© Petko ValtchevUniversité de Montréal Janvier Bases Définitions ( suite ) « Méthode : Décrit une manière daborder les différentes activités (souvent un sous-ensemble) du développement du logiciel en proposant des principes, des théories, des formalismes, des techniques de modélisation et de spécification pour réaliser ces activités. » Pressman, 2001 Ex. OMT, OOA/OOD, Objectory, etc.
© Petko ValtchevUniversité de Montréal Janvier Bases Définitions ( fin ) « Outil : Support automatisé ou semi-automatisé pour lapplication dune méthode ou dun processus. » Pressman, 2001 Atelier de Génie Logiciel: Ensemble cohérent d'outils informatiques formant un environnement d'aide à la conception, au développement et à la mise au point de logiciels d'application spécialisés. Computer-Aided Software Engineering (CASE) Tool