Vous êtes sur la page 1sur 7

1 : Citez les qualités que doit posséder un Logiciel ?

 La validité : c’est l’aptitude d’un produit logiciel à remplir exactement ces


fonctions définies par le cahier de charge et les spécifications.

 L’extensibilité : c’est la facilité avec la quelle un logiciel se prête à une


modification ou à une extension des fonctions qui lui sont demandées.

 La réutilisation :c’est l’aptitude d’un produit logiciel à être réutilisé , en tout ou


en partie dans deux nouvelles applications .

 Compatibilité :c’est la facilité avec la quelle un logiciel peut être combiné avec
d’autres logiciels .

 L a portabilité : c’est la facilité avec laquelle un logiciel peut être transféré sous
différents environnements matériels et logiciels.

 La vérifiabilité : c’est la facilité de préparations des procédures de tests .

 L’intégrité : c’est l’aptitude d’un logiciel à protéger son code et ses données
contre des accès non autorisés.

 La facilité d’emploi : la facilite d’apprentissage , utilisation, les préparations des


données , interprétation des erreurs et de rattrapage en cas d’erreurs d’utilisation.

2- Une définition du Génie-Logiciel :

Le génie logiciel est un domaine de recherche dont l’objectif est d’optimiser la duré et le coût
de développement des logiciels ; c’est aussi une discipline qui permet d’établir et d’utiliser
les principes solides de conception pour obtenir du logiciel fiable capable de fonctionner sur
des ordinateurs.

3- Types de maintenance du logiciel:

1) Maintenance perfective (évolutive)


Elle consiste à maintenir les fonctionnalités antérieures tout en ajoutant
des nouvelles fonctionnalités qui modifient profondément l'architecture.
Exemple : changement de OS , changement de SGBD…

2) Maintenance adaptative
Ajout de petites fonctionnalités qui ne modifie pas l'architecture.
Exemple : Passage de données par fichiers…
3) Maintenance corrective
Critère important de la qualité qui corrige les anomalies ou erreurs mises à
jour par le
client et non pas lors des tests de vérification et de validation

4- Informations nécessaires por la maintenance logiciel

De l’équipe de développement :
- Si elle est encore en place,
-Analyse : spécifications fonctionnelles,
-Listing de sources,
-Dossier de test
-Algorithmes et les références
-Options de compilations, standard utilisés…
De l’utilisateur :
-Anomalie ou erreur (description précise), ou nouvelle fonctionnalité,
-Contexte de l’erreur ou fonction,
-Données du client,
- Environnement technique…

5- Avantages et inconvénients du modèle en cascade

Les avantages :

- Processus clair et systématique


- Facile à comprendre
- Visibilité des progrès et des résultats
- Cadre de référence pour la planification

Les inconvénients :

- Trop rigide
- manque de flexibilité pour les imprévus ;

6 - A quelle étape est établie le cahier des charges, et quels sont ces objectifs

le cahier des charges est produit dans l’étape d’analyse des besoins. Le cahier des charges est
l’expression des besoins fonctionnels et techniques de la solution. C’est un outil de travail, de
référence, de contrôle, d’évaluation et de dialogue entre les différents acteurs du projet.

7 - En quoi consiste l’étape de conception dans le cycle de développement d’un logiciel et


quelle est la différence entre conception générale et conception détaillée ?

La phase de conception permet de trouver des solutions pour la réalisation du logiciel. Il


existe la conception générale et la conception détaillée :
- La conception générale permet la définition de l’architecture générale du logiciel
- La conception détaillée permet la spécification de chacun des composants
8- Définir un projet, citer les activités principales de la gestion de projet ?

1. un projet est un ensemble des taches permettant:


• Résoudre un besoin exprimé.
• Comprend les ressources nécessaires à sa réalisation (humaines, financières,
matérielles, logiciels, logistiques,..).
• A une durée finie caractérisée par une date de début et une date de fin.
• Piloté par un chef de projet.
Les activités principales de la gestion de projets:
• La planification.
• L'estimation des coûts.
• Ordonnancement.
• Personnel.
• Direction.
• Surveillance.
• Correction.
• Innovation.
• Rapportage. Ect…

9- Définir l'analyse des besoins? Et classifier les besoins?

La définition de l'analyse des besoins constituent en principe la première phase du cycle


de vie d'un logiciel et consiste en l'activité visant à établir quelle fonctionnalité le système doit
fournir et les contraintes auxquelles il sera soumis.
Cette étape doit aboutir à l'élaboration des documents de définition des besoins (le cahier des
charges, souvent exprimés en langage naturel).
Les besoins exprimés doivent constituer un ensemble complet et cohérent, la complétude
signifie que tous les services requis par l'utilisateur doivent être mentionnés et la cohérence
que les définitions des besoins ne doivent pas être contradictoire.

