La programmation Posté par mtaveau le 07/03/2006 00:00:56
Les cours que j'ai étudié traitent de la programmation en langage Java. Le langage Java est un langage orienté objet. C'est à dire que c'est un langage qui utilise une autre technique et qui contient ce que l'on appelle des "classes" et des "méthodes". Je pense que l'intérêt majeur de cette technique est de permettre de faciliter d'avantage la réutilisation de portions de code : on a dès lors moins de code à écrire. C'est une technique qui permet d'englober dans une structure des fonctions et des procédures auxquelles on donne le nom généraliste de méthodes, et de pouvoir la réutiliser. Dans les langages modulaires cette technique n'existe pas, on peut tout au plus englober dans une procédure d'autres procédures.
Un langage fait pour la réutilisation du code
Le langage Java utilise des stratégies pour rendre les classes indépendantes les unes des autres. Plus les classes sont indépendantes entre-elles (ce que l'on appelle "low-coupling", plus elles peuvent être réutilisées dans d'autres contextes. Quand on décide des interactions entre classes, on établit des dépendances. Pour créer le moins possible de dépendance et pouvoir effectuer des changements en affectant le moins possibles de classes, il existe notamment une loi, la loi de Demeter.
L'utilisation de certains modules que l'on appelle "interface" permet aussi de rendre les classes d'avantage indépendantes entre-elles dans un "strong-typed language" comme Java. Dans un langage qui n'est pas strong-typed, cette précaution est inutile. Un langage "strong-typed" est un langage où toutes les variables sont déclarées permettant de réduire les erreurs engendrées accidentellement.
Il y a un facteur qui facilite la réutilisation du code, c'est un facteur qui s'appelle "cohesion". En effet plus les méthodes englobées dans une classe ont des points communs (et donc plus il y a un facteur "cohesion" important), plus il est facile de réutiliser la classe.
Les ensembles de classes qui sont réutilisées dans d'autres contexte sont appelés des "Javabeans". On peut créer des "javabeans" en tant que tels ou les dériver d'un programme tout fait.
Faire un programme
Dans le cas d'un programme complexe demander par un client à une équipe de programmeurs, il y a normalement 4 activités dans sa création :
1-Analysis
2-Design
3-Implementation
4-Testing
Auxquelles il faut ajouter 2 autres étapes d'un autre type qu'il faut situer entre l'activité analysis et design :
A-Project management
B-Quality management
Il est important avant que j'entre dans l'explication de ces différentes étapes, que je précise que dans le langage Java, on utilise des diagrammes pour se représenter les choses avant de passer immédiatement au code. Ces diagrammes sont réalisés en général dans un standard qui s'appelle l'UML, et il y en a 6 variétés. Ils sont réalisés à l'aide d'un autre logiciel (que l'on appelle "CASE tool" qui vient s'ajouter au logiciel de programmation (moi c'est Jbuilder 4 que j'utilise).
Durant la première activité, les programmeurs analyse le "Statement of requirements", un texte que le client leur a préparé afin d'exposer les besoins du programme, et réalisent un "Negotiated statement of requirements", texte basé dessus et qui est plus conforme pour les developpeurs. C'est toujours dès la 1ère activité que la plupart des modèles en UML sont réalisés à partir de ce dernier document, mais durant les activités de 1 à 4, ils seront transformés et peaufinés, on créer au fur et à mesures de nouvelles versions de ces modèles. C'est à partir de l'activité 2, que l'on commence à écrire aussi le code final.
L'activité 4, "Testing" consiste à tester le code.
Durant l'activité "Project Management", on estime à partir de certaines formules, la durée du projet et la taille de l'équipe qui doit le mener à bien. C'est aussi durant cette activité que l'on alloue à chacun des membres, différentes activités.
L'activité "Quality Management" est une activité durant laquelle on établit des points de contrôle à divers moments de la création d'un programme et ainsi on fournit au client un moyen de s'assurer de sa qualité. On mesure les facteurs de qualités, dont certains peuvent être mesurés directement à partir du code ou de diagrammes en UML, et d'autres sont subjectifs. Ce sont des personnes accrédités, externes au projet qui font ce contrôle.
L'interface utilisateur
Dans un programme, en général on sépare l'interface utilisateur du reste du programme (que l'on appelle "Domain model". On développe l'interface utilisateur en même temps que le "domain model" car ces 2 domaines sont interdépendents. Il y a 2 phases dans la création de l'interface utilisateur :
1. User need analysis.
2. Designing a user interface
Durant la phase 1, on analyse les caractéristiques de l'utilisateur potentiel du programme, des taches qu'il devra effectuer et de l'environnement externe dans lequel sera installé le programme. Cela permet de mieux cibler les caractéristiques de l'interface.
Il faut savoir qu'il y a beaucoup de caractéristiques sur une interface utilisateur (par exemple l'agencement des éléments qu'elle contient, l'apparence de ces éléments, leurs réactions au clic de la souris), et que la conception de cette interface est une science. Il y a 9 principes ("design principles" importants qui ont été identifiés dans la réalisation d'une interface.
Durant la phase 2, on créer l'interface utilisateur à partir des recommandations du "Negociated state of requirement" décrit plus haut. Pendant la création de l'interface, il faut justifier les choix nécessaires en créant un "Design Rational". Dans ce document on explique en quoi les différents aspects de l'interface sont en conformité avec chacun des "design principles".
Re: La programmation Posté par canibal le 07/03/2006 00:32:28
On sent l'article rédifé par un professionnel de la gestion de projet en objet, ça fait plaisir de voir un article sérieux en prog...
Pour rajouter un bémol à la merveillosité de ce langage que j'apprécie grandement, primo il lui faut un interpréteur, la runtime, ce qui peut etre vu comme avantage ou inconvénient puisqu'i lpermet la portabilité et la confidentialité du source, mais le revers de la médaille il est gourmand...
Sinon je dirais que ton article engolobe tout un tas de langage tout aussi puissant : php 4/5, c++, c#(humf), ...
c'est ce que je trouve d'ailleur le plus intéressant dans ton article, on ne parle pas de langage mais de manière de coder de procédure de reflexion et bien que plus orienté bas niveau pour la puissance et la rapidité, je reste un fan de l'approche objet qui offre portabilité, adaptibilité et surtout... surtout... un source propre et réutilisable par autrui...
Bref très bon article, ça me rappelle des cours de prog c'est sympa le retour aux sources (sans jeu de mot aucun )
Re: La programmation Posté par radium le 08/03/2006 09:47:39
Y'a pas à dire c'est un très bon article quelques fois un peu dur pour moi.Pourrais-tu la prochaine fois faire un article sur les objets, ça serait sympa?
Re: La programmation Posté par anavox le 26/08/2006 22:25:23
J'ai rien contre ton article mais je trouve qu'il y a juste un ptit décalage entre le titre et le contenu Ton titre est hyper généraliste, tandis que ton contenu est hyper spécialisé.
C'est un peu comme si tu avais écris un article sur les différents biotopes à l'ère du palaozoïque et que tu avais choisi comme titre : l'histoire de la terre.
Tu vois ce que jveux dire ! Mais sinon il est pas mal.