Hi all,
this is a proposal from a student internship in Pharo in order to
build a specific UML editor for multi-agent simulation.
Sorry this is only in French and Spanish, but english-speaking student
are welcome also.
Regards,
---------- Forwarded message ----------
From: Pierre Bommel <bommel(a)cirad.fr>
Date: 2015-05-27 1:26 GMT+02:00
Subject: [cormas] [Cormas] Proposition de stage en informatique
To: Cormas <cormas(a)cirad.fr>
Bonjour, hello, hola,
Please find a proposal for an internship in Computer Science to work
on a UML editor for Cormas.
Sorry but it is in french and in spanish..
Pierre
______ Français ______
Proposition de stage en informatique
– Conception d’un éditeur de diagramme de classes UML
pour l’implémentation de modèles multi-agents -
Dans le cadre du développement de sa plateforme de modélisation et
simulation multi-agent, Cormas (
http://cormas.cirad.fr), l’Unité de
Recherche GREEN du Cirad (
http://ur-green.cirad.fr) propose un stage
indemnisé de 6 mois pour un étudiant en informatique pour développer
un module de Cormas.
Ce développement informatique consiste à mettre au point un éditeur
graphique permettant de dessiner un diagramme de classes UML et de
générer du code SmallTalk (en Pharo, langage de programmation
open-source) de la structure du modèle en se référant au standard
"Executable UML" (xUML) proposé par Mellor & Balcer (2002) and adopté
par l’OMG (2008). Pour ce travail, nous ne cherchons pas un éditeur
exhaustif intégrant tous les éléments décrits par UML2. Pour cet
éditeur, les éléments du méta-modèle proposés seront limités à : la
classe, ses attributs et ses méthodes (déclaration), la spécialisation
de classes et les associations. Les associations sont simples
(uniquement binaires) et sont définies par leur nom et par leurs
extrémités qui comportent chacune un nom de rôle, une valeur de
multiplicité et la navigabilité.
Cormas étant un framework, le modèle créé par un utilisateur doit
s’ancrer sur des classes prédéfinies disponibles dans Cormas. A la fin
de la conception de son modèle, l’utilisateur devra être invité à
rattacher les classes qu’il a créées aux classes prédéfinies. Dans ce
cas, les propriétés héritées (méthodes, associations, attributs, ...)
devront être spécifiées dans le diagramme conceptuel de l’utilisateur
qui pourra être affiché de façon indépendante du framework.
Outre la création dynamique du squelette des classes, le stagiaire
devra porter une attention particulière aux associations entre classes
uni ou bi-directionnelles qui seront traduites en attributs nommés
selon le rôle de l’extrémité de l’association (on parle parfois
d’association dégénérée pour laquelle le rôle de l’extrémité opposée
est traduit en attribut). Ne seront pas prises en compte les
classes-associations, ni les associations n-aires, ni les associations
qualifiées.
Cet éditeur permettra également de ré-afficher un modèle déjà
sauvegarder mais aussi de proposer de générer un nouveau diagramme à
partir d’un modèle déjà implémenté (rétro-ingénierie).
Par ailleurs, un éditeur de diagramme d’activité xUML est déjà
disponible dans Cormas (bommel et al, 2014). En sélectionnant une
méthode de son diagramme de classes, l’utilisateur pourra alors
dessiner le comportement de cette méthode en décrivant la succession
des activités et des conditions booléennes.
Le développement de l’éditeur UML devra se faire sous Roassal, un
moteur puissant de visualisation
(
http://objectprofile.com/Roassal.html), disponible pour Pharo.
En option et si le stagiaire en a le temps, cette application pourra
aussi être traduite en VisualWorks : un autre langage Smalltalk sur
lequel Cormas tourne actuellement. Avec la sortie récente de Roassal2,
la mise au point de ce module UML permettra d’accélérer la migration
de Cormas sous Pharo. Enfin, le stagiaire sera libre de générer le
code XML (XMI) d’un modèle pour pouvoir le lire dans un autre éditeur.
______
Durée : 6 mois (ou moins si nécessaire)
Gratification : 485,10 € par mois.
Lieu : pas d’accueil prévu au Cirad. L’étudiant travaillera dans son
laboratoire mais des contacts réguliers seront proposés.
Contacts : Pierre Bommel (bommel(a)cirad.fr) et Grégoire Leclerc
(Leclerc(a)cirad.fr).
Profil de candidature : Etudiant en Informatique, License ou Master,
ayant un goût pour la modélisation et la simulation. L’étudiant doit
avoir de bonnes connaissances des concepts de la modélisation objet et
d’UML. Des compétences en programmation Smalltalk devront être
acquises.
______ Español ______
Propuesta de práctica de informática
- Diseño de un editor de diagramas de clases UML
para la implementación de modelos multi-agentes -
Como parte del desarrollo de su plataforma de modelización y
simulación multi-agente, Cormas (
http://cormas.cirad.fr), la Unidad de
Investigación Green del CIRAD (
http://ur-green.cirad.fr) ofrece una
práctica remunerada por 6 meses por un estudiante de informática para
desarrollar un módulo de Cormas.
Este desarrollo consiste en crear un editor gráfico para deseñar un
diagrama de clases UML y generar código SmallTalk (en VisualWorks
Cincom y/o en Pharo, de código abierto) de la estructura del modelo
refiriéndose al estándar "ejecutable UML" (xUML) propuesto por Mellor
y Balcer (2002) y adoptado por el OMG (2008). Para este trabajo, no
buscamos un editor global que integre todos los elementos descritos
por UML2. Sin embargo, este editor deberá estar simples y integrar los
elementos del meta-modelo limitados a: clases, atributos y métodos,
especialización de clases y asociaciones. Las asociaciones son simples
(solo binaria) y se definen por su nombre y sus extremos que tienen
cada uno un nombre de rol, un valor de multiplicidad y navegabilidad.
Así que Cormas es un framework, el modelo creado por un usuario deben
heredar de las clases predefinidas en Cormas. Al final del diseño de
su modelo, el usuario se le pedirá para vincular las clases que creó
con las clases predefinidas. En este caso, las características
(métodos, asociaciones, atributos, ...) deben ser especificados en el
diagrama conceptual del usuario que se puede mostrar de forma
independiente de la estructura heredada.
Además de la creación dinámica del esqueleto de las clases, el
estudiante debe prestar especial atención a las asociaciones entre
clases uni o bi-direccional para traducirse en atributos nombrados en
el rol al final de la asociación (a veces llamada asociación
degenerada para el que se traduce el rol del extremo opuesto en el
atributo). No se tendrán en cuenta las clases-asociaciones o las
asociaciones n-arias o asociaciones calificadas.
Este editor también podría re-mostrar un modelo ya salvado, sino
proponer de generar un nuevo diagrama de un modelo ya implantado
(ingeniería inversa).
Además, un editor de diagrama de actividad xUML ya está disponible en
Cormas. Mediante la selección de un método de su diagrama de clases,
el usuario puede desiñar el comportamiento de este método mediante la
descripción de la secuencia de actividades y condiciones booleanas.
Aunque la distribución de VisualWorks se acompaña de algunas
herramientas de ida y vuelta entre el código y diagramas UML Smalltalk
(ADvance, Gipa, BOOST, MetaEdit+, DoME, UMLForSmalltalk ou
Umbrello,..), el desarrollo del editor UML estará construido a partir
de Roassal. De hecho, con el reciente lanzamiento de Roassal2, un
poderoso motor de visualización
(
http://objectprofile.com/Roassal.html), disponible tanto para
VisualWorks y Pharo, el enfoque de este módulo UML permitirá de
acelerar la migración de Cormas en Pharo.
Opcionalmente, será interesante de generar código XML (XMI) de un
modelo que será legible con otros editores.
Duración: 6 meses (o menos si es necesario)
Gratificación: € 485,10 por mes.
Localización: no hay recepción prevista en el CIRAD. El estudiante
trabajará en su laboratorio, pero contactos regulares serán
necesarios.
Contactos: Pierre Bommel (bommel(a)cirad.fr) y Gregoire Leclerc
(Leclerc(a)cirad.fr).
Perfil del candidato: Estudiante en Ciencias de la Computación,
licencia o maestra, con un gusto para la modelización y simulación. El
estudiante debe tener un buen conocimiento de los conceptos de
modelización objetos y UML. Conocimientos de programación Smalltalk
deben adquirirse.
Bommel, P., Dieguez, F., Bartaburu, D., Duarte, E., Montes, E.,
Pereira, M., Corral, J., Lucena, C. de and Morales Grosskopf, H.
(2014). A Further Step Towards Participatory Modelling. Fostering
Stakeholder Involvement in Designing Models by Using Executable UML.
Journal of Artificial Societies and Social Simulation 17 (1) 6
<http://jasss.soc.surrey.ac.uk/17/1/6.html>.
Mellor, S. J., & Balcer, M. J. (2002). Executable UML : a foundation
for model-driven architecture. Boston; San Francisco; New York:
Addison-Wesley.
OMG. (2008). Model Driven Architecture, MDA Guide Version 1.0.1
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/