liens code de la propriété intellectuelle. articles l 122....
Post on 22-Sep-2020
1 Views
Preview:
TRANSCRIPT
AVERTISSEMENT
Ce document est le fruit d'un long travail approuvé par le jury de soutenance et mis à disposition de l'ensemble de la communauté universitaire élargie. Il est soumis à la propriété intellectuelle de l'auteur. Ceci implique une obligation de citation et de référencement lors de l’utilisation de ce document. D'autre part, toute contrefaçon, plagiat, reproduction illicite encourt une poursuite pénale. Contact : ddoc-theses-contact@univ-lorraine.fr
LIENS Code de la Propriété Intellectuelle. articles L 122. 4 Code de la Propriété Intellectuelle. articles L 335.2- L 335.10 http://www.cfcopies.com/V2/leg/leg_droi.php http://www.culture.gouv.fr/culture/infos-pratiques/droits/protection.htm
FACULTE DES SCIENCES & TECHNIQUES
U.F.R. Sciences et Techniques Mathématiques, Informatique et Automatique
École Doctorale IAEM Lorraine
Département de Formation Doctorale Automatique
Annexe de la Thèse Présentée pour l’obtention du titre de
Docteur de l’Université Henri Poincaré, Nancy I
en Automatique, Traitement du Signal, Génie Informatique
par Jean-Philippe AUZELLE
PROPOSITION D’UN CADRE DE MODÉLISATION MULTI-
ÉCHELLES D’UN SYSTÈME D’INFORMATION EN ENTREPRISE
CENTRÉ SUR LE PRODUIT.
Soutenue publiquement le 11 mars 2009 devant la commission d’examen :
Membres du jury :
Rapporteurs : M.David Chen Professeur, Université Bordeaux 1, Président du jury
M.Angel Ortiz Bas Professeur, Université Polytechnique de Valencia
Examinateurs : M. Dominique Luzeaux Directeur adjoint de l'UMESIO à la DGA
(Délégation Générale pour l'Armement), HdR
M. Gérard Morel Professeur, UHP Nancy I (Directeur de thèse)
M. Hervé Panetto Professeur, UHP Nancy I (Codirecteur de thèse)
Mme. Frédérique Mayer Maître de conférences, INPL (Codirectrice de thèse)
Invité : M. François Vernadat Professeur, Université Paul Verlaine de Metz
Centre de Recherche en Automatique de Nancy
Faculté des sciences et Techniques – 54500 Vandœuvre lès Nancy
2
3
SOMMAIRE
Annexe.1. Gantt du projet eProduction ............................................................................................................. 4
Annexe.2. Diagramme d’activité UML d’Enchaînement des objets de modélisation de la MOA pour notre cas d’étude 5
Annexe.3. Meta‐modèle du processus ............................................................................................................... 6
Annexe.4. Concepts et représentations symboliques de MEGA Modelling Suite .............................................. 7
Annexe.5. Diagramme d’objectifs et d’exigences du SAF global ...................................................................... 11
Annexe.6. Diagramme d'environnement de processus du SAF global ............................................................. 11
Annexe.7. Prototype d’Outilage de modélisation ............................................................................................ 12
Modification du méta modèle de MEGA suite .................................................................................................. 12
Modification du menu contextuel de MEGA .................................................................................................... 14
Exemple de macro pour la création d’un répertoire pour un SdS (bénéficiaire): « CopierRep&Fichier_SDS » 16
Exemple de macro pour la création d’un répertoire pour un système contributeur : ..................................... 17
modification du portail de mega ....................................................................................................................... 19
Code HTML du portail ................................................................................................................................... 19
Creation d’un graphique de navigation avec Graphviz ..................................................................................... 22
Création de page web pour chaque Zachman (composant‐composite) ........................................................... 24
Visuel ............................................................................................................................................................. 24
Annexe.8. Cahier des charge partiel « e‐Production » de l’AIPL ...................................................................... 25
Annexe.9. Modèle MESA .................................................................................................................................. 29
Annexe.10. Modèle fonctionnel inspiré du Purdue reference model ........................................................... 30
Annexe.11. Création du fichier XSLT .............................................................................................................. 31
Ingénierie .......................................................................................................................................................... 31
Résultat ............................................................................................................................................................. 32
ANNEXE.1. GANTT DU PROJET EPRODUCTION
Figure 1 Gantt du projet eProduction
ANNEXE.2. DIAGRAMME D’ACTIVITÉ UML D’ENCHAÎNEMENT DES OBJETS DE MODÉLISATION DE LA MOA POUR NOTRE CAS D’ÉTUDE
Début SCOPE
Création du paquetage SAF
Création du diagramme d'objectifs et d'exigences du SAF
Création du diagramme de cas d'utilisation du SAF
Exigences du cahier des charges du MOA
Création du diagramme de paquetage du SAF
Création d'un objectif et de ses <n> exigences détaillées
Fin SCOPE
Création du Zachman composite SAFStéréotype : système et système composite
Cellule SCOPE-WHY
Cellule SCOPE-HOW
Cellule SCOPE-WHAT
Emergence des exigences en phase avec le cycle de vie du produit (Choix de le faire à rebours)
Enrichissement du diagramme de cas d'utilisation du SAF A une exigence i correspond un cas d'utilisation j
01
?Existe-t-il un COTS qui puisse répondre à cette exigence?
Création du paquetage du COTS contributeur dans le diagramme de cas
d'utilisation du SAF
Création du Zachman Composant du COTSStéréotype : Système et Système Composant
Association du cas d'utilisation avec le paquetage du COTS dans le diagramme
de cas d'utilisation du SAF
Enrichissement du diagramme de paquetage du SAF avec le paquetage du
COTS
Création du diagramme d'exigences du COTS
Cellule SCOPE-WHY du Zachman COTS
Héritage des objectifs et exigences relatifs au cas d'utilisation du SAF dans
le diagramme d'exigences du COTS
Création du diagramme de cas d'utilisation du COTS Cellule SCOPE-HOW du
Zachman COTS
Héritage des cas d'utilisation du SAF dans le diagramme de cas d'utilisation
du COTS
Création du diagramme de paquetage du COTS Cellule SCOPE-WHAT du
Zachman COTS
Enrichissement du diagramme de paquetage du COTS avec les
informations identifiées fournies par le COTS pour chaque cas d'utilisation
Recherche de ces informations à partir des documents fournis avec le COTS et enrichissement du diagramme de paquetage avec des documents de spécifications détaillées pour chaque cas d'utilisation
06?
Existe-t-il des exigences prérequises au bon fonctionnement du COTS?
Enrichissement du diagramme de cas d'utilisation du COTS par raffinement de ses exigences intrinsèques
[oui]
Enrichissement du diagramme d'exigences du COTS par raffinement de ses exigences intrinsèques
i++
i=n+1
Prise en compte exigence i
i=1
[non]
Création d'un cas d'utilisation dans le diagramme de cas d'utilisation du SAF
[non]
Création du paquetage du nouveau système contributeur dans le
diagramme de cas d'utilisation du SAF
Association du cas d'utilisation avec le nouveau système contributeur dans le diagramme de cas d'utilisation du SAF
Enrichissement du diagramme de paquetage du SAF avec le paquetage du
nouveau système contributeur
Création du diagramme d'exigences du nouveau système contributeur
Héritage des objectifs et exigences relatifs au cas d'utilisation du SAF dans
le diagramme d'exigences du nouveau système contributeur
Création du diagramme de cas d'utilisation du nouveau système
contributeur
Héritage des cas d'utilisation du SAF dans le diagramme de cas d'utilisation
du nouveau système contributeur
Création du diagramme de paquetage du nouveau système contributeur
[non]
02 ?Faut-il créer un paquetage pour le COTS?
[oui]
[oui][non]
Edition d'un document de spécifications détaillées pour ce cas d'utilisation
Possibilité d'associer des documents (ou partie) fournies par l'éditeur
07?
Par rapport au cyle de vie du produit, s'agit-til du dernier objectif?
[oui]
[oui][non]
03
04
[oui]
[oui]
Enrichissement du diagramme d'objectifs et d'exigences du SAF avec
un nouvel objectif d'interopérabilité
[non]
Enrichissement du diagramme d'objectifs et d'exigences des COTS
avec le nouveau sous-objectif d'interopérabilité COTS-COTS
05
Enrichissement du diagramme d'objectifs et d'exigences du SAF avec
un nouveau sous-objectif d'interopérabiltié COTS-COTS
Enrichissement du diagramme d'objectifs et d'exigences du COTS avec les exigences d'interopérabilté
[oui]
[non]
[oui]
[non]
03
?
Il existe une ou plusieurs exigences d'interopérabiltié avec un ou plusieurs autres COTS
04
[oui]
Enrichissement du diagramme d'objectifs et d'exigences du SAF avec
un nouvel objectif d'interopérabilité
Enrichissement du diagramme d'objectifs et d'exigences des COTS
avec le nouveau sous-objectif d'interopérabilité COTS-COTS
05
?
Il n'existe pas d'objectif d'interopérabilité dans le diagramme d'objectifs et d'exigences du SAF
Enrichissement du diagramme d'objectifs et d'exigences du SAF avec
un nouveau sous-objectif d'interopérabiltié COTS-COTS
Enrichissement du diagramme d'objectifs et d'exigences du COTS avec les exigences d'interopérabilté
?
Il n'existe pas de sous-objectif d'interopérabilité COTS-COTS
[oui]
[non]
[oui]
[non]
6
ANNEXE.3. META‐MODÈLE DU PROCESSUS
Processus
Acteur
Métier
Activité
Procédure
0..1
Activité détenue
0..1
Processus détenteur
OpérationOpération détenue
0..1
Procédure détentrice
Application
Ressource
Service
Site
0..1
IndicateurObjectifExigence
Exigence imposée Objectif assigné
0..1
Rôle
Où
Pourquoi
Quoi
Comment
Qui
Avec quoi
MEGA Process::Autour de processus
7
ANNEXE.4. CONCEPTS ET REPRÉSENTATIONS SYMBOLIQUES DE MEGA MODELLING SUITE
Tableau 1. Symbole ‐ concept ‐ définition des objets de modélisation sous MEGA Modelling Suite
Symbole Concept DéfinitionDiagramme d’objectifs et d’exigences
Projet
Un projet consiste en un ensemble de tâches confiées à une équipe, qui transforment un système, ou une partie d'un système, en vue d'atteindre un objectif donné.
Objectif
Un objectif est un but que l'on cherche à atteindre ou la cible visée pour un processus ou une opération. Il permet de mettre en évidence les points que l'on veut améliorer pour ce processus ou cette opération.
Exigence
Une exigence est un besoin ou une attente formulé explicitement, imposés comme une contrainte à respecter dans le cadre d'un projet de certification, d'organisation ou de modification du système d'information d'une entreprise.
Diagramme de paquetage
Paquetage
Un paquetage partitionne le domaine d'étude et les travaux associés. Il permet de regrouper divers éléments, en particulier des cas d'utilisations et des classes. Un paquetage peut aussi contenir d'autres paquetages. Les paquetages sont liés entre eux à travers des rapports contractuels définissant leur interface.
Diagramme de processus
Processus
Un processus est une chaîne de valeur fournissant un bien ou un service à un client interne ou externe à l'entreprise. Cette chaîne de valeur est décrite par une séquence d'activités de transformation. Elle est mise en oeuvre par des procédures.
Acteur externe Un acteur externe représente un organisme qui échange des flux avec l'entreprise. Ex : Client, Fournisseur, Administration.
Message
Un message représente un flux circulant à l'intérieur de l'entreprise ou échangé entre l'entreprise et son environnement. C'est généralement un flux d'information comme une commande ou une facture. Par commodité, un flux financier comme le règlement du client, ou un flux de matière comme la livraison d'un produit est également représenté par un message.
Note
Une note est une annotation ou remarque apportant un commentaire, un éclaircissement sur un texte ou un dessin. Les notes peuvent être de différents types : Remarque, Question, Documentation, Evolution, Correction, Anomalie, Spécification Technique, ...
Diagramme de site
Site
Un site est un lieu géographique où est implantée l'entreprise. Les sites peuvent être des sites-types tels que le siège, l'agence, l'usine, ou des lieux géographiques précis comme l'agence de Marseille, l'usine de Poissy, etc.
eProduction
Doter l'AIPL d'une infrastructure de type réactive
Respecter l'ISO 9001:2000
SAF_eProduction<< Système >>
4.3 Gestion des réceptions MP et
NRJ
Fournisseur
Facture
Doit respecter 6 exigences
Zone de réception
8
Organigramme
Acteur Responsable
Un acteur interne représente un élément de l'organisation d'une entreprise tel qu'une direction, un service ou un poste de travail. Il est défini à un niveau plus ou moins fin en fonction de la précision à fournir sur l'organisation (cf type d'acteur). Ex : la direction financière, la direction commerciale, le service marketing, l'agent commercial.
Acteur structure
Acteur
Un acteur représente une personne ou un groupe de personnes qui interviennent dans les processus ou dans le système d'information de l'entreprise. Un acteur peut être interne ou externe à l'entreprise
Diagramme de séquence
Instance
Un objet est une entité avec une identité et des frontières clairement définies dont l'état et le comportement sont encapsulés. Son état est défini par les valeurs de ses attributs et de ses liens avec d'autres objets. Son comportement est représenté par ses opérations et ses méthodes. Un objet est une instance de classe.
Activation d’objet
Une activation présente la période de temps pendant laquelle un objet exécute une action, directement, ou par l'intermédiaire d'une sous-procédure. Elle représente à la fois la durée de l'action et le contrôle de l'action par l'appelant.
Diagramme de cas d’utilisation
Cas d’utilisation
Un cas d'utilisation est une suite d'actions qui amène un résultat observable pour un acteur particulier. Des scénarios illustrent les cas d'utilisation par l'exemple.
Cas inclus
Acteur UML
Directeur
Magasinier
Olivier NARTZ
SAGE-X3:ERP
OA
Réception avec OA
<<Inclut>>
Magasinier
9
Diagramme de mise en oeuvre du processus
Note
Acteur externe Un acteur externe représente un organisme qui échange des flux avec l'entreprise. Ex : Client, Fournisseur, Administration.
Opération
Une opération est une étape d'une procédure correspondant à l'intervention d'un acteur de l'organisation dans le cadre d'une des activités de l'entreprise. Ce peut être une opération industrielle comme 'usiner une pièce' ou logistique comme 'réceptionner une livraison', ou un traitement d'information comme 'enregistrer une commande'. Une opération peut être décomposée en tâches élémentaires.
Procédure
Une procédure décrit la marche à suivre pour mettre en oeuvre tout ou partie du processus d'élaboration d'un produit ou un flux. Une procédure est représentée par une succession d'opérations déclenchées par la réception d'un message.
Diagramme d'architecture applicative
Application
Une application est un ensemble de composants logiciels qui constituent un tout cohérent au regard des développements informatiques.
Service
Un service est l'élément de découpage d'une application qui est mis à la disposition de l'utilisateur final de cette application dans le cadre de son travail. Les services représentent un découpage des applications en unités fonctionnelles élémentaires. Un service est une unité de traitement cohérente et indivisible coordonnant un ensemble de messages et d'événements afin d'effectuer une tâche dans le système d'information. Dans l'architecture applicative, le service est l'unité fonctionnelle la plus élémentaire.
Temporisateur
Un temporisateur indique le moment où se produit un événement comme le déclenchement d'une procédure ou l'émission d'un message. Un temporisateur est un événement déterminé uniquement par le temps qui s'écoule. Ex : Le lundi, à quatre heures, etc.
=OA = Bon de commande
Fournisseur
Réceptionner les livraisons avec OA
Réception avec OA
Flexnet
JobScheduler
Toutes les 5 sec
10
Diagramme d'architecture technique
Nœud
Un noeud est un élément du réseau tel qu'une imprimante, un modem, un routeur, etc. Il peut être connecté au réseau, ou bien directement à un poste de travail ou un serveur.
Réseau
Un réseau est un système d'ordinateurs géographiquement éloignés les uns des autres, interconnectés par des télécommunications, généralement permanentes. Un réseau peut être local à un site de l'entreprise.
Application Une application est un ensemble de composants logiciels qui constituent un tout cohérent au regard des développements informatiques.
Serveur
Un serveur est une ressource informatique matérielle, pouvant éventuellement disposer d'une base de données et sur laquelle des applications peuvent s'exécuter.
Base de données
Une base de données permet de spécifier la structure de stockage logique ou physique des données.
Poste de travail (PDA)
Un poste de travail est un poste type correspondant à un profil d'utilisateur.
Routeur AIPL Borne Wi-Fi Imprimante matières
Ethernet AIPL
AKEWA
AIP-Lorrain
FLexNet93
PDA
11
ANNEXE.5. DIAGRAMME D’OBJECTIFS ET D’EXIGENCES DU SAF GLOBAL
ANNEXE.6. DIAGRAMME D'ENVIRONNEMENT DE PROCESSUS DU SAF GLOBAL
Figure 2 Diagramme d'environnement de processus du SAF global.
SAF_global_tracer-produit
Produit tracé pendant son ingénierie
Produit tracé pendant sa mise à disposition
Assurer l'interopérabilité entre les systèmes d'information
Assurer la synchronisation périodique des échanges
Commercialisation produit
Commande
Gestion de version produitConception produit
BoM BoM
numéro de version
ClientOracle-Siebel
ProEngineer Windchill
Gestion des commandes clients à DIMEG
SAP_DIMEG
Commande
DIMEG
Mise en Production du produit (ISO IEC 62 264)
SAGE X3
Commande
5.0 Achats
Gestion des stocks de PF et préparation des
expéditions
Expédition
3.0 Contrôle de la production
(2.0) Ordonnancement
4.0 Gestion des MP, articles achetés, SF,
Energie
(1.0) Gestion des commandes client et
Planification
Confirmation entrées
Demande d'achat
Besoin long terme
Disponibilité
Besoins à court terme
Données process
Capacité de production
CR OFs
Capacité à réaliser l'OF
OFs
Libération expédition
Confirmation expédition
Doit respecter 6 exigences
OA
Fournisseur
Facture
Commande
OFs
Flexnet
SAGE X3
FlexnetFlexnet
Flexnet
AIPL
Messagerie
Messagerie
Gestion des commandes d'expédition
SAP_DHL
Transport
Information sur la commande
Bon de livraison Ordre de Livraison
DHL
CR fin de livraison
CR fin de livraison
CR fin de livraison
12
ANNEXE.7. PROTOTYPE D’OUTILAGE DE MODÉLISATION
MODIFICATION DU MÉTA MODÈLE DE MEGA SUITE
L’expérience de notre équipe de recherche sur la meta-modélisation et l’adaptation de l’environnement MEGA
Modelling Suite nous a amené, naturellement, à adapter certaines de ses fonctionnalités et surtout d’en ajouter de
nouvelles. Les modifications sont relatives au méta modèle du concept de « paquetage » et du concept de
« diagramme » :
• Méta classe « Paquetage »
o Ajout du méta attribut « cellule de rattachement » de type string, longueur 63 caractères,
format du méta attribut « énumération ». (Figure 3) (Figure 7)
o Ajout du méta attribut « type de système » de type string, longueur 63 caractères, format du
méta attribut « énumération ». (Figure 4)
• Méta classe « diagramme »
o Ajout du méta attribut « cellule de rattachement » de type string, longueur 63 caractères,
format du méta attribut « énumération », dont la valeur est dérivée du Paquetage détenteur de
ce Diagramme. (Figure 5)
Pour simplifier le développement, s’agissant uniquement d’un prototype, nous avons implémenté le concept
de PointDeVue par une liste enumérée de la combinatoire des valeurs « niveau/observation » (Figure 6).
Figure 3 Propriétés de METACLASS de l'objet Paquetage : méta attribut « cellule Zachman de rattachement »
13
Figure 4 Propriétés de METACLASS de l'objet paquetage : méta atrribut "type de système (composite‐composant)
Figure 5 Propriétés de METACLASS de l'objet Diagramme : méta attribut « cellule Zachman de rattachement »
14
Figure 6. Stéréotype particulier pour l’association d’un paquetage ou d’un diagramme à une cellule d’un Zachman.
Figure 7. Stéréotype particulier pour décrire le type de système (composant / composite).
MODIFICATION DU MENU CONTEXTUEL DE MEGA
Nous avons ajouté des commandes dans le menu contextuel de l’objet « paquetage » dont l’objectif est de créer des répertoires sur le disque local du modélisateur dans lesquels seront placés les éléments de contruction d’une page web incluant le Zachman correspondant à chaque système.
15
Pour insérer de nouvelles commandes il faut accéder (click-droit) à la méta-classe « paquetage » puis sur « propriétés ». Puis dans l’onglet « interface utilisateur » / « commande de menu » on ajoute une nouvelle commande en l’associant à une macro déjà existante. A titre d’exemple, la macro « CopierRep&Fichiers_SDS » est donnée par la suite.
Commande de suppression d’un Zachman
Commandes de création d’un Zachman
16
Note : attention la modification du menu n’est effective que si l’on ferme le diagramme et qu’on le relance ensuite.
La valeur 256 permet d’avoir le menu dans la partie « nouveau » du menu contextuel existant.
EXEMPLE DE MACRO POUR LA CRÉATION D’UN RÉPERTOIRE POUR UN SDS (BÉNÉFICIAIRE): « CopierRep&Fichier_SDS »
Cette macro est stockée dans la base de l’environnement. Elle est accessible à partir de l’affichage « utilitaires », puis dans le repertoire « Macro VBS/MEGA/SDS ».
'MegaContext(External)
Option Explicit
'----------------------------------------------------------------------------------------------------------------------------------------
' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman
'vers
'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le-nom-paquetage)\
' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman_vbs\sds\*.*
'vers
'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le-nom-paquetage)\
'----------------------------------------------------------------------------------------------------------------------------------------
Sub CmdInvoke(oRoot, num)
Dim fso
Dim sfol
Dim dfol
Dim oNameStereotype
Dim oStereotype
oStereotype=oRoot.GetCollection("stereotype")
If oStereotype.count > 0 Then
oNameStereotype=oStereotype.item(1).Name
MsgBox "votre paquetage est stéréotypé " & oNameStereotype
End If
If oNameStereotype <> "Système" Then
MsgBox "Le stéréotype " & oNameStereotype & " doit être changé par le stéréotype 'Système'"
Else
dfol=oRoot.GetProp("Name")
dfol=replace(dfol,"::","\")
MsgBox dfol
17
dfol="C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\" & dfol
sfol="C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman" ' change to match the source folder path
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(dfol) Then
fso.CopyFolder sfol, dfol
Else
MsgBox dfol & " already exists!", vbExclamation, "Folder Exists"
End If
sfol = "C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman_vbs\sds\" ' change to match the source folder path
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
If Not fso.FolderExists(sfol) Then
MsgBox sfol & " is not a valid folder/path.", vbInformation, "Invalid Source"
ElseIf Not fso.FolderExists(dfol) Then
MsgBox dfol & " is not a valid folder/path.", vbInformation, "Invalid Destination"
Else
fso.CopyFile (sfol & "\*.*"), dfol ' Change "\*.*" to "\*.xls" to move Excel Files only
End If
If Err.Number = 53 Then MsgBox "File not found"
End If
End Sub
EXEMPLE DE MACRO POUR LA CRÉATION D’UN RÉPERTOIRE POUR UN SYSTÈME CONTRIBUTEUR :
'MegaContext(External)
Option Explicit
‘‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman
'vers
'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le‐nom‐paquetage)\
' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman_vbs\system\*.*
'vers
'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le‐nom‐paquetage)\
' ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
Sub CmdInvoke(oRoot, num)
Dim fso
Dim sfol
18
Dim sfol_vbs
Dim dfol
Dim oNameStereotype
Dim oStereotype
Dim changement
Dim chemin
chemin="C:\Program Files\MEGA\MEGA 2007\Mega_Std"
oStereotype=oRoot.GetCollection("stereotype")
If oStereotype.count > 0 Then
oNameStereotype=oStereotype.item(1).Name
MsgBox "votre paquetage est stéréotypé " & vbcrlf & oNameStereotype
End If
If oNameStereotype <> "Système" Then
MsgBox "Le stéréotype " & oNameStereotype & " doit être changé par le stéréotype " & vbcrlf & "'Système'"
Else
dfol=oRoot.GetProp("Name")
dfol=replace(dfol,"::","\")
' MsgBox dfol
dfol= chemin & "\Solutions\portal\zachman\SDS\Projets_User\" & dfol
sfol= chemin & "\Solutions\portal\zachman\SDS\Template\Zachman" ' change to match the source folder path
sfol_vbs = chemin & "\Solutions\portal\zachman\SDS\Template\Zachman_vbs\system\" ' change to match the source folder path
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(dfol) Then
fso.CopyFolder sfol, dfol
fso.CopyFile (sfol_vbs & "\*.*"), dfol
Else
MsgBox dfol & vbcrlf & vbcrlf & " existe déjà !", vbExclamation, "Le dossier existe"
changement=InputBox (" Tapez 'oui'" & vbcrlf & vbcrlf & " si voulez‐vous vraiment transformer " & vbcrlf & " ce Zachman en un Zachman 'composant'")
If changement="oui" Then
fso.DeleteFolder dfol
fso.CopyFolder sfol, dfol
fso.CopyFile (sfol_vbs & "\*.*"), dfol ' Change "\*.*" to "\*.xls" to move Excel Files only
Else
MsgBox "Il n'y aura pas de changement !"
End If
End If
19
End If
End Sub
MODIFICATION DU PORTAIL DE MEGA
Afin d’accéder à l’outil de navigation qui donne l’accès à chaque Zachman particulier, le portail de MEGA Suite à été modifié. Un lien a été ajouté : « Ingénierie Récursive Dirigée par le Modèles ».
Figure 8. Portail de d’accueil de MEGA modifié.
CODE HTML DU PORTAIL
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Zachman récursif</title>
<meta http‐equiv="Content‐Type" content="text/html; charset=iso‐8859‐1">
<script language="VBScript">
ExecuteGlobal external.megaRoot.GetObjectFromId("~2l)pZRjj1X40[MEGA Utilities]").GetProp("~07u)W)F8xO00[VB Script]")
ExecuteGlobal external.megaRoot.GetObjectFromId("~mPNtvwkm1XpE[MEGA Web Utilities]").GetProp("~07u)W)F8xO00[VB Script]")
Lien vers la page de visualisation graphique du système en cours de modélisation
20
</script>
<script language="JavaScript" type="text/JavaScript">
<!‐‐
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//‐‐>
</script>
</head>
<body bgcolor="#4482B4" text="#FFFFFF" link="#FFFF33" vlink="#99FF33" alink="#FF0000" language="vbscript" >
<form name="form1" method="post" action="">
<select name="graform" id="graform">
<option value="dot" selected>dot</option>
<option value="circo">circo</option>
<option value="fdp">fdp</option>
<option value="neato">neato</option>
<option value="twopi">twopi</option>
</select>
Rafraîchir la page si vous changez de forme du graphique (clique droit
+ refresh)
</form>
<p> </p>
<p>
<script language="VBScript">
Const ForReading = 1, ForWriting = 2
Dim racine, chemin2, f
chemin2="C:/Program Files/MEGA/MEGA 2007/Mega_Std/Solutions/portal/zachman/SDS/Projets_User/"
function printNode(packageDetenu)
Dim url, name, oStereotype, fso, typeSys, imagePackage
name = packageDetenu.GetProp("Nom court")
typeSys = packageDetenu.GetProp("Type de système (composite‐composant)")
oStereotype=packageDetenu.GetCollection("stereotype")
21
If oStereotype.count > 0 Then
oNameStereotype=oStereotype.item(1).Name
End If
Set fso = CreateObject("Scripting.FileSystemObject")
url = chemin2 & replace(packageDetenu.GetProp("Name"), "::","/") & "/zachman_static.html"
Set oCollec = packageDetenu.GetCollection("Paquetage détenu")
For each i in oCollec
name_fils = i.GetProp("Nom court")
f.write Chr(34)+name+Chr(34)+"‐>"+Chr(34)+name_fils+Chr(34)+";"
f.write printNode(i)
Next
If oNameStereotype = "Système" Then
If fso.FileExists(url) Then
If typeSys = "Système composant" Then
imagePackage = "package_composant.png"
ElseIf typeSys = "Système composite" Then
imagePackage = "package_composite.png"
Else
imagePackage = "package_vide.png"
End If
f.write Chr(34)+name+Chr(34)+" [shapefile="+Chr(34)+imagePackage+Chr(34)+",URL="+Chr(34)+url+Chr(34)+",target=_blank];"
Else
f.write Chr(34)+name+Chr(34)+" [shapefile="+Chr(34)+"package_vide.png"+Chr(34)+"];"
End If
End If
end function
Set racine=external.megaroot.GetObjectFromId("vNFxYgFq7L60")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\PROGRA~1\MEGA\MEGA20~1\Mega_Std\SOLUTI~1\portal\zachman\SDS\Template\PORTAL~1\graf.dot", ForWriting,true)
f.write "digraph g {"
Set oCollec = racine.GetCollection("Paquetage référencé")
For each i in oCollec
printNode(i)
Next
22
f.write "}"
f.Close
Dim graf
Set graf = CreateObject("WScript.Shell")
graf.Run "C:\PROGRA~1\MEGA\MEGA20~1\Mega_Std\SOLUTI~1\portal\zachman\SDS\Template\PORTAL~1\graphique.bat "+document.form1.graform.value,,true
document.write "<img src='graf.gif' usemap='#G'/>
Dim oFso, f2
Set oFso = CreateObject("Scripting.FileSystemObject")
Set f2 = oFso.OpenTextFile("C:\PROGRA~1\MEGA\MEGA20~1\Mega_Std\SOLUTI~1\portal\zachman\SDS\Template\PORTAL~1\graf.map", ForReading)
Document.Write f2.ReadAll
f2.Close
</script>
</p>
<table width="100%" border="0">
<tr>
<td width="41%"><img src="package_composant.PNG" width="34" height="28"> Système
composant associé à un Zachman </td>
</tr>
<tr>
<td><img src="package_composite.PNG" width="34" height="28"> Système
composite associé à un Zachman </td>
</tr>
<tr>
<td><img src="package_vide.PNG" width="34" height="28"> Système dont
on ne maîtrise pas l'ingénierie interne (boîte noire)</td>
</tr>
</table>
</body>
</html>
CREATION D’UN GRAPHIQUE DE NAVIGATION AVEC GRAPHVIZ
Le portail de MEGA a aussi été modifié pour y ajouter un lien vers un graphique de navigation du système en
cours de modélisation (Figure 8 & Figure 9). La construction de ce nouveau graphique est basée sur l’application
Graphviz1. Il est ainsi généré dynamiquement au gré de l’émergence de nouveaux systèmes donc de nouveaux
1 http://www.graphviz.org/
23
paquetages. Ce graphique de navigation permet d’avoir une vue synthétique du « système à faire » et surtout de
naviguer par des liens hypertextes sur chacun des systèmes composants ou composites et donc sur leur Zachman
respectifs. Les systèmes composants et composites sont distingués par des Zachman avec des couleurs de fond
différentes : système composite (couleur orange), système composant (couleur verte). Si le modélisateur
rencontre un système de type « boîte noire » dont il a juste la connaissance des intrants et des extrants, le
graphique affiche le paquetage du système en noir (Figure 9).
La génération automatique du graphique passe une ligne de commande dans un fichier batch.
Ligne commande
1 CD C:\Program Files\MEGA\MEGA
2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Portal_sds_pa
2 set prog="C:\Program Files\Graphviz2.20\bin\%1.exe"
3 echo %prog%
4 %prog% -Gcharset=latin1 -Tcmapx -Gbgcolor=white -Gdpi=60 -
Ecolor=darkorange -Ncolor=palegolenrod -Nfontcolor=black -ograf.map -Tgif -
ograf.gif -shape=crow graf.dot
24
Figure 9. Graphique de navigation avec lien hypertexte vers chaque système représenté sous la forme d’un paquetage.
CRÉATION DE PAGE WEB POUR CHAQUE ZACHMAN (COMPOSANT‐COMPOSITE)
VISUEL
25
Figure 10. Cadres de Zachman particuliers associés à des système composants ou composites.
ANNEXE.8. CAHIER DES CHARGE PARTIEL « E‐PRODUCTION » DE L’AIPL
Copie du contenu du document word rédigée par la direction de l’AIPL :
Projet « eFormation en eProduction»
phase " Ingénierie Produit/Process "
1. Introduction
En 2001, sous l’impulsion du Ministère de l’Éducation Nationale, a été créé le réseau de compétences AIP‐PRIMECA, dans les domaines de la Conception Intégrée en Mécanique et de la Productique. Il est le résultat de la fusion entre :
• les A.I.P. (Ateliers Inter Établissements de Productique), centres de ressources régionaux utilisés comme support expérimental de formations approfondies dans le domaine de la Productique, créés en 1984 à l'initiative du Ministère de l'Éducation Nationale, en association avec le Ministère de l'Industrie et les Régions concernées ;
• le réseau PRIMECA (Pôle de Ressources Informatiques pour la MECAnique), créé en 1991 à l’instigation du Comité d’Application de l’Académie des Sciences pour promouvoir l’utilisation des outils informatiques dans la conception des produits mécaniques et créer une filière de formation en Conception Mécanique Assistée par Ordinateur.
Organisées autour de centres de ressources, les missions locales dynamisent la formation dans les domaines de la Conception Intégrée en Mécanique et de la Productique. L’association des compétences pédagogiques et scientifiques crée un espace de formation autour des thèmes de l’ingénierie intégrée, favorisant la mise en place aussi bien d’enseignements approfondis par discipline que d’enseignements par projets
26
interdisciplinaires pour former les futurs cadres du monde industriel. Ce sont des lieux de transfert de la recherche vers la formation et l’entreprise, utilisant du matériel de dimension industrielle.
Dans chaque pôle, des moyens de type industriel permettent de former des spécialistes :
• Ayant une approche globale du système de conception intégrée et de production ;
• Maîtrisant les méthodes et techniques de modélisation, d’analyse, de production,
• d’informatisation, d’automatisation ;
• Capables de s’intégrer dans des activités pluridisciplinaires ;
• Conscients de la nécessaire cohérence des différentes fonctions de l’entreprise.
Le réseau national compte actuellement neuf pôles régionaux1. En Lorraine, le pôle AIPPRIMECA2 est un service commun aux trois établissements suivants:
• L’Université Henri Poincaré, Nancy 1 (tutelle administrative) ;
• L’Institut National Polytechnique de Lorraine ;
• L’École Nationale Supérieure des Arts et Métiers, centre de Metz.
Le pôle AIP‐PRIMECA Lorraine est depuis juin 2003 engagé dans une démarche qualité, après un audit à blanc réalisé en octobre 2004, l’audit de certification ISO 9001 version 2000 est planifié avec l’A.F.A.Q. en avril 2005.
L’AIP Lorrain, site AIP‐PRIMECA Lorraine de Nancy, a toujours été conçu pour reproduire en grandeur réelle une entreprise de production manufacturière. Disposant d’outils allant de la modélisation d’entreprise, à l’usinage, l’assemblage et le contrôle tridimensionnel, en passant par la conception, l’automatisation, la robotique, la visionique, et la gestion d’entreprise, l’objectif principal du pôle est d’offrir à ses utilisateurs des matériels, des logiciels et leurs intégrations au plus proche des réalités industrielles. Le fort aspect mutualisation des moyens se traduit par une activité importante et régulière, autour de 140 000 heures élèves dispensées à près de 1000 étudiants durant l’année universitaire 2003‐2004. C’est dans ce cadre que ce projet a vocation à compléter et moderniser l’offre du pôle AIP‐PRIMECA Lorraine.
2. Contexte et besoins des formations en « eFormation en eProduction»
Le partage de données est une réalité au travers de l’Internet, il permet à différents intervenants de travailler en commun sur les mêmes données, c’est la notion de travail collaboratif. Déjà bien développé en phase de conception « Ingénierie collaborative » (collaborative engineering), il s’impose progressivement en production « Production collaborative » (collaborative manufacturing). En production, comme ailleurs, le travail collaboratif doit permettre de faire travailler ensemble les différents acteurs d'un projet. Par ailleurs, le recours de plus en plus fréquent à l’externalisation de la production (outsourcing) favorise son développement. En effet, confier tout ou partie de la fabrication de ses produits à un sous‐traitant est aujourd'hui une pratique industrielle admise qui nécessite une organisation favorisant le partage des données de conception, de fabrication et de suivi.
La nécessité de réactivité des entreprises aux besoins des clients a rendu obligatoire une approche plus globale et en particulier à s’intéresser aux liens entre la conduite locale des procédés et la gestion locale ou distante d’ateliers et d’entreprises. Par exemple, des progiciels de gestion d’atelier basés sur le concept de MES (Manufacturing Execution System) ont émergés et ainsi permettent la mise en oeuvre du concept de travail collaboratif en production.
La plupart des industries sont sujettes à ces changements culturels et techniques (Mécaniques, Electroniques, Agroalimentaires, Pharmaceutiques, …) et ce quelque soit le type de procédé (Continu, Batch, Manufacturier).
27
En particulier, un enjeu industriel important est d’assurer la traçabilité électronique du cycle de vie produit dans un contexte réglementaire toujours plus prépondérant.
Les filières utilisatrices du pôle AIP‐PRIMECA Lorraine (Cycles ingénieurs ENSAIA, ENSAM, ENSEM, ENSGSI, ENSTIB, ESIAL, ESSTIN ‐ Nouvelles filières (LMD) Licences, Licences professionnelles et Masters du domaine ‐ IUT GMP, …) forment des techniciens et des cadres de l’industrie dans différents secteurs industriels. Elles sont donc directement concernées par ces évolutions. L’AIP Lorrain doit, pour ce faire, proposer des manipulations mettant en évidence ces concepts déclinés suivant les aspirations des différentes filières : des techniciens en production manufacturière, aux cadres en gestion d’entreprise, en passant par les cadres de production.
L’évolution de l’AIP Lorrain dans ce contexte a débutée par l’acquisition d’un tour à commande numérique en 2000 (Rosilio TBI 540). Elle c’est poursuivie en 2003, par la rénovation de la cellule flexible d’assemblage (SFP Siemens) et l’installation d’un progiciel de gestion intégrée d’entreprise de type ERP (Adonix). Avec l’aide de la Région Lorraine sur 2003 et 2004, une plate‐forme de télémaintenance (TELMA) a été développée dans cette même logique, en collaboration avec une jeune entreprise Lorraine (Predict). Parallèlement, la chaîne de conception de produits et de systèmes a été renforcée autour de la suite logicielle CATIA. En 2003, avec l’aide de la Région Lorraine, un projet, de différentes filières de l’UHP, visant à uniformiser les pratiques et les outils utilisés pédagogiquement en métrologie a permis de rénover les matériels et logiciels et d’en permettre l’intégration dans l’environnement numérique de CFAO CATIA. En 2004, le pôle a mis en avant les thèmes « Numérisation et eTraçabilité », soutenue par la région Lorraine ce projet est en cours de déploiement. Simultanément l’étude du renouvellement du centre d’usinage, âgé de 20 ans, a débouché sur un appel d’offre pour se doter d’une machine moderne de type Usinage à Grande Vitesse. Disponible depuis peu, cet investissement très important permet de boucler la chaîne numérique disponible : CAO, FAO, MOCN, MMT et Numérisation. Tous ces équipements ou logiciels sont pourvus de moyens de communication évolués et évolutifs, basés sur des Technologies de l’Information et de la Communication comme des SGDT, Ethernet et Internet.
Les nouveaux besoins pédagogiques, issus des réflexions menées dans le cadre de la mise en place du LMD, confortent la dynamique actuelle du pôle. La problématique est clairement centrée autour des concepts d’intégration d’applications d'entreprise (ERP, MES, GMAO, CAO, …) depuis les niveaux "Business" jusqu'aux niveau "Production" (B2M : Business To Manufacturing"). En particulier, les besoins en ingénierie système5 doivent être confortés, le poids de cette discipline dans la formation des futurs cadres étant prépondérantes. Dans ce sens, une application fournissant des espaces collaboratifs est en cours d’évaluation avant son déploiement à la rentrée 2005 pour la gestion des projets d’étudiants.
3. Objectifs du projet « eFormation en eProduction»
Il s’agit de doter l’AIP Lorrain d’une infrastructure de type entreprise réactive (agile), ainsi elle doit pouvoir par exemple :
• Fournir aux gestionnaires des indicateurs fiables (temps passés, prix de revient,
• …) ;
• Fournir aux commerciaux des informations très précises nécessaires à
• l’acceptation des commandes (disponibilités, délais, coûts, …) ;
• Mettre en fabrication rapidement un nouveau produit (conception, procédé,
• formation, …)
• Réordonnancer facilement et rapidement la production (commande imprévue,
• panne, …)
• Diagnostiquer rapidement des dérives (temps passés, qualité, maintenance
• préventive, …) ;
• Répondre aux exigences des contraintes réglementaires (qualité, traçabilité,
28
• généalogie, …) ;
• …
Dans ce contexte, l’AIP Lorrain doit avoir le comportement d’une entreprise manufacturière, intégrant les processus de conception et de réalisation de produit usinés et/ou assemblés. Les produits sont réalisés à la demande à l’unité ou en petites séries. La conception est classique ou de type rétro‐conception. Le procédé de production doit exploiter les moyens de fabrication de l’AIP Lorrain : débit matière (stock, scie), tournage (tour Rosilio TBI), fraisage (centre d’usinage DMG), contrôle (MMT DEA) et assemblage (SFP Siemens) mais aussi ceux d’autres établissements ou sites géographiques (ENSAM Metz, …).
Différents scénarios de gestion seront disponibles, gestion locale ou distante en particulier à partir des écoles délocalisées et plus ou moins éloignées (ENSAM Metz, ENSTIB Epinal, ESSTIN Vandoeuvre, ENSGSI Nancy, …).
La demande 2005 développe principalement le thème « Ingénierie Produit/Process », et vise à conforter deux axes principaux :
• La conception conjointe produit/process : ces solutions de fabrication numériques permettent de concevoir et de visualiser l’ensemble du processus de production d’un produit numériquement spécifié, avant la mise en service de tout matériel ou machine physique.
• L’ordonnancement réactif de la production : les outils d'ordonnancement et de modélisation en environnement complexe permettent de prendre en compte la plupart des procédés de fabrication et d'aider à la prise de décisions en comparant différentes simulations.
La figure en annexe propose une vue synthétique du projet « eFormation en eProduction ».
4. Les besoins en équipements sur l’année 2005
Les besoins en équipements pour l’année 2005, portent donc sur les points suivants :
1. Complément de la chaîne de conception numérique Produit/Process :
• Acquisition des outils logiciels de modélisation et simulation de système de production ;
• Acquisition des systèmes informatiques supports (serveur) ;
• Intégration dans l’environnement de conception produit (CAO CATIA).
2. Complément et rénovation des outils d’ordonnancement de la production :
• Mise à niveau des outils logiciels d’ordonnancement ;
• Acquisition des systèmes informatiques supports (serveur, périphériques) ;
• Intégration dans l’environnement de gestion de la production (ERP, MES, …).
29
ANNEXE.9. MODÈLE MESA
Figure 11. Modèle MESA International
Affectation Production
Unités
Gestion de la Main-
d ’Oeuvre
Gestion Qualité
Programme détaillé des Opérations
Généalogie et Traçabilité
Produit
Acquisition des données
Gestion Maintenance
Analyse de la Performance
État et Allocation des Ressources
Ventes et Service
Gestion des Procédés
ERP Enterprise Resources
Planing
Ingénierie Produits et Procédés
Contrôle
Contrôle de la Documentation
SCMSupply Chain Management
MES
30
ANNEXE.10. MODÈLE FONCTIONNEL INSPIRÉ DU PURDUE REFERENCE MODEL
Figure 12. Modèle fonctionnel dérivé du PRM
(5.0
) P
rocu
rem
ent
(3.0
) P
rodu
ctio
n C
ont
rol
(1.0
) O
rder
Pro
cess
ing
(8.0
) P
rodu
ct C
ost
Acc
oun
ting
(2.0
) P
rodu
ctio
n S
che
dulin
g
(4.0
) M
ate
rial
and
Ene
rgy
Co
ntro
l
(10.
0) M
ain
tena
nce
Man
age
men
t
(6.0
) Q
ualit
y A
ssur
ance
(7.0
) P
rod
uct
Inve
nto
ry C
ont
rol
(9.0
) P
rodu
ct S
hip
ping
Adm
in
(3.3
) O
pera
tion
Co
ntro
l(3
.1)
Pro
cess
ing
Sup
po
rt E
ngin
eeri
ng
(3.4
) O
per
atio
n P
lan
ning
(1.1
) P
rodu
ctio
n F
ore
cast
ing
(lo
ng r
ang
e)
(1.2
) H
isto
ria
n
(1.3
) O
rder
Ent
ity
(1.4
) P
rodu
ctio
n O
rder
(1.5
) O
rde
r A
ccep
tanc
e
(2.1
) P
roce
ss P
rodu
ctio
n O
rder
s
(2.2
) B
ala
nce
in P
roce
ss &
Pro
duct
Inv
ento
ry
(2.3
) P
rodu
ctio
n F
ore
cast
ing
(sh
ort
ter
m)
(2.4
) P
rodu
ctio
n S
cheu
dlin
g
(4.1
) R
aw M
ater
ial a
nd
Ene
rgy
Re
quir
emen
t C
on
tro
l
(4.2
) O
ptim
um
Ra
w M
ater
ial a
nd E
ner
gy
Inve
nto
ry L
eve
ls
(4.3
) In
com
ing
Raw
Mat
eria
l and
En
erg
y C
on
tro
l
(4.4
) R
aw M
ater
ial a
nd
Ene
rgy
Ro
utin
g
(4.5
) R
aw M
ater
ial a
nd
En
erg
y In
vent
ory
Rep
ort
ing
(4.6
) R
aw M
ater
ial a
nd
Ene
rgy
Mo
vem
ent
Co
ntr
ol
(4.7
) R
aw M
ater
ial a
nd
Ene
rgy
Mea
sure
me
nt V
alid
atio
n
(6.1
) S
et S
tand
ard
s &
Me
tho
ds
(6.2
) R
aw M
ate
rial
Eva
luat
ion
(6.3
) Q
A M
easu
rem
ent
Va
lidat
ion
(6.4
) C
lass
ifica
tion
and
Cer
tific
atio
n
(6.5
) E
valu
atio
n o
f P
rodu
ct
(6.6
) La
bs
Aut
om
atic
Ana
lysi
s
(6.7
) A
naly
se P
roce
ssin
g C
apa
bili
ty
(7.1
) In
vent
ory
Sup
erv
isio
n
(7.2
) Lo
ss C
ont
rol
(7.3
) In
vent
ory
Rep
ort
ing
(7.4
) P
rodu
ct S
hip
ping
(7.5
) P
rodu
ct R
ou
ting
(7.6
) P
rod
uct
Mo
vem
ent
(7.7
) In
vent
ory
Mea
sure
men
t V
alid
atio
n
cust
om
er
purc
hase
ord
er
orde
r c
onfir
mat
ion
Res
ear
ch D
eve
lop
men
t a
nd
Eng
inee
ring
Mar
ketin
g &
Sal
es
Act
ive
file
fold
er
Sa
les
His
tory
orde
rs
orde
rs
orde
r d
ata
orde
rs
upda
te
annu
al s
ales
hist
ory
que
ry
Pro
duct
ion
fore
cast
sale
s fo
reca
st
Pro
duct
ion
Ord
ers
avia
bilit
y of
pro
duct
rese
rvat
ion
wai
ve rAcc
epte
d o
rder
sac
cept
ed
orde
r
(9.1
) S
hip
men
t S
che
dulin
g
acce
pte
d or
der
(9.2
) S
hip
pin
g co
sts
(9.3
) S
hip
me
nt C
onf
irm
atio
n(9
.4)
Rel
eas
e fo
r I
nvo
lvin
g(9
.5)
Re
leas
e S
hip
men
ts
(9.6
) P
rep
are
Shi
ppin
g D
ocu
men
t
deta
iled
prod
uctio
n o
rder
s
fore
cast
upd
ate
capa
cit
y
prod
uctio
n ra
tes
upda
te p
rodu
ctio
n o
rder
s
Sch
edul
eup
date
cap
acit
y
prod
uctio
n v
aria
nce
from
pla
nned
inve
ntor
y
Sch
edul
e of
Pro
duct
ion
capa
cit
y
inve
ntor
y
Pa
cko
ut
Sch
edul
e
Pac
k O
ut S
ched
ule
(3.1
.1)
Pro
ject
Man
agm
ent
(3.1
.2)
Equ
ipm
ent
& P
roce
ss D
esi
gn M
od
ifica
tion
(3.1
.3)
Eng
inee
ring
Spe
cial
ists
(3.1
.4)
Sta
nda
rds
and
Met
hod
s
(3.1
.5)
Pro
cess
Ana
lysi
s a
nd P
roje
ct D
eta
iled
Ingi
neer
ing
(3.1
.6)
Pro
ject
Co
st C
on
tro
l
(3.1
.7)
Equ
ipm
ent
Mo
difi
catio
n C
ons
truc
tion
(3.1
.8)
Dra
ftin
g D
ocu
men
tatio
n
(3.2
) M
ain
ten
ance
(3.2
.1)
Mai
nten
ance
Pla
nnin
g
(3.2
.2)
Co
st C
ont
rol
(3.2
.3)
Sp
are
Par
ts
(3.2
.4)
Ma
inte
nan
ce C
rew
Sup
ervi
sio
n (3.2
.5)
Do
cum
enta
tion
obje
ctiv
es c
onst
rain
tsco
st s
supe
rvis
ion
coo
rdin
atio
n
labo
r c
osts
inst
alla
tion
det
ails
(3.3
.1)
Op
era
tion
Sup
ervi
sio
n
(3.3
.2)
Op
era
tion
s C
ost
Co
ntro
l
(3.3
.3)
Phy
sica
l P
roce
ss C
on
tro
l
(3.3
.4)
Op
era
tion
al M
easu
rem
ent
Val
ida
tion
(3.3
.5)
Equ
ipm
ent
Mo
nito
rin
g
(3.3
.6)
Pro
duc
tion
Bal
aci
ng a
nd
Op
timiz
atio
n
Eng
inee
ring
File
s
exis
ting
dra
win
gs
new
dra
win
gs
new
des
ign
ske
tche
sas
is d
raw
ing
s
basi
c s
peci
ficat
ion
s
as is
dra
win
gs
stan
dard
s
stan
dard
met
hod
s
tech
nica
l fe
edba
ck
stan
dard
s
mon
itorin
g
advi
ce &
sup
port
requ
irem
ent
s
Ve
nd
ors
new
dev
elop
men
ts
deta
il p
ropo
sal
spec
ifica
tion
s
tech
nica
l fe
edba
ck
engi
neer
ing
met
hods
& s
tand
ards
tech
nica
l in
stru
ctio
ns
requ
est f
or m
odifi
catio
n
Mai
nte
nanc
e d
raw
ings
-in
stru
ctio
n-in
vent
ory
spen
t c
osts
parts
pro
cure
men
ts c
ost
inve
ntor
y st
atut
s
upda
te p
arts
info
rmat
ion
inve
ntor
y
parts
info
rmat
ion
orde
rs
Ass
igne
d w
ork
cre
ws
sche
dule
s of
cre
ws
wor
k p
erfo
me
d
mai
nten
ance
his
tory
upd
ate
part
s r
eque
sts
equi
pmen
t in
form
atio
npl
ant
con
figur
atio
n
upda
te d
raw
ing
s
files
que
ry
files
que
ry
relia
bilit
y a
nd in
form
atio
n
diag
nost
ic
resu
lts
Long
Ter
m M
ater
ial a
nd E
nerg
y e
quip
men
t
(5.1
) O
rde
r P
lace
men
t
(5.2
) P
roce
ss r
equ
ests
(5.3
) C
ost
Co
ntro
l
parts
pur
chas
e re
ques
ts
oper
atio
n c
ost
utili
zatio
n lo
sses
oper
atin
g c
ondi
tion
s
cons
train
ts
equi
pmen
t v
aria
bles
Ope
ratio
n h
isto
ry -
co
ntin
uou
s v
aria
ble
- d
iscr
et e
ven
t
upda
te
his
tor
y
stat
us &
ave
rage
dat
a
perf
orm
anc
e da
ta equi
pmen
t p
erfo
rman
ce
obje
ctiv
es
prod
uctio
n p
erfo
rman
ce
prod
uctio
n v
aria
blesva
lid m
easu
rem
ents
Pla
nt In
stru
men
tatio
n
actu
ator
set
tings
diag
nost
ic &
sel
f te
st
sens
or m
easu
rem
ent
s
stan
dard
s
(8.1
) C
ost
Bal
anci
ng a
nd B
udg
et
(8.2
) R
aw
Ma
teri
al &
Par
ts C
ost
s A
ccts
Pay
(8.3
) P
rod
uct
Inco
me
& A
ccts
Rec
(8.4
) P
rodu
ctio
n C
ost
s
perf
orm
ance
and
cos
ts
perfo
rman
ce
pro
duct
ion
orde
r s
tatu
s
equi
pmen
t p
erfo
rman
ce
feed
back
equi
pmen
t p
erfo
rman
ce
feed
back
Pro
cess
Dat
a
Pro
cess
Dat
a anal
ysis
dat
a
trans
fer
s
arriv
al c
omm
itmen
tss
tran
sfer
s or
ders R
aw M
ate
rial
& E
nerg
y -
inve
nto
ry -
his
tory
loca
tion
sro
ute
s
quan
titie
s m
ovem
ent
s
PL
ant
INS
T (
data
& c
on
tro
l in
terf
ace)
mat
eria
l act
ion
ord
ers
activ
ator
s se
tting
s
man
ual
read
ing
sse
nsor
mea
sure
men
ts
Lab
ana
lysi
s
valid
mea
sure
men
ts
exce
ptio
n ev
ents
inve
ntor
y
inve
ntor
y st
atut
s
quan
tity
qua
lity
inco
min
g c
onfir
mat
ion
QA
app
rova
l
mat
eria
l and
ene
rgy
inco
min
g
mat
eria
ls n
ad e
nerg
y in
vent
ory
repo
rt
inve
ntor
y st
atut
s
raw
mat
eria
l o
rder
requ
est
Su
pp
lier
invo
ice
orde
rs P
urch
asi
ng P
rice
and
Co
ntra
ct N
ego
ciat
ion
supp
lier
per
form
anc
esu
pplie
r dat
a
Ven
do
r L
ibra
ry
PO
spe
cific
atio
nve
ndor
per
form
anc
e
budg
ets
spe
cshi
stor
ica
l upd
ate
buy
ord
er
PO
issu
ed
com
mite
d ag
ains
t p
rodu
ctio
n or
bud
get
Acc
oun
ting
paym
ent
rel
ease
met
hod
s
stan
dard
s
requ
irem
ent a
nd m
etho
ds c
hang
e
anal
ysis
OF
pro
cess
cap
abili
ty
met
hod
s
Sta
ndar
d C
usto
mer
Req
uier
men
t
valid
mea
sure
men
ts
valid
mea
sure
men
ts
anal
ysis
dat
a
Qua
lity
Ass
ura
nce
His
tory
File
upda
te
his
tor
y
certi
ficat
ion
and
cla
ssifi
catio
n
proc
ess
dev
iatio
n
ship
tim e
Rel
ease
to s
hip
trans
fer
s
Inve
nto
ry F
ile H
isto
ry F
ilecorr
ectio
ns
hist
or y q
uery
mea
sure
men
ts
actu
ator
set
ting
s
man
ual
set
ting
s
quan
titie
s m
ovem
ents
rout
ing
trans
fer
s
inve
ntor
y d
ata
on h
and
prod
uct d
ata
inve
ntor
y b
alan
ces
requ
irem
ent
s
cont
rolle
d v
aria
bles
quan
tity
loca
tion
ship
men
t c
onfir
mat
ion
mat
eria
l and
ene
rgy
cos
ts
- A
CC
TS
Rec
eiva
ble
-A
CC
TS
pa
yabl
es
- B
udge
t -
Pay
roll
upda
te A
CC
T p
ay
cost
s g
oals
prod
uctio
n
upda
te c
osts
Pay
roll
upda
te
upda
te A
CC
T R
& C
inco
me
from
pro
duct
sla
bor
cos
ts
rece
ipt
s
cost
obj
ectiv
es
prod
uctio
n c
osts
Co
rpo
rate
Acc
oun
ting
man
ufac
turin
g m
ater
ial a
nd e
nerg
y (P
&L)
cont
ract
& h
ourly
wor
k ti
me
ship
ping
cos
ts
rele
ase
invo
ice
Tra
nsp
ort
co
mp
an
y
tran
spor
t o
rder
s
invo
ice
Shi
ppi
ng -
sch
edul
e -
his
tory
sche
dule
upd
ate
size
and
loca
tion
of it
ems
quan
tity
item
invo
ice
rele
ase
invo
ice
cust
omer
loca
tion
item
s to
shi
p
ship
ping
doc
umen
t
quan
tity
con
figur
atio
n a
dres
s
31
Cette norme a été créée dans le but de faciliter l’interopérabilité sémantique entre les Systèmes de pilotage logistique (Programme de production usine ; et gestion opérationnelle) et les Systèmes de Contrôle de production (Supervision de zone, Programme détaillé de production). Les objectifs de cette norme sont :
• Établir un Vocabulaire Commun pour les procédés Continus, Discontinus & Discrets
• Trouver une Vue Commune des Problèmes
• Construire un Modèle Commun
• Définir des Structures de données
• Achever rapidement les spécifications
ANNEXE.11. CRÉATION DU FICHIER XSLT
INGÉNIERIE
Créer un dossier d’accueil quelque part sur le poste de travail.
Écrire ou récupérer un document XML au format :
<ADXPRODUCTS>
<ADXPRODUCT ITMREF="PRODUITTEST1" DES1AXX="Barre aluminium" STU="UN" STOFCY="C1P1" STDFLG="1" SERMGTCOD="1" LOTMGTCOD="0"/>
<ADXPRODUCT ITMREF="PRODUITTEST2" DES1AXX="Barre plastoc" STU="UN" STOFCY="C1P1" STDFLG="1" SERMGTCOD="1" LOTMGTCOD="0"/>
</ADXPRODUCTS>
Le nommer en External_ADXPRODUCTS_Output.xml (Attention, le nom de la balise root est très important !)
Ouvrir ce fichier sous XMLSpy et générer le ADXPRODUCTS.xsd correpondant.
Attention, le nom doit correspondre avec le nom de la balise root.
Récupérer les fichiers :
\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\Designs\SchemaBuilder\FlexNet\FlexNet_Products.xml et .xsd. qui ont été générés avec XML Schema Builder d’APRISO.
Mapping
Ouvrir MAPFORCE
Insérer External_ADXPRODUCTS_Output.xsd
Insérer FlexNet_Products.xsd
32
Faire le mapping
Enregistrer le .mfd
Puis Générer le.xslt (File/Generate coding/xslt1.0
Ouvrir le .xslt généré et enlever la balise
<xsl:attribute name="xsi:noNamespaceSchemaLocation"> <xsl:value‐of select="'C:/DOCUME~1/Olivier.AD‐UHP/Bureau/Exo/Products/FlexNet_ Products.xsd'"/> </xsl:attribute>
Enregistrer sous : map_ADXPRODUCTs_FlexNetProducts.xslt
Copie des fichiers générés
Copier map_ADXPRODUCTs_FlexNetProducts.mfd sous :
\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\Designs\Mapforce\FlatFile
Copier map_ADXPRODUCTs_FlexNetProducts.xslt sous :
\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\Designs\Mapforce\FlatFile
Copier ADXPRODUCTS.xsd sous :
\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\XMLSchemas\FlatFile
Préparer Flexnet pour « avaler » le fichier xml fourni
Démarrer Flexnet Configuration sur le serveur
Aller dans Mapping Configuration
Créer une nouvelle ligne :
FromSchema=ADXPRODUCTS
XSLTFileName=FlatFile/map_ADXPRODUCTS_FlexNetProducts.xslt
ToSchema=FlexNet/FlexNet_Products.xsd
Enregistrer
Arrêter et redémarrer tous les services FlexNet
RÉSULTAT
<?xml version="1.0" encoding="UTF-8"?> <!-- This file was generated by Altova MapForce 2008r2sp2 YOU SHOULD NOT MODIFY THIS FILE, BECAUSE IT WILL BE OVERWRITTEN WHEN YOU RE-RUN CODE GENERATION. Refer to the Altova MapForce Documentation for further details. http://www.altova.com/mapforce -->
33
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs xsi xsl"> <xsl:include href="C:\#FIchiers\Recherche\Travail AIPL abec ON\Apriso_Functions.xsl"/> <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <xsl:template match="/ADXCOMMANDES"> <FlexNet_Orders> <xsl:attribute name="xsi:noNamespaceSchemaLocation"> <xsl:value-of select="'C:/DOCUME~1/Jean-Phi/Bureau/temp/FlexNet_Orders.xsd'"/> </xsl:attribute> <xsl:variable name="Vvar1_firstSource" select="."/> <xsl:attribute name="Version"> <xsl:value-of select="'3.0'"/> </xsl:attribute> <xsl:variable name="Vvar19_const" select="'16'"/> <xsl:variable name="Vvar21_const" select="'1'"/> <xsl:variable name="Vvar59_const" select="'3'"/> <OrderHeader> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar469_NAME_string" select="string(.)"/> <xsl:if test="($Vvar469_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar467_exists" select="string-length( $ExistsResult )>0"/> <xsl:if test="string($Vvar467_exists)='true' or string($Vvar467_exists)='1'"> <xsl:variable name="Vvar473_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar473_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number($Vvar19_const)"/> </OrderType> <OrderStatus> <xsl:value-of select="number($Vvar21_const)"/> </OrderStatus> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar478_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult1"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar482_NAME_string" select="string(.)"/> <xsl:if test="($Vvar482_NAME_string) = ('ORDDAT')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar480_exists" select="string-length( $ExistsResult1 )>0"/> <xsl:if test="string($Vvar480_exists)='true' or string($Vvar480_exists)='1'"> <xsl:variable name="Vvar487_result_apriso_time"> <xsl:call-template name="apriso_time"> <xsl:with-param name="YYYYMMDD" select="$Vvar478_FLD_string"/> <xsl:with-param name="HHMMSS" select="'000000'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar488_result_apriso_time_dateTime" select="string($Vvar487_result_apriso_time)"/> <OrderDate> <xsl:value-of select="$Vvar488_result_apriso_time_dateTime"/>
34
</OrderDate> </xsl:if> </xsl:for-each> </xsl:for-each> <ProgressStatus> <xsl:value-of select="number($Vvar21_const)"/> </ProgressStatus> <Active> <xsl:value-of select="string($Vvar21_const)='true' or string($Vvar21_const)='1'"/> </Active> <Partner> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult2"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar497_NAME_string" select="string(.)"/> <xsl:if test="($Vvar497_NAME_string) = ('BPSNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar495_exists" select="string-length( $ExistsResult2 )>0"/> <xsl:if test="string($Vvar495_exists)='true' or string($Vvar495_exists)='1'"> <xsl:variable name="Vvar501_FLD_string" select="string(.)"/> <Medium> <xsl:value-of select="$Vvar501_FLD_string"/> </Medium> </xsl:if> </xsl:for-each> </xsl:for-each> <PartnerRelationship> <PartnerRole> <xsl:value-of select="number($Vvar59_const)"/> </PartnerRole> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult3"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar510_NAME_string" select="string(.)"/> <xsl:if test="($Vvar510_NAME_string) = ('BPSNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar508_exists" select="string-length( $ExistsResult3 )>0"/> <xsl:if test="string($Vvar508_exists)='true' or string($Vvar508_exists)='1'"> <xsl:variable name="Vvar514_FLD_string" select="string(.)"/> <Account> <xsl:value-of select="$Vvar514_FLD_string"/> </Account> </xsl:if> </xsl:for-each> </xsl:for-each> <PartnerID> <xsl:attribute name="NodeType"> <xsl:value-of select="'Field'"/> </xsl:attribute> </PartnerID> </PartnerRelationship> </Partner> <xsl:for-each select="TAB"> <xsl:variable name="ExistsResult4"> <xsl:for-each select="@ID">
35
<xsl:variable name="Vvar522_ID_string" select="string(.)"/> <xsl:if test="($Vvar522_ID_string) = ('POH2_1')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar520_exists" select="string-length( $ExistsResult4 )>0"/> <xsl:for-each select="LIN"> <xsl:variable name="Vvar518_LIN" select="."/> <xsl:if test="string($Vvar520_exists)='true' or string($Vvar520_exists)='1'"> <OrderDetail> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult5"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar533_NAME_string" select="string(.)"/> <xsl:if test="($Vvar533_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar531_exists" select="string-length( $ExistsResult5 )>0"/> <xsl:if test="string($Vvar531_exists)='true' or string($Vvar531_exists)='1'"> <xsl:variable name="Vvar537_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar537_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number('16')"/> </OrderType> <xsl:for-each select="@NUM"> <xsl:variable name="Vvar541_NUM_byte" select="number(.)"/> <OrderLineNo> <xsl:value-of select="number($Vvar541_NUM_byte)"/> </OrderLineNo> </xsl:for-each> <OrderStatus> <xsl:value-of select="number('1')"/> </OrderStatus> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult6"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar551_NAME_string" select="string(.)"/> <xsl:if test="($Vvar551_NAME_string) = ('UOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar549_exists" select="string-length( $ExistsResult6 )>0"/> <xsl:if test="string($Vvar549_exists)='true' or string($Vvar549_exists)='1'"> <xsl:variable name="Vvar555_FLD_string" select="string(.)"/> <OrderedUomCode>
36
<xsl:value-of select="$Vvar555_FLD_string"/> </OrderedUomCode> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="Vvar557_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult7"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar561_NAME_string" select="string(.)"/> <xsl:if test="($Vvar561_NAME_string) = ('QTYUOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar559_exists" select="string-length( $ExistsResult7 )>0"/> <xsl:if test="string($Vvar559_exists)='true' or string($Vvar559_exists)='1'"> <QuantityOrdered> <xsl:value-of select="number($Vvar557_FLD_string)"/> </QuantityOrdered> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult8"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar571_NAME_string" select="string(.)"/> <xsl:if test="($Vvar571_NAME_string) = ('PRHFCY')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar569_exists" select="string-length( $ExistsResult8 )>0"/> <xsl:if test="string($Vvar569_exists)='true' or string($Vvar569_exists)='1'"> <xsl:variable name="Vvar575_FLD_string" select="string(.)"/> <ToFacility> <xsl:value-of select="$Vvar575_FLD_string"/> </ToFacility> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult9"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar581_NAME_string" select="string(.)"/> <xsl:if test="($Vvar581_NAME_string) = ('FCYADD')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar579_exists" select="string-length( $ExistsResult9 )>0"/> <xsl:if test="string($Vvar579_exists)='true' or string($Vvar579_exists)='1'"> <xsl:variable name="Vvar585_FLD_string" select="string(.)"/> <ToWarehouse>
37
<xsl:value-of select="$Vvar585_FLD_string"/> </ToWarehouse> </xsl:if> </xsl:for-each> <ProgressStatus> <xsl:value-of select="number('1')"/> </ProgressStatus> <Active> <xsl:value-of select="string('1')='true' or string('1')='1'"/> </Active> <ProductID> <xsl:attribute name="NodeType"> <xsl:value-of select="'Field'"/> </xsl:attribute> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult10"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar597_NAME_string" select="string(.)"/> <xsl:if test="($Vvar597_NAME_string) = ('ITMREF')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar595_exists" select="string-length( $ExistsResult10 )>0"/> <xsl:if test="string($Vvar595_exists)='true' or string($Vvar595_exists)='1'"> <xsl:variable name="Vvar601_FLD_string" select="string(.)"/> <xsl:attribute name="ProductNo"> <xsl:value-of select="$Vvar601_FLD_string"/> </xsl:attribute> </xsl:if> </xsl:for-each> </ProductID> <WipOrder> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar605_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult11"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar609_NAME_string" select="string(.)"/> <xsl:if test="($Vvar609_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar607_exists" select="string-length( $ExistsResult11 )>0"/> <xsl:if test="string($Vvar607_exists)='true' or string($Vvar607_exists)='1'"> <xsl:for-each select="$Vvar518_LIN/@NUM"> <xsl:variable name="Vvar614_NUM_byte" select="number(.)"/> <WipOrderNo>
38
<xsl:value-of select="concat($Vvar605_FLD_string, format-number(number($Vvar614_NUM_byte), '0000'))"/> </WipOrderNo> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <WipOrderType> <xsl:value-of select="number('16')"/> </WipOrderType> <xsl:for-each select="FLD"> <xsl:variable name="Vvar624_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult12"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar628_NAME_string" select="string(.)"/> <xsl:if test="($Vvar628_NAME_string) = ('QTYUOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar626_exists" select="string-length( $ExistsResult12 )>0"/> <xsl:if test="string($Vvar626_exists)='true' or string($Vvar626_exists)='1'"> <OrderQuantity> <xsl:value-of select="number($Vvar624_FLD_string)"/> </OrderQuantity> </xsl:if> </xsl:for-each> <Priority> <xsl:value-of select="number('1')"/> </Priority> <xsl:for-each select="FLD"> <xsl:variable name="Vvar636_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult13"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar640_NAME_string" select="string(.)"/> <xsl:if test="($Vvar640_NAME_string) = ('EXTRCPDAT')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar638_exists" select="string-length( $ExistsResult13 )>0"/> <xsl:if test="string($Vvar638_exists)='true' or string($Vvar638_exists)='1'"> <xsl:variable name="Vvar645_result_apriso_time"> <xsl:call-template name="apriso_time"> <xsl:with-param name="YYYYMMDD" select="$Vvar636_FLD_string"/> <xsl:with-param name="HHMMSS" select="'000000'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar646_result_apriso_time_dateTime" select="string($Vvar645_result_apriso_time)"/>
39
<ScheduledStartDate> <xsl:value-of select="$Vvar646_result_apriso_time_dateTime"/> </ScheduledStartDate> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="Vvar648_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult14"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar652_NAME_string" select="string(.)"/> <xsl:if test="($Vvar652_NAME_string) = ('EXTRCPDAT')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar650_exists" select="string-length( $ExistsResult14 )>0"/> <xsl:if test="string($Vvar650_exists)='true' or string($Vvar650_exists)='1'"> <xsl:variable name="Vvar657_result_apriso_time"> <xsl:call-template name="apriso_time"> <xsl:with-param name="YYYYMMDD" select="$Vvar648_FLD_string"/> <xsl:with-param name="HHMMSS" select="'000000'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar658_result_apriso_time_dateTime" select="string($Vvar657_result_apriso_time)"/> <DueDate> <xsl:value-of select="$Vvar658_result_apriso_time_dateTime"/> </DueDate> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult15"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar664_NAME_string" select="string(.)"/> <xsl:if test="($Vvar664_NAME_string) = ('UOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar662_exists" select="string-length( $ExistsResult15 )>0"/> <xsl:if test="string($Vvar662_exists)='true' or string($Vvar662_exists)='1'"> <xsl:variable name="Vvar668_FLD_string" select="string(.)"/> <UomCode> <xsl:value-of select="$Vvar668_FLD_string"/> </UomCode> </xsl:if> </xsl:for-each> <WorkOrderStatus> <xsl:value-of select="number('1')"/>
40
</WorkOrderStatus> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult16"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar678_NAME_string" select="string(.)"/> <xsl:if test="($Vvar678_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar676_exists" select="string-length( $ExistsResult16 )>0"/> <xsl:if test="string($Vvar676_exists)='true' or string($Vvar676_exists)='1'"> <xsl:variable name="Vvar682_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar682_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number('16')"/> </OrderType> <xsl:for-each select="@NUM"> <xsl:variable name="Vvar686_NUM_byte" select="number(.)"/> <OrderLineNo> <xsl:value-of select="number($Vvar686_NUM_byte)"/> </OrderLineNo> </xsl:for-each> <ProgressStatus> <xsl:value-of select="number('1')"/> </ProgressStatus> <ProductID> <xsl:attribute name="NodeType"> <xsl:value-of select="'Field'"/> </xsl:attribute> </ProductID> </WipOrder> </OrderDetail> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderPartner> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult17"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar701_NAME_string" select="string(.)"/> <xsl:if test="($Vvar701_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable>
41
<xsl:variable name="Vvar699_exists" select="string-length( $ExistsResult17 )>0"/> <xsl:if test="string($Vvar699_exists)='true' or string($Vvar699_exists)='1'"> <xsl:variable name="Vvar705_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar705_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number($Vvar19_const)"/> </OrderType> <PartnerID> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult18"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar714_NAME_string" select="string(.)"/> <xsl:if test="($Vvar714_NAME_string) = ('BPSNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar712_exists" select="string-length( $ExistsResult18 )>0"/> <xsl:if test="string($Vvar712_exists)='true' or string($Vvar712_exists)='1'"> <xsl:variable name="Vvar718_FLD_string" select="string(.)"/> <xsl:attribute name="Account"> <xsl:value-of select="$Vvar718_FLD_string"/> </xsl:attribute> </xsl:if> </xsl:for-each> </xsl:for-each> <xsl:attribute name="PartnerRole"> <xsl:value-of select="number($Vvar59_const)"/> </xsl:attribute> </PartnerID> </OrderPartner> <JobCreationEvent> <xsl:for-each select="TAB"> <xsl:variable name="ExistsResult19"> <xsl:for-each select="@ID"> <xsl:variable name="Vvar726_ID_string" select="string(.)"/> <xsl:if test="($Vvar726_ID_string) = ('POH2_1')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar724_exists" select="string-length( $ExistsResult19 )>0"/> <xsl:for-each select="LIN"> <xsl:variable name="Vvar722_LIN" select="."/> <xsl:if test="string($Vvar724_exists)='true' or string($Vvar724_exists)='1'"> <Job> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar733_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult20"> <xsl:for-each select="@NAME">
42
<xsl:variable name="Vvar737_NAME_string" select="string(.)"/> <xsl:if test="($Vvar737_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar735_exists" select="string-length( $ExistsResult20 )>0"/> <xsl:if test="string($Vvar735_exists)='true' or string($Vvar735_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar742_NUM_byte" select="number(.)"/> <Name> <xsl:value-of select="concat($Vvar733_FLD_string, format-number(number($Vvar742_NUM_byte), '0000'))"/> </Name> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar753_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult21"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar757_NAME_string" select="string(.)"/> <xsl:if test="($Vvar757_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar755_exists" select="string-length( $ExistsResult21 )>0"/> <xsl:if test="string($Vvar755_exists)='true' or string($Vvar755_exists)='1'"> <Description> <xsl:value-of select="concat('ADXCOMMANDES - ', $Vvar753_FLD_string)"/> </Description> </xsl:if> </xsl:for-each> </xsl:for-each> <JobType> <xsl:value-of select="number('4')"/> </JobType> <GenerateAlert> <xsl:value-of select="string('true')='true' or string('true')='1'"/> </GenerateAlert> <AlertClass> <xsl:value-of select="number('1')"/> </AlertClass>
43
<xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar773_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult22"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar777_NAME_string" select="string(.)"/> <xsl:if test="($Vvar777_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar775_exists" select="string-length( $ExistsResult22 )>0"/> <xsl:if test="string($Vvar775_exists)='true' or string($Vvar775_exists)='1'"> <AlertMessage> <xsl:value-of select="concat(concat(concat(concat(concat('Error encountered during explosion for WipOrderNo = ', $Vvar773_FLD_string), ', WipOrderType = '), '16'), ', JobDescription = '), concat('ADXCOMMANDES - ', $Vvar773_FLD_string))"/> </AlertMessage> </xsl:if> </xsl:for-each> </xsl:for-each> <JobAction> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar795_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult23"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar799_NAME_string" select="string(.)"/> <xsl:if test="($Vvar799_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar797_exists" select="string-length( $ExistsResult23 )>0"/> <xsl:if test="string($Vvar797_exists)='true' or string($Vvar797_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar804_NUM_byte" select="number(.)"/> <Name> <xsl:value-of select="concat($Vvar795_FLD_string, format-number(number($Vvar804_NUM_byte), '0000'))"/> </Name> </xsl:for-each> </xsl:if> </xsl:for-each>
44
</xsl:for-each> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar815_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult24"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar819_NAME_string" select="string(.)"/> <xsl:if test="($Vvar819_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar817_exists" select="string-length( $ExistsResult24 )>0"/> <xsl:if test="string($Vvar817_exists)='true' or string($Vvar817_exists)='1'"> <Description> <xsl:value-of select="concat('ADXCOMMANDES - ', $Vvar815_FLD_string)"/> </Description> </xsl:if> </xsl:for-each> </xsl:for-each> <ActionType> <xsl:value-of select="number('26')"/> </ActionType> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar830_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult25"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar834_NAME_string" select="string(.)"/> <xsl:if test="($Vvar834_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar832_exists" select="string-length( $ExistsResult25 )>0"/> <xsl:if test="string($Vvar832_exists)='true' or string($Vvar832_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar839_NUM_byte" select="number(.)"/> <xsl:variable name="Vvar847_result_BuildExplosionJobParameters"> <xsl:call-template name="BuildExplosionJobParameters">
45
<xsl:with-param name="WipOrderNo" select="concat($Vvar830_FLD_string, format-number(number($Vvar839_NUM_byte), '0000'))"/> <xsl:with-param name="WipOrderType" select="'16'"/> <xsl:with-param name="ProcessID" select="'0'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar848_result_BuildExplosionJobParameters_string" select="string($Vvar847_result_BuildExplosionJobParameters)"/> <Parameters> <xsl:value-of select="$Vvar848_result_BuildExplosionJobParameters_string"/> </Parameters> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <TimeOutSeconds> <xsl:value-of select="number('60')"/> </TimeOutSeconds> </JobAction> <JobSchedule> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar854_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult26"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar858_NAME_string" select="string(.)"/> <xsl:if test="($Vvar858_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar856_exists" select="string-length( $ExistsResult26 )>0"/> <xsl:if test="string($Vvar856_exists)='true' or string($Vvar856_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar863_NUM_byte" select="number(.)"/> <Name> <xsl:value-of select="concat($Vvar854_FLD_string, format-number(number($Vvar863_NUM_byte), '0000'))"/> </Name> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <xsl:for-each select="$Vvar1_firstSource/GRP">
46
<xsl:for-each select="FLD"> <xsl:variable name="Vvar874_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult27"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar878_NAME_string" select="string(.)"/> <xsl:if test="($Vvar878_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar876_exists" select="string-length( $ExistsResult27 )>0"/> <xsl:if test="string($Vvar876_exists)='true' or string($Vvar876_exists)='1'"> <Description> <xsl:value-of select="concat('ADXCOMMANDES - ', $Vvar874_FLD_string)"/> </Description> </xsl:if> </xsl:for-each> </xsl:for-each> <Schedule> <ExecuteImmediate> <xsl:value-of select="string('true')='true' or string('true')='1'"/> </ExecuteImmediate> </Schedule> </JobSchedule> </Job> </xsl:if> </xsl:for-each> </xsl:for-each> </JobCreationEvent> </OrderHeader> </FlexNet_Orders> </xsl:template> </xsl:stylesheet>
47
48
Titre : PROPOSITION D’UN CADRE DE MODÉLISATION MULTI‐ÉCHELLES D’UN SYSTÈME D’INFORMATION EN ENTREPRISE CENTRÉ SUR LE PRODUIT
Résumé : Notre thèse porte sur la Modélisation d'Entreprise et plus particulièrement sur une vision Ingénierie Système de celle‐ci afin de faciliter son application « à minima » en entreprise. Alors que la modélisation d’entreprise arrive à maturité scientifique et technologique, force est de constater que sa pratique est encore trop peu courante. En outre, il n’existe pas à proprement parler de tâche de modélisation, de maintenance et de gestion de modèles dans l’entreprise. La question s’est alors posée de la relation d’interopération entre les systèmes, d’un Système‐Entreprise évolutif, le plus souvent composé de façon ad‐hoc de sous‐systèmes (COTS), qui ont pour particularité d’encapsuler leur propre Savoir‐Faire et leurs Ingénieries respectives, en incluant le Système‐Produit (son besoin, son projet, …) à la source de chaque recomposition « à la demande » du Système‐Entreprise. Un des objectifs de nos travaux est donc de faciliter l’interopération entre les ingénieries de ces systèmes interopérants (autour du produit A Faire) et l’Ingénierie du Système‐Projet d’Entreprise (Pour Faire). Nous nous sommes alors inspirés de la proposition de Kuras pour formaliser notre Système‐Entreprise (en fait son Ingénierie) dans une sorte de « Système de Systèmes d’Information » (SdSI) en tenant compte de ses aspects récursifs et multi‐échelles dans un contexte organisationnel évolutif. De plus, en nous appuyant sur la théorie des patterns, nous avons identifié puis dérivé le « composite‐pattern» pour mieux décrire la nature « Tout et Partie » de l’Holon Système‐Entreprise utilisé par Kuras pour extraire le patron de conceptualisation le plus adéquat. Parmi tous les points de vue d’un système, cette dérivation nous permet de représenter ceux du Système A Faire et ceux du Système Pour Faire avec son contenu d’Ingénierie associée guidée par le cadre de modélisation de Zachman. Nous avons outillé notre proposition de cadre d’Ingénierie Système Basée sur des Modèles (ISBM) en étendant le méta‐modèle de l’outil « MEGA Modelling Suite » ainsi qu’en développant les interfaces utilisateurs nécessaires et nous l’avons appliqué à l’Ingénierie d’un Système de Traçabilité d’un Produit dans le contexte d’un scénario PLM plausible entre l’AIPL et DIMEG.
Mots clefs : modélisation d’entreprise, interopération, intégration, systèmes d’information, système de systèmes, récursivité, multi‐échelles, Zachman, ingénierie système, ingénierie basée sur les modèles, pattern.
Title : PROPOSAL OF A MULTI‐SCALE MODELLING FRAMEWORK FOR A PRODUCT‐CENTRIC ENTERPRISE INFORMATION SYSTEM
Abstract: Today’s needs for more capable enterprise systems in a short timeframe are leading more organizations toward the integration of existing component‐systems. In the domain of Enterprise Modelling and more generally on Systems Engineering, the key issue is related to aligning enterprise models with the composite structure of the modelled systems. While Enterprise Modelling matures both scientifically and technologically, it is clear that its practice is still uncommon in the enterprises. There is no modelling approach in enterprise, neither even capitalization of models. This paper aims at proposing a Model‐Based System Engineering (MBSE) approach, by using the recursion principle, together with a “multiple scales system thinking”, for capitalizing the engineering know‐how, over time, during a project lifecycle. In this context, we advocate that, within an enterprise, the heterogeneous set of Information Systems may be considered as COTS (Commercial‐Off‐The‐Shelf), encapsulating their own expertise (engineering), and contributing all together to a single System‐of‐Information System (SoIS). We are then proposing a SoIS engineering methodology resulting from deriving our MBSE approach with a recursive view of the Zachman framework. This approach, based on modelling rules and enterprise modelling constructs, is contributing to ensure the consistency and the completeness of the various heterogeneous models interoperating during systems engineering projects. To validate our MBSE proposal, a modelling tool has been prototyped. It helped at applying our SoIS engineering methodology in a use case scenario related to the requirement analysis and the specification of a product traceability system.
Keywords: Enterprise Integration, Systems Interoperability, Systems Engineering, System‐of‐Systems, Enterprise Modelling, Information Systems, recursion, Zachman, multi‐scales, pattern, Model Based Systems Engineering
top related