1. Mode Graphique
    1. 1- Principes fondamentaux
      1. Processus de conception
      2. Caractéristiques d'un grand logiciel
        1. Haute performance
        2. Facilité d'utilisation
        3. Aspect attractif
        4. Fiabilité
        5. Adaptabilité
        6. Interoperabilité
        7. Mobilité
      3. Principes de conception
        1. Principes (1)
        2. Principes (2)
        3. Principes (3)
      4. Pensez aux utilisateurs
        1. Compatibilité internationale
        2. Accessibilité aux handicapés
        3. Etendre l'interface
      5. Priorités
    2. 2- L'expérience du Mac
      1. L'environnement
        1. L'environnement (1)
        2. L'environnement (2)
      2. Les technologies
        1. Les technologies (1)
        2. Les technologies (2)
        3. Les technologies (3)
        4. Les technologies (4)
      3. Installation et mises à jour
        1. Packaging, installation
        2. Les assistants
    3. 3- L'interface Aqua
      1. Entrées utilisateur
        1. La souris
        2. le clavier
          1. Fonction des touches
          2. Raccourcis-clavier
          3. Navigation au clavier
        3. Sélection
        4. Edition de texte
      2. Glisser-déposer
        1. Glisser-Déposer (1)
        2. Glisser-Déposer (2)
      3. Le texte
        1. Les fontes
        2. Le style
      4. Les icônes
        1. Genres et familles d'icônes
        2. Création des icônes
        3. Icônes des barres d'outils
        4. Images propres au système
      5. Les pointeurs
      6. Les menus
        1. Comportement des menus
        2. Conception des menus
        3. La barre de menus
          1. Les menus (1)
          2. Les menus (2)
          3. Les menus (3)
        4. Menus contextuels et du Dock
      7. Les fenêtres
        1. Type et apparence
        2. Eléments
          1. Barre de titre
          2. Barre d'outils
          3. Barre de recherche
          4. Barre latérale
          5. Barre inférieure
          6. Les Tiroirs
        3. Comportement des fenêtres
          1. Comportement (1)
          2. Comportement (2)
          3. Superposition
          4. Défilement
        4. Les panneaux
          1. Les panneaux
          2. Panneaux transparents
          3. Autres panneaux
      8. Les dialogues
        1. Types de dialogues
        2. Aspect et comportement
      9. Fenêtres de dialogues
        1. Recherche, Préférences, Ouverture
        2. Enregistrement
        3. Choix, Impression
      10. Les contrôles
        1. Contrôles du cadre
          1. Contrôles en capsule
          2. Contrôles hérités
        2. Les boutons
          1. Boutons poussoirs
          2. Boutons en icônes
          3. Boutons de recherche
          4. Boutons de gradient, et d'aide
          5. Boutons à champfrein
          6. Boutons ronds
        3. Contrôles de sélection
          1. Boutons radio
          2. Cases à cocher
          3. Contrôles segmentés
          4. Boutons et menus pop-Up
          5. Menus Action
          6. Boîtes de combinaison
          7. Contrôles de chemin
          8. Puits, sélection de date
          9. Menus pop-down
          10. Glissières
          11. Contrôles pas-à-pas et placards
        4. Indicateurs
          1. Indicateurs de progression
          2. De niveau, de capacité
          3. D'estimation, de pertinence
        5. Contrôles de texte
          1. Champs d'entrée
          2. Champs à jeton
          3. Champs de recherche
          4. Listes de défilement
        6. Contrôles de visualisation
          1. Triangles d'affichage
          2. Boutons d'affichage
          3. Vues en liste
          4. Vues en colonnes
          5. Vues éclatées
          6. Vues à onglets
        7. Contrôles de groupage
          1. Séparateurs
          2. Boîtes de groupage
        8. Règles de disposition
          1. Dans le corps de la fenêtre
            1. Fenêtre de préférences
            2. Fenêtre à onglets
            3. Alerte, Dialogue
          2. Contrôles réduits et mini
            1. Contrôles réduits
            2. Mini contrôles
          3. Groupement des contrôles
          4. Positionnement dans la barre inférieure
      11. Glossaire
        1. Entrées en anglais
          1. 1- A à C
          2. 2- D à H
          3. 3- I à R
          4. 4- S à Z
        2. Entrées en français
          1. 1- A à C
          2. 2- C à G
          3. 3- I à P
          4. 4- P à Z
        3. `
    4. 4- Les leçons de Lion
      1. L'environnement de Mac OS X
      2. Principes fondamentaux
      3. L'expérience utilisateur
        1. Règles de conduite (1)
        2. Règles de conduite (2)
        3. Règles de conduite (3)
        4. Règles de conduite (4)
        5. Règles de conduite (5)
        6. Règles de conduite (6)
      4. Les technologies d'Apple
        1. Les technologies (1)
      5. -->
  2. Mode Commande

Caractéristiques d'un "grand" logiciel (4)




4- Fiabilité

Citons Apple :

Un programme fiable est un programme dans lequel l'utilisateur peut avoir confiance. Il maintient l'intégrité des données de l'utilisateur, et fait tout ce qui est possible pour prévenir les pertes ou les corruptions de données. Il peut gérer des situations complexes sans se planter.

La fiabilité est encore plus importante pour des programmes appelés à fonctionner pendant très longtemps (programmes scientifiques), pour éviter d'avoir à recommencer.

Et pour cela, Apple fournit quelques directives :

• S'assurer que l'interface réagit de façon prédictive (les mêmes actions engendrent les mêmes résultats).

• Fournir une sortie prédictive des documents ; l'impression doit correspondre à l'affichage sur l'écran.

• Empêcher la perte de données lors de l'importation ou de l'exportation de documents ; supporter les formats de fichiers nécessaires ; avertir l'utilisateur si des données sont perdues ; permettre de travailler sur des copies plutôt que sur des originaux.

• Tester les logiciels extensivement en simulant un effondrement du réseau ou une panne de disque

• Définir clairement les configurations qui peuvent accepter le logiciel après les avoir toutes testées ; spécifier la version de Mac OS X.

• Anticiper les erreurs et les gérer convenablement ; tester et gérer les codes d'erreur des fonctions utilisées ; n'utiliser les gestionnaires d'exceptions qu'avec retenue, car ils consomment de la mémoire et dégradent les performances.

• S'assurer de la validité des entrées fournies par l'utilisateur en utilisant les formateurs d'objets.

• Utiliser les outils de débogage et de performance proposés par Apple pour trouver les bogues et les fuites de mémoire.

• Utiliser les dernières APIs disponibles, et préférer celles d'Apple à des APIs personnalisées.


Mes commentaires.

Tout cela, c'est de la théorie ! Dans la pratique, tout le monde sait que tout logiciel est bogué, et les logiciels d'Apple ne font pas exception. La démonstration la plus flagrante a été fournie lors de la sortie de Snow Léopard : au lieu d'effacer le compte d'un utilisateur invité, Mac OS X effaçait les données de l'utilisateur principal !

Pour ma part, je peux apporter deux témoignages intéressants et récents au dossier :

Le fonctionnement de iPhoto

Quand j'ai décidé de le tester sur mon MacPro, iPhoto m'a réservé certaines surprises.

Image

a) Rogner, dans le menu édition : sur la figure ci-contre, il y a visiblement une distorsion entre la contrainte demandée (original) et la taille de la sélection, et le plus grave, c'est que si on applique le rognage, c'est la sélection qui est appliquée, pas la contrainte ! Alors, à quoi sert-il de proposer une contrainte ?

image

b) En cherchant à définir un lieu pour une photo (cliquer sur le bouton i en bas à droite de l'image), la gestion du clavier est défectueuse : la première lettre tapée est dupliquée, et si on revient en arrière pour supprimer la lettre dupliquée, la lettre suivante est à nouveau dupliquée ! Cela n'améliore pas la facilité d'utilisation... (figure ci-dessus).

c) Le retournement des images, qui se fait normalement, au début de l'utilisation de iPhoto, devient de plus en plus lent et haché à mesure qu'on continue à utiliser le logiciel. Comme s'il y avait des fuites de mémoire ?

image

d) Sur la version de iPhoto installée -iPhoto'09, version 8.1.1 (419)-, il m'a été rigoureusement impossible d'accéder aux cartes ou aux images de satellite Google (figure à gauche). La fenêtre reste désespérément blanche quelque-soit l'onglet choisi (terrain, satellite, hybride), et pourtant le réseau est bien disponible, comme le réclame la documentation, les <Préférences <Web autorisent les données de localisation, et les <Préférences <Avancées permettent de chercher les lieux automatiquement.

Pour en avoir le cœur net, j'ai refait une installation propre de Mac OS X 10.6.2 sur mon MacMini d'essai, en ne conservant que iPhoto, iMovie et iDVD (sans les compléments) de iLife'09. Et là, les choses se sont déroulées correctement : la localisation fonctionne ! J'ai donc désinstallé, puis réinstallé iPhoto, et pratiqué (en deux étapes, 8.1, puis 8.1.1) les mises à jour nécessaires sur le MacPro (encore 20 minutes perdues !). Nouvel échec ; la localisation ne fonctionne pas mieux, et la duplication des caractères du clavier continue.

Autrement dit, la désinstallation du iPhoto défectueux (mise à la corbeille du paquetage iPhoto.app) n'a pas été complète . Cette conclusion s'est trouvée vérifiée par un démarrage sur une autre partition de Snow Léopard (rappelez-vous, je conserve des copies de sécurité), où les choses se sont passées correctement. Une telle conclusion est contradiction complète avec les recommandations d'Apple d'encapsuler l'application dans un dossier indépendant (bundle). Si ce n'est pas le cas, Apple devrait fournir une application de désinstallation, comme le font certains éditeurs pour leurs logiciels.

Le comportement du système de fichiers

Il m'est arrivé la semaine suivante une bien étrange aventure : en voulant faire une copie de deux groupes de fichiers par un glisser-déposer, j'ai vu soudain le volume destination disparaître de la barre latérale du Finder, et il est devenu inaccessible, comme s'il se trouvait démonté. Je suppose avoir été un peu rapide au cours de ces copies, en déclenchant la seconde avant que la première ne soit complètement terminée ; c'est la seule explication que j'ai trouvée à un si étrange comportement.

Mais les choses ne se sont pas arrêtées là : un redémarrage n'a pas permis de récupérer le volume démonté ; c'est mon volume de travail, celui sur lequel sont installés les utilisateurs, et que le système était incapable d'y accéder pour terminer la mise en route. Il m'a fallu démarrer sous un autre système pour examiner ce volume de travail, et j'ai découvert une horreur : tous les chemins de premier niveau du volume avaient été modifiés par l'adjonction d'un "1\ " au début !

Plutôt que d'essayer de réparer un système de fichiers qui avait failli à ce point, j'ai préféré faire un clone de ma copie de sécurité sur le volume de travail, et ai décidé de réinstaller aussi le système, qui s'était auparavant montré défectueux avec iPhoto. Presque une journée perdue, entre la panne, l'exploration de celle-ci, la réinstallation du système et des mises à jour... et la re-configuration de Time Machine.

Alors, fiable, le système Apple ? Jadis, peut-être, mais aujourd'hui, de moins en moins, sans doute parce que c'est de plus en plus compliqué, mais aussi parce que le système lui-même est en chantier permanent et que Apple a considérablement modifié ses APIs ; on peut s'en féliciter, mais on en subit aussi, pour le moment, durement les conséquences.