Définition 1 : un logiciel est un programme ou un ensemble de programmes qui, quand il(s) s 'exécute(nt) réalise(nt) la (les) fonction(s) demandée(s) dans les conditions prescrites.
Définition 2 : un logiciel est :
- un programme ou un ensemble de programmes
- l'ensemble des structures de données qui permettent au programme de manipuler l'information
- l'ensemble des documents qui permettent l'installation, l'opération, la réparation et l'évolution des programmes (...)
[...] non oui < number > Les outils de modélisation Le modèle Entité/Relation Domaine d 'application: décrire les données et leurs interrelations Intérêt: abstraction, contenu sémantique Limite: pas de hiérarchie ni de raffinements successifs Les machines d 'états finis Domaine d 'application: modéliser l'évolution d 'un système en réponse à des événements Intérêt: facile à automatiser, à vérifier Limite: pas de spécification des processus parallèles Les réseaux de Pétri Domaine d 'application: modéliser le comportement de systèmes dynamiques à événements discrets Intérêt: modélisation des processus concurrents Limite: les conflits < number > Les Méthodes d'analyse Dans les méthodes on retrouve les concepts de base la construction de modèles la description du général au particulier la recherche d'une solution d'ensemble (données, traitements, organisation de travail,etc.) la préoccupation constante pour une solution de qualité l'adaptabilité de la solution implantée par rapport à l'évolution de son environnement (mission, lois et règlements, nouvelles technologies) < number > Techniques d'analyse et de spécification Systémiques (Merise) Fonctionnelles/Orientées traitements (Actigrammes SADT, DFD, MCT Merise) Fonctionnelles/Orientées données (Datagrammes SADT, MCD Merise, Dynamiques (SART) Par types abstraits (spécifications algébriques) Classification des spécifications Informelles (liberté totale pour l 'auteur) Standardisées (plan-type) Semi-formelles (SADT, DFD, Merise) Formelles VDM, Lotos) < number > Méthode orientée flux de données Entité externe: source ou destination de données Processus: activité qui manipule des données Flux de données: cheminement des données Dépôt de données: collection de données Règles de construction des Diagrammes de Flux de Données (DFD) le niveau 01 présente le système comme un seul processus: diagramme de contexte les flots indiquent des transferts de données tous les composants des diagrammes doivent être étiquetés ne montrer un dépôt de données qu'à partir du moment où il est interface entre plusieurs processus les raffinements s'arrêtent lorsque les processus ne se décomposent plus < number > Les diagrammes de flux de données Diagramme de contexte associé à un diagramme de flot de données représente les échanges de flots de données avec les acteurs extérieurs du système à modéliser Diagrammes de niveau 1 et plus DFD niveau 1construit en prenant le processus représentant le système en le découpant en d'autres unités de traitement DFDs niveau i construits en détaillant les processus définis au niveau i-1 en montrant les flots de données entre ces unités Les Diagrammes de Flux de Données E1 E E3 Diagramme de contexte Niveau 1 Niveau 2 Méthode orientée flux de données Résultat de la méthode ensemble de Diagrammes de Flux avec le nombre de niveaux de raffinements nécessaires dictionnaire des données qui documente la totalité du système tout au long du développement description en pseudo code des algorithmes Avantages méthode relativement formelle applique tous les principes d'analyse méthode facile à apprendre Faiblesses absence d 'indication du flot de contrôle faiblesse des outils de description de la logique des traitements < number > Les Diagrammes de Flux de Données Un modèle de flux de données peut jouer deux rôles: Modéliser de façon détaillée et exhaustive toutes les activités/procédures d'une organisation de taille moyenne dans le contexte d'une méthode de conception Représenter les différents domaines d'activités de l'organisation ainsi que de ses partenaires (utilisation d 'une matrice de flux de données) < number > Conclusion Analyse et Spécification Il existe une correspondance biunivoque entre composants logiciels et services rendus à l 'utilisateur Il n'existe pas de « guide » qui indique la méthode la plus adaptée. [...]
[...] Sommaire Introduction au génie logiciel Principes généraux en génie logiciel Modèles de développement Expression des besoins Analyse et spécification Conception Programmation Mise au point Maintenance Gestion de la configuration < number > Introduction au Génie Logiciel Les logiciels Qualité des produits logiciels Qualité du processus logiciel Complexité des logiciels Les projets logiciels Rôle gestionnaires et informaticiens < number > Les logiciels Définition un logiciel est un programme ou un ensemble de programmes qui, quand il(s) s 'exécute(nt) réalise(nt) la (les) fonction(s) demandée(s) dans les conditions prescrites Définition un logiciel est: - un programme ou un ensemble de programmes - l'ensemble des structures de données qui permettent au programme de manipuler l 'information - l'ensemble des documents qui permettent l 'installation, l 'opération, la réparation et l'évolution des programmes < number > Produits logiciels Définition: conformité à des besoins fonctionnels et de performance explicités, à des standards professionnels de développement explicitement documentés, à des caractéristiques implicites attendues de tout logiciel développé de manière professionnelle Deux types de produits logiciels Produit générique: système autonome produit par une société de développement et vendu au public Produit sur mesure: système commandé par un client spécifique et développé par un contracteur < number > Correct:ou validité: aptitude d'un produit à réaliser exactement les tâches définies par sa spécification Fiable:capacité à effectuer les reprises nécessaires lors des fonctionnements logiciels (tolérance aux pannes Robustesse: aptitude d 'un logiciel à fonctionner même dans des conditions anormales qui n'ont pas été anticipées dans les spécifications Vérifiable:capacité à faciliter la préparation de procédures de tests et de vérification Performant:temps, espace Portable: Extensible:facilité d'adaptation du logiciel aux changements de spécification (modifiabilité) Réutilisabilité:aptitude d'un logiciel à être utilisé en tout ou partie dans de nouvelles applications Interconnectabilité: Interconnectable Qualités du produit logiciel Qualités externes Correct, Fiable, Robuste, Vérifiable, Performant, Portable, Extensible, Réutilisable, Interconnectable Qualités internes Lisible, Modulaire, Testable, Maintenable Qualités du processus logiciel Les activités requises pour développer un système logiciel sont: Spécification des besoins et des contraintes Modélisation du système Construction du système Test et vérification que le système est conforme aux spécifications requises Installation du système dans son contexte et vérification qu'il est opérationnel Correction des erreurs et évolution du système Qualités du processus: Facilité de compréhension, Visibilité, Soutenabilité, Acceptabilité, Fiabilité, Robustesse, Maintenabilité, Rapidité Complexité des logiciels Difficile de les concevoir et les développer autrement que par une équipe Complexité engendrée par le nombre d'intervenants dans le développement la taille du code la distribution et le parallélisme les systèmes temps réel le contrôle des systèmes critiques Classification par fonctionnalité (système d'information, système de communication, systèmes transactionnels, systèmes experts, ) < number > Les Projets Logiciels Un projet logiciel est un processus qui permet de produire un logiciel répondant aux besoins d 'un client, dans un délai fixé, à un coût fixé La gestion de projet: organiser, planifier, ordonnancer les activités et prévoir en estimant le coût, les durées et le personnel Caractéristiques une date de début, des objectifs et des contraintes, des moyens, des ressources, des délais, un planning, un plan de développement, des étapes contractuelles, des responsabilités bien établies Problèmes dépassement de budgets, de délais, inadéquation aux besoins client, logiciel livré mais non ou mal utilisé, maintenance peut consommer jusqu 'à 80% des activités des équipes de développement, les usagers se plaignent de la mauvaise qualité ou qualité insuffisante, de la fiabilité ou de la convivialité des logiciels < number > Rôle gestionnaires et informaticiens Tâches dédiées aux gestionnaires Déterminer le coût Déterminer l'effort nécessaire (personnes, durée) Fixer planning et allocation de tâches aux personnes Déterminer la productivité des personnes (salaires) Déterminer la qualité du logiciel Tâches réalisées par les informaticiens Participer à la définition non ambiguë des besoins Étudier la faisabilité S'assurer de la conformité Respecter les délais Contrôler les différents attributs de qualité Choisir les méthodes, outils et langages de développement Développer le logiciel Organisation des activités Échéancier de projets Découper le projet en tâches et estimer temps et ressources pour chaque tâche Organiser les tâches de façon concurrente pour optimiser l'utilisation du personnel Minimiser les dépendances entre tâches pour éviter les délais Coût du projet Composants du coût (matériel, logiciel, formation, effort, salaires, bâtiments, éclairage, communications, etc.) Productivité des intervenants Relation non simple entre le coût du logiciel et le prix facturé au client Temps de développement Temps requis par activité Facteurs affectant la productivité (expérience dans le domaine, qualité du processus, taille du projet, assistance technique, environnement de travail) Principes généraux en Génie Logiciel Constat Solutions Définition Objectifs Principes < number > Constat Un constat s'impose vers les années 70 difficulté à développer et maintenir des programmes de grosse taille danger de l'utilisation incontrôlée des branchements imposition du concept et des principes de la programmation structurée découpage des programmes en unités conception descendante emploi de langages évolués < number > progrès importants: technologie, parallélisme, réseaux, communication Homme-Machine, I.A. [...]
[...] taille et compléxité des programmes exigence de puissance, qualité, fiabilié rôle de la communication dans un projet évolution coût logiciel Solutions Solutions Intellectuelles (structuration, abstraction) Techniques (disposer d'outils supportant ces concepts) Organisationnelles (normalisation production) GENIE X codification de la connaissance scientifique et technologique sous une forme utile à l 'ingénieur < number > Définition Définition: On appelle Génie Logiciel l'application de méthodes scientifiques au développement de théories, concepts, méthodes, techniques, langages, outils favorisant la production ou la réutilisation de produits logiciels de qualité Les idées qui se dégagent de la définition approche systématique de l'ingénieur préoccupation pour toute la durée de vie du logiciel préoccupation de qualité préoccupations économiques < number > Eléments clés du Génie Logiciel Trois éléments clés: Méthodes consistent en la planification et l'estimation des projets, l'analyse des besoins, la conception, l'architecture des programmes, la définition des algorithmes, le codage, le test et la maintenance Outils consistent en des supports automatiques ou semi-automatiques pour la mise en œuvre de ces méthodes Procédures définissent la séquence selon laquelle les méthodes sont utilisées, les contrôles pour assurer une bonne qualité de logiciel, les échéanciers de progression < number > Objectifs Réduire les coûts et les temps de développement Améliorer la qualité du logiciel Normaliser la production Augmenter la productivité Partager des connaissances sur le système et sur la façon de le construire Faciliter l'apprentissage sur l'architecture < number > Les Principes Résolution de problèmes Domaine des données Domaine des fonctions Abstraction Raffinements successifs Primitives < number > ensemble discret(séquence, hiérarchie, combinaison des deux) de transformations de l'énoncé du problème en solution. [...]
[...] Qui l 'utilise ? [...]
[...] temps mort départ Exploitation vieillissement Implantation Réalisation Conception Buts/Objectifs/ Contraintes naissance Gestation Maintenance, Evolution < number > Etude des besoins: perception du problème, définition des services escomptés du système, performance, interfaces Fonctionnalités et contraintes Spécifications fonctionnelles, analyse des besoins(orienté utilisateur), spécifications des besoins(destinés au concepteur du logiciel) Conception générale: architecture générale du logiciel Conception détaillée: spécification de modules, de la banque de données, description des E/S Codage et tests unitaires: fabrication de tous les composants du système et test de chacun des programmes individuellement Tests d'intégration: logique interne, fonctionnement externe Implantation: montage du système dans son environnement opérationnel, formation des usagers, mise en opération Etapes du processus de développement et cycle de vie Analyse des besoins ou Etude d'opportunité ou Planification ou Schéma directeur Etude préliminaire ou Etude conceptuelle ou Analyse fonctionnelle ou Analyse conceptuelle Etape logique ou Conception technique ou Etude technique Réalisation ou Mise en œuvre ou Mise au point ou Mise en production ou Installation ou Implantation 4 Maintenance 5 départ Buts,objectifs,Contraintes Gestation Réalisation/ Implantation Vieillissement,exploitation maintenance, évolution mort < number > Cycle de vie d'une solution informatique Analyse des besoins Spécifications Choix d'une solution Tenir compte de l'existant Installation Entretien < number > Modèle en Cascade Faisabilité du système et étude des besoins Validation Analyse et spécification des besoins Validation Conception du produit Vérification Conception détaillée Vérification Codage et Validation tests unitaires Mise au point Vérification Et intégration du produit < number > Caractéristiques Modèle en Cascade Séquentialité: chaque étape doit être complètement terminée avant que la suivante ne débute Concept de livrables: chaque étape résulte en la livraison de produits définis à l 'avance. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture