1.1 - Etat des projets logiciels. 1

1.2 - Logiciel 2

1.3 - Engineering (Ingénierie). 3

1.4 - Génie logiciel 3

1.5 - Processus logiciel 4

1.6 - Types de documents. 6

 

 

 

 

1.1 - Etat des projets logiciels

Les statistiques de l’analyse de 8380 projets informatiques de 365 compagnies effectuée par le Standish Group International en 1995 montrent que (http://www.standishgroup.com) :

·         1 projet sur 6 (16%) de projets sont réalisés dans les délais et en respectant les coûts prévus

·         1 projet sur 3 échoue (annulé en cours de développement)

·         Dans 53% des projets réalisés les coûts et les délais fixés à l’avance sont dépassés.

 

D’après une enquête mondiale réalisée par le Cabinet Deloitte Consulting en 1998, les causes d’échec les plus probables sont :

• Résistances au changement : 82 % ;

• Engagement de la direction insuffisant : 72 % ;

• Objectifs non réalistes : 65 % ;

• Faiblesses dans la conduite de projet : 54 % ;

• Raisons du changement non convaincantes : 46 % ;

• Compétences de l’équipe projet insuffisantes : 44 % ;

• Périmètre du projet mal défini : 44 % ;

• Pas de gestion du changement : 43 % ;

• Absence de vision transversale : 41 % ;

• Aspects technologiques négligés : 36 %.

Enfin, d’après une autre enquête du Stanish Group International (« Chaos report »)

En 1998 sur 7500 applications informatiques, les projets qui réussissent s’expliquent

Par la combinaison des facteurs suivants (total de 100 %) :

• Implication des utilisateurs : 20 % ;

• Soutien des responsables : 15 % ;

• Objectifs clairs : 15 % ;

• Chef de projet expérimenté : 15 % ;

• Jalonnement du projet : 10 % ;

• Planification adéquate : 5 % ;

• Appropriation : 5 % ;

• Equipe compétente : 5 % ;

• Besoins stables : 5 % ;

• Autres : 5 %.

Ces informations montrent clairement le défi qui face le domaine du génie logiciel.

1.2 - Logiciel

Le Webster’s New Intercollegiate Dictionary définit le logiciel comme suit :

“Software is the entire set of programs, procedures and related documentation associated with a system and especially a computer system.”

Blum (1992) donne la définition suivante :

“Software is the detailed instructions that control the operation of a computer system. Its functions are to (1) manage the computer resources of the organisation, (2) provide tools for human beings to take advantage of these resources, and (3) act as an intermediary between organisations and stored information.”

Le journal officiel français le définit comme « l’ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au fonctionnement d'un ensemble de traitements de l'information' » (arrêté du 22 déc. 1981)

A partir de ces définitions, il est important de noter que, contrairement à l’idée populaire, le logiciel n’est pas formé seulement des programmes (code source) mais il est composé aussi de procédures et de la documentation nécessaires pour comprendre, maintenir, installer et utiliser le logiciel.

Le logiciel comme partie du système d’information a ses propres caractéristiques. Ces propriétés le rend différent des autres produits (ouvrages) et marquent la problématique de sa qualité :

• il est immatériel ;

• il est reproductible ;

• il nécessite une maintenance ;

• il possède une dimension subjective

 

1.3 - Engineering (Ingénierie)

Le terme engineering est définit par le New Intercollegiate Webster’s Dictionary, 1979 comme :

“the application of science and mathematics by which the properties of matter and the sources

of energy in nature are made useful to man in structures, machines, products, systems and

processes.”

‘Étude d'un projet industriel sous tous ses aspects (techniques, économiques, financiers, monétaires et sociaux) et qui nécessite un travail de synthèse coordonnant les travaux de plusieurs équipes de spécialistes’. Dictionnaire LAROUSSE

Donc on peut dire que l’ingénierie est l’application de la science pour résoudre des problèmes réels.

1.4 -  Génie logiciel

Ce domaine a vu le jour entre le 7 et le 11 octobre 1968, à Garmisch-Partenkirchen, sous le parrainage de l’OTAN comme réponse à la crise logicielle.  Cette crise se manifeste par les symptômes suivants qui persistent à ce jour malgré les avancées réalisées dans ce domaine : 

1)      Le logiciel n’est pas fiable, 

2)      Le logiciel ne répond pas aux attentes de ses clients (n’est pas valide).

3)      Il est difficile de respecter les délais et les budgets prévus à l’avance.

4)      La qualité du logiciel n’est pas satisfaisante

5)      Il est difficile de mesurer la progression du logiciel

6)      Il est difficile de comprendre comment travaille le groupe de développeurs.

Le Génie logiciel en anglais software engineering est définit : « Discipline de l’informatique qui regroupe un ensemble de connaissances, de procédés et des acquis scientifiques pour la conception, la mise en œuvre, la vérification et la documentation de logiciels dans le but d’en optimiser la production, le support et la qualité ». (Grand dict. terminologique).

Selon L’IEEE 610.12 : Le Génie Logiciel (GL) est l’application d’une approche systématique, disciplinée et quantifiable au développement, à l’exploitation et à la maintenance du logiciel. C’est-à-dire, l’application de l’ingénierie au logiciel.

