Depuis l'inauguration en 2001 du baccalauréat en génie logiciel à l'ÉTS, je suis responsable de ce cours. Son sigle était initialement LOG120 et il a été basé sur ELE116. C'est le premier cours pour les étudiants dans les baccalauréats de génie logiciel et des technologies de l'information. On y voit les principes de conception logicielle dans un contexte orienté objet, utilisant la notation UML. Finalement, on applique ces principes à travers les patrons de conception.
Avec la collaboration de mes collègues et mes chargés de cours et de laboratoire, j'ai effectué plusieurs changements dans LOG121 afin que le cours soit bien adapté à la clientèle de l'ÉTS provenant des CÉGEP techniques. J'ai choisi le livre "Software Design" de Cay Horstmann, puisqu'il est bien adapté à une clientèle sachant déjà programmer dans un langage orienté-objet. Nous avons mis en place une traduction française des notes de ce livre. Les laboratoires de LOG121 exploitent l'environnement Eclipse.
Le schéma ici présente la philosophie des cours de première année pour les deux baccalauréats (génie logiciel et technologies de l'information). On suppose que l'étudiant typique ait déjà appris la programmation orientée objet au CÉGEP technique.
Dans son premier cours à l'ÉTS, l'étudiant renforce dans LOG121 ses habiletés de programmation en apprenant la conception orientée objet. Ensuite, dans LOG210 l'étudiant renforce encore ces connaissances préalables en apprenant l'analyse orientée objet. Cette philosophie est cohérente avec une approche proposée dans le "Software Engineering Curriculum 2004" de l'IEEE.
*Notez que si un étudiant n'a pas suivi au CÉGEP un cours adéquat de programmation orientée objet, l'ÉTS offre un cours INF111 Programmation orientée objet (hors programme).
À la fin de ce cours, l'étudiant(e) devrait être capable de :
distinguer entre les disciplines de conception et de programmation;
concevoir, programmer, déverminer et tester des logiciels en langage Java;
utiliser le langage UML pour décrire la conception d’un système;
comprendre et apprécier les notions de couplage et de cohésion et leur impact sur la conception de logiciels;
identifier et programmer des patrons de conception;
connaître et reconnaître les problèmes que les patrons de conception sont censés résoudre.