Vous êtes sur la page 1sur 65

Dominique Yolin

Introduction du concept
- Cours de découverte d’Architecture Applicative -
Plan

Présentation du cours et de son déroulé

Brève Introduction à la POO

Brève introduction à l’analyse et le design

Brève introduction à la notion d’architecture et de services


Introduction
Sujets couverts dans ce chapitre

Introduction sur le cours

Plan des sujets étudiés

Importance de la réflexion avant l’action, de la structuration de la pensée

Importance du test et du retour utilisateur PENDANT le développement

Importance du vocabulaire
Avant propos

Le but de ce cours
Il y a une différence fondamentale entre savoir écrire des
lignes de code syntaxiquement correctes et développer une
application qui réponde à un cahier des charges (et surtout
qui soit maintenable). D’où l’importance de l’architecture

Ce cours a pour but de vous sensibiliser à l’importance de


l’analyse et du design d’une application ou d’un système, et
de la multiplicité des approches pour le faire.
Déroulé du cours

Découverte des sujets à Qu'est ce que Le design et les outils Architecture d’application Architecture et services
traiter et leurs enjeux l'orienté objet pour le mener à bien
Ce chapitre d’introduction Définition et étude Découverte de la A l’aide de design Découverte de la
sert à comprendre approfondie de ce méthode MERISE et pattern, comment notion de services
l’importance des sujets paradigme qui sera du langage UML décomposer un et études des
traités pendant le cours. Ils étudié en détail système pour faciliter concepts comme le
seront survolés afin de sa mise en place SOA et les micro-
donner une vue services
d’ensemble
Pourquoi ce cours

Que ce soit les applications de bureaux ou les applications distribuées,


leur complexité est de plus en plus importante

Les développeurs d’aujourd’hui ne doivent plus simplement aligner des


lignes de codes, ils doivent comprendre l’architecture de leur
application pour la rendre maintenable

Il existe de plus en plus de façon de créer une application, il faut au


moins avoir entendu parlé des principales pour ne pas se sentir perdu
au moment de rentrer sur le marché du travail
Notion d’architecture

Comprendre la meilleure façon de développer et de déployer des


applications est une considération importante pour toute entreprise
proposant un service numérique aujourd’hui.

Traditionnellement l’approche favorisée était une approche


monolithique caractérisée par une certaine rigidité et lourdeur

Mais récemment, les options telles que l’architecture orientée service


(AOS) et les microservices ont commencé à offrir une flexibilité
précieuse pour la création et l’exécution d’applications.
Les différents types d’application
Application de bureau (client lourd)

Application client léger


• Toute la logique et le traitement est fait du côté serveur,
• le client (presque toujours le navigateur) ne servant que d’affichage

Application client riche


• Meilleure IHM
• Diminution de la charge réseau
• Accès et meilleure exploitation des ressources local du client

Applications mobiles
• Native
• Hybride
• Progresssive Web App (PWA)
Au-delà de l’application, le système

Système Monolithe

Système sous forme de service avec plus ou moins de couche

Micro-services
Comment éviter le syndrome de la page blanche

Les étapes qui vont suivre servent à ne pas se retrouver face à son IDE avec un curseur clignotant
sans savoir quoi faire après avoir lu le cahier des charges.
Le mauvais réflexe

Présentation du problème Codage immmédiat Livraison au client Début de l’enfer

On vous explique les Vous commencez C’est déjà un miracle d’en On vous demande de
besoins du client directement à coder: les arriver là, habituellement corriger un bug et là
choses finiront bien par on passe directement a c’est le drame
tomber en marche l’étape 4
Pavlov

Le travers du programmeur
Le programmeur a besoin d’écrire des lignes
de codes. Il a l’impression que produire
quelque chose même n’importe quoi, va faite
avancer le projet. Mais bien souvent (99%
des fois) c’est l’inverse. En fonçant tête
baissée on produit souvent du code

 Non maintenable
 Mal commenté
 Buggé
 Ne répondant pas au besoin
Savoir revenir aux fondamentaux

Du temps perdu Les outils indispensables