Classification des besoins:

Les besoins peuvent être classifiés ainsi:


• Besoins fonctionnels: correspondant aux services attendues par l'utilisateur.
• Besoins en matière de BD: dans une BD le système y trouve ces informations
et y ajoute d'autres pendant son fonctionnement. Ces informations doivent
refléter l'activité des utilisateurs d'une manière intégrée et cohérente.
• Besoins non fonctionnels: correspondant aux restrictions (limitations) ou aux
contraintes accès sur des fonctions du système tel que: le temps de réponse,
sûreté et protection des données.

10- Quelle est la différence entre le test et la mise au point?


Le test est une activité permettant d’établir la présence d’erreurs et d’anomalies.
La mise au point a pour but de localiser ces erreurs et les corriger.

11- Quel est le but de la spécification? Donner les techniques et outils de spécification

A pour but de formaliser avec des outils, le cahier des charges et modéliser le système
selon les différentes vues: données, traitement, métier (utilisateur),…
La spécification est une période du processus de développement pendant laquelle on s'exprime à
un haut niveau d'abstraction et consiste en la définition des éléments logiciels qui réaliserons les
fonctionnalités spécifiées pendant l'analyse des besoins. Les éléments ainsi définis doivent être
conçus de manière à ce qu'il puisse être ultérieurement encodés dans un langage de
programmation.
Techniques et outils de spécification:
⇒ Les spécifications informelles: utilise un énoncé structuré (chapitre, section,
paragraphe,…) et exprimé en langage naturel (règles de gestion par exemple).
Elles sont très facilement communicables à des spécialistes, mais elles augmentent le risque
de l'incohérence des spécifications.
⇒ Les spécifications formelles: la syntaxe et sémantique (structure et lexique) sont
définies formellement par les outils mathématiques: Langage VDM, Z,…)
Elles sont difficiles à apprendre mais sont facile à encoder (possibilité d'avoir des
compilateurs).
⇒ Les spécifications semi formelles: elles favorisent la communication entre
développeur et utilisateurs en utilisant une représentation graphique des données et
des traitements.
Le langage graphique doit être normalisé, et non sémantique non ambiguë (double, copie).
Toutefois, les diagrammes sont en général accompagnés des textes écrits en langage naturel.

12- Quelle est la position de la phase de codage dans le cycle de vie d'un logiciel?
Citer quelques facteurs influençant l'activité de programmation.

Position dans le cycle de vie :


La phase de codage suit émmidiatement la phase de conception. Elle consiste à produire le
logiciel et sa documentation.
A partir d’une hiérarchie de module et de sous module, le développement descendant consiste
à commencer par la racine de la hiérarchie et de se dériger vers les modules en bas. Le
développement ascendant est donc le processus inverse.
Facteurs influençant l’activité de programmation :
• Le langage de programmation et la créativité du programmeur :
- choix des noms
- Agencement du programme.
- Documentation.
- Allure du flot de contrôle.
• Les outils de développement :
La mise en pratique d’outils qui automatisent une partie du travail du programmeur augmente
de façon importante la productivité de ce dernier.
• Machine/système d’exploitation
• Milieu de travail.
• Les langages de programmation :( Les langages d’assemblage, Les langages de
réalisation de systèmes , Les langages statiques de haut niveau , Les langages à haut
niveau à structure de bloc, Les langages dynamiques de haut niveau ).
13-Définir les termes suivants: Maquettage, Gestion de configuration et d'intégration

• Le maquettage ou prototypage rapide (rapid prototyping) est une technique qui


permet de surmonter la difficulté de spécification du logiciel due à la différence de
terminologie et au manque de précision dans l'expression des besoins. Cette activité
consiste à développer rapidement une ébauche du futur système (maquette ou
prototype). Il est important de préciser le rôle de la maquette : elle peut être
exploratoire si elle est utilisée pour préciser les besoins des utilisateurs, ou
expérimentale maquette si elle intervient lors de la conception pour aider à
expérimenter différents choix.

• La gestion de configurations a pour but de maîtriser l'évolution et la mise à jour des


composants tout au long du processus de développement. Les environnements intégrés
de développement permettent de gérer de façons plus cohérentes les documents relatifs
à un logiciel.
• L'intégration a pour but de réaliser un ou plusieurs systèmes exécutables à partir des
composants. Les choix possibles correspondent à des variantes du système.

