21
BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N° 1 NATURE DE L'ACTIVITE Développement et amélioration d’un outil de traçabilité Contexte Site interne permettant la traçabilité des projets de dévellopements. Objectifs Mise en place d’un outil de traçabilité Lieu de réalisation Lille Technicentre d’Hellemmes SOLUTIONS ENVISAGEABLES Mise en place d’un outil de traçabilité de l’avancement des projets présent sous le logiciel Polarion. Utilisation d’un « faux » projet pour créer une fonction de récupération du taux d’avancement et de couverture des fichiers. Application de cette fonction a un niveau global. DESCRIPTION DE LA SOLUTION RETENUE Conditions initiales Projet Polarion avec taux d’avancement locale à chaque cycle du projet (cycle en V) Conditions finales Taux d’avancement et de traçabilité global par projet Outils utilisés Polarion, Référenciel Polarion (https://almdemo.polarion.com/polarion/help/?topic=/com.polarion.xray.doc.user/ch21.html) et Apache Velocity (http://velocity.apache.org/engine/2.0/user-guide.html#math) CONDITIONS DE REALISATION Matériels Ordinateur fournis, « faux » projet, accès développeur Polarion Logiciels Polarion, Notepad++, Bloc-Notes Durée 6 semaines Contraintes Manque de temps pour réaliser le rendu global, de plus le langage utilisé par Polarion n’étaient pas pratique pour la réalisation de cette fonction (Apache Velocity). COMPETENCES MISES EN OEUVRE POUR CETTE ACTIVITE PROFESSIONNELLE Code de la compétence Intitulé de la compétence (Fiche A3)

GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

BTS SIO Services Informatiques aux

Organisations

Option SLAM

Session 2019

GENY Simon

1337726455

Activité professionnelle N°

1

NATURE DE L'ACTIVITE Développement et amélioration d’un outil de traçabilité

Contexte Site interne permettant la traçabilité des projets de dévellopements.

Objectifs Mise en place d’un outil de traçabilité

Lieu de réalisation

Lille Technicentre d’Hellemmes

SOLUTIONS ENVISAGEABLES Mise en place d’un outil de traçabilité de l’avancement des projets présent sous le logiciel Polarion. Utilisation d’un « faux » projet pour créer une fonction de récupération du taux d’avancement et de couverture des fichiers. Application de cette fonction a un niveau global.

DESCRIPTION DE LA SOLUTION RETENUE

Conditions initiales

Projet Polarion avec taux d’avancement locale à chaque cycle du projet (cycle en V)

Conditions finales

Taux d’avancement et de traçabilité global par projet

Outils utilisés

