Système à objets de Up ! 5GL
Qu'est-ce qu'un objet ?
Un objet est un concept informatique permettant de modéliser quelque chose de concret ou d'abstrait de la fonction du logiciel. Par exemple, si un logiciel a pour but de gérer un parc de voitures, il y aura des objets pour modéliser les voitures, des objets pour modéliser les aires de stationnement des voitures et des objets pour modéliser les conducteurs des voitures.
Un objet est caractérisé par des propriétés et des méthodes :
- Les propriétés permettent d'assigner une valeur à l'objet ou à l'environnement de l'objet.
Par exemple, des propriétés d'une voiture sont le type de carburant, le nombre de kilomètres ou son conducteur, etc.
- Les méthodes d'un objet permettent de le consulter, de le modifier ou de l'animer.
Par exemple, des méthodes d'une voiture sont l'affecter à un conducteur, faire le plein ou calculer le prix de revient, etc.
La définition des propriétés et des méthodes d'un objet est posée dans un objet spécial. Il s'agit du type de l'objet.
Il existe des types prédéfinis Binaire, Caractere,
Date, Entier, Fichier et
Reel représentant les notions classiques correspondant aux zones binaires, aux chaînes de caractères, aux dates, aux nombres entiers, aux fichiers et aux nombres réels.
Il existe des types spéciaux Exception, Objet, Type, Serveur, Segment représentant les exceptions, tous les objets, les types définissant les propriétés et méthodes d'un objet, les serveurs de traitements et les segments de données.
Il existe des types évolués Liste, Tableau, ArbreBinaire, Reference représentant les listes, les tableaux, les arbres binaires et les références.
Type
En plus des types prédéfinis d'Up ! Virtual Technical Machine, il vous est tout à fait possible de créer vos propres types d'objets. En reprenant l'exemple précédent, nous pouvons créer trois nouveaux types correspondant aux voitures, aux parkings et aux conducteurs.
Enumere
/*****/
TypeCarburant(Essence, Diesel);
Type Conducteur Defaut
/*********************/
NomDuConducteur : Caractere;
NumeroPermisDeConduire : Caractere;
Fin Type
Type Parking Defaut
/******************/
NomDeLaPlace : Caractere;
NumeroAllee : Entier;
Fin Type
Type Voiture Defaut
/******************/
Carburant : TypeCarburant;
NombreDeKilometres : Entier;
Proprietaire : Nul Ou Conducteur;
AireDeStockage : Nul Ou Parking;
Procedure FaireLePlein();
Fonction CalculerLePrixDeRevient() Retourner Entier;
Fin Type
Il est possible des types plus ou moins complexes comportant des propriétés ou non, des méthodes ou non. Certaines pourront être créées automatiquement par Up ! Compiler, ce qui est le sens de l'instruction Defaut.
Certains types peuvent raffiner la définition d'un type plus général, il s'agit du principe d'héritage-spécification. D'autres peuvent avoir un comportement pré-établi, il s'agit d'un type implémentant une interface. Afin de connaître toutes les possibilités offertes par Up ! 5GL, nous vous invitons à vous référer à la fiche Type.
Le schéma suivant présente l'arborescence des objets et des types pour l'exemple précédent :
Ainsi il y a trois objets voitures du type Voiture, deux objets parkings du type Parking et trois objets conducteurs du type Conducteur. Les types Voiture, Parking et Conducteur sont des objets du type Type.
Le type Type est le type de tous les types. Le type Objet est la définition la plus générique de tous les objets. De ce fait, le type Type est un objet du type Objet et le type Objet est un type du type Type.
Objets d'Up ! Object Management System
Présence des objets
Dans Up ! 5GL, tout est modélisé par des types et de ce fait, tout est un objet en technologie Up ! Virtual Technical Machine. Il existe cependant trois exceptions pour des questions d'efficacité des programmes : les nombres entiers purs, les nombres réels purs et les énumérés purs ne sont pas modélisés comme des objets.
Ainsi, une chaîne de caractères, un module, un segment de mémoire, un entrepôt, une tâche et le programme lui-même sont des objets. Ceci permet d'avoir une plus grande fluidité dans le langage et une grande puissance de modélisation.
Propriétés des objets et des types
Les objets d'Up ! Application System et leurs types sont gérés par le module Up ! Object Management System. Les types correspondant aux concepts natifs usuels sont implémentés dans le module Up ! Kernel. Up ! Object Request Broker gère la distribution des objets au travers du réseau.
Tous ces objets et tous ces types ont des propriétés qui s'apparentent aux services offerts par la norme Common Object Request Broker Architecture (CORBA). La différence réside dans le fait que la norme Common Object Request Broker Architecture (CORBA) propose une norme qui est éventuellement prise en compte par les revendeurs de solutions Common Object Request Broker Architecture (CORBA) et que les informaticiens doivent programmer. En Up ! 5GL, tous ces services sont immédiatement disponibles sans aucune programmation !