Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 10-03-2007 13:21:03

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Article de fond concernant la notion de framework

Définition

Nous définissons un framewok comme un ensemble de classes destinées à être utilisées pour développer des applications pour un domaine et un système informatique donné. On entend par domaine, le type d’application : gestion, logiciel de simulation, jeux, etc..
Dans la suite de notre propos, nous allons uniquement discuter des frameworks qui couvrent les applications de gestion en GUI (Graphical User Interface, interface graphique de type Windows) . Pour ce type d’application, dès lors que le projet est important, l’utilisation d’un framework est indissociable d’une programmation de qualité.
En effet, en application de gestion la cinématique d'une application peut être décomposée en une série de cinématiques de base que l’on rencontre régulièrement. En conséquence, un framework doit contenir un ensemble de classes qui possèdent toutes les primitives nécessaires pour permettre aux descendants de ces classes d’adopter la cinématique souhaitée en redéfinissant et, le cas échéant, en enrichissant ces primitives. Autrement dit, tout ce qui est du ressort de la cinématique de base des applications de gestion doit avoir été factorisé dans les classes du framework et notamment la gestion :
1. des erreurs de tous types (applicatives, base de onnées, etc.)  ;
2. des transactions avec la base de données ;
3. différentes formes de présentations des données (liste, détail) ;
4. de la cinématique du contrôle des règles de gestion ;
5. de la cinématique de consultation et mise à jour des données (opérations élementaires)
6. de la cinématique concernant l’ouverture des fenêtres et le passage de paramètre

Le développement d’un framework

ll ne faut pas sous-estimé la complexité de mise en œuvre des différents points précédents au niveau d’un framework, d’autant qu’il est impératif que celui-ci permette de redéfinir l’ensemble de cette gestion au niveau de chaque classe. Cela n’est envisageable que si le framework a été conçu en utilisant les concepts objets. Si tel n’est pas le cas,  le framework impose soit de retenir la cinématique qu’il a lui même décidé d’adopter, soit de réécrire complétement cette cinématique. En prenant le concept de la classe ouverte et fermée, un framework qui n’a pas mis en œuvre les concepts de la programmation orientée objet peut être considéré comme fermé, alors qu’un framework qui les a implémentées est à la fois fermé (directement utlisable) et ouvert (on peut le modifier en s’appuyant sur l’existant). Un framewok fermé aura beaucoup de difficultés à évoluer en intégrant les nouvelles avancées technologiques. Le plus souvent, il se contentera d’ajouter des nouveaux services bien moins contraignants à implémenter (comme le font les PFC) que le recours à l’héritage, mais bien plus complexe à apréhender et à maintenir.
L’élaboration d’un framework pour les applications de gestion en GUI est difficle et complexe, il demande de la part du concepteur à la fois une très bonne connaissance de ce type d’application mais également une très bonne connaissance des techniques de la programmation orientées en GUI. Même si ces qualités sont réunies, il faut compter plusieurs années durant lesquelles, confronté à de nouveaux problèmes soulevés par de nouvelles applications de gestion, le framework devra évoluer constamment, pour parvenir à être réellement l’outil productif et maintenable que l’on avait imaginé.
La construction d’un framewok constitue un projet à part entière qui diffère totalement d’un projet de gestion. En effet, il s’agit ici de construire un véritable outil destiné à être utilisé pour les futurs développements. Or, l’élaboration d’un logiciel outil obéit à une logique de dévelopement qui n’est pas comparable avec une application de gestion. Il s’agit d’un véritable projet industriel avec des difficultés multiples comme :
- l’abstracton très forte du développement ;
- La validation de l’efficacité du framework. On développe pour cela une application type de gestion avec le framework mais cela n’est jamais suffisant pour être certain que ce dernier conviendra également à d’autres applications à la problématique parfois très différentes ;
- La définition du périmètre de son utilisation. Qu’elles applications cibles ?
Dans la pratique, on rencontre quatre types de frameworks :

1. Les frameworks professionnel qui ont été développés comme un projet industriel avec de grand moyens financiers par les grands éditeurs du monde de l’informatique

2. Les frameworks que nous qualifierons de « semi-professionnels » car il ne bénificient pas des moyens financiers du précédent type, sont le fruit de l’expérience de développement de projet de la part de sociétés de services qui ont capitalisé leur savoir-faire sur un framework. La genèse de ce type de framework est une réalisation au forfait d’un projet important qui justifiait la création d’une infrastructure de développement. Cette infrastructure sera ensuite utilisée et améliorée pour d’autres projets, jusqu'à devenir un framework suffisament abouti pour être commercialisé. Cependant une fois commercialisé, le framework, paradoxalement, n’est plus en situation d’évoluer de manière optimale. En effet, lorque le framework était uniquement destiné à répondre aux besoins de développement d’un projet, il était toujours possible dans le cadre du projet de le modifier de manière significative, les coûts de ces modifications étaient intégrées dans le coût global du projet. Dès lors que le framework est commercialisé, on ne peut plus le modifier en profondeur en fonction d’un unique projet, car la nouvelle version est censée être distribuée dans tous les sites qui ont un contrat de maintenance avec la société qui le commercialise. Une modification en profondeur générerait des coûts en cascades financièrement impossibles à assumer. Le framework évolura donc à minima, générant une source de profits au début de sa commercialisation lorsqu’il sera technologiquement « up to date ». Cette source se tarira forcément lorsque le framework, vieillissant, n’aura pas sufisament évolué.

