Analyse et programmation 2
Conception des programmes
Une démarche centrée sur les données
Thèmes abordés
• Structure générale des programmes.
P i t t i ?
• Pourquoi et comment concevoir un programme ?
• Modélisation des données.
• Identification des traitements.
• Démarche d’analyse intuitive.
Structure générale des programmes
Exemple : gestion des contacts d’un téléphone mobile Enregistrer
Ajouter
Liste contacts
Contact
N° téléphone Saisir
Afficher
Inclure Groupe
Supprimer
Composer
Analyse et programmation 2 - Conception par modélisation des données 2
Sonnerie Jouer
Définir
Quels genres d’éléments rencontre-t-on dans les programmes ?
Concevoir un programme ?
Pourquoi / Comment
• Pourquoi : sécuriser les efforts investis.
S’ass rer q ’on programme la bonne fonctionnalité – S’assurer qu’on programme la bonne fonctionnalité.
– Eviter de remettre en cause ultérieurement le travail réalisé.
– Minimiser l’effort.
– Garantir la cohérence de l’ensemble – Programmer juste dès la 1èreitération.
• Comment : identifier les données et le traitements.
Identifier les données et les traitements – Identifier les données et les traitements – Par quoi faut il commencer ?
Comment concevoir un programme ?
Modélisation des données
LISTE_CONTACT - elements: CONTACT[100]
- elements: CONTACT[100]
- nombre: int
CONTACT - Nom: char[80]
- Prenom: char[80]
- numero_prive: NUMERO_TELEPHONE - numero_bureau: NUMERO_TELEPHONE - numero_mobile: NUMERO_TELEPHONE - nom_groupe: char[20]
NUMERO_TELEPHONE - Numero: char[15]
GRO UPE LISTE GROUPE
contient
possède
appart ient a
Analyse et programmation 2 - Conception par modélisation des données 4
- nom_groupe: char[20]
- nom_sonnerie : char[20]
SONNERIE - nom_sonnerie : char[20]
- vibreur: int _
- elements: GROUPE[10]
- nombre: int
util ise Contient
Représenter les données et les relations qu’elles entretiennent.
Modélisation des données
Traduction en C
#defineTAILLE_NOM 80
#defineTAILLE_PRENOM 80
#defineMAX_CONTACT 100
typedef struct
#defineTAILLE_GROUPE 20
#defineTAILLE_SONNERIE 20
#defineTAILLE_NUMERO 15
typedef struct {
char numero[TAILLE_NUMERO];
} NUMERO_TELEPHONE;
typedef struct
{
CONTACT elements[MAX_CONTACT];
int nombre;
} LISTE_CONTACT;
typedef struct {
char nom[TAILLE_NOM];
char prenom[TAILLE_PRENOM];
NUMERO_TELEPHONE numero_prive;
NUMERO_TELEPHONE numero_bureau;
NUMERO_TELEPHONE numero_mobile;
Comment concevoir un programme ?
Traduction en C des traitements
• Traduire les verbes en fonctions P é i l èt
• Préciser les paramètres
• Exemples
void contact_saisir(CONTACT * contact);
void contact_afficher(const CONTACT * contact);
void liste contact ajouter(LISTE CONTACT * liste, void liste_contact_ajouter(LISTE_CONTACT liste,
const CONTACT * contact);
Analyse et programmation 2 - Conception par modélisation des données 6
Démarche d’analyse intuitive
Analyse du texte en la langue naturelle
• Noms communs
Entités de données – Entités de données
• Verbes
– Comportement, fonctions.
• Exemple
– Après s’être authentifié, l’utilisateur pourra rechercher une liste de livres en saisissant un texte.
– typedef UTILISATEUR, LIVRE, LISTE_LIVRE, TEXTE – void Authentifier(UTILISATEUR *);
– Void Rechercher(LISTE_LIVRE *, TEXTE *);
Vos questions
Analyse et programmation 2 - Conception par modélisation des données 8