Polarion, Référenciel Polarion (https://almdemo.polarion.com/polarion/help/?topic=/com.polarion.xray.doc.user/ch21.html) et Apache Velocity (http://velocity.apache.org/engine/2.0/user-guide.html#math)

CONDITIONS DE REALISATION

Matériels Ordinateur fournis, « faux » projet, accès développeur Polarion

Logiciels Polarion, Notepad++, Bloc-Notes

Durée

6 semaines

Contraintes Manque de temps pour réaliser le rendu global, de plus le langage utilisé par Polarion n’étaient pas pratique pour la réalisation de cette fonction (Apache Velocity).

COMPETENCES MISES EN OEUVRE POUR CETTE ACTIVITE PROFESSIONNELLE Code de la compétence Intitulé de la compétence (Fiche A3)

Page 2: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

DEROULEMENT DE L'ACTIVITE

Tutoriel complet de l'activité, avec commentaires, lignes de commandes, imprimes écran, etc. Nombre de pages minimum : 5 Stage au TI (Le Technicentre Industriel) d’Hellemmes, au PIGI

PIGI Pôle Ingénierie Groupes Informatiques

Le Groupe Informatique produit et maintient : - des logiciels embarqués assurant du contrôle-commande et/ou du service à bord, - des logiciels de maintenance et de diagnostic, - des logiciels de traitement de données pilotées via des interfaces web ou mobile.

L’équipe PIGI utilise principalement l’outil Polarion. Mais réalise aussi des tests sur BATIR, des tests simulant

des pannes via l’interface dont conducteur du train a accès.

Les équipes GDI, CCEU et SIE utilise l’outil Polarion dans le cadre des développements logiciels en cours,

principalement les développements sécuritaires.

De plus un Plan Qualité Logiciel (PQL) est écrit et mis à jour avant chaque début de projet, pour ensuite

évoluer avec le temps. Le PQL décrit l’organisation et toutes les dispositions spécifiques prises par relatives :

• Au management du projet logiciel, • À la prise en compte des exigences de la norme EN 50128 pour un niveau NoSIL, SIL0 ou SIL2, • Au contrôle de la qualité logicielle

Le Plan Qualité Logiciel définit une organisation de niveau de sécurité équivalent NSIL2.

Il a été décidé d’appliquer les exigences du Plan Qualité Logiciel à l’ensemble des modifications concernées, que celles-ci requièrent un développement NSIL2, NSIL0 ou NoSIL.

Sur les projets en cours on applique le cycle en V.

Le modèle du cycle en V (par comparaison avec les méthodes dites agiles) est un modèle conceptuel de gestion de projet, imaginé à la suite du problème de réactivité du modèle en cascade. Il permet, en cas d'anomalie, de limiter un retour aux étapes précédentes. Les phases de la partie montante doivent renvoyer de l'information sur les phases en vis-à-vis lorsque des défauts sont détectés, afin d'améliorer le logiciel.

Page 3: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

Exemple de cycle en V appliqué a un projet :

L’outil Polarion : Qu’est-ce que Polarion ?

Polarion ALM™ est un logiciel convivial et collaboratif de gestion du cycle de vie des applications, qui

incluent la gestion des exigences et permet aux parties prenantes de rédiger simplement leurs spécifications

dans des documents web partagés facilitant la revue et la gestion du changement tout au long du cycle de

vie.

Le projet Polarion SIE TGV contient l'ensemble de la documentation des projets d'évolution des logiciels

embarqués des Systèmes Informatiques Embarqués TGV et permet l’application de la norme EN 50128

(expliquer ce que le norme demande => respect des exigences suivant le niveau de SIL du développement).

Page 4: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

Mise en place de mon Projet : Récupération d’un Projet terminer mis sous Polarion. Accès a un grade développeur sur l’outil polarion ce qui m’a permis de modifier le projet directement sous Polarion. Dans un premier temps :

- Calculer le % d’avancement d’un document en fonction du statut de ses WI (Works Items)

- Calculer le % de traçabilité des WI grâce à la couverture des liens

Ensuite une fois que j’ai eu le pourcentage d’avancement et de traçabilité pour chaque phase, j’ai dû

mettre mon code sous une forme générale, et utiliser des macros pour l’alléger.

Enfin j’ai réuni tous mes scripts dans un seul et même script (d’où l’utilisation de macro pour éviter d’avoir

une répétition inutile de morceau de code).

Ce qui m’a permis de retourner un pourcentage d’avancement et de traçabilité global.

J’ai essayé de récupérer les taux de couverture les plus bas pour les mettre en valeurs mais le fait de ne

pas pouvoir utiliser de boucle WHILE et FOR m’a beaucoup compliqué la tâche.

Au départ je pensais partir sur un tri à bulle (Bubbleshort) ou un tri rapide (Kickshort) mais étant limité

dans l’utilisation possible des boucles, je n’ai pas réussi à avoir quelque sans répétition de code inutile et a

100% fonctionnel.

Finalement avec l’aide de mon maitre de stage, j’ai opté pour un algorithme de tri imbriquant plusieurs IF le

tout dans un foreach permettant de vérifier à chaque itération si ma valeur au rang i était inférieure ou pas à

3 valeurs fixées préalablement. Si oui alors ma valeur prenait la valeur d’une des 3 valeurs.

A la fin de cet algorithme on se retrouve donc avec les 3 valeurs les plus basse et c’est bien ce qui m’avait

été demandé, même si ça m’a demandé plus de lignes de code que ce qu’un algo de tri à bulle ou rapide

m’aurait demandé.

Page 5: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

Exemple d’algo réalisé : #set($Pourc_avanc_Projet = 0)

#set($Pourc_traca_Projet = 0)

#set($NB_Phase = 0)

#set($Coef_Phase = 0)

#set($list_nom = [])

#set($list_pourc = [])

#set($NB1 = 0)

#set($NB2 = 0)

#set($NB3 = 0)

#set($nom1 = 0)

#set($nom2 = 0)

#set($nom3 = 0)

#macro (avancement $pourc_avanc $typedoc )

#if ($pourc_avanc< 100)

#set($b = $list_nom.add($typedoc))

#if(!$b)

erreur dans l'ajout dans array

<br>

#end

#set($c = $list_pourc.add($pourc_avanc))

#if(!$b)

erreur dans l'ajout dans array

<br>

#end

#end

#end

####MACRO DE TRI DE % COUVRE LES PLUS BAS####

#macro(tri $taille $list_nom $list_pourc)

#if($taille > 1)

#set($ind_max = $taille)

#foreach($i in [0..$taille])

#if($i < $taille)

#if($list_pourc.get($i) > $list_pourc.get($ind_max))

#set($ind_max = $i)

#end

#end

#end

$ind_max

$list_pourc.get($ind_max)

<br>

#set($ind_min = 0)

#foreach($i in [0..$taille])

#if($i < $taille)

#if($list_pourc.get($i) < $list_pourc.get($ind_min))

#set($ind_min = $i)

#end

#end

Page 6: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#end

$ind_min

$list_pourc.get($ind_min)

<br>

#end

#set($NB1 = $list_pourc.get($ind_max))

#set($nom1 = $list_nom.get($ind_max))

#set($NB2 = 50)

#set($nom2 = 0)

#set($NB3 = $list_pourc.get($ind_min))

#set($nom3 = $list_nom.get($ind_min))

$NB1 $NB2 $NB3 <br><br>

#foreach($i in [0..$taille])

#if($list_pourc.get($i) < $NB1)

#if($list_pourc.get($i) <= $NB2)

#if($list_pourc.get($i) < $NB3)

#set($NB3 = $list_pourc.get($i))

#set($nom3 = $list_nom.get($i))

#elseif($list_pourc.get($i) != $NB3)

#set($NB2 = $list_pourc.get($i))

#set($nom2 = $list_nom.get($i))

#end

#else

#set($NB1 = $list_pourc.get($i))

#set($nom1 = $list_nom.get($i))

#end

#end

#end

#foreach($i in [0..$taille])

#if($list_pourc.get($i) < $NB1)

#if($list_pourc.get($i) <= $NB2)

#if($list_pourc.get($i) < $NB3)

#set($NB3 = $list_pourc.get($i))

#set($nom3 = $list_nom.get($i))

#elseif($list_pourc.get($i) != $NB3)

#set($NB2 = $list_pourc.get($i))

#set($nom2 = $list_nom.get($i))

#end

#else

#set($NB1 = $list_pourc.get($i))

Page 7: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#set($nom1 = $list_nom.get($i))

#end

#end

#end

#end

################################################

####MACRO INIT####

#macro(init )

#set($cpt_test = 0)

#set($cpt = 0)

#set($cpt_couvre = 0)

#set($pourc_couvre = 0)

#set($total=0)

#if($typedoc == "FI")

#set($cpt_EFI = 0)

#set($cpt_EL = 0)

#set($pourc = 0)

#set($total_efi=0)

#set($list_fichier=[])

#set($taille = 0)

#end

#end

#macro( typedocs $typedoc)

#if($typedoc == "STB")

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.back)

