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