Au final dans la grande majorité des cas La première chose à apprendre c’est qu’il faut
on doit jeter des jours voir des semaines du recul pour avoir une vue d’ensemble.
de travail parce qu’on n'a pas assez Dans un premier temps les outils
réfléchi avant de commencer a coder indispensables sont le papier et le crayon

Plus vous saurez poser les choses d’abord sur papier, que ce soit des diagrammes, des dessins, des cartes
de concepts ou tout autre méthode qui vous mettra à l’aise, meilleurs développeurs vous deviendrez.
Tout le travail que nous allons faire, tous les gros mots que vous allez apprendre doivent vous amener à
produire du meilleur code, plus clair et plus structuré.
Le Bon réflexe

Présentation du Analyse Structuration de la Codage de la Livraison au Maintenance


problème des besoins proposition solution client et évolutions
On vous explique Vos étudiez avec Vous commencez à Vous implémentez Le client ayant été Vous pouvez
les besoins du votre client ses réfléchir à comment vous le design préparer mis à profit durant sans problème
client besoins et vous les allez découper votre selon les choix que le développement faire évoluer le
formalisez afin d’être programme, comment vous avez fait reçoit le produit logiciel et
sûr d’en avoir vont fonctionner les précédemment qu’il attend et corriger les bugs
compris un maximul différentes briques de répond à ses sans remettre
et de faciliter la suite manière grossière dans un besoins en cause
du travail premier temps
l’entièreté du
programme
Petite exagération Pour commencer Les itérations

Complètement analyser le Au départ on commence par Une fois que la structure du


code avant de commencer à une analyse macro : Il faut projet est déterminée on
coder c’est une petite commence l’implémentation tout
savoir si vous avez besoin en relançant une phase d’analyse.
exagération. La complétion se d’IHM ou si c’est un service, si Au fur et à mesure qu’on avance
fait par étapes et celles-ci il y a besoin d’une base do ou dans la réalisation du projet, on le
sont relatives au niveau si c’est volatile, si il y a besoin travaille plus finement.
d’avancement du projet de réseau ou pas…
Fausse impression vs vrai utilité

VS
C’est du blabla philosophique Véritables applications pratiques

En entandant tous les mots grossiers Le but de ce cours est de vous appendre
comme polymorphisme ou encapsulation à coder de meilleures applications, plus
etc… On pourrait croire que n’est qu’un robustes et plus complexes, plus
exercice théorique utilisé uniquement dans maintenable et plus évolutives, moins
la R&D mais inutile dans la vie buggées et plus flexibles.
professionnelle.
Free PowerPoint Templates
Le formalisme de la méthode n’est pas une prison qui vous
enferme…

Peur d’être restreint Contre exemples La Liberté


Certains pourraient craindre que ce Mais connaitre le solfège ne vous Au contraire cela vous ouvre les portes de
formalisme restreigne la créativité et oblige pas à ne faire que de la la liberté que vous n’auriez pas sans cette
force à coder d’une unique manière musique classique connaissance.
…mais un ensemble d’outil qui vous libère et qui vous
aide

Vocabulaire Communiquer La créativité


Tout ceci n’est que du vocabulaire Cela vous donne les moyens de Le développement informatique est un
professionnel pour vous permettre de communiquer dessus, de partager plus acte créatif. Avec le même cahier des
clarifier ce que vous faites simplement votre pensée charges, 100 excellents développeurs
produiront 100 résultats différents
Introduction à l'orientation objet
Sujets couverts dans ce chapitre

Historique

Pourquoi l’OOP est devenue aussi populaire

Première introduction à comment se qu’est l’OOP


Avant les technologies objet

Avant les années 80

Autrefois on codait en assembleur, en cobol ou fortran…


Mais ces trente dernières années les langages les plus populaires ont
été les langages objets. Que cela soit C++, Java, C#, Python…il n’y a
quasiment que cela dans le top des langages les plus utilisés dans
l’industrie.

Qu’est ce qu’un paradigme

Un paradigme n’est pas un langage mais un ensemble de principes