#set($a = "True")

#set($c = "False")

#elseif($typedoc == "DSBL")

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.direct)

#set($a = "True")

#set($c = "True")

#elseif($typedoc == "DCL")

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.up)

#set($a = "True")

#set($c = "False")

#elseif($typedoc == "RTM")

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.direct)

#set($a = "True")

#set($c = "True")

#elseif($typedoc == "DTILM")

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.direct)

#set($a = "True")

#set($c = "False")

#elseif($typedoc == "DTVAL")

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.direct)

#set($a = "True")

Page 8: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#set($c = "False")

#else

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.direct)

#end

#if($typedoc == "RTM")

#set($role = "valide")

#else

#set($role = "couvre")

#end

#end

####MACRO CALCUL AVANC ET COUVRE ####

#macro(calcul $docs $role )

#set($cpt_test = 0)

#set($cpt = $cpt + 1)

#if( $wi.fields.status.get.id == "Approuve")

#set($total = $math.add($total,100))

#elseif( $wi.fields.status.get.id == "Valide")

#set($total = $total + 95)

#elseif( $wi.fields.status.get.id == "En_verification")

#set($total = $total+ 50)

#elseif( $wi.fields.status.get.id == "En_redaction")

#set($total = $total+ 25)

#end

####POUR CHAQUE FIELDS : ROLE FAIRE #####