3. Les framewoks d’entreprise sont des framewok non commerciaux qui ont été développés pour les besons d’une société qui les utilise pour ses projets. La génése de ces framework est sensiblement indentique à celle du précédent type de framewok, un projet au départ puis l’utilisation et l’amélioration pour d’autres projets. Si le framework est partagé par l’ensemble des projets de l’entreprise, le risque est qu’il ne puisse pas évoluer correctement pour les mêmes raisons que le précédent type de framework : une modification en progondeur impliquerait une mise à jour coûteuse de tous les projets qui l’utilisent. En revanche, si chaque projet coupe le lien avec le framework, la nouvelle version du framework ne sera pas utilisée pour les anciens projets et le framework pourra  évoluer de manière optimale. L’inconvénient est qu’il existe plusieurs versions du framework au sein de la société.

4. Les frameworks personnels sont des frameworks qui ont été développés par une ou plusieurs personnes et ne sont pas commercialisés avec une licence d’utilisation, comme peuvent l’être les frameworks semi-professionnel, mais dont les droits d’utilisation peuvent être acquis auprès des concepteurs pour une utilisation au sein d’une entreprise. Une fois acquis les droits, l’entreprise considère le framework comme le sien mais elle ne peut elle-même le commercialiser, et le fait évoluer en framework d’entreprise. L’avantage pour la société, c’est la souplesse de la formule, pas de contrat de maintenance, pas de migration à venir, mais en contrepartie cela demande un effort d’investissement important de la part du personnel qui sera amené à utiliser le framework afin d’en assimiler la logique. C’est en effet le personnel qui en assurera l’évolution. Les frameworks personnels n’ont pas les contraintes des frameworks semi-professionnel et peuvent donc évoluer en fonction du temps que veulent bien leur consacrer leurs auteurs.

Il est posssible d’imaginer le framewok idéal. Il servirait d’infrastructure à de nombreux projets et il serait possible de le faire évoluer sans que cette évolution implique un impact important sur les applications qui l’utilisent. Autrement dit, un framewok qui soit à la fois partagé et puisse évoluer sans que cette évolution ne génère un coût concernant le partage. On retrouve la notion d’ouverture/fermeture, le framework est fermé pour les applications qui l’utilisent et ouvert pour les futures évolutions. Un tel framework est, dans l’état actuel des techniques informatiques utilisées dans la gestion en GUI, peu envisageable. La migration d’application, en l’occurrence le passage d’une application vers une nouvelle version de framework, a encore de beaux jours devant elle.

Framework et PowerBuilder

En PowerBuilder, les "Powers Tools"  qui pouvait rentrer dans la catégorie framework de type 1 (professionnel) a été abandonné. Il existe encor la possibilité d'utiliser les PFC, mais outre leur complexite, ces classes ont été conçues avec la version 6.5 de PB et n'ont pas évoluées en harmonie avec les versions ultérieures. De plus, les PFC ont été conçues sous forme de services et non de programmation objets avec tous les inconvéninets de ce type de programmation.


Dans la catégorie 2, il reste la "PowerLib" mais qui a très mal veilli, illustrant les problèmes que nous avons soulevé pour ce type de framework une fois commercialisé.

La catégorie 3 n'a pas vocation à être commerciliasée.

En catégorie 4, à ma connaissance, il n'existe plus que le mien qui continue d'évoluer constamment (actuellement il est compatible uniquement PB 10.5) et qui a fait l'objet de deux ouvrages dont le dernier est sorti aux Editions ENI en 2004 sous le titre : "PowerBuilder : Technique avancées de développement".

Dernière modification par Dadone (12-03-2007 21:26:35)

Hors ligne

 

#2 11-03-2007 07:59:39

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Article de fond concernant la notion de framework

Pascal et pour toutes ces précisions !


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 12-03-2007 08:24:51

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Article de fond concernant la notion de framework

merci beaucoup

Hors ligne

 

#4 12-03-2007 12:17:06

PB2  
Membre Geek
Date d'inscription: 05-06-2006
Messages: 36
Pépites: 280
Banque: 0

Re: Article de fond concernant la notion de framework

Bonjour,

J'ajouterai deux points de plus dans la liste des caractéristiques d'un framework (professionnel ?).

7. La gestion des versions : Pouvoir désactiver à distance une version d'une application quand on livre une nouvelle version.

