❖Une bonne Conception participe largement à la production d'un logiciel qui Apparition de la programmation objet: nécessite d'une méthodologie adaptée
Previous PDF | Next PDF |
[PDF] Concepts de la Programmation Orientée Objets (POO) - COURSES
Concepts de la POO ▫ Analyse et conception orientée objet avec UML programmation orientée objet : P O O (C++, Java, python, etc) 3 Pr Imane DAOUDI
[PDF] CONCEPTION ORIENTÉE OBJET - miageprojet2
❖Une bonne Conception participe largement à la production d'un logiciel qui Apparition de la programmation objet: nécessite d'une méthodologie adaptée
[PDF] Conception des Programmes et Orienté-Objet - Samia CHEHBI
Avenir : OO, c'est quoi dans l'avenir ? Page 11 2 Orienté objet : c'est quoi ? Programmation orientée-
[PDF] Langage et Concepts de Programmation Orientée-Objet
20 mar 2014 · Langage et Concepts de Programmation Orientée-Objet 1 / 40 conception construite par l'Object conception (comme en CSI) Le trône de
[PDF] La programmation orientée objet - maurise-softaware (informatique)
La P O O Les objets IRIS La Programmation orientée objet Les classes Exemple de conception Constructeurs ▫ Devant la complexité des applications, cette
[PDF] Initiation à la programmation orientée objet
Traduction de la conception dans un langage de programmation, en une base de données, etc 6 Les tests (expert en informatique) Vérifier que l'implémentation
[PDF] Programmation Orientée Objet - Manuel Munier
soit au travers de nouveaux systèmes généralement construits à partir de langages à objets (O2, ObjectStore) 2De nouvelles méthodes de conception basées sur
[PDF] Les étapes du processus de la conception orientée objet sont :
orientée objet, a pour objectif de maîtriser la conception et le développement Une solution serait d'introduire, après la programmation numérique et après la
[PDF] Memoire Online - Conception et réalisation d 'une application d 'une
[PDF] realisation d 'un site web dynamique - UVT e-doc - Université
[PDF] Conception et réalisation d 'une application de gestion des comptes
[PDF] Conception et réalisation d 'une application de gestion des comptes
[PDF] Travail d 'étude et de Recherche Conception et réalisation d 'une
[PDF] Travail d 'étude et de Recherche Conception et réalisation d 'une
[PDF] Réalisation d 'une application permettant la gestion des ressources
[PDF] Conception des laboratoires d 'analyses biologiques - INRS
[PDF] cours de mecanique - modelisation - Lyon
[PDF] Partie construction mécanique - Eduscol
[PDF] Contexte général Conception pédagogique - Pôle Numérique pour
[PDF] ARCHITECTURE SCOLAIRE
[PDF] Conception et développement d 'un site web de e-commerce pour le
[PDF] II LA FOTOGRAFÍA
CONCEPTION ORIENTÉEOBJETPrésentationAmosseEdouardInspirédu coursde F. Mallet
ORGANISATIONDU COURS1.Volume HoraireetEDThttp://unice.fr/faculte-des-sciences/departements/informatique/contenus-riches/documents-telechargeables/documentsl3i/calendrier-des-cours-tp-et-td-de-projet-informatique-et-de-coo2.Evaluation 1.Examenthéorique: 1h30 : 50% 2.TravauxPratiques(en TD) : 50%
PLAN DU COURSvIntroduction aux méthodologiesde conception vIntroduction àUML vObjetset ClassesvLes diagrammes§Les casd'utilisation§Les classes et leursinstances§Les machines àétats(ettransitions)§Lesactivités§Lesinteractions§Le mécanismedeprofilage
OBJECTIFSvMontrerles forces de la COO vDécrirel'histoirede la POO vCommenter l'utilisationactuellede la POO
CYCLE DE VIE D'UN LOGICIELMaintenance et EvolutionValidationTests et vérificationImplémentationConceptionAnalyse des besoinsSpécificationExpression des besoins
CYCLE DE VIE D'UN LOGICIELvExpression des besoinsØDéfinition d'un cahier des chargesvSpécificationØCe que le système doit être et comment il peut être utilisévAnalyseØÉléments intervenant dans le SI, leurs structures et relationsØA définir sur 3 axesØSavoir-faire de l'objetèaxe fonctionnelØStructure de l'objetèaxe statiqueØCycle de vie de l'objetèaxe dynamiquevConceptionØApport de solutions techniques: architecture, performance et optimisationØDéfinition des structures et des algorithmes
CYCLE DE VIE D'UN LOGICIELvImplémentation vRéalisation et programmation vTests et VérificationvContrôles de qualité vVérificationde la correspondanceavec le cahier des charges vMaintenance et Evolution vMaintenance corrective : traiterles erreurs(bugs)vMaintenance évolutive: intégrationde nouveaux changements
CONCEPTIONvProcessuscréatifqui consisteàreprésenterles diversesfonctionsdu systèmepermettantd'obtenirrapidementun ouplusieursprogrammesréalisantsesfonctions. vUne"bonne» conception se définiten termesde la satisfaction des besoinset des spécifications.vUnebonne Conceptionparticipelargementàla production d'un logicielqui répondauxfacteursde qualité. vElle se base surlaModularité.
CONCEPTION -CRITÈRESDE QUALITÉvCohésion: Se définitcommeétantle caractèrede cequi formeun tout, dontles parties sont difficilement séparables. vCouplage: Relatifàla cohésion. Il exprimele degréd'interconnexiondes differentscomposantsd'un système. vCompréhensibilité: La compréhensibilitéd'un module dépendde : -Sa cohésion-L'appelation: Utilisationde nomssignificatifs-La documentation : Lien entre le monde réelet le composant-La complexitévAdaptabilité: Dépenddu couplageet de la documentation. Un logicieladaptable doitavoirun haut degréde lisibilité.
MÉTHODESDE CONCEPTIONOn distingue principalementde troisde méthodesde conception: vMéthodesfonctionnellesvMéthodessystémiquesvMéthodesorientéesobjets
MÉTHODESFONCTIONNELLESLes méthodesfinctionnellesoucartésiennesconsistent àdécomposerhiérarchiquementuneapplication en un ensemble de sous applications. Cesméthodesutilisentles raffinementssuccessifspour produiredes spécificationsdon't l'essentielestsous formede notation graphiqueen diagrammede flotsde données.
MÉTHODESFONCTIONNELLESPoints forts vSimplicitédu processusde conception vCapacitéàrépondrerapidementaux besoinsponctuelsdes utilisateursPoints faibles: vFixer les limitespour les décompositionshiérarchiquesvRédondance(éventuelle) des données
MÉTHODESSYSTÉMIQUESLes méthodessystéliquessontinfluencéspar les systèmesde Gestionde bases de donnéesen proposantunedouble démarchede modélisation: vLa modélisationdes donnéesvLa modélisationdes traitementsvPoints forts : ØApprocheglobaleprenanten comptela modélisationdes donnéeset des traitementsØNiveauxd'abstractiondansle processusde conception ØBonne adaptation àla modélisationdes donnéeset àla conceptiondesBDs vPoints faiblesØDouble démarchede conception : donnéeset traitementsØPas de fusion possible des deuxaspects (donnéeset traitements)
MÉTHODESFONCTIONNELLESET SYSTÉMIQUESLes méthodesfoncionnelleset systémiquessontde type descendant (approacheTop-Down). InconvénientsRéutilisabilité: Modules non générauxmaisadaptésaux sous problèmespour lesquelsilsontétéconcusExtensibilité: L'architecturedu logicielestfondéesurles traitementsqui sontmoinsstables queles données; par conséquentcetteapprocheestinadaptéeàla conception de groslogiciel.
MÉTHODESORIENTÉESOBJETSvDansuneapprocheOrientéeObjet (OO), le logicielestconsidérécommeunecollection d'objetsdissociésdéfinispar des propriétés. vUnepropriétéestsoitun attributde l'objetouuneopérationsurl'objet. vUn objet comprenddonc à la fois une structure de données et une collection d'opérations (son comportement). vContrairement aux méthodes fonctionnelles et systémiques, les méthodes orientées objets sont ascendantes.
MÉTHODESORIENTÉESOBJETSLa technologieOrientéeObjet vGuide la conception par vUn ensemble de concepts vAbstraction, modularité, Encapsulation, PolymorphismevDes langageset outilsqui supportentcesconcepts vClassification vs. prototype vHéritage(Simple, Multiple)vTypage(Fort, Faible) vAvantagesvReflèteplus finementles objetsdu monde réelvDu code : facile àmaintenirvPlus stable: Isolation des changementsvRéutilisationdes composantesvFaciliterle prototypage
MÉTHODESORIENTÉESOBJETS-EXEMPLESObjetsQPersonnes§Etudiant,enseignant,principal,secrétaireQDiplôme§Année,matière,parcoursQNotes§CoefficientsFonctionsQCalculerlamoyenneQCalculerlestauxd'encadrementQCalculerlenombrederedoublantsQCalculerletauxderéussiteaubaccalauréatSystèmede gestiond'unlycée
OBJECTIFSDES TECHNOLOGIES ÀOBJETSQUtiliserlelangagedudomaine§ModèleetvocabulairemétierQConstruiredesmodèlesfacilesà:§Etendre,modifier,valider,vérifierQFaciliterl'implantation§GénérationfacilitéeversleslangagesàobjetsQNécessiteuneméthodeetdesoutils§RationalUnifiedProcess,Agile,...(cf.semestre2)§UMLestseulementunlangage
LES OBJETS...Définitions : Entité cohérente rassemblant des données et du code travaillant sur ces donnéesStructure de données valuées qui répond à un ensemble de messagesCaractérisé par : son comportement : que peut-on faire avec cet objet?Méthodesson état : comment réagit l'objet quand on applique ces méthodes?Attributs (Champs)son identité : comment distinguer les objets qui ont le même état et le même comportement?IdentifiantA les mêmes réactions et la même modularité que le monde réelL'objet informatique est une projection de l'objet du monde réel
UN MODÈLEQUnesimplification de laréalité
POURQUOIUN MODÈLE?QQuatreobjectifsàlamodélisation§Aideràvisualiserlesystème§Spécifierlastructureetlecomportement§Servirdeplanpourlaconstructioneffective§PermettrededocumenterleschoixQQuatreavantages§Abstraction:diviserpourrégner§Compréhension:misesaupointavecleclient§L'énergiedéployéepourmodéliserrévèlelesdifficultés§Leserreurssurlesmodèlescoûtentbienmoinscher
IMPORTANCE DES MODÈLESAvionpapierAvionmilitairemoinsimportantPlusimportantLedéveloppementlogicielAUSSInécessitedesmodèlesbienpensés!
OBJETS-CLASSESS(EXEMPLES)ClasseFigurelongueurlargeuroriginepérimètresurfacetransposerObjetrectangle: Figurelongueur: 24largeur: 20Origine : (12, 20)Figure rectangle= newFigure( );rectangle.surface();
MODEL DRIVEN ARCHITECTURE (MDA)vDéveloppementorientémodèles§Spécifierunmodèleindépendantdelaplateformesurlaquelleilseradéployé§Spécifierlaoulesplateformes§Choisiruneplateformeadaptée§Transformerlemodèledespécificationenunmodèlespécifiquepourlaplateforme
LES 4 PRINCIPESPOUR CRÉERUN MODÈLEQUnmodèleinfluenceénormémentlafaçond'aborderleproblèmeetlasolution§VueduconcepteurBD#vueduprogrammeurOOQChaquemodèlepeutêtreexprimeràdifférentsniveauxdeprécision§LesmeilleursmodèlespermettentdechoisirleniveaudedétailenfonctiondequiregardeetpourquoiilleregardeQLesmeilleursmodèlessontliésàlaréalitéQUnseulmodèlen'estjamaissuffisant§Touslessystèmesgagnentàêtredécritsavecplusieurspetitsmodèlesrelativementindépendant=>commentassurerlacohérenceentrelesmodèles
UN SEULMODÈLENE SUFFITPAS!QCréerunouplusieursmodèlesdifférentsmaisavecunpointcommunVueprocédéVueDéploiementVuelogiqueVued'implantationUse-CaseViewUtilisateurfinalFonctionalitéProgrammeursSoftwaremanagementIntégrateursystèmePerformance,scalabilité,débitIngénieursystèmeTopologiedusystème,livraison,installation,communicationAnalystes/ConcepteursStructure
UNIFIED MODELING LANGUAGE (UML)QLangagevisuelunifié§ToutlemondedoitparlerlemêmelangageQLangagepourspécifier§Executable-UML§SupposéprécisetnonambiguQDesliensvers+slangagesdeprog.§Java,C++,VB§RDMSouOODMS§Générationdecodeetreverseengineering.
UML -HISTORIQUEAnnées 80:Méthodes pour organiser la programmation fonctionnelle (Merise)Séparation des données et des traitementsDébut des années 90:Apparition de la programmation objet: nécessite d'une méthodologie adaptéeApparition de plus de 50 méthodes entre 1990 et 19951994Consensus sur 3 méthodesOMTde James Rumbaugh: représentation graphique des aspects statiques, dynamiques et fonctionnels d'un systèmeOODde GradyBooch: concept de packageOOSE de IvarJacobson: description des besoins de l'utilisateur
UMLConsensus entre OMT, OOD, OOSE pour créer une méthode commune:UML: UnifiedModelingLanguage(Langage de Modélisation Unifié)1997: Définition de la norme UML comme standard de modélisation des systèmes d'information objet par l'OMG (Object Management Group)UML est employé dans l'ensemble des secteurs du développement informatiqueSystèmes d'informationTélécommunication, défenseTransport, aéronautique, aérospatialDomaines scientifiquesMais pas seulement : on peut modéliser des comportement mécaniques, humain, etc.
UML ET RUPQUnlangagen'estpassuffisant,ilfautaussiuneméthodeQLesméthodes(process)quifonctionnentlemieuxavecUMLsont:§OrientéparlesUse-case;§Centrésurl'architecture;§Itératifetincrémental.•Lesutilisateursréagissentaufuretàmesure.QRationalUnifiedProcess
MODELEORIENTÉ"USE CASE"QLesuse-casesontlabase§Ilsdoiventêtreprécisetconcis§Ilssontcompréhensiblesparlamajorité§Ilspermettentdesynchroniserlesdifférentsmodèles§Ilsdécriventl'ensembledesfonctionsdusystèmeetlesacteursconcernésRetirerdel'argentClientVérifierlesolde
LES BASES D'UMLLes élémentsCe sont les abstractions essentielles au modèle.Les relationsLes relations expriment les liens existants entre les différents éléments.Les diagrammesUn diagramme est une représentation visuelle de l'ensemble des éléments qui constituent le systèmeIls servent à visualiser un système sous différents angles (utilisateur, administrateur par ex.)Dans les systèmes complexes, un diagramme ne fournit qu'une vue partielle du systèmeL'ensemble des diagrammes réunis permet d'obtenir une vue globale du système à concevoirChaque diagramme va permettre de modéliser ou spécifier une vue (spécificité) du système à concevoir
UML -LES VUESVue des cas d'utilisationDescription du modèle vu par les acteurs du systèmeBesoins attendus pour chaque acteurLe QUOIet le QUIVue logiqueDéfinition du système vu de l'intérieurCOMMENTsatisfaire les besoins des acteursVue d'implémentationDépendances entre les modulesVue des processusVue temporelle et techniqueMise en oeuvre des notions de tâches concurrentes, synchronisation...Vue de déploiementPosition géographique et architecture physique de chaque élémentLe OÙ
UML -LES DIAGRAMMES
LES DIAGRAMMESvLes diagrammessontreprésentésdansdes cadres(frames)•kind∈{activity,class,component,deployment,interaction,package,statemachine,usecase}•Formesimplifiée{act,class,cmp,dep,sd,pkg,stm,uc}
UML -OBJETSQObjectifs§Encapsulation,abstraction,modularité,hiérarchie§Structured'uneclasse§Relationsentreuneclasseetunobjet§Polymorphismeetgénéralisation§Lesinterfaces
RETOUR SURLES OBJETSET LES MODELESQQu'est-cequ'unobjet?QQuatreconcepts au centrede laCOOQQu'est-cequ'uneclasse?QGénéralisationetpolymorphismeQOrganisationdes élémentsmodèles
ETATD'UN OBJETQL'étatestuneconditionousituationpendantlavied'unobjetquisatisfaitunecondition,effectueuneactivitéouattendpourunévénement.QL'étatd'unobjetpeutchangerdansletemps.Nom:CMartinID:567138Embauche:25/07/91Grade:MCFDiscipline:BiologieService:192hNom:CMartinID:567138Embauche:25/07/1991Grade:MaitredeconférenceDiscipline:BiologieServicedû:192hProfesseurMartin
COMPORTEMENTD'UN OBJETQLe comportement détermine comment l'objet agit ou réagitQLe comportement visible d'un objet est son interface (ensembled'opérations).Chercher()ComportementduprofesseurMartinCorrigerlesexamensPréparerunnouveaucoursChercherFairel'emploidutempsNom:CMartinID:567138Embauche:25/07/91Grade:MCFDiscipline:BiologieService:192h
IDENTITÉDES OBJETSQL'identitéd'unobjetestuniquemêmesil'étatestlemêmequeceluid'unautreobjetProfesseur"CMartin"enseignelabiologieProfesseur"CMartin"enseignelabiologie
CONCEPTS FONDAMENTAUXDE LA COOAbstractionEncapsulationModularitéHiérarchie (Héritage)Polymorphisme
ABSTRACTIONvCaractéristiquesqui differencieuneentité(objet) des autresvDépendde la perspective et di contextevN'estpas unemanifestation concrète, dénotel'essentiel
ENCAPSULATIONMécanisme consistant à rassembler, au sein d'une même structure, les données et les traitementsDéfinition des attributs et méthodes au niveau de la classeL'implémentation de la classe est cachée pour l'utilisateurDéfinition d'une interface : vue externe de l'objetPossibilité de modifier l'implémentation sans modifier l'interfaceFacilité de l'évolution de l'objetPréservation de l'intégrité des données L'accès direct aux attributs est interditL'interaction entre les objets se fait uniquement grâce aux méthodes
ENCAPSULATIONVoituremarquecouleurimmatriculationdémarrerconduirearrêterAffiche : La voiture est démarréeVoiture twingo = new Voiture( );twingo.démarrer( );J'aimerais créer une nouvelle twingoQue se passe-t-il si je démarre ma twingo?ConcepteurUtilisateur
HIÉRARCHIE(HÉRITAGE)Un objet spécialisé bénéficie ou hérite des caractéristiques de l'objet le plus général, auquel il rajoute ses éléments propresCréation de nouvelles classes basées sur des classes existantesTransmission des propriétés (attribu ts et méthodes) de la classe mère vers la classe filleTraduit la relation " est un ... »Deux orientations possiblesSpécialisation : Ajout / adaptation des caractéristiquesGénéralisation : Regroupement des caractéristiques communesPossibilité d'héritage multipleAvantagesÉviter la duplication du codeEncourager la réutilisation du code
HERITAGE MULTIPLEQUneclassepeuthériterdeplusieursUtiliserl'héritagemultipleavecprudenceetseulementsiindispensable!NonsupportéparlaplupartdeslangagesdePOO(ex:Java,C#)MachineVolanteAnimalChevalLoupOiseauHélicoptèreAvionHéritagemultiple
PROBLÈMEAVEC L'HÉRITAGEMULTIPLEQCombiendemoteursàl'hydravion?DE QUOI HÉRITE-T-ON?QUnesous-classehéritelesattributs,lesopérationsetlesréférencesdesesparents.QUnesous-classepeut:§Ajouterdesattributs,desopérations,desréférences.§Redéfinirdesopérationshéritées.QLescatégoriescommunessontmontréesdanslaclassemèrelaplushautepossible
POLYMORPHISMEDéfinition : Poly: plusieursMorphisme: FormeFaculté d'une méthode à pouvoir s'appliquer à des objets de classes différentesCapacité d'une classe à redéfinir une méthode héritée à partir d'une classe mèreSurcharge AvantagesLisibilité du codeGénéricité du code
REPRESENTATION DES OBJETSEN UMLQUnobjet(InstanceSpecification)estreprésentéparunrectangle.QLenomestsoulignéCMartin:Professeur:ProfesseurObjetnomméObjetanonymeProfesseurCMartin
MODÈLESOUCLASSESContient la description d'un objetModèle de l'objet effectifCorrespond à l'"idée» du monde réel de l'objetAnalogie avec la philosophie platonnienneidéaliste : " Vous vous promenez dans la campagne, vous croyez avoir rencontré des troupeaux de chevaux. Quelle erreur! (...) Car le Cheval-Modèle, le Cheval-Idée, n'est ni noir ni blanc, il n'est d'aucune race chevaline. Il est cheval pur et vos sens ne vous le montreront jamais... » [Civilisation Grecque -A.Bonnard]La classe èl'" idée » du chevalUn pur sang arabe de couleur noire, dont le nom est ASWAD et qui boîte légèrement, est un objetinstancié à partir de cette classe! èça c'est un cheval
C'ESTQUOI UNECLASSE?QUneclassedécritunensembled'objetsquipartagentlesmêmesattributs,opérations,références,etsémantique.§Unobjetestl'instanced'uneclasse.QUneclasseestuneabstractioncarelle§Metenévidencecertainescaractéristiques§Supprimed'autrescaractéristiques
LA CLASSECOURSClasseCoursAttributsNomSalleDuréeCréditsSemestreComportementAjouterunétudiantEnleverunétudiant
CLASSES VS. OBJETSQLaclasseestunedéfinitionabstraite§Elledéfinitlastructureetlecomportementdechaqueobjetissuedecetteclasse§Sertdemodèlepourlacréationd'instancesProfesseurProfesseurMProfesseurTProfesseurA
LES CLASSES ENUMLQUneclasseestreprésentéeparunrectangleavec3compartiments§Lenomdelaclasse§Lastructure(lesattributs)§Lecomportement(opérations)Professeur-nom-ID:UniqueId-embauche-grade-discipline-service+preparerCours()+corrigerExamen()+faireEDT()+chercher()
ATTRIBUTSDES CLASSESQUnattributestunepropriétéstructurellenomméedontletypedécritledomainedesvaleursquel'instancepeutprendre.§Uneclassepeutavoirunnombrequelconqued'attributsycompris0.Attributs-nom-adresse-ID-âge
ATTRIBUTSET VALEURSObjets(InstanceSpecification)Etudiant-nom-adresse-ID-âge:Etudiant-nom="B.Simpson"-adresse="123rueGde"-ID=9-âge=23:Etudiant-nom="R.Bidochon"-adresse="456avChêne"-ID=2-âge=43slotsValueSpecificationattributs
CLASSES ET OPÉRATIONSQUnservicequipeutêtreinvoquéparunobjetpoureffectueruncomportement.Uneopérationaunesignature,quidéfinitlesparamètresformelspossiblesQUneclassepeutavoirunnombrequelconqued'opérationsOpérationsEtudiant+getParcours()+ajouteUE()+getEDT()+enleveUE()+getCredit()
quotesdbs_dbs4.pdfusesText_8