#foreach($wi2 in $ellinkedWorkItems)

#if($wi2.fields.role.get.id=="$role")

#set($cpt_test = 1)

#end

#end

#if ($cpt_test>0)

#set($cpt_couvre = $cpt_couvre + 1)

#end

#end

######MACRO % TOTAL########

Page 9: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#macro(pourc_total $pourc_avanc $pourc_couvre )

#set($Pourc_avanc_Projet = $Pourc_avanc_Projet + $pourc_avanc)

#set($Pourc_traca_Projet = $Pourc_avanc_Projet + $pourc_couvre)

#set($NB_Phase = $NB_Phase + 1)

#end

##################

<h2> Phase 0 </h2>

#set($Projet = "STR-DASYE-A")

#set($Cycle = "Cycle_1")

#set($logiciel = "T2N")

#set($log = "Logiciel $logiciel")

#set($typedoc = "STB")

####A CHAQUE DEBUT DE PHASE####

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND title:${esc.h}$logiciel${esc.h} AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type:ES AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

######VALEUR DES TRUE/FALSE A REVOIR AVEC ALEXANDRE######

#typedocs ( $typedoc)

#calcul($typedoc $role )

#set($pourc_couvre = 100 * ($cpt_couvre / $cpt))

#set($pourc_avanc = $total / $cpt)

#end

#end

$pourc_avanc

####POUR CHAQUE PHASE A LA FIN FAIRE####

#set($pourc_avanc = 80)

#pourc_total ($pourc_avanc $pourc_couvre )

#avancement ($pourc_avanc $typedoc )

Page 10: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

$list_nom

$list_pourc

<h2>Phase 1b</h2>

#set($Projet = "STR-DASYE-A")

#set($Cycle = "Cycle_1")

#set($logiciel = "T2N")

#set($log = "Logiciel $logiciel")

#set($typedoc = "DSBL")

####A CHAQUE DEBUT DE PHASE####

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND title:${esc.h}$logiciel${esc.h} AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type:EL AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

######VALEUR DES TRUE/FALSE A REVOIR AVEC ALEXANDRE######

#typedocs ( $typedoc)

#calcul($typedoc $role )

#set($pourc_couvre = 100 * ($cpt_couvre / $cpt))

#set($pourc_avanc = $total / $cpt)

#end

#end

####POUR CHAQUE PHASE A LA FIN FAIRE####

