Génie logiciel
INFORMATICIENS
Affirmation d'une fille du Cigref. Notes vers 1987
L'informatique va devenir transparente, on n'auraplus besoin d'informaticiens.
Avec les langages à objets, les produits ré-utilisables,
les packages.
Un PDG pourra faire directemnt le SI global.
Ma réponse :
je ne vois pas cela se faire pour l'instant
échec des L4G, langages à objets outils pour pros
la montée de complexité exige des professionnels
de ik
l'hypothèse sous-jacente: ik n'est rien, conception n'est
rien
je crois que le réseau à lui seul est compliqué
le besoin d'informaticiens se réduit du fait de
- normalisation, windows
- et donc industrialisation
- et externalisation.
Ce n'est pas pour autant de la transparence.
*note en 7/92. SAP à Opio m'a fait changer de point de
vue. Sur l'externalisation, moins sur la transparence
LOGICIEL PROGRAMMATION
Le soft devrait faire le gros des CA. Mais en attendant c'est
le hard qu'on voit.
Sur ce qu'est fondamentalement la programmation. Relation avec
la motricité de l'autre. Ce qu'il fait "pendant que
je ne suis pas là".
Le problème ne se pose pas avec un tableau qui reste fixe,
mais dès qu'il y a des automatismes.
Longueur de programmation. Voir le texte d'Hofstadter. Ce problème
de longueur est essentiel. Il n'y a pas de "soft" pour
une machine trop simple.
LANGAGES
Basic
Extensions: Rol pour les automatismes (Gixi).
Nodal du Cern pour la répartition.
Programmer: écrire une séquence d'instructions.
créer un processeur autonome. Commence avec structures
de contrôle. If puis les constructions au tour (then else,
while, for...) puis la récursivité.
Abstraction, conservation, généralités
agents NewWave, scripts Hypercard
Dans l'avenir. Accès aux dictionnaires et normes linguistiques.
Renvoie aux savoirs de la machine.
PARADOXE DE L''EVOLUTION
D'une part il est de plus en plus facile de programmer, avec de
meilleurs environnements, une machine plus rapide, plus transparente.
On peut être plus près de la machine (disposer du
clavier notamment), et aussi plus près des atomes logiques.
D'autre part les langages de haut niveau éloignent de la
machine, sont orientés application.
Problème des structures mentales.
Relation avec le "modèle"
Abstraction
Montée de la complexité des applications et des
exigences de performance.
...
Deux tendances, notamment à propos des LOO
Meyer, abstraction.
Moi, Smalltalk: présentation concrète.
Une modélisation naturelle, ergonomique, proche de la langue
naturelle
- d'une part renvoie vers le noumène, le haut niveau
- d'autre part traduit pour faire fonctionner le processeur
RELATION FORMEL/INFORMEL
problème/calcul
la frontière est d'autant moins simple qu'il y a, de part
et d'autre, des espaces considérables, des modèles
de plus en plus puissants.
la machine devient de moins en moins révélatrice,
parce qu'étant elle même puissante, elle n'exige
plus une formalisation complète. en répondant trop
bien à mes désirs, elle ne m'oblige plus à
construire.
L'essentiel est le problème de la rationalité limité:
ce n'est pas notre "intelligence" au sens général
ou métaphysique, mais dans les limites de l'interface
Le paradoxe de l'homme, ce qui le rend intéressant, c'est
qu'il a atteint au niveau de la rationalité (discursive)
un niveau quantitatif suffisant pour SE percevoir et delà
pour agir sur soi et sur les autres
Gérard Novac LITP 43 36 25 25. A fait des études
sur Logo, Lisp, écoles communales.
...
programmer/concevoir
programmer/spécifier
procédural/déclaratif. deux formes de mélange
d'énergie.
motricité de l'éditeur/éditeur prédictif
et programmation
...
la conception retrouve la dualité abstrait/homme.
Le désir. Modélisation. Puis la machine prend l'initiative.
Maximise le sens.
En termes de L, pour que le système accepte de se laisser
déterminer, il faut une urgence absolue. Le déterminisme
est quelque chose d'énergétique. En quelque sorte
le parient n'a plus d'être, puisqu'il est totalement soumis
à l'agent.
Intérêt pour le système: plutôt H ou
plutôt P.
L'IA anthropomorphisante est la plus payante à long terme.
Cependant la montée directe le long de cette voie ne sera
pas la plus payante à moyen terme (20 ans) en fait elle
est trop abstraite et inquiétante. On va donc faire beaucoup
et beaucoup d''articles... et des appareils excitants: gants,
lunette d'orientation, tactile, capteurs... et assez vite peut-être
vision de l'utilisateur par la machine.
Une caméra, ce n'est pas si cher.
PROGRAMMATION ET IMAGE
Programmation purement par l'image. Il y a dessin.
Icono 122.
Le progrès des interfaces devrait privilégier l'oeil.
La vision par la machine. Les doigts sont le moyen d'expression
conscient le plus riche, rapide. Le clavier est meilleur que d'autres
dispositifs: précis, beaucoup de bits (log2 60). On peut
imaginer 100 bits/sec au clavier.
METHODES DE CONCEPTION
Méthode Berger: chercher le coeur critique. étoffer,
grossier. le chemin-clé puis élargissement du chemin.
Sinon, on est obligé de réfléchir.
Conception à partir de soi. Me décrire, puis plus
précisément décrire mes besoins. Que la machine
s'en souvienne. Programmation orientée sujet.
Modéliser mes préférences. De là,
progressivement, mes désirs, mes ordres.
LE PROGRAMMEUR
Sa spécificité. Disparaîtra-t-il?
Redorer son blason: comparaison avec l'auteur, l'ingénieur,
le journaliste.
Sa dévalorisation: on ne signe pas un programme, sauf de
très grands (Richtie, Atkinson)
AVEC HYPERTEXTE, HYPERCARD, HYPERDOCUMENT...
Entre le programmeur et l'utilisateur: l'auteur
L'apparition de nouveaux environnements logiciels comme Hypercard
d'Apple et l'Hyperdocument d'IBM mettent en avant un rôle
spécifique dans la conception d'applications: l'auteur.
La brillante démonstration de Renault à Equip'Auto,
avec un système très convivial d'aide aux mécaniciens
(LMI 2/11/87 p. 27) fait apparaître un paradoxe: Bernard
Pargamin, réalisateur de cette application complexe, se
félicite de ne pas avoir écrit une ligne de code
Avec Multiplan, et d'autres tableurs, combien de cadres écrivent
aujourd'hui des "systèmes de contrôle budgétaire"
élaborés, sans jamais pour autant écrire
une vraie ligne de programme. On voit même des secrétaires
monter de petites applications de gestion avec leur traitement
de texte, pour peu qu'il dispose de quelques opérations
arithmétiques et d'un moyen d'enchaîner les actions
dans des "macros".
Comment qualifier ces nouveaux acteurs de l'informatique. Des
utilisateurs? C'est trop peu donner à des gens qui ont
passé beaucoup de temps à développer des
outils pour d'autres, qui en font parfois leur profession, voire
même passent au stade industriel en en faisant de véritables
produits. Des informaticiens?
Ils n'en ont ni la prétention ni même l'envie. Disons
plutôt des "auteurs". L'EAO avait déjà
montré la voie, et les créateurs d'Hypercard en
explicitent le rôle, entre le simple utilisateur (browser)
et le programmeur. Et le cogniticien même, joue un peu pour
l'expert le "nègre" qui, en littérature,
prête sa plume à une personnalité qui n'a
pas le temps d'écrire.
Dans l'entreprise, l'auteur ne va-t-il pas remplacer l'informaticien?
Avec la profusion des logiciels intégrés, des infocentres,
L4G, générateurs super-faciles de systèmes
experts... à quoi bon des programmeurs. D'autant que, comme
dans le cas de Renault avec Owl, on peut trouver chez les SSII
les compétences pointues qui restent nécessaires
de temps à autre.
Ne nous inquiétons pas trop pour le programmeur, dont l'avenir
est remis en cause... depuis les années 60 (voir par exemple
0.1. Mensuel de mars 1967, où l'on commence à découvrir
que Cobol n'est pas vraiment fait pour les utilisateurs, ou Le
Monde du 9 avril 1968 titrant "Les programmeurs ont devant
eux un avenir incertain").
L'auteur, d'ailleurs, n'est qu'une des nouvelles fonctions que
fait apparaître l'élargissement de la palette informatique
(voir "nouveaux métiers, nouvelles organisation",
LMI du 14/9/87). Il prend sa place aux côtés de l'architecte
de systèmes, de l'administrateur de données ou le
responsable réseaux. Le rôle d'auteur s'arrête
au delà du "livre", du "stack' d'Hypercard,
c'est à dire dès qu'il faut organiser la coopération
au delà des individus et de la petite équipe.
Auteur... un mot trop large, sans doute, allant de Balzac à
l'initiateur... d'une note de service Il correspond pourtant à
des situations bien réelles, qu'il faudra reconnaître
et préciser pour qu'elles soient efficaces. Un nouveau
marché pour les formateurs?
Pierre Berger LMI 22/11/87
REALISATEUR/ASSEMBLEUR
réalisateur: petits composants. Le projet contient ses
moyens
assembleur: le projet est contenu dans ses moyens il consomme
une partie des ressources l'évolution devrait conduire
à une montée de l'assembleur, à partir de
macro-composants puisque le capital d'applications existantes
comme d'outils existants augmente. cas typique. Newwave et ses
outils d'encapsulation. Alors qu'Hypercard serait plutôt
orienté réalisation en repartant du détail.
Cependant on peut créer des liens à partir des stacks
existant.
En Unix, réponse par les pipes. finalement, les deux se
mélangent. Un utilisateur a plusieurs ressources, qui sont
partagées les problèmes numériques sont très
différents selon que l' "utilisateur" est un
homme ou un service
icono. 239
REALISATION PAR MACRO-COMPOSANTS
Acquisition des données/les valeurs-objectifs
Acquisition des données:
- catalogue de l'offre externe
- système existant
- ressources internes: base de données, programme, hommes,
locaux
Par rapport aux valeurs, un certain nombre d'écarts vont
apparaître. En quelque sorte la différence de potentiel
qui fonde à la fois le besoin et la possibilité
d'agir.
Il y a des limites à ma perception du donné.
Les macro-composants sont connus par leur spécification.
Le macro-composant parfait a un coût nul, une spécification
très simple, mais rend beaucoup de services.
La qualité des interfaces du macro-composant est essentielle.
Il faut peu de macro-composants pour faire un système complet.
Et peu de compétences.
Une caractéristique d'un (bon) macro-composant, c'est sa
grande richesse interne par rapport à la simplicité
de ses interfaces.
Il y a un certain gâchis, car on va sacrifier ou au moins
sous-utilise une partie de la complexité interne pour gagner
en complexité externe.
Distinguer une double complexité externe:
- complexité de l'interface de commande
- complexité de l'interface sensori/motrice, c'est à
dire des liaisons du système avec l'extérieur indépendamment
de l'opérateur. en principe on peut indéfiniment
accroitre le sensoriel sans inconvénient (autre que les
coûts) par contre si la motricité est trop forte
par rapport au sensoriel+ la commande, c'est dangereux.
Les valeurs sont définies par des cahiers des charges et
plus ou moins explicitement par la demande des utilisateurs.
IL S'AGIT DE RELIER TOUT CELA COMMENT RECUPERER CE QUI A ETE
MAL FAIT
re-conception du système d'information
désassemblage/réassemblage
reconstituer à partir de l'existant ce qu'on voulait faire.
L'intention derrière la réalisation défaillante.
utiliser la réalisation elle-même et ce que l'on
sait du contexte. la réalisation alors n'est que l'expression
d'un cas concret du problème général.
SUR LA PROGRAMMATION STRUCTUREE
L'erreur souvent commise, et par Descartes lui-même, est
de considérer l'opération de séparation,
de division du problème en problèmes plus petits,
comme neutre, comme ne changeant pas le problème.
Or toute séparation apporte une certaine détermination,
un premier bit en quelque sorte, d'information. On a déjà
décidé un peu, modélisé un peu, quand
on a dit que le problème pouvait se décomposer d'une
certaine manière.
Dans le monde de l'information parfaite, cela n'a en principe
pas d'importance. L'information parfaite est parfaitement décomposable.
Mais, dans le monde réel, toute détermination a
une portée énergétique. Et, même dans
l'information parfaite, cette notion de décomposition fait
apparaître l'existence au moins implicite de méta-bits
donnant la structure.
De cet apport d'information, mais aussi de cette réduction,
viendra le fait que peu à peu on arrivera à quelque
chose de programmable.
Dans la programmation structurée, on ne s'intéresse
pas tant à cet effet réducteur, et encore moins
à ses dangers ou à ses limites, parce que l'on considère
implicitement que le problème a résoudre est modélisable,
est isomorphe à l'information pure. Il n'y aurait donc
pas de perte d'information, ex parte objectif, mais simplement
élimination du flou dans la tête du programmeur.
CONCEPTION ET REDONDANCE
Valider (progressivement) la relation entre le produit réalisé
et le désir.
Recherche d'écarts, donc redondance, soit entre
- programme/ jeu d'essais avec résultat
- spécification abstraite/programme
- programme/invariant
ou en mode interactif, jeu progressif des demandes de l'utilisateur
et des propositions de la machine
CASE. GENIE LOGICIEL
know what you want
pull back the thinking
error detection
as far back as possible in the design process
and products life cycles
associated concepts:
réfléchir avant d'agir
mesure 20 fois, ne couper qu'une
top down
I would add:
description as refined as possible of the environment, people
etc.
as they will be on delivery time
method is both
- a general route
- a model route
- an optimal route
representations in Case.
clear/aesthetics
logic
groupware/meetings
software maintenance is largely a visibility program.
how to talk about wysiwyg in an abstract and very general world?
case and communication
reconstitute the intention
//reverse engineering
military foe intention searching
communicate to the machine
take ease/part/lead with the machine
begin always at intermaidate level
then deeper
=METHODOLOGIE
I assume that the analysis is in fact permanent analysis files
are kept up to date then technological watch from one side application
wath from the other one and permanent engineering (not maintenance)
in the middle plus monitoring and evaluation of the existing system
in some way, once a company has been more or less globally computerized,
every computer work is maintenance. unfortunately, this term has
negative connotations. evolution will go along with the firm evolution.
strategic computing is that in some way
PCTE
Program control Tool Environment
Project?
plate-forme théorique, base de données objets connus,
Unix.
c'est la norme qui a donné naissance à Emeraude
...
Un et multiple
si programme, unique, sauf Cern
développemnet, répétitif, 1 to 1
unique hic et nunc
répétitif dans l'espace, dans le temps invariant
dégager (analyse)/ré-engager (application)
Maintenance du logiciel
nouvelles possibilités technologiques
revamping
changer un poste, un serveur, un réseau
>>>flux technologique
<<<flux des besoins
avoir en permanence une visibilité de l'existant et des
objectifs à atteindre. en quelque sorte, pas de tunnel
de dévelopement
analyse permanente reverse/forward
pendant que le système est opérationnel (niveau
3-4), on continue d'en faire évoluer la description (niveau
4-5), en ménageant les transitoires
situation permanente de prototypage avec des couches basses en
parties stabilisées (composants réutilisables)
=EDITOR
from text editor
to "object" editor (in OO programming envir.t)
to "object" implementing (real, at least in R5)
editor is interaction
with some durability of the action
predictive editor stemps partly from the fact that the object
(e.g. text)
has it's own coherence and struggles to live and to live correctly
as soon as it has got enough momentum
it does not wait for my next development stroke