8. La gestion des droits d'accès : Permettre la création de plusieurs type d'utilisateur (login) d'une application avec des privilèges différents sur différentes parties de l'application et ce sans toucher à l'exécutable.

En suite, permettez-moi de ne pas partager votre avis sur la manière de qualification d'un framework. Il ne suffit pas de mettre beaucoup de moyen pour produire un produit professionel. On peut se mettre à 10 pendant un an et sortir un produit médiocre. Pour moi un framework dit "professionnel" est un framework qui :

-répond à un large éventail des besoins des entreprises
-supporte de très gros projet
-s'adaptable à plusieurs types d'application (Gestion SGBD, utilitaires, MDI ou non, etc.)
-assez ouvert (ne plante pas si on mélange une DW natif PB parmi les objets du framwork par exemple) et/donc évolutif facilement.

Même si ce framework est écrit par une seule personne ou par une entreprise.

Cdt,

Hors ligne

 

#5 12-03-2007 21:22:51

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Article de fond concernant la notion de framework

En réponse à votre intervention,

Effectivement, la gestion des habilitations est un point qui rentre dans la logique d'un framework pour les applications de gestion. Ma liste ne se voulait pas exhaustive mais plutôt une liste à minima. Pour la gestion de versions, je ne voie pas trop, il suffit, me semble t'il d'enlever l'ancienne afin de mettre la nouvelle, enfin même si je n'ai pas tout compris, ce point ne m'apparaît pas d'une importance équivalente par rapport aux autres.
En ce qui concerne ma taxonomie des frameworks, il ne s'agit que d'une proposition tirée de l'expérience. Dans ce sens, un framework "professionnel" n'implique aucunement un jugement de valeur sur ledit framework mais uniquement,  en reprenant ma définition, un projet d'ampleur industriel avec de grands moyens financiers. Il s'agit uniquement d'une défintion de ce que j'ai pu constaté.

En revanche, les caractèristiques d'un "bon framework" c'est des critères précis qui sont issus du génie logiciel concernant la "qualité interne" (jugement technique) et "la qualité externe" (jugement fonctionnel).
La qualité interne repose sur des critères unanimement reconnus comme valables pour qualifier un  "bon développement".
Ils sont basés sur deux principes :
1 : Autonomie des classes qui composent le logiciel
2 : Non-redondance des traitements (factorisation)

Le principe 1, qu’on appelle  "principe de décentralisation", a pour objectif de construire des classes aussi indépendantes les unes des autres que possible.
Il est constitué des quatre critères suivant :
a couplage faible entre les classes ;
b petites interfaces ;
c interface explicite ;
d masquage de l’information.

Pour plus de détails concernant la définition de ces critères vous pouvez soit vous référer à mon livre  "Conception et programmation objet, application de gestion en interface graphiques" Editions ENI 2003, soit aux excellents ouvrages de Bertrand Meyer "Conception et programmation objet" aux éditions Eyrolles (ce dernier livre traitant de l'informatiqe industrielle)

En ce qui concerne la "qualité externe" (en s'implifiant l'intérêt que représente l'utilisation d'une application), les deux derniers ouvrages en donnent également les critères qui devront être évidemment adpatés par rapport à une logique framework.

Cordialement

Dernière modification par Dadone (12-03-2007 21:27:09)

Hors ligne

 

#6 13-03-2007 12:44:37

PB2  
Membre Geek
Date d'inscription: 05-06-2006
Messages: 36
Pépites: 280
Banque: 0

Re: Article de fond concernant la notion de framework

Bonjour,

Ma définition du mot "professionnel" est simpliste (réponse aux exigences des entreprises=des professionnels), basé sur mes expériences du passé.

J'ai déjà participé à un atelier de génie logiciel pour écrire un framework PB pour une grande entreprise avec tous les experts autours, on a même fait venir un expert de PowerSoft d'Amérique pour faire de l'audit, après 3 ans de travail et une équipe de 6 personnes, le framework était presque inutilisable car trop lourd.

J'ai aussi participé au développement d'un autre framework PB, toujours en vente d'ailleurs, que je trouvais "pas terrible" et finalement comme beaucoup de personnes, j'ai conçu un framework pour moi-même ou plutôt pour mon entreprise que (naturellement ) j'apprécie beaucoup plus.

En ce qui concerne la gestion des versions. Nos applications sont utilisées par plus d'une centaine de personnes, même à l'étranger. Le service informatique ne peux intervenir manuellement sur chaque PC pour faire la mise à jour. La nouvelle version est mise à leur disposition mais rien ne force les utilisateurs à l'installer et il est dangereux d'utiliser toujours l'ancienne version quand les règles de gestion ont changé et que le schéma de la base de données a évolué.

La gestion de version permet de désactiver l'ancienne version obligeant ainsi les utilisateurs d'installer la nouvelle version pour pouvoir travailler.

Cdt,

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22