#pourc_total ($pourc_avanc $pourc_couvre )

$pourc_avanc

$pourc_couvre

#avancement ($pourc_avanc $typedoc )

$list_nom

$list_pourc

<h2>Phase 2B</h2>

#set($Projet = "STR-H")

Page 11: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#set($Cycle = "Cycle_6")

#set($logiciel = "T2N")

#set($log = "Logiciel $logiciel")

#set($typedoc = "DCL")

####A CHAQUE DEBUT DE PHASE####

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND title:${esc.h}$logiciel${esc.h} AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type:EC AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

######VALEUR DES TRUE/FALSE A REVOIR AVEC ALEXANDRE######

#typedocs ( $typedoc)

#calcul($typedoc $role )

#set($pourc_couvre = 100 * ($cpt_couvre / $cpt))

#set($pourc_avanc = $total / $cpt)

#end

#end

####POUR CHAQUE PHASE A LA FIN FAIRE####

#pourc_total ($pourc_avanc $pourc_couvre )

$pourc_avanc

$pourc_couvre

#avancement ($pourc_avanc $typedoc )

$list_nom

$list_pourc

<h2> Phase 3 </h2>

#set($Projet = "STR-H")

#set($Cycle = "Cycle_4")

#set($logiciel = "T2N")

#set($log = "Logiciel $logiciel")

#set($typedoc = "DSBL")

#set($typedoc2 = "DCL")

Page 12: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#if($Projet.contains("DASY"))

#if($logiciel== "T2N")

#set($path = "https://svn-

pim.ll.sncf.fr:8443/svn/LE_SIER_T2NDASY")

#set($offset = 40)

#elseif($logiciel== "M")

#set($offset = 38)

#set($path = "https://svn-

pim.ll.sncf.fr:8443/svn/LE_SIER_MDASY")

#end

#elseif ($Projet.contains("2N2"))

#if($logiciel== "T2N")

#set($path = "https://svn-

pim.ll.sncf.fr:8443/svn/LE_SIER_T2N2N2")

#set($offset = 40)

#elseif($logiciel== "M")

#set($offset = 38)

#set($path = "https://svn-

pim.ll.sncf.fr:8443/svn/LE_SIER_M2N2")

#end

#elseif ($Projet.contains("POS"))

#if($logiciel== "T1N")

#set($path = "https://svn-pim.ll.sncf.fr:8443/svn/LE_SIER_T1N")

#set($offset = 40)

#elseif($logiciel== "M")

#set($offset = 38)

#set($path = "https://svn-

pim.ll.sncf.fr:8443/svn/LE_SIER_MPOS")

#end

#else

#if($logiciel== "T2N")

#set($path = "https://svn-pim.ll.sncf.fr:8443/svn/LE_SIER_T2N")

#set($offset = 40)

#elseif($logiciel== "T1N")

#set($path = "https://svn-pim.ll.sncf.fr:8443/svn/LE_SIER_T1N")

#set($offset = 40)

#elseif($logiciel== "M")

#set($offset = 38)

#set($path = "https://svn-pim.ll.sncf.fr:8443/svn/LE_SIER_M")

#end

#end

#set($Que = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND (title:${esc.h}$typedoc${esc.h} OR

title:${esc.h}$typedoc2${esc.h})")

#set($docs = $transaction.documents.search().query($Que).sort("space"))

#set ($txt ="")

#set ($rootItems =

$transaction.workItems().search().query($thisQuery).sort("status"))

#set($NbTot = 0)

#set($NbCodee = 0)

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "(type: EC OR type: EL) AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

#set ($NbTot = $NbTot + 1)

#set($test = $wi.fields.document)

Page 13: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#set($test = $wi.fields().linkedResources)

#set($chemin = "$test.render")

#set($te = "$test.render.withLinks")

#set($len = $chemin.length - $te.length+4)

#if($te != "")

#set($NbCodee = $NbCodee+1 )