que suivent des langages. Comme nous allons le voir il en existe
plusieurs comme le fonctionnel, l’objet, l’impératif, le logic….
Les principaux paradigmes

Impératif
Paradigme originel il est encore très courant dans
l’industrie. [CELLRANGE]
[PERCENTAGE]

Déclarative [CELLRANGE]
déclarer les données du problème, puis à demander [PERCENTAGE]
au programme de le résoudre.

Objet
définition et assemblage de briques logicielles
appelées objets [CELLRANGE]
[PERCENTAGE]
[CELLRANGE]
[PERCENTAGE]
Autres
Événementiel, séquentiel, interruptible… Il existe de
nombreux autres paradigmes
Les mots “Objet Orientés” ne viennent jamais seuls

Analysis Object oriented


C’est comprende ce que l’on C’est un terme rarement utilisé seul.
doit faire, avoir une vue Il est habituellement suivi de terme
globale des besoins pour désignant l’aspect que l’on souhaite
éviter au maximum les travailler
mauvaises surprises

Design
Ce n’est pas le design au sens
visuel du terme. Ici cela
signifie la planification de
comment on va faire,
Programming comment on va structurer
C’est l’implementation de la notre solution pour répondre
solution. Ce n’est qu’à cette aux besoins
étape qu’on commence à coder.
Analyse, design et programming

Analyse Design Programming

Les informations La structuration La création de l’application


Nous allons commencer par apprendre à A partir des informations précédentes En utilisant le design, il est
analyser une expression de besoins. nous allons architecturer notre solution. possible de coder une
Comment trier les informations pour Définir les modules et leurs interactions application répondant aux
préparer le design besoins (hors scope de ce
cours)

Ce cours se concentre sur ce que l'analyse doit fournir comme information au design afin d'obtenir une
architecture et un squelette de code pour faciliter et accélérer au maximum la phase de codagte.
Comme dit précédemment c’est cette phase amont qui va faire qu’un projet est réussi ou qu’il échoue et
pourtant elle est encore top souvent négligée.
Free PowerPoint Templates
L’importance de la POO

Il faut se rendre à l’évidence que pour travailler dans le monde pratique et pragmatique de la création d’applications (Web, applications
mobiles, applications de bureau, développement de jeux…) les langages de programmation orientés objet sont prédominants
Pourquoi l’objet est devenu populaire

Maintenabilité et Une popularité constante


évolutivité Depuis les années 80 cette
Les couts de maintenances et popularité ne s’est pas
Même si on a essayé de modulariser
Point commun des les choses avec des subroutines ou de de plannification trop élevés démentie et de nombreux
langages objets ont vu le jour et
autres paradigmes déplacer le code dans des fonctions Le paradigme objet a permis de
sont très utilisés dans de
Avant l’objet les programmes pour faciliter la lecture et la mieux compatimentaliser le
maintenance, dès que le code code, facilité sa réutilisation, nombreux domaines
étaient une seule longue suite
d’instruction qui s’exécutait de grossissait ca devenait compliquer. optimiser sa maintenance et
manière linéaire son évolutivité

Free PowerPoint Templates


Le Paradigme Objet : C'est d'abord une histoire de classes
Les classes Boîte noire Communication

Dans programme orienté objets,


le code est comportementalisé Les autres parties du programme Une classe représente une partie
en petit bout, qu’on appelle n’ont pas à connaitre son du programme globale et c’est la
classe. Chaque classe possède ses fonctionnement interne communication et les interactions
propres datas et sa propre seulement ce qu’elle prend en entre toutes ces classes qui
logique qu’elle présente aux entrée et en sortie. C’est ce qu’on permettent au programme de
autres classes du programme à appelle fonctionner en boite noir. fonctionner.
travers son interface.
Comment passer des classes aux objets

Les classes sont les plans de construction

Une classe, c'est bien beau mais, au même titre qu'un plan de
construction pour une maison, intrinsèquement cela ne sert à rien !
Ce qu'il faut pour que le programme fonctionne c'est d'avoir des
objet qui soient construits en suivant ces plans et qui existeront en
mémoire pendant la durée de vie du programme

