new epita spe: programmation´ identifier les donn´ees … · 2014. 9. 1. · sur les reste du...

31
EPITA Sp´ e: Programmation Conception et Repr ´ esentation Marwan Burelle Les donn ´ ees Identifier les donn ´ ees Repr ´ esenter les donn ´ ees Types Abstraits Les traitements Identifier les activit ´ es Relier activit ´ es et donn ´ ees Le programme ecoupage Programmation Modulaire EPITA Sp´ e: Programmation Conception et Repr ´ esentation Marwan Burelle [email protected] http://teach.kh405.free.fr

Upload: others

Post on 16-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

EPITA Spe: ProgrammationConception et Representation

Marwan Burelle

[email protected]://teach.kh405.free.fr

Page 2: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Plan

1 Les donneesIdentifier les donneesRepresenter les donneesTypes Abstraits

2 Les traitementsIdentifier les activitesRelier activites et donnees

3 Le programmeDecoupageProgrammation Modulaire

Page 3: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Introduction

La conception en amont de la programmation assure :La coherence du programmeLa maintenabilite du programmeLa synchronisation des differents acteursLa possibilite de reutiliser certains elements

La conception s’appuie sur l’analyse du probleme atraiter :

Identifier les objectifsIdentifier et representer les donneesIdentifier les activites et les relier aux donneesDelimiter les composants et leurs interractions

Le travail de conception permet d’ameliorer le travail enequipe.

La conception permet en general de faire de meilleurchoix d’implantation et prepare le travail d’integration etde tests.

Page 4: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Les donnees

Les donnees

Page 5: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Identifier les donnees

Identifier les donnees

Page 6: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Sur quoi travaille-t-on ?

Les premieres questions que vous devez vous poser :

Quels sont les donnees manipulees dans le programme ?

Quels sont les donnees fournies statiquement ?

Quels sont les donnees fournies dynamiquement :

Au lancement du programme ?En cours d’execution ?

Quels sont les informations internes utilisees par le programme ?

Quels sont les donnees attendue en sortie du programme ?

Eventuellement, dans certains contextes, les points suivants peuventaussi etre importants :

Quelles informations ne doivent pas sortir du programme (tant enterme de confidentialite qu’en terme de lisibilite) ?

Quelle est la fiabilite des informations fournies ? Faut-il verifier cesinformations (bornes, coherence, consistance . . . )

Page 7: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Les donnees externes

Les donnees statiques :Les donnees statiques ne posent en general pas deprobleme de format (etant statique, les choix nedependent pas de l’interraction avec l’utilisateur.)Certaines donnees sont fixes.Certaines donnees doivent etre gardees entre chaqueexecution.

Les donnees dynamiques :Il faut etablir le format des donnees en entree enfonction des besoins de l’utilisateur.Il est important d’etablir l’ensemble des donneesnecessaires.Si necessaire, il faut definir les contraintes sur lesdonnees et les verifications a effectuer (bornes,completude, coherence . . . )

Page 8: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Les donnees internes

La plus part des programmes ont besoinsd’informations internes.En plus des resultats intermediaires, on peut avoirbesoin d’autre donnees :

Informations sur les activites du programme (taches,files d’attente, etats . . . )Donnees deduites (informations pouvant etre calculeesa partir des donnees fournies) et meta-donnees(informations sur les donnees comme leur taille, leurdate, leur statut . . . )

L’identification des donnees internes peut se faire aplusieurs stade de la conception. Le travail sur lestraitements peut faire apparaıtre d’autre donneesinternes.

Les donnees internes peuvent aussi etre destinees a lasortie et donc comme les entrees il faut definir unformat.

Page 9: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Representer les donnees

Representer les donnees

Page 10: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Forme des donnees

Une fois les donnees identifiees il va falloir lesrepresenter.

Pour chaque donnees il faut identifier leur caractere :enregistrement, collection, texte, nombres . . .

En general, on s’interesse aussi a leur caracteredynamique (les donnees seront elles amenees achanger, doit on effectuer des recherches dessus . . . )

Il peut etre interessant de s’interesser a la duree de viedes donnees dans le programme.

L’ensemble des informations collecter dans cette phasesera importante pour etablir tant l’interface des donnees(type abstrait) que leur structure interne.

Page 11: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Petit exemple (gestionnaire de contacts)

On considere un outil de gestion de contacts permettantd’ajouter, de supprimer ou de modifier des contacts et derechercher un contact. Enfin, notre outil devra retrouver lescontacts ajoutes lors des precedantes executions a chaquedemarrage. On identifie les donnees suivantes :

Un contact contenant : nom, prenom, telephone,adresse, mail. Seuls les trois premiers sont obligatoires.Les contacts seront utilises en entree (ajout oumodification) et en sortie (recherche.)La liste des contactes qui doit etre persistante et sansdoublon.Une chaıne de caractere accompagnee d’un ensemblede noms de champ pour effectuer la recherche decontact.Enfin, on aura besoin de definir un format d’entree et desortie (plus ou moins le meme pour plus de simplicite)pour les contacts.

