COURS II :
Ingénierie logicielle
Liens entre modules (binding)
- Le concept du moment du lien devient de plus en plus important
- Définition : Le moment où l'on décide de faire un lien avec un module
- Pendant la spécification ou l'énoncé
- Pendant la conception
- Pendant le codage, la compilation ou l'édition de lien
- Pendant le chargement ou l'exécution (meilleur du point de vue logique)
- Concept général du lien tardif
- Fait seulement si réellement utilisé (appel de la procédure demandant le lien)
- Permet d'être flexible pour modifier un logiciel
- MAIS : Solution coûteuse en temps CPU et mémoire
- Systèmes et terminologie des liens actuels
- "Static binding" (lien statique) : segmentation
du code (p. ex. Unix )
- Tout le code est lié lors de l'édition du lien (le noyau en fait partie)
- Ajouter du matériel demande de recharger le programme (boot!)
- "Early binding" terme utilisé pour les composants OLE avec "dual
interface"
- "Delayed binding" (typage
dynamique) dans langages O-O (polymorphisme)
- Ou "lazy evaluation" : le type n'est connu qu'au moment de l'exécution (C++)
- "Dynamic binding" (lien dynamique)
- Allocation dynamique de ressources (mémoire, code, matériel)
- Déplacement d'un processus après son chargement
- Augmentation de la mémoire pendant l'exécution
- Ajouter des périphériques ('plug-and-play')
- Lien avant ou pendant l'exécution dans le segment code des (DLL)
- "Late binding" (attachement tardif) terme utilisé
pour les composants
- Exemple : lien pendant l'exécution d'un JavaBean
( Java "class loader")
- Exécution à distance (RPC ou objets sur d'autres
processeurs)
- Lien séparé mais prévu pendant la conception de chaque coté
- "URL binding" : localisation transparente (DCE) avec lien sur demande (ORB)
- Lien avec un identificateur d'une ressource (p. ex. URL
dans HTML)
- Accès par un registre avec un nom de serveur et un nom de service
- Le client obtient le nom d'une ressource à partir du nom du serveur