L'objet est le produit fini

La classe est la description d'un objet. Un objet est une instance


d'une classe. Pour chaque instance d'une classe, le code est le même,
seules les données sont différentes à chaque objet.
Comprendre les classes

Comment fait-on le découpage


Cela ne se fait bien entendu pas au hasard.
Les classes que l’on crée doivent représenter
des notions ou des éléments du problèmes
que l’on essaie de résoudre

 Des objets physiques :


• Personnes, Véhicules…
 Des éléments immatériels du quotidien :
• Compte en banque
 Des notions propres au problème :
• Une trame réseau, un packet IP
Exploration de l’analyse, de la
conception et du développement objet
Sujets couverts dans ce chapitre

Le cheminement de la conception logicielle

Les différentes manières d’aborder la gestion de projet

L’agilité vs le cycle en V

L’importance de l’analyse et ses limites


Contexte et motivation

La phase d’analyse logicielle est l'équivalent, en informatique, à la phase de


conception en ingénierie traditionnelle
• mécanique, civile ou électrique

Elle consiste à réaliser entièrement le produit sous une forme abstraite avant la
production effective.
• L'utilisation d'outils CASE (Computer-aided software engineering) est souvent nécessaire
sur les gros systèmes

Le livrable en fin d’analyse est normalement une architecture logicielle


• L'architecture logicielle constitue le plus gros livrable d'un processus logiciel après le
logiciel lui-même
• La phase d’analyse devrait consommer autour de 40 % de l'effort total de développement
et devrait être supérieure ou égale, en effort, à la phase de codage
La conception logiciel
Analyse et reformalisation Structuration de la solution
Après clarification et relecture avec le Une fois les grandes parties
client vous avez une vue d’ensemble définies, vous pouvez architecturer
du développement à faire la solution plus finement

Expression des besoins


Le client vous soumet ses Implémentation
besoins en l’exprimant selon Découpage et regroupement
son point de vue A partir de la vue d’ensemble vous Les diagrammes sont faits, on
pouvez découper en grande partie les sait ce qui doit être
besoins de la solution implémenter, on le fait

Cette conception est valable un pour tout les types de développement logiciel et selon les méthodologies certaines étapes
vont se répéter (découpage – structuration – implémentation notamment).
Qu’est ce que la conception objet

La conception objet essaie de se


rapprocher le plus possible du réel.

En POO on considère que chaque brique


du logiciel est une « entité » propre
• Elle a sa logique (= son comportement)
• Ses datas (= son état)

Le logiciel fonctionne grâce à la


communication entre ces entités
Résumé du processus Analyse Design Développement

La conception objet commence dès la phase d’analyse et se continue pendant celles de


découpage et de structuration
• à la fin on a défini les CLASSES qui seront à implémenter durant la phase suivante.

Dans la phase de développement on code effectivement les classes dans le langage choisi.
• Tout ce qui ressort de la phase précédente est pour la plupart du temps agnostique du langage
• Une même analyse peut être utilisée pour développer en C++, java, C#...

En runtime grâce à ces classes on peut créer ce qu’on appelle un OBJET

Ces étapes aident à décomposer la solution en petite partie ce qui permet entre-autre
d’avoir un code maintenable et compréhensible.
Quelle est LA façon de développer une application

Les méthodologies
Une grande question revient fréquemment : y a-t-il une
seule méthode ou une seule façon de faire pour créer une
application?
La réponse est malheureusement non.
Il existe un certain nombre de méthodologies qui vous
permettent de le faire mais leur efficacité, leur pertinance
et leur facilité de mise en œuvre va entièrement dépendre
de votre situation et de vos besoins
Lien entre paradigme et gestion de projet

Click
Click Icon
Icon To
To Add
Add Image
Image Click
Click Icon
Icon To
To Add
Add Image
Image
Il y a d’un côté la
méthodologie de gestion de Selon la méthodologie
projet et de l’autre le choisie certains
paradigme logiciel choisi
paradigmes sont plus
pour développer sa solution
adaptés que d’autre
Gestion de projets : Cascade vs Agile
Cascade
Approche en cascade

