Architecture des systèmes d`information - LIX

Transcription

Architecture des systèmes d`information - LIX
C E N T R E
D E
MAITRISE DES
SYSTEMES ET
D U
LOG IC IEL
Architecture des systèmes
d’information
aaa
Contenu informationnel – Complexités – Modèles de coût
CALIX, les 3-4 Octobre 2007
Jacques Printz, Professeur au CNAM, Chaire de génie
logiciel
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 1
Plan de l’exposé
ªLiminaire : Machines abstraites et principes
d’ingénierie de l’information
Ô Déterminisme des opérations programmées – Réversibilité et
reconstruction de l’histoire des transformations
ª1ère partie : Principes de décomposition
fonctionnelle revisités
Ô Blocs fonctionnels – Traducteur/Transducteur
Ô « Orchestration et chorégraphie » – Surveillance, régulation et
contrôles des enchaînements
ª2ème partie : Complexités textuelles,
architecture et modèle de coût
Ô Essai de définition d’une « mesure naturelle » du contenu
informationnel d’un système
Ô Notion de CCI : complexités, complications et incertitudes
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 2
Un modèle de simplicité pour
l’ingénieur informaticien :
La machine logique de von Neumann
Organe de contrôle
(le pilote général de la
machine + surveillance
+ « drivers » des ports )
Périphérique pour
entrer l’information
dans la mémoire
(n1 ports en entrée)
Unité logique (organe de
calcul avec les fonctions
primaires de la machine)
D1
Entrées
Ports
Périphérique pour
extraire l’information
de la mémoire
(n2 ports en sortie)
D2
D4
D3
Données du programme
enregistré
Le contenu est conventionnel
• Cf. débat CICS-RISC selon les
technologies d’intégration VLSI
Mémoire
Ports
Sorties
Programme enregistré, avec
ses données et ses
instructions
Espace d’adressage de la
machine (N programmes en
concurrence)
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 3
Qq. Concepts vraiment fondamentaux
ªOpérations indivisibles (atomiques) sur la
mémoire
ªEspace d’adressage des processus et de la
machine – Chemins d’adressage (data path)
ªRedondances utiles et surveillance pour
l’intégrité des opérations et des états de la
machine
ªDistinction langage interne – langage(s)
externe(s) ; compilation et interprétation
ªProcessus séquentiels (cf. E.Dijkstra)
ªProcessus concurrents et synchronisation
des processus (cf. les sémaphores)
ªIntégrabilité
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 4
1ère Partie :
Principes de décomposition
fonctionnelle des systèmes en vue
d’identifier la « machine » sous-jacente
Le SI vu comme une machine
de traduction
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 5
Exemple N°1 : les ports du SI
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 6
La machinerie informationnelle :
complexité de l’information
Monde M1
Processus métier
Flux
Règles de typage
• Syntaxe du type
• Sémantique du type
(règles d’interprétation)
Règles d’intégrité
Cohérence des processus et des actions
Processus
informatique
Traitements
automatisés
Déterminisme
Cohérence de
l’information
DONNÉES
Monde M2
Cohérence de
l’information
DONNÉES
Contraintes ergonomiques
• Pragmatique
• Sémantique
Bon sens
Flux
Cohérence globale du SI
Cohérence informatique
• Intégrité du modèle de données
• Caractéristiques non fonctionnelles (FURPSE)
• Architecture logicielle
Sphère de contrôle du langage naturel
Sphère de contrôle des langages informatiques
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 7
La frontière des mondes M1 et M2
IHM/GUI et Capteurs-Actionneurs
Opérateurs humains
Poste de
travail
Temps
contraint
Temps
humain
Temps machines
et équipements
Caractéristiques des
« orchestrations »
Autres informations et connaissances à disposition des
opérateurs hors de la sphère de contrôle du système informatisé
Ports
externes
Écrans
Commandes
Système IHM - GUI
Interfaces d’échanges informatiques
Automatisation de tout ou
partie des processus, tâches
et services métiers
Interfaces d’échanges informatiques
Système réactif pour
équipements virtuels
Capteurs
Actionneurs
Processus et tâches dans la réalité concrète –
Équipements à piloter – Équipements simulés
– Autres systèmes, interopérabilité
Langage(s) de commandes
selon le profil de l’opérateur :
• C Create
• R Retrieve
• U Update
• D Delete
• E Execute
Référentiel système des
entités informatiques que l’opérateur
peut utiliser grâce aux commandes
qui lui sont accessibles
Langages internes
Langage(s) de commandes
de l’équipement, selon le type de
l’équipement :
• Le référentiel système ne connaît
que l’interface virtuelle, ce qui
facilite les adaptations
• Interopérabilité
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 8
Exemple N°2 : Les chemin de données
fondamentaux du SI – Flux
informationnels
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 9
Système en mode réception (SMR)
Sources/capteurs d’information
Opérateur
Messages
Reçus
Espace de visualisation EV
(Modèle de Données Utilisateur)
C3
EV
EMR
Ensemble connu de types :
{MR1, MR2, … , MRn}
Système S1
de UA1
ER
C1
Espace de réception
des Messages Reçus
EMR
C4
Espace de référence ER du
système
(Modèle de Données Internes)
C2
Horloge du système
Ô Le système reçoit de l’information via des messages de toute nature : messages formels avec typage des données,
messages textuels formels (via des schémas XML) ou semi formel (de niveau courrier électronique) ; il met à jour ses bases
de données et présente l’information à l’opérateur pour validation et/ou enrichissement sémantique via les
chemins C1, C2, C3, C4.
Ô Le système se comporte comme un puit d’information
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 10
Système en mode émission (SME)
C4
Messages
Émis
EV
Système S1
de UA1
ER
EME
Ensemble connu de type :
{ME1, ME2, … , MEm}
C3
C5
C6
Espace de travail des
Messages émis EME
Ventilation des messages vers les
acteurs / actionneurs clients
Opérateur
Horloge du système
Ô Le système émet de l’information via des messages de toute nature ; il propage l’information qu’il contrôle vers ses
correspondants destinataires via les chemins C3, C4, C5, C6 ; la qualité et la traçabilité des données propagées est
primordiale pour l’intégrité de l’ensemble des systèmes intégrés. En cas d’action erronée il est primordial de pouvoir
reconstituer l’histoire des transformations opérées.
Ô Le système se comporte comme une source d’information
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 11
Système en mode Action (SMA)
Classe 1 : Manuel
Opérateur
C1
C5
C3
EMR
Ensemble connu de types :
{MR1, MR2, … , MRn}
C2
C4
EV
Système S1
de UA1
ER
EME
Ensemble connu de types :
{ME1, ME2, … , MEm}
C6
Horloge du système
Ô Le système reçoit et émet simultanément de l’information via des messages de toute nature ; il propage l’information
qu’il contrôle vers ses correspondants destinataires ; le temps de latence réception→émission est court ; le risque de défaut
d’intégrité est beaucoup important. La qualité globale {données traitements contrôles} est primordiale.
Ô Le système se comporte comme un transducteur ; les messages reçus et émis constituent des langages formels
(automatisme pur) ou semi-formel (si intervention de l’opérateur) ; tous les chemins peuvent être activés.
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 12
Système en mode Action (SMA)
Classe 2 : [semi] Automatique
Opérateur superviseur
Cet opérateur programmé peut
être un Workflow paramétré
résultant des activités à effectuer
dans le métier
C3
Opérateur programmé
C1
Ensemble connu de types :
{MR1, MR2, … , MRn}
C2
Notification des opérations
effectuées par le système
C5
EV
EMR
Système S1
de UA1
ER
C4
EME
Ensemble connu de types :
{ME1, ME2, … , MEm}
C6
Horloge du système
Ô Le système n’est plus directement sous contrôle de l’opérateur humain qui devient passif ; la décision est déléguée à un
opérateur programmé paramétrable (selon niveau d’alerte qui détermine le risque).
Ô Tout est journalisé pour analyse après action et rejeu (préparation de scénarios pour les simulateurs d’entraînement).
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 13
Intégration des machines logiques de
transformation-traduction
ENTRÉE
MR1
ME1
ER1
Sphère de contrôle du système
MT1
MT2
...
MTn
SORTIE
MR2
Une ou plusieurs machines transductrices effectuant
les transformations et/ou les services demandés
ME2
ER2
Mécanisme d’intégration des machines logiques (Bus informationnel)
MT_sv
Surveillance
MT_oc
Orchestration
et Contrôle
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 14
Exemple N°3 : Langage interne et
langages externes – Intégrité de
l’information
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 15
Le modèle du traducteur PTE
Présentation – Transformation - Édition
Entrée graphique
Entrée textuelle
Entrée autre …
Vérification et Validation
des entrées
Présentation
Format externe
Adaptation E→I
FE_EMTR
EMTR→RCPR
Interface privée
Interface publique
Adaptateur de format
Format interne
Transformation
Langage de
l’acteur émetteur
FI_EMTR
Cœur de la transformation PTE
Format interne
Adaptation I→R
FI_RCPR
Adaptateur de format
Format externe
FI_RCPR
Édition
Édition graphique
Plusieurs couches
selon complexité
Vérification et Validation
des éditions
Édition textuelle
Édition autre …
Langage de
l’acteur récepteur
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 16
Exemple N°4 : les opérations atomiques
sur les données – Notions d’intégrat
(« building block ») et de transaction
Granularité de niveau pièce
élémentaire d’un système (Intégrat
de rang 0) – Le pas de
fabrication/construction du système
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 17
Modèle transactionnel : Gérer la
cohérences des mondes M1 et M2
Le monde M1 est généralement irréversible – Toute
transformation à un coût (entropie) → Notion de compensation
Argent réel du client
(chèque – CB – DAB)
Monde réel M1
Client
Stock réel du
fournisseur en magasin
Fournisseur
Banque
Maintien de la cohérence M1 – M2
Système d’information
BD client
BD Banque
BD fournisseur
Monde informatisé M2 (monde virtuel)
Le monde M2 est par construction réversible
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 18
Pattern d’instruction généralisée : la
transaction
État en entrée de la transformation
DE1
DE2
TR_I
DR1
•••
DEn
{ Invariant TR_I }
garantissant la
cohérence de TR_I
Historique
DR2
•••
DRm
n entités mémoire en entrée
Transaction
TP_I
m entités mémoire en résultat
A
C
I
D
État résultat de la transformation
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 19
Règle de modularité 1 entrée – 1 sortie
Le contrat d’entrée dans
l’intégrat n’a pas été vérifié.
×
Bloc non conforme aux
règles de modularité
Opérations
antérieures
Entrée
Chemin
d’entrée C1
NON
Vérification du
« contrat » en entrée
...
B1
B2
Bn
Blocs de code constitutifs
Chemin de
sortie C2
Vérification du
« contrat » en sortie
Sortie
Suite des opérations
×
NON
Le contexte de la défaillance
est perdu. Le contrat de sortie
n’a pas été vérifié.
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 20
Modèle de composant intégrable
Contexte et données partagées
Niveau SDS
Données partagées
Niveau Système/S-Système
Données partagées
Niveau Composant applicatif
Données partagées
Sphère de contrôle
de l’intégrat
entrée
Statiques/Dynamiques
Données privées ITG
Intégrat ITG
Version.Révision
(+ ressource propres)
Sortie
nominale
Sortie non
nominale
Nomenclature, caractéristiques, niveau de partage,
comportement, etc.
/////
Il est impératif de distinguer
soigneusement les données :
• Persistantes
• NON persistantes (équivalentes
à des phénomènes transitoires)
Ressources consommées,
niveau de charge
Allocation / Restitution explicites
Pool de ressources partagées
entre plusieurs intégrats
Données référencées
par ITG (modalités CRUD)
Contexte de l’intégrat
Comportement de l’intégrat
Latence
Quantité d’information traitée
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 21
Vision architecturale : Identification
des fonctions
RG
Mémoire de stockage des RÈGLES DE
GESTION et de la programmation des
enchaînements
M Moniteur
d’enchaînement
Fonction F1
Fonction F2
F_GPE
Canal de lecture
[1:n1] ports d’entrée
ME
Mémoire de stockage
des messages
entrants
Fonction F3
T
...
F_GPS
MS
Canal d’écriture
[1:n2] ports de sortie
Mémoire de stockage
des messages
sortants
Fonction Fn
F_Ressources
Mémoire persistante / non persistante
R
Autres ressources
Allouées / Non allouées
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 22
Validation de la cohérence des
messages reçus
Réception d’un message connu dans l’espace des
messages reçus (EMR)
Règles lexico-syntaxiques
Aides à l’usager
Analyse lexico-syntaxique
du message
Défaillance
Messages non reconnus
Log
Règles de conversions
Conversions éventuelles dans la structure
spécifique du système S
Messages incohérents
Défaillance
Référentiel
Règles sémantiques
Analyse sémantique du
message – Syntaxe abstraite
Aides à l’usager
Mises à jour éventuelles / chargement
des espaces EV et ER
Retour aux procédures métier pour la suite des opérations à
effectuer dans S
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 23
2ème Partie :
Complexités textuelles, architecture et
modèle de coût
Essai de définition d’une
« mesure naturelle » du
contenu informationnel d’un
système du point de vue projet
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 24
Trois textes indispensables, présents
dans tous les projets
ªLe référentiel projet
Ô C’est un méta-texte, explicite ou implicite, qui fixe les règles que les
programmeurs devront impérativement respecter pour éviter l’anarchie
et le chaos des initiatives individuelles
9 En particulier les interfaces, qui font l’objet de négociations entre les
acteurs au sein d’une équipe et entre les équipes
ªLa programmation
Ô Description statique de ce que l’ordinateur est censé faire (i.e. ce qui
va réellement s’exécuter dans l’ordinateur)
9 Taille du programme en nombre d’instructions + Nomenclatures X-ref
ªLes tests
Ô Description dynamique de toutes et rien que les combinaisons
autorisées qui permettent de vérifier et de valider ce qui a été
programmé, compte tenu des exigences système (FURPSE +
PESTEL)
9 Historiques, traces et lignes de vie du système
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 25
Notion de CCI
ªLa notion intuitive [informelle] de
complexité dans les projets agrège
différents aspects [i.e. une intrication] :
• Complexité intrinsèque
9 Du système (sémantique, sémiologie, … via une machine abstraite)
9 De l’organisation du projet de réalisation
• Complexité Complication
9 Notations utilisées pour programmer (syntaxe, symboles graphiques, …)
9 Technologies sous-jacentes, machines réelles
9 Procédures de décisions de l’organisation
• Complexité Incertitude – Risque
9 Performance et fiabilité des équipements
9 Performance et fiabilité des acteurs (maturité des acteurs et de
l’organisation ; connaissances requises)
9 Risques
Peut-on les séparer et isoler un noyau dur
de complexité intrinsèque ?
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 26
Peut-on, et comment, « mesurer » la
complexité
ªConstat : Il n’y a pas de mesure absolue de
la complexité
Ô C’est une notion relative qui dépend du niveau d’organisation que l’on
observe, et de l’acteur qui observe
9 Le meilleur exemple est l’ordinateur lui-même, depuis le transistor
jusqu’à …
ªQuel sens donner à l’expression : « plus
complexe » ?
Ô
Ô
Ô
Ô
Ô
Plus grande taille du code, en nombre d’instructions
Plus grande taille des tests, mesurée via un niveau de couverture
Plus coûteux, plus long à réaliser, à intégrer, à modifier, …
Densité des différentes matrices de couplages utilisées en intégration
Plus grand graphe, plus grand nombre cyclomatique, …
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 27
Processus d’intégration
ªEn entrée :
• Interfaces et contextes + contraintes (FURPSE) des
intégrats
• Ressources nécessaires et comportements attendus
• Paramètres d’instrumentation
• Cas d’emploi et chaînes fonctionnelles métiers
ªEn sortie :
• Tests d’intégration et environnements d’exécution +
bouchons éventuels
• Nombre de défauts détectés/corrigés + courbe de maturité
(disponibilité mesurée)
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 28
Arbres et paliers d’intégration – niveau
application
Ce que livre les
intégrateurs
3 paliers d’intégration
Vers les
niveaux
systèmes
P3
P2
P1
Ce que livre les
programmeurs
Assurance qualité de l’intégrat
garanti par un niveau de test
unitaire (couverture à x%,
preuve, …)
Application
générique de
niveau 3
Modules de
niveau 2
...
Modules de
niveau 2
Modules de
niveau 1
Intégrats
de rang 0
Intégrats
de rang 0
Environnement
de test
Environnement
de test
Généralement
mono organisation
Modules de
niveau 2
...
Modules de
niveau 1
...
...
Intégrats
de rang 0
Environnement
de test
Pour les TU
‰ Chaque intégrat nécessite un environnement de test ad hoc
‰ Importance de la standardisation pour faciliter les opérations de rejeu des tests (non
régression)
‰ Pb potentiels avec les COTS et le logiciel libre (en particulier incertitudes des ENF)
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 29
Mesure combinée texte du programme
+ Texte des tests
Exigences
FURPSE + PESTEL
Texte des
tests
Texte du
programme
Taille
Taille
Coût-Délai de fabrication
du programme
Coût-Délai de fabrication
des tests
Validation
métier
Vérification
technologie
(Le QUOI, POUR QUI)
(Le COMMENT)
‰ Tests unitaires pour les
intégrats de rang 0
‰ Tests d’intégration, selon
structure de l’arbre d’intégration
Coût de garantie de contrat de service (SLA)
La taille du texte correspondant est
une fonction monotone croissante
de la complexité de l’arbre
d’intégration
• le pb est : convexe, ou concave ?
Coût complet = Programme + Tests
satisfaisant les exigences
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 30
Exemple N°1 : Prise en compte de
l’intégration dans l’équation d’effort
COCOMO
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 31
Équation de l’effort COCOMO
ªPeut-on justifier la forme de l’équation ?
Effort = k × (KLS )
Facteurs
d’influences
Terme linéaire
Dépend de la puissance
expressive et du « grain »
sémantique du langage de
programmation
+ Expérience des acteurs
Facteurs de coût
1+α
Terme NON linéaire
Dépend de la complexité de
l’application et de la maturité du
processus de développement
Î α est le facteur d’intégration
Facteurs d’échelle
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 32
Impact du coefficient d’intégration α
EFF (n × x)
ξ=
= nα
n × EFF ( x)
2
Amplification des coûts
ª Tout ajout de code génère un coût
d’intégration qui ne dépend que
du terme complexité
1,8
1,6
0,05
0,12
0,2
1,4
1,2
20
18
16
14
12
10
8
6
4
2
1
Facteur d'intégration
Î Ne dépend que du nombre
de modules intégrés
Courbes établies à partir des
équations COCOMO
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 33
Exemple N°2 : complexité via le modèle
d’estimation des coûts logiciel
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 34
Relation entre la complexité, les
équations COCOMO, CQFD et FURPSE
Complexité → (Taille, Nbre de pièces, Nbre de couplages)
F
U
R
P
S
E
C
Q
Taille de l’arbre
d’intégration
Effort = k × (KLS )
1+α
Via la quantité/effort de
tests en intégration IVVT
F
Rendement de l’effort IVVT exprimé en termes de :
• Taux de défauts résiduels
D
• Disponibilité de l’application ou du système
Den année = (0,5 ± 0,04) × (Een HA )
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
0 , 3± ε
Version V0 – Page 35
Pour aller plus loin …
©2007 /J.Printz / Architecture des SI – Contenu informationnel, complexités et modèles de coût
Version V0 – Page 36