{"id":4247,"date":"2016-08-31T15:51:26","date_gmt":"2016-08-31T14:51:26","guid":{"rendered":"http:\/\/smart--grid.net\/?page_id=4247"},"modified":"2022-12-03T22:59:08","modified_gmt":"2022-12-03T21:59:08","slug":"diagramme-de-classe","status":"publish","type":"page","link":"https:\/\/complex-systems-ai.com\/en\/software-analysis\/class-diagram\/","title":{"rendered":"Class diagram"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4247\" class=\"elementor elementor-4247\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6152da3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6152da3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-86a2f24\" data-id=\"86a2f24\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-212617b elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"212617b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/analyse-logicielle\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Analyse logicielle<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-8af9e11\" data-id=\"8af9e11\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9ab53f5 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"9ab53f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Page d'accueil<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-3d88298\" data-id=\"3d88298\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8fdf6fb elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"8fdf6fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Diagramme_de_classes\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Wiki<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ff7251a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ff7251a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5286c817\" data-id=\"5286c817\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5206b49a elementor-widget elementor-widget-text-editor\" data-id=\"5206b49a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenus<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/class-diagram\/#Diagramme-de-classe\" >Diagramme de classe<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/class-diagram\/#Schema-dune-classe\" >Sch\u00e9ma d&rsquo;une classe<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/class-diagram\/#Les-attributs\" >Les attributs<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/class-diagram\/#Les-associations\" >Les associations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/class-diagram\/#Exemple\" >Exemple<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Diagramme-de-classe\"><\/span>Diagramme de classe<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><\/p>\n<p>Le <b>diagramme de classe<\/b> est un sch\u00e9ma utilis\u00e9 en g\u00e9nie logiciel pour pr\u00e9senter les classes et les interfaces des syst\u00e8mes ainsi que les diff\u00e9rentes relations entre celles-ci. Une classe d\u00e9crit les responsabilit\u00e9s, le comportement et le type d&rsquo;un ensemble d&rsquo;objets. Les \u00e9l\u00e9ments de cet ensemble sont les instances de la classe.<\/p>\n<p><\/p>\n<p>Une classe est un ensemble de fonctions et de donn\u00e9es (attributs) qui sont li\u00e9es ensemble par un champ s\u00e9mantique. Les classes sont utilis\u00e9es dans la programmation orient\u00e9e objet. Elles permettent de mod\u00e9liser un programme et ainsi de d\u00e9couper une t\u00e2che complexe en plusieurs petits travaux simples.<\/p>\n<p><\/p>\n<p>Les classes peuvent \u00eatre li\u00e9es entre elles gr\u00e2ce au m\u00e9canisme d&rsquo;h\u00e9ritage qui permet de mettre en \u00e9vidence des relations de parent\u00e9. D&rsquo;autres relations sont possibles entre des classes, chacune de ces relations est repr\u00e9sent\u00e9e par un arc sp\u00e9cifique dans le diagramme de classes.<\/p>\n<p><\/p>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Schema-dune-classe\"><\/span>Sch\u00e9ma d&rsquo;une classe<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p><\/p>\n<p>Une classe est repr\u00e9sent\u00e9e par un rectangle s\u00e9par\u00e9e en trois parties :<\/p>\n<p><\/p>\n<ol class=\"wp-block-list\">\n<li style=\"text-align: justify;\">le nom de la classe : il est \u00e9crit en police \u00ab\u00a0romain\u00a0\u00bb, les classes abstraites sont \u00e9crites en italique ou entre &lt;&lt;__&gt;&gt;. Les classes template ont un rectangle dont la bordure est en pointill\u00e9 dans leur angle sup\u00e9rieur droit (voir image en dessous).<\/li>\n<li style=\"text-align: justify;\">les attributs de la classe<\/li>\n<li style=\"text-align: justify;\">les m\u00e9thodes de la classe<\/li>\n<\/ol>\n<p><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" class=\"alignnone wp-image-4506 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/220px-modeleclassetemplate-svg.png\" alt=\"diagramme de classe uml\" width=\"220\" height=\"73\" title=\"\"><\/figure>\n<\/div>\n<p><\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Les-attributs\"><\/span>Les attributs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><\/p>\n<p>La syntaxe d&rsquo;un attribut est la suivante : <i>Visibilit\u00e9<\/i> <i>nomAttribut<\/i> [<i>multiplicit\u00e9<\/i>]\u00a0: <i>typeAttribut<\/i> = <i>Initialisation\u00a0;<\/i><\/p>\n<p><\/p>\n<p>La notion de visibilit\u00e9 indique qui peut avoir acc\u00e8s \u00e0 l&rsquo;attribut, elle peut prendre quatre valeurs :<\/p>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li>+ : toutes les autres classes ont acc\u00e8s \u00e0 cet attribut (acc\u00e8s public).<\/li>\n<li># : seules la classe et son h\u00e9ritage ont acc\u00e8s \u00e0 cet attribut (acc\u00e8s prot\u00e9g\u00e9).<\/li>\n<li>~ : classe visible uniquement dans le package.<\/li>\n<li>&#8211; : seule la classe elle-m\u00eame a acc\u00e8s \u00e0 cet attribut (principe d&rsquo;encapsulation avec getter et setter).<\/li>\n<\/ul>\n<p><\/p>\n<p>Le nom de l&rsquo;attribut ne doit ni comporter d&rsquo;espaces, ni de signes de ponctuations ou accents. La multiplicit\u00e9 repr\u00e9sente le nombre de fois que la variable peut exister pour un objet de la classe.<\/p>\n<p><\/p>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Les-associations\"><\/span>Les associations<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p><\/p>\n<p>Une association est une relation entre deux classes. On la d\u00e9crit \u00e0 l&rsquo;aide\u00a0:<\/p>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li>de <span class=\"def\">r\u00f4les<\/span> d&rsquo;un objet d&rsquo;une classe dans un objet de l&rsquo;autre (omis si \u00e9vidents)\u00a0;<\/li>\n<li>de <span class=\"def\">cardinalit\u00e9s<\/span>, c&rsquo;est-\u00e0-dire de nombres d&rsquo;objets d&rsquo;une classe dans un objet de l&rsquo;autre classe\u00a0; on utilise pour cela les notations\u00a0:\n<ul>\n<li><span class=\"def\">1<\/span> habituellement omis si 1 pour 1<\/li>\n<li><span class=\"def\">n<\/span> inconnu au moment de la compilation, mais born\u00e9<\/li>\n<li><span class=\"def\">0..n<\/span> entre 0 et n<\/li>\n<li><span class=\"def\">1..*<\/span> 1 ou plus<\/li>\n<li><span class=\"def\">*<\/span> 0 ou plus<\/li>\n<\/ul>\n<\/li>\n<li>un <span class=\"def\">type de relation<\/span> orient\u00e9e ;<\/li>\n<li>optionnellement des <span class=\"def\">contraintes<\/span> sur l&rsquo;association.<\/li>\n<\/ul>\n<p><\/p>\n<p>Les types de relations fr\u00e9quemment rencontr\u00e9es sont :<\/p>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"text-align: justify;\">L&rsquo;h\u00e9ritage<\/li>\n<\/ul>\n<p><\/p>\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-4530 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/220px-vererbung_t-svg.png\" alt=\"diagramme de classe uml h\u00e9ritage\" width=\"220\" height=\"299\" title=\"\"><\/figure>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li>La classe interne<\/li>\n<\/ul>\n<p><\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" class=\"alignnone wp-image-4532 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/interne.png\" alt=\"diagramme de classe uml classe interne\" width=\"237\" height=\"22\" title=\"\"><\/figure>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li>La d\u00e9pendance<\/li>\n<\/ul>\n<p><\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4536 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/dependance.png\" alt=\"diagramme de classe uml d\u00e9pendance\" width=\"243\" height=\"26\" title=\"\"><\/figure>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li>L&rsquo;aggr\u00e9gation<\/li>\n<\/ul>\n<p><\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4538 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/aggregation.png\" alt=\"diagramme de classe uml aggr\u00e9gation\" width=\"222\" height=\"22\" title=\"\"><\/figure>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li>La composition<\/li>\n<\/ul>\n<p><\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4540\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/composition.png\" alt=\"diagramme de classe uml composition\" width=\"222\" height=\"22\" title=\"\"><\/figure>\n<p><\/p>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Exemple\"><\/span>Exemple<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p><\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4543 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/uml_class_diagram.jpg\" alt=\"diagramme de classe exemple\" width=\"427\" height=\"395\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/uml_class_diagram.jpg 427w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/08\/uml_class_diagram-300x278.jpg 300w\" sizes=\"(max-width: 427px) 100vw, 427px\" \/><\/figure>\n<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Software Analysis Wiki Home Page Class Diagram Class diagram is a diagram used in software engineering to present classes and \u2026 <\/p>","protected":false},"author":1,"featured_media":0,"parent":4609,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4247","page","type-page","status-publish","hentry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/4247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/comments?post=4247"}],"version-history":[{"count":5,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/4247\/revisions"}],"predecessor-version":[{"id":18460,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/4247\/revisions\/18460"}],"up":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/4609"}],"wp:attachment":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/media?parent=4247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}