Approche classique des gros projets.


C’est un processus linéaire où chaque
étapes est validée avant de passer à la
prochaine. On rédige les besoins
clients, on passe ensuite aux besoins
fonctionnels, puis la réalisation, les
tests et enfin la livraison. Et c’est une
bonne approche pour les gros projets
de génie civil par exemple car vous
verrez rarement un client venir voir
son architecte en plein milieu des
travaux de construction et dire
« finalement je veux un looping au
milieu de mon pont » ou alors « je le
veux sur 2 étages avec un étage dédié
pour les poneys »
Agile

Approche itérative

Mais vous découvrirez vite qu’en


informatique ca arrive. « Finalement
mon site je veux qu’il soit accessible à
tel type de public », « Après réflexion je
pense que mon application ne sera pas
un client lourd sur PC mais plutôt une
appli mobile »…

On s’est donc aperçu que ce qui


marchait bien pour construire un pont
ne marchait pas du tout dans le monde
du développement informatique.
Parfois c’est la faute à bibi

Pourtant je pensais que ça marchait


Le super model que vous aviez prévu
d’implémenter ne marche pas comme vous le
vouliez
01

Mince j’ai pas cette fonctionnalité


dans l’API que j’ai choisie
02 Les protocoles des différentes APIs ne fonctionnent
pas ensemble

03 Ah vous voulez que ce soit une


application sécurisée

Le framework n’a pas le niveau de sécurité
nécessaire.
La liste est longue
Impossible de lister toutes les erreurs auxquelles
vous allez être confrontés à chaque nouveau projet
on en fait de nouvelles
Passage de l’analyse au codage

On a fini le design C’est là qu’intervient l’Agile


01 On a analysé en détail les besoins et on est
arrivé à la phase d’implementation. Plein
A force de se prendre les pieds dans le tapis on
a développé une méthodologie plus itérative et
02
d’entrain on commence à dérouler le design et récursive
coder les fonctionnalité prévues

La réalité nous rattrappe Un mode de fonctionnement flexible


03 Dès qu’on commence à écrire les premières
lignes de code on s’aperçoit que toutes les
Dans sa conception même cette approche prévoit
que l’analyse devra être reprise, qu’on rencontrera
04
phases amont ressemblent à des plaisanteries des bugs et qu’il faudra trouver des solutions
alternatives, que le client changera d’avis

Les limites de la méthode en cascade Grand succès


05 Pour toutes les raisons citées on est obligé de
revenir sur l’analyse et retravailler le design. La
Cette approche a été très bien accueillie et a
donné naissance à plusieurs méthodes et
06
rigidité de la cascade qui veut valider une étape framework vus précédemment.
une fois pour toute rend très difficile la
possibilité de rollback
Quelques exemples de méthodologies / méthodes (Liste non exhaustive)

Feature Driven Development


Développement itératif . Regoupe certaines des
meilleures pratiques de l’industrie, toutes Adaptative Software
centrées sur les besoins clients
Development
L’ancetre des methodologies agiles : considère
que l’état normal d’un développement doit
être l’adaptation continue du process aux
spécifications changeantes du client.

Extrem Programming
Méthode pensée pour les cas où
les spécifiations changent
fréquemment. Elle préconise des
release fréquentes avec des
Agile temps de développement courts.

(méthodologie)
Les spécifications et les
solutions évoluent
simultanément grâce à Scrum (méthode de type agile)
la collaboration continue Framwork Agile axé sur le développement logiciel.
de l’entreprise et de ses Pour une équipe de 3 à 9 personnes
clients
Tout se fait en continue

Analyse

La méthodologie agile part donc du


principe que le les étapes ne se font pas
en une seule fois et qu’il est possible de
revenir dessus même après les avoir
validées.
Design Au contraire le processus de création,
anciennement linéaire, se transforme en
une série de cycles itératifs « d’analyse
de design et de codage », chacun
s’étalant sur quelques semaines et non
pas des mois ou des années.
Une fois un cycle terminé, on passe soit
au suivant soit on le relance pour l’affiner
Développement et le compléter à chaque passage.