#end

#end

#end

#set($pourc =0)

#set($pourc = 100 * $NbCodee / $NbTot)

$pourc

#set($Pourc_avanc_Projet = $Pourc_avanc_Projet + $pourc_avanc)

#set($Pourc_traca_Projet = $Pourc_avanc_Projet + $pourc_couvre)

#set($NB_Phase = $NB_Phase + 1)

<h2> Phase 4 </h2>

#set($Projet = "STR-H")

#set($Cycle = "Cycle_6")

#set($logiciel = "T2N")

#set($log = "Logiciel $logiciel")

#set($typedoc = "FI")

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type: Fichier AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

#set($cpt_test = 0)

#set($cpt_EL = $cpt_EL + 1)

#set($ellinkedWorkItems = $wi.fields.linkedWorkItems.direct)

#foreach($wi2 in $ellinkedWorkItems)

#set ($txt_wi = "$wi2.render")

#set ($txt_2 = $txt_wi.substring(1))

#if($txt_2.contains($logiciel))

##Lorsque le logiciel est contenu ajouter le fichier dans une

liste

#set($c = $list_fichier.add($wi))

#if(!$c)

erreur dans l'ajout dans array

Page 14: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#end

#end

#end

#end

#set($query2 = "type: EFI AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems2 =

$transaction.workItems().search().query($query2).sort("id"))

#foreach($wi3 in $rootItems2)

#set($cpt_EFI = $cpt_EFI + 1)

#if( $wi3.fields.status.get.id == "Approuve")

#set($total_efi = $math.add($total_efi,100))

#elseif( $wi3.fields.status.get.id == "Valide")

#set($total_efi = $total_efi + 95)

#elseif( $wi3.fields.status.get.id == "En_verification")

#set($total_efi = $total_efi + 50)

#elseif( $wi3.fields.status.get.id == "En_redaction")

#set($total_efi = $total_efi + 25)

#end

#end

#end

#set($pourc_avanc_efi = $total_efi/$cpt_EFI)

##$total_efi

##$cpt_EFI

#if($pourc_avanc_efi <30)

#set($color_efi="red")

#elseif($pourc_avanc_efi <80)

#set($color_efi="orange")

#else

#set($color_efi="green")

#end

#set($taille = $list_fichier.size)

#set($taille = $taille - 1)

#set($cpt_fich = 0)

#foreach($i in [0..$taille])

#set($cpt_fich = $cpt_fich + 1)

#set ($recup_list_fichier = $list_fichier.get($i))

Page 15: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#set($t = "$recup_list_fichier.fields.link.id")

#if($t.contains("couvre"))

#set($cpt_test = 1)

#end

#if( $recup_list_fichier.fields.status.get.id == "Approuve")

#set($total = $math.add($total,100))

#elseif( $recup_list_fichier.fields.status.get.id == "Valide")

#set($total = $total + 95)

#elseif( $recup_list_fichier.fields.status.get.id ==

"En_verification")

#set($total = $total+ 50)

#elseif( $recup_list_fichier.fields.status.get.id == "En_redaction")

#set($total = $total+ 25)

#end

#end

#set($pourc_avanc_fich = $total / $cpt_fich)

#set($Pourc_avanc_Projet = $Pourc_avanc_Projet + $pourc_avanc_fich)

#set($Pourc_traca_Projet = $Pourc_avanc_Projet + $pourc_couvre)

#set($NB_Phase = $NB_Phase + 1)

FI fichier $pourc_avanc_fich

<h2>Phase 4</h2>

RTM -> CTU

#set($Projet = "STR-H")

#set($Cycle = "Cycle_6")

#set($logiciel = "T2N")

#set($log = "Logiciel $logiciel")

#set($typedoc = "RTM")

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND title:${esc.h}$logiciel${esc.h} AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type:CTU AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

######VALEUR DES TRUE/FALSE A REVOIR AVEC ALEXANDRE######