Une définition récente proposée par  Wang and King (2000) est :

“Software engineering is a discipline that adopts engineering approaches such as established

methodologies, process, tools, standards, organisation methods, management methods, quality

assurance systems, and the like to develop large-scale software with high productivity, low

cost, controllable quality, and measurement development schedules.”

 

Le GL se fixe comme objectif le développement des logiciels qui respecte la règle du CQFD suivante : Coût Qualité Fonctionnalités Délai.

·         Le logiciel développé doit offrir les fonctionnalités attendues par ses utilisateurs ;

·         Les coûts du développement fixés à l’avance ne doivent pas être dépassés.

·         Les délais fixés à l’avance ne doivent pas être dépassés.

·         La qualité du logiciel doit être conforme au contrat de service initial.

1.5 - Processus logiciel

Un processus logiciel est un ensemble d'activités liées selon un certain ordre. Ces activités dirigent la production du système logiciel. Vu l’existence de différents types de logiciels, il n’y a pas de méthode universelle applicable à tous ces types. Par conséquent, il n'existe aucun processus logiciel universel.

Les entreprises appliquent différents processus selon le type de système logiciel à développer, les besoins de client et l’expérience de l’entreprise.

Selon Sommerville, Bien qu’il existe différents processus logiciels, ils doivent tous inclure, sous une forme ou une autre, quatre activités fondamentales :

1.La Spécification du logiciel : définition de besoins fonctionnels et non fonctionnels.

2. Le développement de logiciel : production du logiciel répondants aux spécifications.

3. Validation du logiciel :  Le logiciel doit être validé pour s’assurer qu’il fait ce que le client veut.

4. Evolution du logiciel :  Le logiciel doit évoluer pour répondre aux besoins changeants des clients.

 

Ces activités sont des activités complexes et sont composées de sous-activités telles que :

1.                  Etude de faisabilité – étudier si le développement est bénéfique pour l’entreprise.

2.                  Etudes des besoins - Déterminer les besoins fonctionnels et non fonctionnels.

3.                   Planification du projet

 

 - Déterminer comment développer le logiciel.

 -Analyse des coûts : faire des estimations de coûts.

 -Planification - Création d'un calendrier pour le développement.

 -Assurance de la qualité des logiciels - Déterminer les activités qui vous aideront à assurer la    qualité du produit.

 -Work-breakdown structure—déterminer les sous-taches nécessaire pour réaliser le produit.

4.   Conception - Déterminer comment le logiciel doit fournir les fonctionnalités.

Conception architecturale - Conception de la structure du système.

Conception d'interface - Spécification des interfaces entre les parties de système.

Conception de la base de données : conception de la structure de la base de données.

Conception détaillée - Conception de chaque partie de produit (algorithme et structure de données)

5.                  Implémentation – production du logiciel en utilisant une technologie de choix.

6.                  Test - Exécution du logiciel avec des données pour trouver les défaillances.

 Les tests à faire sont : Tests unitaires, Test d'intégration, Test du système, Test d’acceptation qui est un test effectué pour valider les besoins de client.

Test de régression : exécution   sur la nouvelle version de produit, les tests effectués sur la version précédente   pour voir si la nouvelle version conserve les capacités précédentes.

7.                  Livraison - Fournir au client une solution logicielle efficace.

8.                  Installation — mettre la solution sur le site opérationnel du client.

9.                  Formation : faire apprendre aux utilisateurs à utiliser le logiciel.

10.              Maintenance - Mise à jour et amélioration du logiciel pour garantir la continuité de son utilité.

Le résultat de la réalisation de ces activités se matérialise par la production de différents types de documents. Ces documents gardent trace du travail effectué.

1.6 - Types de documents

1.                  Enoncé des travaux (statement of work) :  description préliminaire des besoins. Ce document est généralement créé par client.

2.                  Spécification des exigences logicielle (Software requirements specification ) : description de ce que doit faire le logiciel à développer.

2.1  Le modèle objet : montre les principaux objets et classes.

      2.2   les scénarios des cas d’utilisation : montre les comportements possibles du système de     point de vue utilisateur.

3.  Planning du projet : montre les taches, les relations entre eux et l’estimation du temps et de l’effort nécessaire pour les accomplir.

4.  Plan des tests : décrit comment le software doit être testé.

     4.1 Tests d’acceptation : tests conçus par le client pour déterminer si le system est valide ou non.

5.  Conception de logiciel : décrit la structure du logiciel.

5.1 Conception architecturale : représentation de haut niveau de la structure du système.

5.2 Conception détaillée : la conception des modules de bas niveau ou les objets qui composent le système.

6.  Plan de l’assurance de la qualité logicielle (SQA plan) : décrit la suite des activités à effectuer pour assurer la qualité du système.

7.  Manuel d’utilisateur : décrit comment utiliser le logiciel.

8.  Source code : le code du produit développé.

9.  Rapport de test : liste les tests effectués et comment il s’est comporté le system.

10.  Rapport des bugs : montre les défaillances de systèmes.

 

 


آخر تعديل: الأحد، 13 مارس 2022، 8:10 PM