Skip to topic | Skip to bottom
Home
Minfo
Minfo.GlTdLpl1516r1.4 - 30 Nov 2015 - 10:05 - PhilippeCollettopic end

Start of topic | Skip to actions

TDs Lignes de Produits et Variabilité

Séance 1 : introduction à la variabilité et à FAMILIAR

Cette séance est décomposée en 3 étapes :

  1. Retour sur la variabilité : rappel de cours
  2. Syntaxe de Familiar :
  3. Simulateur de créature et Variabilité
    • Réfléchir à la variabilité présente dans la version du simulateur livrée pour le TP long
    • Ecrire petit à petit un feature model la capturant
    • Essayer de distinguer la variabilité du domaine (indépendante des détails d'implémentation) de la variabilité technique

Pour information, la page d'installation de FAMILIAR est : https://github.com/FAMILIAR-project/familiar-documentation/tree/master/installation

La page du manuel en ligne est: https://github.com/FAMILIAR-project/familiar-documentation/tree/master/manual

Lancement de la version interactive :

java -jar -Xmx1024M FML-environment-1.1.jar 

Séance 2 : Modélisation séparée et correspondance modèles de variabilité/asset

Modélisation de la variabilité

  • Séparez explicitement la variabilité de votre simulateur entre domaine (utilisateur/configurateur) et technique (développeur, mainteneur de la ligne de produits) avec deux feature models
  • Analysez les liens qu'il faudrait faire entre ces deux FM à l'aide d'implications ou d'équivalences entre features.

La commande suivante permet de créer un FM unique contenant deux FM en définissant des liens entre les deux :

regles = constraints( A -> B; )
fmSimu = aggregate { fmA fmB } withMapping regles

  • Réalisez le script d’agrégation des FM avec des contraintes entre eux.

Utilisation de Familiar à travers son API Java

Ce projet montre l'utilisation de Familiar à travers une API programmatique en Java. Il utilise Maven pour récupérer automatiquement les dépendances nécessaires. Lancez la commande "mvn clean install" pour téléchargez automatiquement les dépendances manquantes.

  • Expérimentez la petite application fournie ("mvn -P run") ALERT! attention, il y a actuellement un bug de régression dans la fonction "isComplete" qui détermine si une configuration est complète (toutes les features qui doivent être sélectionnées au minimum le sont). Il ne vous est pas demandé de déterminer la complétude d'une configuration, juste une configuration valide.

  • Modifiez le projet pour utiliser le script que vous avez défini pendant la première partie du TP

  • Imaginez et implémentez un programme de réalisation qui prend une configuration (du domaine, et peut être partiellement du FM technique) en paramètre et va réaliser un produit final.
Ecrivez ce programme de manière incrémentale en essayant de respecter les principes de génie logiciel (décomposition d'une architecture) au fur et à mesure de vos incréments.

Tous les produits définis dans le FM sont-ils réalisables ?

N'hésitez pas à modifier les FM en fonction de vos besoins.

Séance 3 : TP long à rendre

Descriptif à venir pour le mercredi 2 décembre

Modalités

  • Travail par équipe de 3 ou 4 (une équipe de 4 doit rendre un travail de meilleure qualité), par défaut les groupes sont identiques à celles du TP long précédent
  • Changement de groupe possible par mail avant le lundi 7/12/2015 23h59 (heure de Paris) (Philippe POINT Collet AT unice POINT fr)
  • Envoi par mail d'une archive (zip) à Philippe Collet (Philippe POINT Collet AT unice POINT fr), date limite d'envoi : dimanche 13/12/2015 à 23h59 (heure de Paris)
  • Contenu de l'archive :
    • pom.xml (maven)
    • fichiers source (répertoire src)
    • fichiers test (répertoire test)
    • feature models et éventuels scripts associés
    • fichier README.pdf contenant des explications (choix de conception des feature models, assets utilisés, méthodes de réalisation de la variaiblité implémentées)

Liste des équipes

à venir

-- PhilippeCollet - 30 Nov 2015
to top


You are here: Minfo > GenieLog1516 > GlTdLpl1516

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback