2 Correction de l’Examen du Module Ingénierie des Modèles Exercice 01 : (06 Pts

2 Correction de l’Examen du Module Ingénierie des Modèles Exercice 01 : (06 Pts) 1) L’ingénierie des modèles est une approche d'écriture de spécifications et de développement d'applications. Cette approche consiste à élaborer les modèles à différents niveaux d’abstraction et de les transformer automatiquement vers des modèles dépendant des plates-formes. 2) Un modèle permet de spécifier un niveau d’abstraction du système dans le monde réel. Un méta-modèle définit la structure ou la syntaxe que doit avoir tout modèle conforme à ce méta- modèle. 3) Les méta-modèles peuvent être représenter par des diagrammes de classes. 4) Il n’y a aucune différence entre QVT et ATL. Ils sont des langages de transformation de modèles conforme au MOF. 5) Les langages de programmation cités sont des plates formes. 6) Les méta-modèles des langages de programmation sont utilisés pour représenter les modèles PSM. Exercice 02: (06 Pts) 1) Les classes du méta-modèle sont : acteur, systeme et cas d’utilisation 2) 3) L’énoncé représente un modèle du méta-modèle précédent. 4) 2 Exercice 03: (8 Pts) 1) Ecrire l’entête du programme: module Familles2Personnes; create OUT : Personnes from IN : Familles; . Le mode d’exécution d’ATL est: Normal 2) a) Le type du helper est Attribut b) Ce helper determine le nom de famille d’une personne. 3) helper context Familles!Membres def: EstHomme(): Boolean = if not self.PereFamille.oclIsUndefined() then true else if not self.GFamille.oclIsUndefined() then true else false endif endif; 4) helper context Familles!Membres def: SitFam: String = if not self.PereFamille.oclIsUndefined() then ‘Marié’ else if not self.MereFamille.oclIsUndefined() then ‘Marié’ else ‘Célibataire’ endif endif; 5) Les helpers précédents ne sont pas suffisants, il faut ajouter un helper pour récupérer l’adresse. helper context Familles!Membres def: AdresseFamille: String = if not self.PereFamille.oclIsUndefined() then self.PereFamille.Adresse else if not self.MereFamille.oclIsUndefined() then self.MereFamille.Adresse else if not self.GFamille.oclIsUndefined() then self.GFamille.Adresse else self.FFamille.Adresse endif endif endif; rule Membre2Homme{ from s: Familles!Membres (s.EstHomme()) to d: Personnes!Hommes ( Nom <- s.NomDeFamille, Prenom <- s.Prenom, Age <- s.Age, Sexe <- s.AdresseF, Situation <- S.SitFam ) } rule Membre2Femme{ from s: Familles!Membres (not s.EstHomme()) to d: Personnes!Femmes ( Nom <- s.NomDeFamille, Prenom <- s.Prenom, Age <- s.Age, Sexe <- s.AdresseF, Situation <- S.SitFam ) } uploads/s3/ sol-emd1-ingm-2013.pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager