Générales et contextuelles - mobiliser les ressources d’un large champ de la science informatique, - maîtriser les méthodes et les outils du métier d'ingénieur : identification et résolution de problèmes même non familiers et non complètement définis, collecte et interprétation de données, analyse et conception de systèmes informatiques complexes, expérimentation, - s'intégrer dans une organisation, l’animer et la faire évoluer : engagement et leadership, gestion de projets, relations interpersonnelles. - travailler en contexte international : maîtrise d’une ou plusieurs langues étrangères. - travailler en prenant en compte les valeurs sociétales : connaissance des relations sociales, environnement et développement durable, éthique. Techniques - concevoir et développer des logiciels avec les outils et langages actuels - intervenir sur les réseaux et les systèmes pour la mise en place d'applicatifs (système "propriétaire" ou "libre") - manipuler et archiver des données Liées à la spécialité - Utiliser les méthodes de développement objet : ex. UML, patrons de conception, Java - Utiliser des technologies génératives afin d'améliorer sa productivité (IDM). - Utiliser un atelier de développement logiciel : ex. Eclipse - Utiliser les outils de programmation les plus usuels : - Maitriser les technologies permettant la construction d'architectures logicielles. (CBSE, SOA, ESB) - Maîtriser les technologies de qualification automatique d'un projet logiciel. - Utiliser un système d’exploitation : ex. UNIX et Windows - Utiliser un système d’information : ex. base de données, web - Comprendre et concevoir des éléments d’un système d’exploitation : ex. gestion de processus et de mémoire, compilation - Utiliser les algorithmes et structures de données classiques - En développer de nouveaux devant un nouveau problème - Utiliser la technologie XML - Développer des applications web - Utiliser les outils adaptés : ex. makefile, ANT, SVN, maven, MSproject - Analyser, concevoir et valider des composants logiciels dans le cadre de UML pour répondre à des objectifs de taille/coût/délai/réutilisabilité - Utiliser des protocoles pour développer de nouveaux services et applications - Encadrer formellement le développement du logiciel depuis la spécification jusqu’à la production - Maîtriser les techniques de prévention des défauts de conception et les techniques de test applicables à chaque étape de l’analyse - Analyser et mettre en œuvre des produits logiciels pour en maîtriser les coûts, la sécurité et la qualité - Utiliser les modèles et langages à objets et les systèmes d’information : ex. bases de données - Concevoir et gérer un projet informatique : cycle de vie d’un logiciel, gestion du temps et des priorités, relations interpersonnelles, communication avec le client et les utilisateurs - Communiquer en anglais : écrit et oral - Utiliser les outils adaptés : ex. Word, LaTeX, PowerPoint - Assurer une veille technologique