|
Clémentine Nebut
LIRMM/Univ Montp2
Clémentine Nebut
LIRMM
UMR 5506
161, rue Ada
34392 Montpellier cedex 5
France
bureau E3.16
04 67 41 86 58
edit SideBar
|
Spécialité AIGLE : Architectures et InGénierie du Logiciel et du wEb
Cette spécialité ouvre en septembre 2011 (seule la première année de master ouvre en 2011, la seconde ouvrira en septembre 2012).
L'ensemble des informations sur cette spécialité est progressivement mise à disposition sur l'offre de formation de la faculté des sciences. Des informations pour l'année 2011-2012 sont disponibles ici.
- Responsables :
- Pierre Pompidor (pompidor_at_lirmm.fr)
- Clémentine Nebut (nebut_at_lirmm.fr)
Objectifs
- Conception et développement d’architectures logicielles
- architectures orientées services
- architectures web
- urbanisation (architectures des systèmes d’informations)
- Maîtrise de la conception et du développement par objets
- Maîtrise des technologies web
- Maîtrise de l’informatique embarquée (pour mobiles...)
Métiers visés
- Architecte des systèmes d’informations
- Architecte logiciel
- Chef de projet logiciel
- Enseignant-chercheur / chercheur
Enseignements dispensés
Maquette des enseignements sur les 2 années de master
- Les unités d'enseignement valent toutes 5 ECTS à l'exception du stage de semestre 4 qui en vaut 20.
- Les unités d'enseignement dites d'ouverture sont à choisir parmi l'ensemble des unités d'enseignement proposées au même semestre par les spécialités DECOL, IMAGINA, et MOCA de la mention Informatique.
Listes des unités d'enseignements proposées
- Semestre 1
- Anglais
- Compilation et interprétation
- Cette UE étudie de façon pratique les divers procédés qui peuvent être appliqués à un programme informatique pour le rendre exécutable sur une machine. Seront particulièrement étudiés : la compilation (transformation d'un langage de haut-niveau dans un langage de bas niveau), l'interprétation (exécution dynamique d'un programme) et les machines virtuelles. Les étudiants réaliseront en TP et projet la construction progressive d'un compilateur ou interprète complet du langage Scheme ou Lisp.
- Ingénierie Logicielle
- Ce module étudie d'une part les schémas de réutilisation par spécialisation, par composition et par fonctions d'ordre supérieur en programmation par objet. Sont abordées également les notions de framework, et de schéma de conception (étude des principaux schémas). Ce module aborde d'autre part la conception complète d'un logiciel avec UML, des spécifications (avec plusieurs vues) au test, en passant par la cristallisation de l'architecture par applications de patrons de conception.
- Bases de données avancées
- Compétences : Maîtriser les concepts et techniques de base de données avancées. Savoir concevoir, mettre en œuvre et manipuler des bases de données « nouvelle génération»
- Connaissances : modèle objet et objet-relationnel, intégrité des données : spécification et implantation, sémantique et optimisation de requêtes, concurrence et transaction, modèle semi-structuré et interrogation (Xquery, Xpath), entrepôts de données et bases de données mutidimensionnelles, construction des cubes de données, OLAP
- Semestre 2
- TER
- Architectures n-tiers
- Les applications actuelles deviennent de plus en plus complexe, et intégrent souvent plusieurs parties communicantes. Les architectures n-tiers ont pour but de gérer ce type d'application (communication et échange de données entre les systèmes, persistance et partage des données, ...). Ce module donne les principes des architectures n-tiers, et différentes technologies sous-jacentes, en Java et en .NET :
- objets distribués et intergiciels à objets (RMI, .NET remoting, Corba)
- services web (SOAP, WSDL)
- accès aux données (ADO.NET, nHibernate)
- Conduite de projets
- Ce module aborde différents enjeux et techniques de gestion de projet. Ce module aborde également la vision qualité appliquée au monde logiciel et insiste plus particulièrement sur la diversité de la fonction de tests.
- Galaxie XML
- Ce module aborde l'univers XML sous différents angles :
- le langage XML,
- la médiatisation de documents XML par XSL
- la spécifications d'interface via XML (SVG, Open Laslo, Flex, XAML, ...)
- XML pour le web sémantique (RDF(S) et OWL)
- e-applications
- Ce module aborde tout d'abord les aspects liés au e-commerce et e-business. Sont abordés notamment :
- Architecture d'un site marchand
- Paiement électronique
- Conception d'un site vendeur
- Marketing électronique
- Intelligence économique et veille
- Conception d'applications vocales
- Dans un second temps sont abordées les problématiques liées au e-learning :
- enjeux de l'enseignement à distance (EAD)
- organisation d'un EAD
- Normalisations des ressources pédagogiques
- Générateurs de ressources pédagogiques
- Spécifications formelles
- Ce module est une introduction aux spécifications formelles et aux méthodes formelle de conception (avec B). Seront abordés entre autres les aspects suivants :
- Concepts et notations mathématiques utiles à la spécification.
- Architecture des machines abstraites : données, invariant, opérations, préconditions.
- Modélisation des opérations par les substitutions généralisées.
- Preuves de respect d'invariant
- Utilisation de la méthode B.
- Conception de programmes par raffinage : de la spécification à l'implémentation.
- Preuves d'algorithmes
- Réutilisation et composition de machines
- Langages à objets à typage statique
- Le module donne les bases de la théorie des types nécessaires pour la compréhension des langages à typage statique et des problèmes qu'ils posent. Etude du sous-typage et du polymorphisme paramétrique (généricité). Application à différents langages "mainstream" (JAVA, C++, C#, EIFFEL), ou nouveaux (PRM, SCALA, Fortress) (listes non exhaustives). Etude de différents mécanismes connexes (cast, test de sous-typage). Application méthodologique à l'implémentation des associations UML en cas de spécialisation. Cette UE est destinée à tous les étudiants dont l'objectif professionnel est le développement de programmes ou modèles à objets.
- Semestre 3
- Systèmes embarqués
- Ce cours donne les bases de conception et de programmation des systèmes embarqués. Sont abordées les spécificités de la conception de ces systèmes (par exemple en UML) et les différents aspects liés à leur programmation. Différents cas de conception et de programmation de systèmes embarqués (par exemple en téléphonie mobile) sont abordés en considérant différents langages (Python, Java et C).
- Composants et réutilisation
- Compétences : Comprendre et mettre en œuvre les principes de réutilisation et d’assemblage de composants
- Connaissances :
- Frameworks , Schémas de Conception, Aspects
- Composants assemblables (Java Beans)
- Composants Distribués EJB (Architecture J2EE) – Grid Services
- Intégration rapide de Composants.
- Métaprogrammation et réflexivité
- Le module donne les bases de la méta-modélisation objet qui est à la base d'UML et de l'Ingénierie Dirigée par les Modèles. Application aux classes et propriétés pour l'analyse de l'héritage multiple. Introduction aux méta-classes et à la méta-programmation dans différent contextes (Smalltalk, CLOS, Python, Java (OpenJava, Javassist), C++ (OpenC++), Scala).
- ERP/SAP
- Visualisation d'information
- La visualisation d’information constitue un média incontournable aujourd’hui. Au travers de diagrammes, de graphes ou d’images de synthèse diverses il est possible de représenter des informations très volumineuses afin d’en faciliter l’analyse par des humains. Ce module doit permettre aux étudiants qui le suivent de maîtriser ce média tant dans certains de ces aspects technologiques : programmation graphique 3D ou 2D que dans ces aspects conceptuels (stratégies de présentation, perception, couleurs)
- Ingénierie des modèles
- L'Ingénierie dirigée par les Modèles (IDM) est une approche de développement logiciel qui consiste à mettre les modèles et leurs métamodèles au centre du processus. Dans ce module, nous montrons les enjeux liés à l'Ingénierie des modèles (capitalisation du métier, indépendance vis à vis des technologies, définition de transformations de modèles). Nous positionnons l'IDM par rapport à l'initiative MDA (Model Driven Architecture) de l'OMG. Ces concepts sont mis en oeuvre au travers de l'étude du métamodèle UML, de l'utilisation du langage de contraintes OCL pour la spécification de métamodèles, et de l'implémentation de transformations de modèles avec des langages spécifiques. Les compétences acquises lors de ce modules sont :
- maîtrise des différents niveaux de modélisation et métamodélisation,
- capacité à comprendre un métamodèle existant et en concevoir un nouveau,
- capacité à développer des transformations de modèles.
- Technologies avancées du web
- Cette UE vise à maîtriser les technologies liées à la création d'applications web ayant les mêmes performances que les applications de bureau (RIA et RDA).
- Les applications internet riches (RIA) : Avantages et inconvénients des RIA, Architectures sous-jacentes aux RIA côté-client et côté-serveur, Frameworks RIA : OpenLaszlo, Flex et GWT
- Les applications riches de bureau (RDA) : Introduction aux applications lancées via un navigateur et s'exécutant en dehors de celui- ci, Java Web Start, AIR : Adobe_Integrated_Runtime
- Partage de données à large échelle : approches P2P et collaboratives
- Spécification et implémentation des langages à objets et à composants
- Ce module se compose de deux parties, l'une concerne les objets, et l'autre les composants.La partie Objets de ce module a pour objet de dresser un panorama des techniques utilisées pour implémenter les langages à objets en typage statique, ainsi que d'étudier certains mécanismes spécifiques --- comme l'héritage multiple et les modules --- pour en faire des spécifications correctes et en examiner l'implémentation. Le module s'intéresse autant à des langages classiques (C++, JAVA, EIFFEL) qu'à des langages de laboratoires comme SCALA développé à l'EPFL ou PRM développé au LIRMM.
- Evolution et restructuration
- Cette UE aborde les aspects techniques et gestionnaires essentiels de la maintenance et de l'évolution des logiciels. Une vue d'ensemble sera présentée des principes, des techniques, des outils et des meilleures pratiques pour l'évolution de logiciel. A titre d’exemples seront abordés les systèmes patrimoniaux et leur migration, la rétro-ingénierie et la compréhension des programmes, la réingénierie des logiciels, l’évolution transformationnelle, la refactorisation et la restructuration, la propagation des changements et l’analyse des impacts, etc.
- Fiabilité Logicielle
- Ce module s'intéresse à différentes techniques permettant d'obtenir des logiciels fiables : la spécification (dans le cas des systèmes réactifs) en vue de pouvoir appliquer des techniques de vérification, la gestion d'exceptions, ainsi que le test de logiciel.
- Partie Spécification des systèmes réactifs. Les systèmes logiciels ou à composante logicielle intègrent des aspects comportementaux. Ce sont souvent des systèmes réactifs (en interaction constante avec leur environnement, à une vitesse imposée par l'environnement) et parallèles. Ils doivent accepter certaines opérations dans certaines circonstances (vivacité), mais, pour des raisons de sûreté, en refuser à d'autres moments. Ce module s'intéresse à la modélisation de tels systèmes, en phases de spécification puis de conception. Il s'intéresse également à la vérification des modèles obtenus.
- Partie Exceptions. à renseigner
- Partie Test. Après une introduction au test logiciel, cette partie s'intéresse aux différentes techniques de génération automatique de tests.
- Semestre 4
- Vie professionnelle
- Compétences : Préparer à l’intégration au monde de l’entreprise
- Connaissances : Elle leur permet de mieux maîtriser la présentation de leurs compétences et de leurs travaux, de comprendre le fonctionnement de la vie d’une entreprise, de connaître les informations juridiques notamment relatifs au droit des contrats liés à leurs fonctions de cadres en informatique, et enfin de mieux cerner les enjeux sociétaux de l’informatique
- TER ou étude bibliographique
|