Page 12: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Petit exemple (gestionnaire de contacts)

Une fois les informations identifiees, on va etudier leur formeet leurs caracteristiques :

contact : il s’agit a priori d’un enregistrement avec cinqchamps dont 2 optionnels (la gestion des champsoptionnels se fera au niveau implantation.) Les contactsne seront persistant que lorsqu’ils sont inseres dans laliste.

liste de contacts : on a ici une collection pasforcement ordonnee, mais sans doublon (typeensemble.) Elle doit etre persistante et doit pouvoir etresauver a la fin de chaque execution pour etre rechargeea la prochaine. On aura problablement besoin dedetecter l’insertion de doublon.

recherche : on a besoin ici d’un enregistrementcontenant un champ texte et une collection de nom dechamp. Cette donnee est ephemere.

Page 13: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Types Abstraits

Types Abstraits

Page 14: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Les donnees par leur usage

L’utilisation des types abstraits permet de definir l’usageque l’on aura des donnees.

Un type abstrait reste independant de l’implantationchoisi pour representer l’information.

La definition d’un type abstrait fournit une interface al’information.

L’usage de types abstraits pour decrire les donneeslaisse la liberte de changer d’implantation sans impactsur les reste du projet.

La redaction des types abstraits est l’occasion de definiret de formaliser les contraintes sur les donnees et lesfonctions.

En regle generale, chaque type abstrait correspondra aun module.

Page 15: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Types Abstraits

Example:

Type contact

Operations :newContact : chaine*chaine*chaine -> contactCree un nouveau contact a partir de ses nom, prenom ettelephone.addMail : contact*chaine -> contactAjoute une adresse mail a un contact (interfacefonctionnelle.)addAddress : contact*chaine -> contactAjoute une adresse a un contact (interface fonctionnelle.)changeFirstname : contact*chaine -> contactchangeLastame : contact*chaine -> contactchangePhone : contact*chaine -> contactchangeMail : contact*chaine -> contactchangeAddress : contact*chaine -> contactMet a jour les informations sur le contact (interfacefonctionnelle). . .

Page 16: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Les traitements

Les traitements

Page 17: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Identifier les activites

Identifier les activites

Page 18: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Que fait mon programme ?

A partir du cahier des charges, on doit identifier letravail a faire sur les donnees.Cette identification se fait en phases successives : ondegrossit le travail :

Dans un premier temps, on identifie les objectifsgeneraux ;Pour chaque objectif general, on detaille l’activite(entree attendue, action et interraction et sortie) ;Pour chaque action du programme au sein d’uneactivite, on identifie les traitements unitaires (i.e. ceuxqui se deroule sans interraction) et on specifie leurcomportement ;Enfin pour chaque traitement, on va tenter de degagerun principe ou un algorithme (ou une familled’algorithme) adapte.

A la fin de cette phase initiale, on doit avoir unespecification detaillee des traitements a effectuer,regroupes au besoin en activite.

Page 19: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Qu’est ce qui est vraiment important ?

Pour chaque traitement, on doit essayer d’isoler l’informationimportante pour faire les choix d’implantation et pour relier letraitement aux informations necessaires :

Specifications detaillees : une specification doitdecrire les entrees et sorties du traitement ainsi que letravail a effectuer. L’important est de conserver uncaractere descriptif, on ne doit pas decrir le comment.

Activites et traitements : pour obtenir un decoupagepertinant, on doit bien separer les niveaux : decouperles activites en unites autonomes (traitement) etregrouper les traitements a effectuer ensemble.

Page 20: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Relier activites et donnees

Relier activites et donnees

Page 21: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Le point de rendez-vous

Une fois les activites et les donnees bien identifier, ilfaut regrouper le tout.

A l’aide des specification, vous pourrez identifier quelstraitements utilisent quelles donnees (et donc quelstypes abstraits.)

Certains traitements pourront etre directement couvertspar les operations des types abstraits.

Il est aussi possible qu’apparaissent d’autre besoins(conversions des donnees, liants . . . )

Dans cette phase, il ne faut pas oublier les aspectsinterractifs des differentes activites. En effet, meme siles traitements peuvent etre couverts par les operationsdeja definis dans les types abstraits, il faut bien lesdeclencher.

Page 22: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Le retour de notre exemple

Contact

+Firstname

+Name

+Phone

+Address

+Mail

+newContact(fn:string,n:string,p:string): Contact

+addMail(m:string)

+addAddress(a:string)

ContactSet

+get(pos:int): Contact

+add(c:Contact)

+find(f:Find): Contactn

1

Find

+text

+fields

+match(c:Contact): bool

User In ter face

+addContact()

Get contact info and add it to the set

+findContact()

