{"id":4609,"date":"2016-09-28T09:28:37","date_gmt":"2016-09-28T08:28:37","guid":{"rendered":"http:\/\/smart--grid.net\/?page_id=4609"},"modified":"2024-02-11T21:01:24","modified_gmt":"2024-02-11T20:01:24","slug":"analyse-logicielle","status":"publish","type":"page","link":"https:\/\/complex-systems-ai.com\/en\/software-analysis\/","title":{"rendered":"Software Analysis 101"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"4609\" class=\"elementor elementor-4609\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d2cd894 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d2cd894\" 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-a3f14e1\" data-id=\"a3f14e1\" 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-ab25997 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"ab25997\" 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\/en\/2020\/04\/03\/theories-and-algorithms-2\/\">\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\">Theories<\/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-cc7c6b7\" data-id=\"cc7c6b7\" 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-9ad98f6 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"9ad98f6\" 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\/en\/\">\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\">Home page<\/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-74821ea\" data-id=\"74821ea\" 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-ab5d170 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"ab5d170\" 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\/UML_(informatique)\" 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-7d3ed19 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7d3ed19\" 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-9349cb4\" data-id=\"9349cb4\" 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-70a09dc elementor-widget elementor-widget-toggle\" data-id=\"70a09dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1181\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1181\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">I. UML - Software analysis<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1181\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1181\"><ul>\n<li><a href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/relational-algebra\/\">Relational algebra<\/a><\/li>\n<li>Logical View\n<ul>\n<li><a href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/class-diagram\/\">Class diagram<\/a><\/li>\n<li>Object diagram<\/li>\n<li>State-transition diagram<\/li>\n<\/ul>\n<\/li>\n<li>Process view\n<ul>\n<li><a href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/sequence-diagram\/\">Sequence diagram<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/communication-diagram\/\">Communication diagram<\/a><\/li>\n<li>Activity diagram<\/li>\n<li>Interaction diagram<\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/time-diagram\/\">Time diagram<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Development view\n<ul>\n<li>Component diagram<\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/package-diagram\/\">Package diagram<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Physical view\n<ul>\n<li>Deployment diagram<\/li>\n<\/ul>\n<\/li>\n<li>Use case view\n<ul>\n<li><a href=\"https:\/\/complex-systems-ai.com\/en\/software-analysis\/use-case-diagram\/\">Use case diagram<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1182\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-1182\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">II. SysML<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1182\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-1182\">Back and forth content<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1183\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-1183\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">III. Linked Data<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1183\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-1183\">Back and forth content<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1184\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-1184\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">IV. AUML<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1184\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-1184\">Back and forth content<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\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-5850de elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5850de\" 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-3815118e\" data-id=\"3815118e\" 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-5aac95a6 elementor-widget elementor-widget-text-editor\" data-id=\"5aac95a6\" 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\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-5728 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2017\/04\/uml_diagrams_overview-svg.png\" alt=\"software analysis uml sysml auml\" width=\"600\" height=\"334\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2017\/04\/uml_diagrams_overview-svg.png 600w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2017\/04\/uml_diagrams_overview-svg-300x167.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n<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\">Contents<\/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\/#Analyse-logicielle\" >Software analysis<\/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\/#41-vues-de-Kruchten\" >4 + 1 views of Kruchten<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Analyse-logicielle\"><\/span>Software analysis<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><\/p>\n<p>The main objective of software analysis is to control the complexity. Modeling is an abstraction from reality in order to better understand the system to be realized \/ realized. To verify or build a model, it must be connected to the real world, know what exists before the work, what has been done and what remains to be done. A model can be expressed with different levels of abstraction \/ refinement, a single view of the system is not sufficient to understand all its functioning and intrinsic interactions.<\/p>\n<p><\/p>\n<p>The modeling is based on graphics of computer systems. The most used graphics are part of the Unified Modeling Language (UML). The latter includes a set of tools and rules for defining diagrams.<\/p>\n<p><\/p>\n<p>Regardless of the form an architecture diagram takes, it always represents only a point of view on the considered system, the most important being the motivations. Indeed, what is the point of producing a diagram if it is useless (not used) or if the reasons for the architectural choices are vague and unexplained. To avoid formulating the motivations for each diagram, the IT architect will produce the different diagrams based on a <i>design template<\/i> and will reuse proven design patterns.<\/p>\n<p><\/p>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"41-vues-de-Kruchten\"><\/span>4 + 1 views of Kruchten<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p><\/p>\n<p>In software analysis, the \u201c4 + 1\u201d view model, known as Kruchten, of a computer system allows the description of the system to be organized into several complementary views, each presenting the system from a different point of view. The use of views allows the interests of various stakeholder groups to be addressed separately, thereby better separating functional and extra-functional concerns.<\/p>\n<p><\/p>\n<p>The figure schematizes the \u201c4 + 1\u201d views model. This model is made up of five views.<\/p>\n<p><\/p>\n<ul class=\"wp-block-list\">\n<li>The &quot;logical&quot; view describes the static and dynamic aspects of a system in terms of classes, objects, connections and communications. It focuses on abstraction and encapsulation.<\/li>\n<li>The &quot;process&quot; view captures the concurrency and synchronization aspects, and breaks them down into execution flows (process, execution thread, etc.). It relates to active objects and interactions.<\/li>\n<li>The &quot;development&quot; view represents the static organization of modules (executable, source codes, packages, etc.) in the development environment.<\/li>\n<li>The \u201cphysical\u201d view describes the various hardware resources and the software implementation taking these resources into account. So, it relates to the physical execution nodes and the placement of objects on the nodes.<\/li>\n<li>The final view, called a \u201cuse case,\u201d focuses on consistency by presenting use cases that implement elements of the first four views. Scenarios are an abstraction of the functional requirements of the application. This last view somewhat validates the other views and ensures overall consistency. It is also this last view which is built first, just after the establishment of the specifications, to fix the contours of the system to be produced with its functionalities called, in UML terminology, use cases.<\/li>\n<\/ul>\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>","protected":false},"excerpt":{"rendered":"<p>Theories Wiki Home Page I. UML \u2013 Software Analysis Relational Algebra Logic View Class Diagram Object Diagram State-Transition Diagram Process View\u2026 <\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4609","page","type-page","status-publish","hentry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/4609","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=4609"}],"version-history":[{"count":61,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/4609\/revisions"}],"predecessor-version":[{"id":20449,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/4609\/revisions\/20449"}],"wp:attachment":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/media?parent=4609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}