L’approche Agile
Approche prisée par le développement

Cette approche est parfaitement adaptée à


l’informatique, car ces types de projets sont par
nature évolutifs.

C’est à l’utilisation que les clients se rendent compte


des manques et des besoins supplémentaires.

L’évolution rapide des technologies nécessite qu’un


programme puisse être mis à jour et adapté
rapidement,
• des fois même pendant la phase d’implémentation.
Pourquoi est-elle si adaptée

il n’y a pas besoin d’avoir un design parfait avant de commencer à


coder.

Il n’est pas nécessaire de connaitre tous les recoins du cahier des


charges et avoir défini la totalité des fonctions avant de pouvoir
commencer à travailler.

Il faut simplement avoir une vue assez globale de ce que l’on veut
faire pour commencer à découper en grandes parties et définir une
stratégie de production.
La perfection n’est pas de ce monde

Évolutif Pas la peine de vouloir en faire trop


C’est prévu que les premières passes soient Si vous pensez que votre design est parfait
incomplètes et imparfaites et qu’on les du premier coup, soit vous êtes sur un micro
améliorera au fur et à mesure. Ce n’est pas la projet soit vous avez passé largement trop de
peine d’aller tout de suite dans les détails, il temps dessus d’une part et d’autre part vous
vaut mieux commencer par une vue globale et
aurez certainement quelques déception
coder un proto puis l’affiner petit à petit
quand vous commencerez à coder.

Pour résumer avec cette méthodologie vous ne visez pas la perfection pour commencer à coder, vous ne partez pas les
mains dans les poches non plus, mais vous essayer d’avoir quelque chose d’assez bien.
Architecture et services
Sujets couverts dans ce chapitre

Les design pattern

Qu’est ce qu’on entend par architecture d’application

Quelques exemples

Qu’est ce qu’un service


Les design pattern

Depuis les débuts de l’informatique, les


développeurs ont remarqué que les
problématiques de conception étaient
bien souvent les mêmes.

Et ils ont eu l’idée au lieu de réinventer


la roue à chaque fois, de conceptualiser
ces motifs de conception afin de
pouvoir les réutiliser.
Ce n’est pas des bouts de code magiques

Cette conceptualisation ne se traduit pas par du code directement

C’est plutôt une idée abstraite permettant de résoudre le problème


récurrent.
• Libre au développeur de l'implémenter dans son langage de prédilection.

Si on trouve de nombreux exemple de design patterns sous forme de


code, c’est parce qu’il s’agit d’exemples appliqués à tel ou tel langage.
• Cela permet d’expliquer ou de mieux faire comprendre le problème et sa
solution
Un concept qui provient du génie civil

Les design patterns sont à l’origine issue de l’architecture, en particulier


d’un concept de Christopher Alexander (1977/79).
• En 1987, Kent Beck et Ward Cunningham ont commencé à expérimenter l’idée
d’appliquer ces modèles à la programmation.

Les modèles de design ont gagné en popularité en informatique après


le livre Design Patterns : Elements of Reusable Object-Oriented
Software publié en 1994 par le “Gang of Four” souvent abrégé en
“GoF”.
• Erich Gamma,
• Richard Helm,
• Ralph Johnson
• John Vlissides
Quelles utilités

Pour accélérer le processus de développement en fournissant des


paradigmes de développement éprouvés.

Pour anticiper des problématiques qui peuvent ne devenir visibles


que plus tard dans la mise en œuvre.

Pour améliorer la lisibilité du code en fournissant une


standardisation.
A quel niveau

Cela peut être au niveau d’un module

D’un package

D‘une partie de l’application ou même l’application entière

De la totalité d’un système


Définition d’architecture logicielle

L’architecture logicielle (ou applicative) décrit d’une manière symbolique et


schématique les différents éléments d’un ou de plusieurs systèmes
informatiques

Notamment leurs interrelations et leurs interactions

