Les missions d’un expert UML
[Auteurs : Mamoun F, Julien P, Gregory S.]
L’UML est un langage de modélisation graphique utilisé pour le développement logiciel, et conception orientée objet. Les compétences en langages UML sont de plus en plus sollicitées dans le monde de l’entreprise. C’est pourquoi, on constate l’émergence d’experts spécialisés dans ce langage. Cependant la maîtrise de l’UML n’est pas une compétence suffisante pour mener à bien une mission. Un grand nombre de maîtrises peuvent venir se greffer à cette expertise afin de définir des profils métiers performants dans leurs domaines. Nous vous proposons dans cet article de présenter les missions qu’est susceptible de remplir un expert en UML, ainsi que les compétences annexes qu’il devra maîtriser pour les mener à bien.
Qu’est ce qu’un expert UML?
Un expert UML se doit de maîtriser l’ensemble des modélisations décrite peu après, tout en maîtrisant parfaitement les normes du formalisme UML. Il doit par ailleurs, pour être qualifié d’expert, être capable de faire comprendre ses modélisations à ses clients et en expliquer les enjeux et fonctions.
Ces deux aspects permettent ainsi à un expert UML d’être parfaitement compris par les concepteurs, qui est le but final de son travail, mais également être clair avec ses clients.
Diagrammes statiques
Diagramme de classes : il représente les classes intervenant dans le système.
Diagramme d’objets : il sert à représenter les instances de classes (objets) utilisées dans le système.
Diagramme de composants : il permet de montrer les composants du système d’un point de vue physique, tels qu’ils sont mis en œuvre (fichiers, bibliothèques, bases de données…)
Diagramme de déploiement : il sert à représenter les éléments matériels (ordinateurs, périphériques, réseaux, systèmes de stockage…) et la manière dont les composants du système sont répartis sur ces éléments matériels.
Diagramme des paquetages : il sert à représenter les dépendances entre paquetages, c’est-à-dire les dépendances entre ensembles de définitions.
Diagramme de structure composite : il permet de décrire sous forme de boîte blanche les relations entre composants d’une classe
Diagramme de profils : il permet de spécialiser, de personnaliser pour un domaine particulier un méta-modèle de référence d’UML
Diagramme d’état : il permet de spécifier l’état des objets au fil des interactions initiées par les acteurs
Diagrammes dynamiques
Diagramme de séquence : représentation séquentielle du déroulement des traitements et des interactions entre les éléments du système et/ou de ses acteurs.
Diagramme d’activité : représentation de l’évolution d’un cas d’utilisation dans le processus métier.
Diagramme de communication : représentation simplifiée d’un diagramme de séquence se concentrant sur les échanges de messages entre les objets.
Diagramme global d’interaction : il permet de décrire les enchaînements possibles entre les scénarios préalablement identifiés sous forme de diagrammes de séquences.
Diagramme de temps : il permet de décrire les variations d’une donnée au cours du temps.
Les Missions
Analyse et Conception UML
L’analyse et la conception UML doit être capable de comprendre les spécifications et construire une architecture en conséquent. Il est spécialisé dans l’analyse des différents environnements métiers spécifiques. Il n’est pas chargé de développer mais simplement d’analyser une situation. Il est alors généralement associé à une équipe projet et son travail est ensuite délégué à une équipe de développement.
Les missions de conception peuvent également correspondre au prototypage de nouvelles fonctionnalités. Dans certaines missions, il peut être demandé aux expert UML de développer des prototypes de leurs modélisations. Une certaine maîtrise des architectures Web (PHP XML), services WEB,
java/JEE ainsi qu’aux Framework JEE.
Ils sont ensuite amenés à effectuer la recette d’applications sensées conformes aux architectures modélisées.
Naturellement des compétences en gestion de projet et en utilisation des outils de modélisation est un prérequis. De plus, la maîtrise de la rédaction en langue anglaise peut être nécessaire pour les missions à l’étranger et/ou international.
Développement
Le développeur, en plus de son expertise en UML, maîtrise des langages informatiques spécifiques à sa mission. Lors de la phase de conception, le développeur analyse le projet qui qui constitue sa mission, consignés dans un cahier des charges. Il étudie les étapes de fonctionnement du programme, puis détermine une solution technique avant de créer un prototype de la future application. Il utilise donc le travail d’un analyste concepteur en UML.
Il sera le plus souvent en appuie d’une équipe de développeur et se chargera de l’écriture d’une ou plusieurs parties d’un programme, voire le concevoir dans sa totalité. De plus en plus, il a recours à des logiciels standards prêts à être utilisés (progiciels), qui lui font gagner un temps considérable. Ensuite, il participe aux phases d’essai, essentielles pour tester les applications.
Il réalise en parallèle les notices techniques d’installation, ainsi que les guides pour les utilisateurs. Il est parfois amené à leur apporter un soutien technique ou à les former à l’application. En l’absence de technicien de maintenance en informatique, il peut assurer lui-même le suivi de son produit.
Gestion de projet informatique (Java)
L’expertise UML peut se retrouver dans le métier de Chef de Projet Informatique et plus particulièrement JavaEE ou CMS. Les missions rattachés à un tel poste sont très diverses. L’objectif premier du chef de projet est de fédérer tous les acteurs autour d’un but commun. Les aspects gestion et planification de projet sont une part importante d’un chef de projet. Une approche commerciale existe également dans les objectifs d’un tel acteur.
– Le premier objectif à remplir pour un chef de projet est d’encadrer son équipe autour de l’objectif commun. Pour cela, il est d’usage d’utiliser différents outils qui permettent de délimiter clairement les acteurs du projet.
– Une phase d’analyse et de conception vient ensuite. Les besoins fonctionnels doivent être décrits de manière très précise par le chef de projet afin de répondre précisément à la demande.
– Enfin, la phase de développement se base sur le formalisme UML précédemment réalisé. Dans la théorie, la phase de développement prend en compte tous les outils développés dans les étapes précédentes. Cela implique donc une certaine rigueur dans la réalisation des outils afin d’obtenir une application fiable et structurée correctement.
Vous trouverez juste après un point technique sur cette mission. Sur les nombreuses offres d’emploi pour ce type de mission, les compétences supplémentaires requises pour une mission de chefferie de projet sont les suivantes.
Il est souvent spécifié qu’une connaissance approfondie en design patterns est importante. Il existe ainsi plusieurs types de design patterns (ValueObject, ServiceLocator, SessionFacade) qui reviennent souvent pour ce type de projet informatique Java. Il est nécessaire de les connaître afin d’avoir une architecture technique parfaitement adaptée aux projets.
De même, on retrouve souvent pour ce genre de poste une connaissance en frameworks Java : Les frameworks Spring et Quartz qui permettent entre autres la création d’une infrastructure simplifiée et adaptée à la phase de développement et de tests de ce type de projets. Velocity qui est un langage de gabarit et permet notamment la génération de code Java ou encore la génération de messages automatique pour la création de compte ou l’oubli de mot de passe par exemple.
Enfin, un dernier point technique concernant cette mission de gestion de projet java concernant l’architecture SOA. Ce terme revient souvent et décrit une architecture orientée services.
Exemples de missions gestion de projets :
http://www.keljob.com/offre/ingenieur-developpement-java-j2ee-h-f-7510293
http://www.netapsys.fr/rejoignez-nous/chef-de-projet-java-j2ee
Ingénierie d’études NTIC
L’ingénierie d’études en Nouvelles Technologies prend en charges les aspects études et spécifications techniques. Là aussi, l’expertise UML joue son rôle de support de travail dans le sens où une spécialisation dans le domaine d’activité est forcément obligatoire. De par son aptitude rédactionnelle, l’ingénieur d’études est à l’aise dans la réalisation de documents techniques et fonctionnels. Il peut également avoir à sa charge la réalisation des phases de tests et tout au moins être en support à ce type de missions.
Vous trouverez juste après un point technique sur cette mission. Sur les nombreuses offres d’emploi pour ce type de mission, les compétences supplémentaires requises pour une mission de chefferie de projet sont les suivantes.
Lorsque vous feuilletez les offres de missions dans le domaine de l’ingénierie d’études, la connaissance et la maîtrise de plusieurs frameworks est forcément un plus. Il revient alors souvent le framework Struts qui permet d’adopter et faciliter l’utilisation d’un modèle MVC (Modèle-Vue-Contrôleur) pour le développement d’une application. On parle également Hibernate qui est un framework facilitant l’interaction Base de Données/Application.
Exemples de missions d’ingénierie d’études :
http://www.miage-lille.com/jobletter/janvier-2013/offres/cdi/Janvier_Sopra%20Group-CDI-ing-NTIC.pdf
Consulting en Finance
Le métier de la Finance cache une part importante d’informatique puisque de plus en plus, les projets réalisés intègrent en leur sein une informatisation à 100%. Si on prend l’exemple boursier, tout est contrôlé par de puissants systèmes informatiques.
La réalisation de schémas utilisant le formalisme UML est d’autant plus important car ces projets nécessitent une rigueur extrême car les clients sont souvent très exigeants. Vous imaginez que de tels schémas ou diagrammes peuvent représenter des dizaines d’heures de travail. La compréhension et l’exploitation de tels schémas est d’autant plus compliqué. Pour ce type de missions, le consultant en Finance est parfaitement adapté. Ce genre de poste est peut-être celui qui se rapproche le plus d’un expert UML véritable.
Comme souligné, les missions qui reviennent souvent dans les nombreuses offres d’emplois sont par exemple l’intégration et l’implémentation de progiciels Financiers. Murex, Calypso ou encore Kondor en sont des exemples concrets et qui reviennent systématiquement pour ce genre de missions. Il faut noter que ce type de logiciels sert à la mesure des taux de changes ou des indices boursiers. D’autres types de missions qui sont souvent recherchés représentent les projets de cotations et de trading en ligne.
Vous trouverez juste après un point technique sur cette mission. Sur les nombreuses offres d’emploi pour ce type de mission, les compétences supplémentaires requises pour une mission de chefferie de projet sont les suivantes.
On retrouve notamment des connaissances requises en bases de données. Les offres de missions en freelance parlent énormément de système de gestion de bases de données. A noter que SQL Server ou encore SyBase sont souvent décrits comme requises pour ce type de missions.
Exemples de missions Consultant Finance :
http://www.aurexia.com/offre-emploi/consultant-en-finance-comptabilite/
Consulting SI
Les missions de consulting sont certainement celles qui se rapprochent le plus d’un véritable expert UML. Ce dernier est là pour s’intégrer dans une équipe projet dans un secteur d’activité dont il ne connaît pas systématiquement les tenants et aboutissants. Le consultant doit sans cesse se remettre en question, et découvrir de nouveaux domaines d’activités.
Généralement, le consultant est l’intermédiaire entre la maîtrise d’œuvre et la maîtrise d’ouvrage. Il s’agit d’un support méthodologique qui va venir proposer de nombreux conseils sur la réalisation de diagramme et l’organisation globale du projet.
Le consultant peut également avoir comme mission de définir les besoins des utilisateurs et vient en support de l’équipe projet.
Vous trouverez juste après un point technique sur cette mission. Sur les nombreuses offres d’emploi pour ce type de mission, un aspect technique revient fréquemment. Il s’agit de l’architecture fonctionnelle CMMI. Il s’agit d’un outil de mesure du niveau de maturité d’un projet. Pour cela, de nombreux outils sont utilisés et couplés afin d’analyser et de pouvoir mesurer la pertinence d’un projet. Le premier niveau CMMI signifie que le projet n’est pas prêt. Cinq niveaux de maturité existent et le dernier niveau correspond à un projet fiable, modulable et évolutif.
Exemples de missions Consulting SI :
http://recrutement.bureauveritas.fr/Web/Doss.aspx?NoLangue=1&NoDossier=11503&Origine=127
https://tas-accenture.taleo.net/careersection/10200/jobdetail.ftl?lang=en&job=875436&src=JB-11540
Ingénierie logiciel temps réel & embarqué
Cet expert UML est responsable du développement de logiciels temps réels embarqués. Il part à l’élaboration des spécifications technique du logiciel et des fonctions temps réel.
Un système temps réel est capable de contrôler un procédé physique à une vitesse adaptée à l’évolution de ce procédé. Les systèmes temps réels sont utilisés par exemple dans les salles de marché afin de traiter les données boursières en temps réel ou encore dans l’aéronautique à travers des logiciels de transmission pour les avions (liaisons avec les satellites par exemple).
Pour mener à bien sa mission, il rédige tout d’abord des documents de conception. En effet, à l’aide de cette compétence en modélisation UML il définit la structure, l’architecture du système et le design logiciel. Après ces étapes, il conduit la phase de développement, la phase des tests unitaires et l’enregistrement des résultats, ainsi la réalisation de la documentation (manuel utilisateur, rapports de tests…). Enfin, il garantit la bonne application des choix techniques (équipe électronique, équipe software, utilisateurs).
Pour ce genre de poste, les personnes qualifiées ont des compétences dans l’utilisation du profil UML MARTE (Modeling and Analysis of Real-Time Embedded Systems).
MARTE est extension UML afin que ce dernier soit étendu au domaine du temps réel embarqué. Cette extension a été définie sous la forme d’un profil UML (mécanisme normalisé d’extension du langage). Des compétences en microprocesseurs DSP ainsi que des connaissances du logiciel Open Embedded sont requises.
Ingénierie Produit
L’ingénieur produit est responsable de l’amélioration des standards “qualité produits” en collaborant avec les acteurs liées au produit ainsi qu’avec les fonctions supports.
A l’aide de ces compétences en UML et des retours d’expériences qu’il aura, il travaille non seulement sur le design des produits et notamment leur ergonomie mais aussi les standards d’industrialisation. Il met également au point des techniques pour développer des solutions optimisées, en particuliers pour les nouveaux produits, tout ceci dans le but de créer de nouveaux concepts et composants.
Pour ce genre de poste, cet expert UML doit posséder des compétences en web services, en flux XML, en architecture J2EE et des compétences commerciales.
Ingénierie informatique 3D
Un ingénieur informatique 3D a pour principale missions d’analyser et de créer des données 3D (affichage, interaction, physique, interface utilisateur). Il réalise, tout d’abord, des scénarios d’utilisation à l’aide des techniques de visualisation qu’il a sa disposition. Suite à cela, il implémente les scénarios en termes de rendu 3D.
Il devra également définir des scénarios d’utilisation pour les utilisateurs finaux.
Cet expert doit posséder des compétences en programmation orientée objet (c++ et c#) et dans les logiciels Autocad, Microstation ou encore SmartPlant3D. Enfin il doit maîtriser net Framework.
Architecture Telecom
Cet expert élabore l’architecture majeure de logiciels tels que des logiciels de supervision de réseau ou encore des logiciels de communication. Elle devra également s’assurer de la pérennité de l’architecture élaborée.
De plus, un architecte Telecom a contrairement aux autres ingénieurs, une certaine expertise dans l’approche BPM (Business Process Management). Le BPM, permet de modéliser informatiquement les processus métiers de l’entreprise.
Le BPM dispose d’outils de pilotage et de reporting basé sur des indicateurs précis afin de disposer de tableaux de bord. En effet, pour contrôler le déroulement des certains processus de l’entreprise, on utilise l’outil BAM (Business Activity Monitoring). Concrètement, ce sont des tableurs excel qui permettent de reporter l’avancement de certains projets.
Bibliographie