#typedocs ( $typedoc)

Page 16: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#calcul($typedoc $role )

#set($pourc_couvre = 100 * ($cpt_couvre / $cpt))

#set($pourc_avanc = $total / $cpt)

#end

#end

####POUR CHAQUE PHASE A LA FIN FAIRE####

#pourc_total ($pourc_avanc $pourc_couvre )

$pourc_avanc

$pourc_couvre

#avancement ($pourc_avanc $typedoc )

$list_nom

$list_pourc

<h2>Phase 5b</h2>

#set($Projet = "STR-DASYE-A")

#set($Cycle = "Cycle_1")

#set($logiciel = "M")

#set($log = "Logiciel $logiciel")

#set($typedoc = "DTILM")

####A CHAQUE DEBUT DE PHASE####

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND title:${esc.h}$logiciel${esc.h} AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type:CTI AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

######VALEUR DES TRUE/FALSE A REVOIR AVEC ALEXANDRE######

#typedocs ( $typedoc)

#calcul($typedoc $role )

#set($pourc_couvre = 100 * ($cpt_couvre / $cpt))

#set($pourc_avanc = $total / $cpt)

#end

Page 17: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#end

####POUR CHAQUE PHASE A LA FIN FAIRE####

#pourc_total ($pourc_avanc $pourc_couvre )

$pourc_avanc

$pourc_couvre

#avancement ($pourc_avanc $typedoc )

$list_nom

$list_pourc

<h2>Phase 6 </h2>

DSBL EL -> CTL

#set($Projet = "STR-H")

#set($Cycle = "Cycle_6")

#set($logiciel = "T2N")

#set($log = "Logiciel $logiciel")

#set($typedoc = "DSBL")

####A CHAQUE DEBUT DE PHASE####

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND title:${esc.h}$logiciel${esc.h} AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type:EL AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

######VALEUR DES TRUE/FALSE A REVOIR AVEC ALEXANDRE######

#typedocs ( $typedoc)

#calcul($typedoc $role )

#set($pourc_couvre = 100 * ($cpt_couvre / $cpt))

#set($pourc_avanc = $total / $cpt)

#end

#end

####POUR CHAQUE PHASE A LA FIN FAIRE####

#pourc_total ($pourc_avanc $pourc_couvre )

Page 18: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

$pourc_avanc

$pourc_couvre

#avancement ($pourc_avanc $typedoc )

$list_nom

$list_pourc

<h2> Phase 6</h2>

DTVAL -> CTL

#set($Projet = "STR-DASYE")

#set($Cycle ="Cycle_1")

#set($logiciel = "M")

#set($log = "Logiciel $logiciel")

#set($typedoc = "DTVAL")

####A CHAQUE DEBUT DE PHASE####

#init ()

#set($thisQuery = "Projet.KEY:$Projet AND Cycle.KEY:$Cycle AND

title:${esc.h}$logiciel${esc.h} AND title:${esc.h}$logiciel${esc.h} AND

title:${esc.h}$typedoc${esc.h}")

#set($docs = $transaction.documents.search().query($thisQuery).sort("space"))

#foreach ($d in $docs)

#set($taille = $d.fields.moduleLocation.get.indexOf('#',1))

#set($query = "type:CTL AND

document.id:$d.fields.moduleLocation.get.substring(0,$taille)")

#set ($rootItems =

$transaction.workItems().search().query($query).sort("id"))

#foreach($wi in $rootItems)

######VALEUR DES TRUE/FALSE A REVOIR AVEC ALEXANDRE######

#typedocs ( $typedoc)

#calcul($typedoc $role )

#set($pourc_couvre = 100 * ($cpt_couvre / $cpt))

#set($pourc_avanc = $total / $cpt)

#end

#end

####POUR CHAQUE PHASE A LA FIN FAIRE####

#pourc_total ($pourc_avanc $pourc_couvre )

