Avant
propos
Introduction
Chapitre 1 : Les interfaces utilisateur graphiques (GUI)
Chapitre 2 : Qualité
externe et ergonomie du logiciel en GUI
Chapitre 3 : La
qualité interne du logiciel
Chapitre 4 :
Introduction à la programmation orientée objet
Chapitre 5 : L'héritage
Chapitre 6 : L'héritage :
compléments
Chapitre 7 : La généricité
Chapitre 8 : Développement en
GUI : compléments
Chapitre 9 : Infrastructure et
framework
Chapitre 10 : Introduction à la
conception objet
Chapitre 11 :
Conception objet
Chapitre 12 :
Les règles de gestion
Conclusion
Annexe 1 : Conception objet avec
PowerAmc (ou comment optimiser l'utilisation de PowerAmc)
Annexe 2 : Normes d'ergonomie
Annexe 3 : Evaluation de charges d'un
projet en GUI
Annexe 4 : Organisation d'un projet en
GUI
Chapitre 1 : Les interfaces utilisateur graphiques (GUI)
Il s’agit, à travers une présentation brève des
interfaces utilisateur graphiques (GUI), de proposer une définition précise
des concepts employés dans ces environnements. Ces concepts
structurants et fondamentaux serviront tout au long de cet ouvrage, tant
pour définir la qualité du logiciel que pour appréhender les différents
aspects de la programmation orientée objet en GUI.
|
1.1 Introduction au GUI
1.1.1 Le rôle de la fenêtre en GUI
1.1.2 L’interface MDI
1.1.3 L’interface SDI
1.1.4 Le dialogue IHM devient événementielle
1.1.5 Les différents types de logiciel en GUI
1.2 Classe et objet en GUI
1.2.1 Définition
1.2.2 Classe et objet visuels
1.2.2 Classe et objet interactifs
1.2.3 Les classes d’accueil et les classes locales interactives
|
Chapitre 2 : Qualité externe et ergonomie du logiciel
La qualité du logiciel comporte deux aspects : la qualité externe
et la qualité interne. Afin de bien dissocier ces deux composants, nous
consacrerons un chapitre à chacun.
La qualité externe d’un logiciel est l’appréciation du logiciel
par l’utilisateur final. Cette appréciation se fonde sur différents
critères dont l'ergonomie.
|
2.1 La qualité externe
2.1.1 Définition
2.2 L’ergonomie du logiciel en GUI
2.2.1 Principes de base de
l'ergonomie en GUI
2.2.2 Ergonomie de
présentation
2.2.3 Ergonomie du
comportement
|
Chapitre 3 : La qualité interne du logiciel
La qualité interne d’un logiciel est l’appréciation d’un
professionnel de l’informatique quant à la qualité du code produit.
Autrement dit, la qualité interne du logiciel est un jugement de valeur
sur la manière dont a été menée à bien la programmation. Tout
jugement basé sur des valeurs à besoin de la définition de ces
valeurs, c’est l’objectif de ce chapitre.
|
3.1 Les objectifs de la qualité interne
3.2 Les critères de la qualité interne
3.2.1 Couplages faibles entre les classes
3.2.2 Petites interfaces
3.2.3 Interface explicite
3.2.4 Masquage de l’information
3.2.5 Factorisation des traitements
3.3 Un complément à la qualité interne : la documentation
|
Chapitre 4 : Introduction à la programmation orientée objet
Le chapitre précédent avait pour objectif de présenter les cinq
critères qui caractérisent la qualité interne des langages objets. Ce
chapitre, ainsi que les suivants, vont faire le lien entre ces critères
et les concepts fondateurs de la programmation orientée objet. Ces
concepts sont au nombre de trois : L’encapsulation qui sera traitée
dans ce chapitre, l’héritage et le polymorphisme qui compte tenu de
leur lien étroit feront l’objet du chapitre suivant. Auparavant, il s’agit
d’introduire un certain nombre de notions et de définitions
indispensables aux environnement objets.
|
4.1 La création et la destruction d'objets
4.1.1 La création d’objets
4.1.2 La destruction d’objets
4.2 Le principe de l'encapsulation
4.2.1 Définition
4.2.2 Les mécanismes d’implémentation
de l’encapsulation
4.2.3 Les mécanismes de l’encapsulation
en GUI
4.2.4 L’utilité de l’encapsulation
4.3 Routine événementielle vs routine non événementielle
4.3.1 L’appel d’une
routine non événementielle
4.3.2 L’appel d’une
routine événementielle
4.4 Introduction au polymorphisme
4.4.1 La surcharge ou
polymorphisme ad hoc
|
Chapitre 5 : L'héritage
Ce chapitre a pour but de présenter le mécanisme le plus
intéressant de la programmation orientée objet : l’héritage.
Nous verrons également que l’héritage n’est pas dissociable
de la notion de liaison dynamique, autrement dit, ce qui met
en œuvre le polymorphisme.
|
- 5.1 Définition générale
5.2 L’extension d’une classe
5.3 La spécialisation d’une classe
- 5.3.1 La redéfinition des propriétés
5.3.2 La redéfinition des routines non événementielles
5.3.3 La redéfinition des routines événementielles
5.3.4 Le polymorphisme et la liaison dynamique
5.3.5 Les points communs à la spécialisation et à
l’extension
|
Chapitre 6 : L'héritage : compléments
Ce chapitre a pour but de présenter le mécanisme le plus
intéressant de la programmation orientée objet : l’héritage.
Nous verrons également que l’héritage n’est pas dissociable
de la notion de liaison dynamique, autrement dit, ce qui met
en œuvre le polymorphisme.
|
- 6.1 Héritage et structure d'une application
6.1.1 L'arbre d'héritage d'une application
6.2 La signification de l’héritage
6.3 Utilité de l’héritage
- 6.3.1 La factorisation des traitements
6.3.2 La décentralisation des traitements - 6.4 Techniques
d'héritage
- 6.4.1 Une seconde forme de polymorphisme : le polymorphisme fonctionnel
6.4.2 L’héritage est le mécanisme de l’encapsulation
6.4.3 La déclaration par association
6.4.4 L’appel d’une routine déclarée dans l’ancêtre
6.4.5 La notion de classe fermée et de classe ouverte
|
Chapitre 7 : La généricité
Ce chapitre a pour objectif de présenter un moyen supplémentaire
d’accroître la qualité du logiciel : La généricité.
La généricité que nous allons décrire n’est
pas celle que l’on retrouve dans les langages typés comme ADA,
mais c’est celle que l’on trouve dans les langages à objets évoluant
en GUI et qui est fortement liée à l’héritage.
La raison est que cette forme de généricité peut
inclure la généricité classique basée sur
des traitements appliqués à des types abstraits. Si vous
souhaitez comparer les deux approches, nous vous renvoyons au
livre de B. Meyer qui traite du sujet [Mey 00].
Au cours de ce chapitre, la généricité sera abordée
d’abord sous l’angle des traitements génériques puis sous
l’angle des classes.
|
- 7.1 Introduction
7.2 Les traitements génériques
- 7.2.1 Traitements génériques qui utilisent le polymorphisme
fonctionnel
7.2.2 Traitements génériques basés sur la redéfinition
des routines
7.2.3 Traitements génériques basés sur l’appel
de méthodes à l’aveugle
7.2.3 Traitements réalisés avec des termes génériques
- 7.3 Les classes génériques
- 7.3.1 Les classes différées
-
|
Chapitre 8 : Développement en GUI : compléments
Ce chapitre présente divers compléments utiles pour le développement
d’application de gestion en GUI.
|
- 8.1 Les relations avec le SGBD
8.2 La mise à jour des données
- 8.2.1 Les traitements déportés sur le moteur de base de données
8.2.3 La notion de portabilité - 8.2 La gestions des erreurs
- 6.3.1 Les erreurs systèmes d'entrée/sortie
- 6.3.2 Les
erreurs systèmes de programmation
- 6.3.3 Les erreurs de programmation
- 6.3.4 Les
erreurs de transaction
- 8.3 Introduction à l'architecture d'une application
- 8.3.1 Infrastructure et superstructure
-
8.3.2 Le critère de l'adaptabilité
|
Chapitre 9 : Infrastructure et framework
La factorisation des traitements ne peut se faire qu’à travers une
vision claire du développement des classes ancêtres de
l’application, ce que nous appellerons l’infrastructure. Ce chapitre
a pour objet d’en présenter les différents aspects et d’introduire
la notion de framework qui en résulte.
|
- 9.1 Infrastructure et framework
9.1.1 Les
classes programmeurs de base-
9.1.2 La logique d'utilisation des classes programmeur de
-
base
9.1.3 Les
classes programmeurs de base
9.1.4 Exemple
théorique d'implémentation d'une classe-
programmeur de base générique de type fenêtre
9.1.5 La
nécessaire limitation du nombre de classes locales-
d'une fenêtre
-
9.1.6 L'interception des demandes de l'utilisateur
- 9.1.7 L'infrastructure et le principe de composabilité et
- décomposabilité
des classes
- 9.2 La notion de framwork
- 9.2.1 Définition
9.2.2 Le développement d'un framework
9.2.3 Les classes d'isolation d'un framework
9.2.4 Les critères de choix d'un framework
9.2.5 Framework et méthode RAD
|
Chapitre 10 : Introduction à la conception objet
Avant la programmation, il y a, bien sûr, la conception. S’il est
à notre avis indispensable pour le concepteur d’application de
gestion en GUI de connaître la programmation orientée objet ainsi que
la plate-forme de développement qui servira à la réalisation de la
conception, ce dernier doit également ajouter à ses connaissances les
techniques spécifiques de la conception objet. Ce chapitre a pour objet
d’introduire ces techniques et de vous apporter des éléments
indispensables afin de vous permettre de vous forger un jugement
critique sur des technologies à la mode qui ne sont pas forcément les
plus adaptées dans le cadre de votre métier.
|
10.1 Introduction
10.1.1 Conception objet
: définition
10.1.2 UML
10.2.1 Les diagrammes
de classes
10.2.2 Les diagrammes
de cas d'utilisation (uses cases)
10.2.3 Les diagrammes
de collaboration, séquence et d'objets
10.2.4 Les
diagrammes d'état-transition et d'activité
10.2.5 Les autres
diagrammes
10.2.6 Pour en finir
avec UML
10.3 Conception en informatique de gestion
10.3.1 Définition et
vocabulaire
10.3.2 Les liens entre
la conception et la réalisation
|
Chapitre 11 : Conception objet
Le chapitre précédent n’a fait qu’enrichir par une série de
conventions la méthodologie Merise. Ce chapitre va maintenant emprunter
au monde de l’objet des notions qui permettent de dépasser les
limites que l’on constate habituellement dans la conception classique.
|
11.1 Les limites de la conception classique
10.1.1 Conception objet
: définition
11.2 Vers la conception objet
11.2.1 L'héritage
11.2.2 L'héritage
multiple
11.2.3
Compléments méthodologiques
11.2.4 Les autres
diagrammes
11.2.5 Pour conclure
|
Chapitre 12 : Les règles de gestion
La principale spécificité et difficulté des application de gestion
ce sont les règles de gestion. Il est donc importants d’en recenser
les différentes formes afin de centrer la programmation et la
conception sur celles-ci. C’est l’objet de ce chapitre
|
- 12.1 L'interface homme/machine de saisie
- 12.1.1 Définition
12.1.2 Les composants de l'IHM de saisie
- 12.1.3 Les
masques de saisie
- 12.2 Les différentes types de règles de gestion
- 12.2.1 Exemple de type 1 et 2
-
12.2.2 Les règles de gestion de cohérences
- 12.3 Règles de gestion et conception
- 12.4 Règles de gestion
et programmation
- 12.4.1 La notion d'état "saisie" et d'état "avant
saisie"
-
12.4.2 Les différents types d'événements liés aux règles de
-
gestion
- 12.4.3 Les différents étapes de la cinématiques pour les
-
événements de saisie directe
- 12.4.4 La
cinématique pour les événements de saisie directe
- 12.4.5 La traduction des règles de gestion
- 12.4.6 La
séparation des règles de gestion de l'IHM
- 12.4.7 Vers une logique objet d'implémentation des règles de
-
gestion
|