Les deux objectifs principaux de toute architecture logicielle sont la réduction


des coûts et l'augmentation de la qualité du logiciel
• la réduction des coûts est réalisée par la réutilisation de composants logiciels et par la
diminution du temps de maintenance
• La qualité, par contre, est mesurée grâce à des normes (exemple : ISO/IEC 250102,3)
Architecture vs Spécifications

Les spécifications produites par l’analyse fonctionnelle décrit ce que doit


réaliser un système informatique

Le modèle d'architecture, produit lors de la phase de conception, se


concentre sur comment il doit être conçu pour à répondre aux spécifications.
• L'architecture fournit une feuille de route ainsi que les meilleures pratiques à suivre
pour créer une application bien structurée.
• C’est là qu’interviennent les Design Pattern

L’analyse décrit le « quoi faire » alors que l’architecture décrit le « comment


le faire ».
Quelques styles architecturaux

Layered Architecture
• Monolithic Applications

Database Centric

Pipeline

Object Oriented Architecture

Service Oriented Architecture


Quelques patrons de conception architecturaux

Multitier architecture

Model–view–controller

Domain-driven design

Blackboard pattern

Sensor–controller–actuator

Presentation–abstraction–control
AOS : Architecture Orientée Service
L’architecture orientée service représente un moyen technique
d’intégration des divers systèmes d’information de l’entreprise
• Elle considère chaque ressource informatique comme un service.
• Elle permet de construire les buildings blocks composant l'urbanisme du système

Un service est un composant clef de l'architecture orientée services.


• Il consiste en une fonction ou fonctionnalité bien définie.
• C'est aussi un composant autonome qui ne dépend d’aucun contexte ou service
externe.

Il est divisé en opérations qui constituent autant d'actions spécifiques


que le service peut réaliser.
SAAS : Software As A Service

SaaS est un moyen d'utiliser un logiciel proposé par un fournisseur


tiers à travers le réseau Internet
• L’application est hébergée sur les serveurs du fournisseur
• C’est à lui qu’incombe l’installation, la maintenance et l’évolution

C'est un modèle de vente et de distribution.

Quand on parle de SaaS, il s’agit d'applications autonomes


entièrement fonctionnelles qui fournissent un service métier.
Service class

Une classe service permet à un « client » d’interagir avec l’application à l’aide d’une fonctionnalité bien
définie

C’est donc une spécification avec une ou plusieurs implémentations


• réalisées par une ou plusieurs classes de service agissant sur les données

Les utilisateurs d’un service travaillent à partir de la spécification et ignorent les détails de
l’implémentation sous-jacente.

Le rôle de la couche d’intégration est de faire le lien entre les utilisateurs d’une spécification et une
implémentation particulière.

Une application doit être conçue comme un ensemble de services construits les uns à partir des autres en
vue de répondre aux spécifications détaillées.
Pour résumer

 La POO est un paradigme c’est-à-dire un ensemble de règles et de principes que suivent les langages
de programmation dits "Objets"
 Ces règles définissent le cadre dans lequel doivent être pensés les algorithmes qui vont servir à écrire
les programmes.
 Un algorithme est une suite finie d'étapes et d'opérations à effectuer pour obtenir, à partir de
données d'entrées, la solution d'un problème.
 Ce sont ces étapes qui doivent être traduites en langage informatique pour obtenir un
programme exécutable par un ordinateur.
 Dans le monde professionnel, il existe différentes méthodologies (notamment la cascade et l'itératif),
et pour implémenter ces étapes certaines méthodologies sont plus efficaces que d'autres.
 Dans la majeure partie des entreprises travaillant dans le développement informatique, ce seront des
méthodologies agiles (Scrum, XtremProgramming, FDD…) qui seront plébiscitées car beaucoup plus
adaptées aux contraintes de développement et au cycle de vie d'une application
Mais au final c’est quoi exactement un objet de toute façon

Donc si tout ce que nous faisons est orienté objet ou centré sur les objets, la première
question est de savoir : c’est quoi exactement un objet
La suite au prochain épisode

Vous aimerez peut-être aussi