$pourc_avanc

$pourc_couvre

Page 19: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

#avancement ($pourc_avanc $typedoc )

$list_nom

$list_pourc

<br>

$Pourc_avanc_Projet

$Pourc_traca_Projet

$NB_Phase

#set($pourc_avanc_total = $Pourc_avanc_Projet / $NB_Phase)

#set($pourc_traca_total = $Pourc_traca_Projet / $NB_Phase)

####AfFICHER LE % TOTAL ####

##$pourc_avanc_total

##$pourc_traca_total

#if($pourc_avanc_total <30)

#set($color="red")

#elseif($pourc_avanc_total <80)

#set($color="orange")

#else

#set($color="green")

#end

#if($pourc_traca_total <30)

#set($color="red")

#elseif($pourc_traca_total <80)

#set($color="orange")

#else

#set($color="green")

#end

<h3> Pourcentage de l'avancement total: </h3>

##AFFICHAGE BARRE DE PROGRESSION DE L'AVANCEMENT##

<br>

<div class="progress" style="width:100%;">

<span class=$color style="width:

$pourc_avanc_total%;"><span>$pourc_avanc_total%</span></span>

</div>

</br>

###################################################

Page 20: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

<h3> Pourcentage de la traçabilité totale: </h3>

##AFFICHAGE BARRE DE PROGRESSION DE L'AVANCEMENT##

<br>

<div class="progress" style="width:100%;">

<span class=$color style="width:

$pourc_traca_total%;"><span>$pourc_traca_total%</span></span>

</div>

</br>

###################################################

##set($taille = $list_nom.size)

##set($taille = $taille - 1 )

<br>

$list_nom

<br>

$list_pourc

<br>

#set($taille = $list_nom.size)

#set($taille = $taille - 1)

$taille

#tri ($taille $list_nom $list_pourc)

$NB1 $NB2 $NB3 <br>

$nom1 $nom2 $nom3

<h2> Les taux de traçabilité les plus bas : </h2>

<h3> Nom : $nom1 </h3>

<h3> Nom : $nom2 </h3>

<h3> Nom : $nom3 </h3>

#####################################################

Page 21: GENY Simon Activité professionnelle N° 1...BTS SIO Services Informatiques aux Organisations Option SLAM Session 2019 GENY Simon 1337726455 Activité professionnelle N 1 NATURE DE

Difficultés :

Le langage utilisé (surtout la partie SQL, les QUERY / requêtes) me semblait complexe.

Nombreux problèmes liés au type de fichier, les différents liens qu’ils ont entre eux, me permettant de

retourner différentes choses indispensables pour mon projet.

Résultat : Finalement, j’ai réussi à retourner les taux d’avancement et de couverture des différents fichiers. Mais ce

n’est pas un projet tout à fait abouti, pour ce faire il m’aurait fallu beaucoup plus de temps et une meilleure

compréhension de l’outil Polarion.

Le résultat final aurait du m’afficher les différents taux en fonction du type de document, du type de projet.

Pour le moment il renvoi les taux grâce au projet que j’avais préalablement mis en paramètres

CONCLUSION Ce stage a été très enrichissant pour moi car il m’a permis de découvrir le PIM d’Hellemmes puis PIGI de la SNCF, ses acteurs, ses contraintes… et il m’a permis de participer concrètement à ses enjeux au travers de ma mission que j’ai particulièrement appréciée. Ce stage m’a aussi permis de comprendre que je devais m’investir plus personnellement afin de développer ma communication. Me débrouillant niveau technique, je dois mieux m’organiser afin d’optimiser mon temps et faire de meilleur retour.

EVOLUTION POSSIBLE Fort de cette expérience et en réponse à ses enjeux, j’aimerai beaucoup par la suite essayer de m’orienter via un prochain stage, vers le secteur de la sécurité informatique avec des acteurs de petites tailles, et un important développement d’avenir.