Le génie logiciel GL (ou Software Engineering) est la science dont l’objectif est de proposer des techniques, des démarches, des approches, des langages favorisant la production de logiciels de qualités. Plusieurs qualités sont requises dans un logiciel, mais les plus importantes sont souvent : la fiabilité, la maintenabilité, l’efficacité, et l'interface appropriée. D’autre part et dû à sa complexité, le génie logiciel est considéré aussi comme un art plutôt qu’une science. Cet art a pour objectif de spécifier, concevoir, réaliser et maintenir des programmes ainsi que leur documentation qui accompagnent le développement, l’usage, et la maintenance.

L’objectif de ce support de cours et mettre entre les mains des étudiants informaticiens, novices au domaine de génie logiciel, un document leur introduisant le domaine du génie logiciel. En tant qu’enseignant de cette matière depuis l’année 2004 et presque de manière continue sans interruption, j’ai tenté de rassembler les éléments les plus pertinents à la compréhension et à la maitrise de cette matière par des étudiants de deuxième année licence, où même de troisième année licence ou des étudiants de master ayant besoin de connaissances en génie logiciel pour développer leurs projets de fin d’étude.

Ce support de cours est organisé en trois chapitres, suivis par deux annexes A et B. Le contenu du document se résume comme suit :

Chapitre I : intitulé « de la crise logicielle au génie logiciel ». Il commence par une introduction suffisante du domaine de GL. L’objectif de ce premier chapitre est surtout de faire convaincre l’étudiant de l’importance de la matière dans sa formation académique ainsi que de l’importance du GL dans le monde de l’industrie logiciel en pratique. Ce chapitre présente plusieurs raisons de l’apparition du GL et trace son histoire depuis sa naissance dans l’année 1968.

Chapitre II : intitulé « Approches de développement et modèle de gestion de projet logiciel ». Ce chapitre passe à présenter le concept de processus logiciel, du modèle de développement de logiciel, du cycle de vie, des approches de développement et des modèles de gestion de projet logiciel. Les différentes approches les plus étudiées dans la littérature sont discutées, motivées, et critiquées.

Chapitre III : intitulé « langage UML ». C’est le chapitre le plus technique dans la matière. Dans ce chapitre l’étudiant va découvrir le langage UML (unified modeling language). Ce langage est proposé et utilisé pour la description des systèmes orientés objet. Le langage est présenté avec les détails nécessaires permettant à l’étudiant de comprendre son utilité et de pouvoir l’utiliser pour faire des analyses ou des conceptions orientées objet.

Afin de rendre le document encore plus utile, deux annexes comprenant des exercices traités dans la matière ainsi que quelques examens des années précédente. Ces travaux dirigés et examens peuvent donner l’occasion à l’étudiant de tester ses connaissances acquises et de vérifier sa compréhension.