L'activité d'intégration utilise la gestion de configuration pour assembler des versions


cohérentes de chaque composant.

14- Distinguer entre Spécification formelle et Spécification semi formelle en proposant un


outil pour chacune

1. Les techniques de spécification


• Les spécifications informelles sont écrites en langage naturel, exemple le
dictionnaire de donnée
• Les spécifications semi formelles sont représentées souvent sous forme
graphique, exemple le diagramme DfD.

2. Les techniques de conception


• Dans l'approche fonctionnelle, un module est un sous-système du système
global. La relation de base est la relation de décomposition, qui constitue une
hiérarchie. Cette approche peut être mis en œuvre à l’aide de plusieurs
méthodes : SA ; SADT

• Dans l'approche à objets, les modules principaux correspondent aux objets


concrets ou abstraits du domaine de l'application. Par exemple, dans la
bibliothèque on peut trouver les objets (modules) Livre, Bibliothécaire,
Emprunt, Réservation, Catalogue, etc. Les objets regroupent données et
traitements. Ce sont des entités autonomes qui collaborent pour réaliser le
système global. La méthode utilisée dans cette approche est l’UML.

15- Donner une définition de Génie logiciel, quels sont ces objectifs
Génie logiciel est la discipline née en réponse à la crise du logiciel, c'est l'art de produire de
bons logiciels, au meilleur rapport qualité/prix, c'est l'art de spécifier, de concevoir, de réaliser
et faire évoluer avec des moyens et dans des délais raisonnables des programmes, des
documents des procédures de qualités en vue d'apporter une solution informatique pour
résoudre un certain problème.

16- Définir un projet, citer les activités principales de la gestion de projet

2. un projet est un ensemble des taches permettant:


• Résoudre un besoin exprimé.
• Comprend les ressources nécessaires à sa réalisation (humaines, financières,
matérielles, logiciels, logistiques,..).
• A une durée finie caractérisée par une date de début et une date de fin.
• Piloté par un chef de projet.
Les activités principales de la gestion de projets:
• La planification.
• L'estimation des coûts.
• Ordonnancement.
• Personnel.
• Direction.
• Surveillance.
• Correction.
• Innovation.
• Rapportage. Ect…

17- Définir l'analyse des besoins? Et classifier les besoins

La définition de l'analyse des besoins constituent en principe la première phase du cycle


de vie d'un logiciel et consiste en l'activité visant à établir quelle fonctionnalité le système doit
fournir et les contraintes auxquelles il sera soumis.
Cette étape doit aboutir à l'élaboration des documents de définition des besoins (le cahier des
charges, souvent exprimés en langage naturel).
Les besoins exprimés doivent constituer un ensemble complet et cohérent, la complétude
signifie que tous les services requis par l'utilisateur doivent être mentionnés et la cohérence
que les définitions des besoins ne doivent pas être contradictoire.
Classification des besoins:
Les besoins peuvent être classifiés ainsi:
• Besoins fonctionnels: correspondant aux services attendues par l'utilisateur.
• Besoins en matière de BD: dans une BD le système y trouve ces informations
et y ajoute d'autres pendant son fonctionnement. Ces informations doivent
refléter l'activité des utilisateurs d'une manière intégrée et cohérente.
• Besoins non fonctionnels: correspondant aux restrictions (limitations) ou aux
contraintes accès sur des fonctions du système tel que: le temps de réponse,
sûreté et protection des données.

18- Citer deux conditions d’utilisation du modèle de la cascade

• Pour les petits et moyens projets.


• Lorsque les besoins sont clairement exprimés dés le début du développement.

19- Pour quelles raisons est-il nécessaire de développer un prototype pour un logiciel
donné

Un prototype doit :
• Mettre en évidence les incompréhensions développeur/utilisateur.
• Détecter les oublis.
• Découvrir les contractions.
• Évaluer rapidement la faisabilité.
• Servir de base à l’écriture de spécifications complètes et cohérentes.

Expliquer brièvement les notions suivantes :


a. Portabilité
b. Protection modulaire
c. Faible couplage
d. Forte cohésion.

• Portabilité : C'est la facilité de porter un logiciel sur un autre système d'exploitation


(Apache, …).
• La protection modulaire : si une condition anormale se produisant pendant l’exécution
d’un module, cette dernière doit être localisée dans ce module ou ne se propage qu’à
quelques modules voisins.
• Le faible couplage : les modules à couplage faible sont indépendants ou presque
• La forte cohésion : les éléments d’un module remplissent des fonctions très proches.
Chaque élément est essentiel pour que ce module fonctionne correctement.