background preloader

Loose coupling in SOA

Facebook Twitter

Couplage (informatique) Un article de Wikipédia, l'encyclopédie libre.

Couplage (informatique)

Pour les articles homonymes, voir Couplage. Selon Pressman[1], il existe sept niveaux de couplage, du plus faible au plus fort : Une bonne architecture logicielle nécessite le couplage le plus faible possible. Un couplage fort est à proscrire pour plusieurs raisons : Un couplage fort génère l'antipattern plat de spaghetti : On ne peut pas déterminer le qui, le quoi et le comment d’une modification de données.Un couplage fort implique nécessairement une faible indépendance fonctionnelle : Le composant logiciel est difficilement réutilisable,Le composant logiciel est difficilement testable.Si deux tâches accèdent, par couplage fort, à une ressource commune (ressource critique) et qu'elles s'exécutent en exclusion mutuelle, alors si une des tâches reste bloquée en section critique elle bloque automatiquement l'autre : Risque d'interblocage. Les composants perdent leur autonomie.

Portail de l’informatique. Coupling and Cohesion: An SOA Challenge. Cohesion and coupling are two fundamental concepts in software development at least since Stevens, Myers and Constantine published their seminal article “Structured Design” in 1974.[1] Since then, however, there has been a great deal of metamorphosis, metastasis and other alterations to the basic definitions depending upon the context and the application.

Coupling and Cohesion: An SOA Challenge

Coupling and Cohesion: An SOA Challenge. Cohesion (computer science) In computer programming, cohesion is a measure of how strongly related the responsibilities of a single module are.

Cohesion (computer science)

As applied to object-oriented programming, if the methods that serve the given class tend to be similar in many aspects, then the class is said to have high cohesion. In a highly cohesive system, code readability and the likelihood of reuse is increased, while complexity is kept manageable. Cohesion is increased if: The functionalities embedded in a class, accessed through its methods, have much in common.Methods carry out a small number of related activities, by avoiding coarsely grained or unrelated sets of data. Software metric. A software metric is a measure of some property of a piece of software or its specifications.

Software metric

Since quantitative measurements are essential in all sciences, there is a continuous effort by computer science practitioners and theoreticians to bring similar approaches to software development. The goal is obtaining objective, reproducible and quantifiable measurements, which may have numerous valuable applications in schedule and budget planning, cost estimation, quality assurance testing, software debugging, software performance optimization, and optimal personnel task assignments.

Multiprocessing. According to some on-line dictionaries, a multiprocessor is a computer system having two or more processing units (multiple processors) each sharing main memory and peripherals, in order to simultaneously process programs.[4][5] A 2009 textbook defined multiprocessor system similarly, but noting that the processors may share "some or all of the system’s memory and I/O facilities"; it also gave tightly coupled system as a synonymous term.[6] In Flynn's taxonomy, multiprocessors as defined above are MIMD machines.[10][11] As they are normally construed to be tightly coupled (share memory), multiprocessors are not the entire class of MIMD machines, which also contains message passing multicomputer systems.[10] §Pre-history[edit] §Key topics[edit] §Processor symmetry[edit] In a multiprocessing system, all CPUs may be equal, or some may be reserved for special purposes.

Multiprocessing

Encapsulation des données. Un article de Wikipédia, l'encyclopédie libre.

Encapsulation des données

L'encapsulation des données (ou encapsulage des données) est une règle de microarchitecture (architecture détaillée) consistant à cacher les données d’une classe ou d’un module aux autres classes ou modules, c'est-à-dire, empêcher l'accès aux données par un autre moyen que des méthodes (fonctions membres). Par conséquent, l’interface d’une classe ou d’un module obéissant à ce principe n’expose jamais ces membres de données comme des variables, tableaux ou structures mais seulement des méthodes (fonctions membres). Implémentation[modifier | modifier le code] publique : les méthodes (fonctions membres) de toutes les autres classes ou modules peuvent accéder aux données possédant le niveau de visibilité publique.

Il s'agit du plus bas niveau de protection des données.protégée : l'accès aux données protégées est réservé aux méthodes (fonctions membres) des classes héritières. Couplage (informatique) Syndrome du plat de spaghettis. Un article de Wikipédia, l'encyclopédie libre.

Syndrome du plat de spaghettis

Plat de spaghetti Étymologie[modifier | modifier le code] L'origine de l'expression provient de l'analogie suivante : « Un système informatique désordonné c'est comme une assiette de spaghettis: il suffit de tirer sur un fil d'un côté de l'assiette pour que l'enchevêtrement des fils provoque des mouvements jusqu'au côté opposé[1]. » Le phénomène[modifier | modifier le code] Le déroulement de l'apparition du syndrome sur un logiciel est le suivant : une suite de modifications consécutives dans le même logiciel ont entraîné un accroissement du couplage et de la complexité. Le code spaghetti est parfois créé intentionnellement par son auteur dans le but de rendre le code impénétrable par obfuscation et lutter notamment contre la rétro-ingénierie. Indépendance fonctionnelle. Un article de Wikipédia, l'encyclopédie libre.

Indépendance fonctionnelle

L'indépendance fonctionnelle est la métrique la plus importante en architecture logicielle, elle mesure l'autonomie d'un composant logiciel. Cette métrique donne des indicateurs sur la possibilité d'extraction d'un composant se trouvant dans un logiciel existant et sa simplicité d'intégration dans un autre logiciel. Couplage (informatique) Service loose coupling principle.

SOA and contracts

SOA and facade design pattern.