Université de Tlemcen Promotion : L3 Informatique
Faculté des Sciences Module : Génie logiciel
Département d’Informatique Année universitaire : 2020/2021
Djawida DIB - MALTI
TD 2 : Notions du génie logiciel
Exercice 1 : Soit la liste des tâches suivantes :
Choix des techniques, Tests unitaires, planification du projet, implémentation des algorithmes, coordination
des activités de développement, débogage, modélisation de la solution, tests d’intégration, spécification des
besoins utilisateurs, coordination des activités de conception, modélisation des exigences, organisation de
l’équipe de développement, tests alpha.
Questions :
1. Triez ces tâches en deux catégories de compétences : programming in the small et programming
in the large.
2. Déterminez le rôle que peut avoir l’ingénieur de développement pour accomplir chacune des
tâches (chef de projet, analyste, concepteur, programmeur ou testeur).
Exercice 2 :
Soit un système d’information médical qui contient des informations sur des patients souffrants de
troubles psychologiques, ainsi que des informations sur les traitements qu’ils ont reçus. La plupart de
ces patients n’ont pas besoin d’hospitalisation, mais ils ont besoins de voir régulièrement leurs médecins
traitants. Les consultations peuvent avoir à lieu à l’hôpital, dans des centres de soins locaux ou à
domicile.
Ce système utilise une base de données centralisée qui contient toutes les informations des patients. Le
système doit pouvoir s’exécuter sur des ordinateurs portables pour être utilisé depuis n’importe quel
site. Ce système est incomplet et ne contient pas les autres conditions médicales des patients. Pour cela,
le système doit échanger des données avec d’autres systèmes médicaux.
Questions :
1. Déterminez l’environnement de ce système.
2. Déterminez les parties prenantes du système, en expliquant pour chacune d’entre elles comment
elle impacte le système et/ou comment elle est impactée par le système.
Exercice 3 : Soit l'algorithme de tri suivant :
public class Tri
{
public static void tri_selection(int[] tab)
{
for (int i = 0; i < tab.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < tab.length; j++)
{
if (tab[j] < tab[index]){
index = j;
}
}
int min = tab[index];
tab[index] = tab[i];
tab[i] = min;
}
}
}
1/2
Questions :
1. Étudier la réutilisabilité de ce code.
2. Quel est le principe de génie logiciel qui permet de le rendre encore plus réutilisable ? Comment
l’appliquez sur ce code ?
3. Donnez des exemples de domaines d’application qui pourraient utiliser le code généralisé.
2/2