Public concerné et conditions d'accès 
Il est par ailleurs souhaitable de maîtriser un minimum de connaissances de mathématiques pour l'informatique (Combinatoire, probabilités, ordonnancement, calcul booléen).
Les élèves de ce cours sont supposés avoir une bonne familiarité avec les méthodes ou démarches et les langages de programmation et de modélisation pratiqués dans l'industrie (approche objet, C, C++, Java, UML, etc.), ainsi qu'une connaissance générale, acquise dans la pratique des systèmes d'exploitation et de l'architecture des applications.
Finalités de l'unité d'enseignement
Objectifs pédagogiques :
Cette UE est destinée à donner un panorama complet des principales technologies et méthodes permettant de réaliser et/ou de mettre en oeuvre des logiciels selon des critères de qualité définis à l'avance. Ces critères auxquels il faut pouvoir associer des métriques, permettent un traitement préventif des défauts en conformité avec les approches qualité les plus récentes (ISO/CEI 9126 et 12207, etc.).
Capacités et compétences visées :
Maîtriser les concepts de base du génie logiciel.
Contenu de la formation
L'accent est mis sur la compréhension en profondeur du processus de développement logiciel de façon à ce qu'un auditeur puisse se couler sans difficulté dans les différentes méthodes qu'il rencontrera dans sa vie professionnelle.
Cette UE est organisée en trois parties principales :
- Management de projet : le processus de gestion des projets informatiques,
l'importance de l'estimation des coûts et délais. L'accent sur ce dernier point sera mis sur les techniques d’ordonnancement et de planification et sur les méthodes d’estimation des coûts.
A ces éléments, pour compléter le panorama, s'ajoutent deux sujets introductifs, concernant l'assurance qualité logicielle et la gestion de configuration, deux concepts importants à mettre en oeuvre dans tous les projets informatiques.
- Architecture, Analyse et conception des logiciels : la problématique de la modélisation, l'analyse fonctionnelle, les modèles statiques et dynamiques, le paradigme objet. On soulignera l'importance de l'architecture et des concepts architecturaux indépendants des langages de programmation utilisés. La représentation des modèles issus des phases de conception sera faite de façon préférentielle à l'aide du langage de modélisation UML. L'accent sera mis sur les architectures distribuées et orientées services (SOA) pour lesquelles un temps sera consacré à leur implémentation.
- Validation, vérification et Tests : définitions et concepts de base, tests boite noire et boite blanche. Pratique et automatisation des tests dans un environnement de développement.