Get query info and select a subset ofcontact

+quit()

+delContact()

Suppress the selected contact

+modifyContact()

Get new contact info and modify theselected contact

+save()

Save contacts set

Page 23: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Quelques conseils

Les phases precedantes sont relativement informelles,mais necessitent une certaine rigueur. N’hesitez pas autiliser une approche visuelle.

L’important est de dresser le paysage des besoins etdes necessites.

L’analyse et la conception sont des activitesdynamiques. Vous pourrez remettre vos choix en cause.Une bonne conception fait en general ressortir desgroupes d’activites :

visualisation/interraction : dans lequel on regroupegeneralement les elements de communication avecl’utilisateur ;controle/traitement : dans lequel on retrouve lesactivites declenchees par l’utilisateur et les traitementsassocies ;donnees : l’ensemble des elements relatifs a la gestiondes informations persistantes (internes et externes.)

Page 24: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Le programme

Le programme

Page 25: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Passage a la pratique

Avant de commencer a coder, vous devez avoir validervotre modele a l’aide du cahier des charges.

Vous devez faire les choix techniques importants(langages, bibliotheques, outils . . . )

Vos choix techniques peuvent vous amener a quelquesretouches dans votre analyse (adequation avec lemodele du langage, substitution de certaines partiespar des bibliotheques pre-existantes . . . )

Meme si les choix techniques ne sont pas censesinfluer les etapes precedantes, il est evident quecertains aspects doivent etre pris en compte.Dans l’exemple du gestionnaire de contact, on a fait des choix

fonctionnels sur les types abstraits, tant dis que le schema

d’organisation est plus oriente-objet.

Page 26: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Decoupage

Decoupage

Page 27: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Decouper son programme

La plus part des langages de programmation offrent unmecannisme de programmation modulaire, il faut enprofiter !

Basiquement, le decoupage reprendra les grandsgroupes mis en avant dans la phase precedante tout entenant compte des aspects techniques.

L’interraction entre les differents elements mis a jour parles phases precedantes doit guider les regroupementset le decoupage. Le graphe de dependance desmodules doit etre sans cycle, pour un decoupageintelligent, il faut donc identifier la raison desdependances entre modules.

Page 28: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Quelques conseils de decoupage

Un type abstrait complet forme un module : enregroupant au meme endroit la definition d’unestructure de donnee et ses operations de base, onforme un module relativement autonome.

Si des fonctions sont utilisees a differents endroits duprogramme et n’ont pas ou peu de dependances, il peutetre judicieux de les regrouper dans un module boite aoutil.

Un traitement dans son ensemble (algorithme, fonctionsannexes uniquement utiles au traitement . . . ) doit engeneral faire l’objet d’une module.

Lorsqu’il existe une dependance circulaire entremodules, une solution classique et d’identifier si unsous-ensemble d’un module ne pourrait pas faire l’objetd’un module separe.

Page 29: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Programmation Modulaire

Programmation Modulaire

Page 30: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Interfaces

Avant toute implantation, il est important de definirformellement les interfaces des modules.L’interface d’un module decrit l’ensemble des symboles(types, fonctions, constantes . . . ) fournit par le module.En general, l’interface (ou sa documentation) specifieles contraintes et les invariants.L’interface est l’outil permettant aux utilisateurs dumodule de construire leur code sans connaitrel’implantation.La definition des interfaces en amont de l’implantationest necessaire pour mener un projet a plusieursparallelement.Les interfaces doivent refleter l’usage de leur module etpas les choix d’implantation.Enfin, la redaction de bonnes interfaces amelioregrandement la lisibilite, la maintenabilite, la reutilisabiliteet l’evolutivite du code.

Page 31: New EPITA Spe: Programmation´ Identifier les donn´ees … · 2014. 9. 1. · sur les reste du projet. La redaction des types abstraits est l’occasion de d´ efinir´ et de formaliser

EPITA Spe:ProgrammationConception et

Representation

Marwan Burelle

Les donneesIdentifier les donnees

Representer les donnees

Types Abstraits

Les traitementsIdentifier les activites

Relier activites et donnees

Le programmeDecoupage

Programmation Modulaire

Publique ?

Lorsque l’on realise une interface (et lorsque l’on travailavec des objets et des classes) on doit souvent seposer la question de la visibilite.

En regle generale, seules les fonctions (ou lesprocedures, les methodes . . . ) et les constantes sontcensees etre publique.

Lorsque l’on choisit la visibilite d’un symbole, l’on doittenir compte de sa necessite (apparition dans lesspecifications) et de son atomicite.

L’atomicite d’un symbole caracterise son autonomie :une fonction est atomique lorsqu’elle peut etre utiliseedirectement. En pratique, lorsqu’une fonction (ou uneconstante) est toujours utilisee conjointement avec uneautre, il peut etre utile de realiser une fonction unique etenglobante qui sera la seule fonction visible.