Vous êtes sur la page 1sur 16

Analyse et conception

* Qu'est ce qu'une instance, un objet, une classe, polymorphisme,


l'hritage ... (bref notions de base de la POO)
Une instance, c'est tout simplement le rsultat d'une instanciation. Une instanciation, c'est le
fait d'instancierune classe. Instancier une classe, c'est se servir d'une classe afin qu'elle
nous cre un objet. En gros, une instance est un objet.
Je suis sr que vous savez ce que c'est. D'ailleurs, vous en avez pas mal ct de vous : je
suis sr que vous avez un ordinateur, une lampe, une chaise, un bureau, ou que sais-je
encore. Ce sont tous des objets. En programmation, les objets sont sensiblement la mme
chose.
Une classe est une entit regroupant des variables et des fonctions. Chacune de ces
fonctions aura accs aux variables de cette entit ne classe est donc un regroupement
logique de variables et fonctions que tout objet issu de cette classe possdera.
Quand on parle d'hritage, c'est qu'on dit qu'une classe B hrite d'une classe A. La
classe A est donc considre comme la classe mre et la classe B est considre comme
la classe fille. Lorsqu'on dit que la classe B hrite de la classe A, c'est que la classe
B hrite de tous les attributs et mthodes de la classe A. Si l'on dclare des mthodes
dans la classe A, et qu'on cre une instance de la classe B, alors on pourra appeler
n'importe quelle mthode dclare dans la classe A du moment qu'elle est
publique.
Le polymorphisme est un moyen de manipuler des objets htroclites de la mme manire,
pourvu quils disposent dune interface commune
Dans la programmation orient objet, le polymorphisme est utilis en relation avec les
fonctions, les mthodes et les oprateurs. Des fonctions et des mthodes de mmes noms
peuvent avoir des comportements diffrents ou effectuer des oprations sur des donnes de
types diffrents. Lon distingue 2 types de polymorphisme, la surcharge et la redfinition.
La surcharge[modifier | modifier le wikicode]
La surcharge est une possibilit offerte par certains langages de programmation qui permet
de choisir entre diffrentes implmentations d'une mme fonction ou mthode selon le
nombre et le type des arguments fournis.
Le polymorphisme ad hoc ne doit pas tre confondu avec le polymorphisme d'inclusion des
langages objets, permis par l'hritage de classe et la redfinition de mthode (overriding
en anglais).
La surcharge peut tre statique (le choix de l'implmentation est alors fait en fonction du
nombre d'arguments et de leur type statique dclar la compilation) ou dynamique (le
choix de l'implmentation est alors fait en fonction du type dynamique des arguments
constat l'excution). La surcharge dynamique est galement appele dispatch .
La redfinition[modifier | modifier le wikicode]

La notion de polymorphie est trs lie celle dhritage. Grce la redfinition, il est
possible de redfinir une mthode dans des classes hritant dune classe de base. Par ce
mcanisme, une classe qui hrite des mthodes dune classe de base peut modifier le
comportement de certaines mthodes hrites pour tre adaptes aux besoins de la classe
fille. Contrairement la surcharge, une mthode redfinie doit non seulement avoir le mme
nom que la mthode de base, mais le type et le nombre de paramtres doivent tre
identiques ceux de la mthode de base.
* Citer les avantages des gnriques
* Citer des exemples design patterns et les expliquer brivement
* Quels sont les dangers de l'heritage multiple ? Combien de niveaux
d'heritage maximum ?
En informatique, lhritage multiple est un mcanisme de programmation oriente
objet dans lequel une classe peut hriter de comportements et de fonctionnalits de plus
d'une super-classe. Il s'oppose l'hritage simple, dans lequel une classe hrite d'une
unique super-classe.
L'hritage multiple
+ Rien prvoir
+ Il y a toujours une classe parente hypothtique (hritage)
-- Le cblage doit tre ralis aprs coup chaque utilisation
-- Les variables ne peuvent pas tre virtuelles

* La surcharge des operateurs, avantages et inconvenients ?

La surcharge d'oprateur permet aux oprateurs du C++ d'avoir une signification spcifique
quand ils sont appliqus des types spcifiques. Les oprateurs surchargs sont un sucre
syntaxique pour l'appel des fonctions :
Quel est l'avantage de surcharger un oprateur ?
Surcharger les oprateurs standards permet de tirer parti de l'intuition des utilisateurs de la
classe. L'utilisateur va en effet pouvoir crire son code en s'exprimant dans le langage du
domaine
plutt
que
dans
celui
de
la
machine.
Le but ultime est de diminuer la fois le temps d'apprentissage et le nombre de bogues.

Quelques exemples de surcharge d'oprateur


Parmi les nombreux exemples que l'on pourrait citer :

myString + yourString pourrait servir concatner deux objets string

myDate++ pourrait servir incrmenter un objet Date

a * b pourrait servir multiplier deux objets Number

a[ i ] pourrait donner accs un lment contenu dans un objet Array

x = *p pourrait drfrencer un pointeur intelligent qui pointerait en fait sur un


enregistrement sur disque - le drfrencement irait chercher l'enregistrement sur le
disque, le lirait, et le stockerait dans x.

* Qu'est-ce que la complexit algorithmique ?


* Qu'est-ce que UML ?
UML, cest lacronyme anglais pour Unified Modeling Language . On le traduit par
Langage de modlisation unifi . La notation UML est un langage visuel constitu dun
ensemble de schmas, appels des diagrammes, qui donnent chacun une vision
diffrente du projet traiter. UML nous fournit donc des diagrammes pour reprsenter le
logiciel dvelopper : son fonctionnement, sa mise en route, les actions susceptibles dtre
effectues par le logicie
* Qu'est-ce qu'un CVS? un SVN ?
Technologies
* Qu'est-ce que le 2.0 ?
L'expression Web 2.0 dsigne l'ensemble des techniques, des fonctionnalits et
des usages qui ont suivi la forme originelle du web, www ou World Wide Web 1,
caractrise par plus de simplicit et d'interactivit (sociabilit)
* Qu'est-ce que le Cloud ?
le cloud computing cest de pouvoir utiliser des ressources informatiques sans les
possder
* Qu'est-ce que la virtualisation ?
La virtualisation est un mcanisme informatique qui consiste faire fonctionner
plusieurs systmes, serveurs ou applications, sur un mme serveur physique. La
virtualisation est un composant technique cl dans le Cloud Computing.
* Qu'est-ce que le Big data ?
Le Big Data fait rfrence l'explosion du volume des donnes dans l'entreprise et
des nouveaux moyens technologiques proposs par les diteurs, en particulier de
la Business Intelligence,
* Citer une alternative Microsoft Office ?
* Quel est le principal apport de de l'usb3 par rapport l'usb2 ?
* Quelle est la version actuelle d'HTML ?

Compilation
* Comment vous utilisez un compilateur ? A quoi servent
les options de compilation ?
* Qu'est-ce que la compilation, la cross-compilation, ... ?
* Qu'elle est la diffrence entre un assembleur et un
compilateur ?

Java
* Qu'est-ce qu'un gridBagLayout
* Qu'est-ce qui manque a Java (resp C++) que vous
trouvez dans d'autres langages ?

Systme
* Citer quelques distributions de Linux
* Quelles sont les principales differences entre threads
et processus, et dans quel cas preferer l'un a l'autre ?
* Quels sont les problemes classiques de l'utilisation des
sockets ? des threads ? de la memoire partagee ?
* Que connaissez-vous pour partager de l'information
entre deux processus ?
* Qu'est-ce qu'un noyau ? Qu'elle est la diffrence entre
un noyau monolithique et un micro-noyau ?
* Citer les diffrences entres les systmes de fichiers
FAT16, FAT32, NTFS, EXT2, EXT3 ...
* Expliquer la journalisation
* Qu'est ce que le swap ?
* Qu'est ce que LVM ?
* A quoi sert un bootloader ?
* Citer 3 environnements de bureaux sous Linux

Graphique

* Qu'est ce que Qt, SDL, Cocoa ?...

Rseaux
* Qu'est ce qu'un DNS, un DHCP, un firewall, un proxy, ...
* Citer un exemple de protocole utilis pour :
administrer un serveur, uploader un fichier dessus,
l'envoi/rception de mail, accder une page web...
* Donner les numros de ports par dfaut pour les
protocoles suivant : http, https, ftp, ssh ...

Base de donnes
* Qu'est-ce qu'un SGBD ?
* Qu'est-ce qu'une vue ?

Cryptographie
* Expliquez le principe cl publique/cl prive
* Quel est le principal apport de WPA par rapport au
WEP

Divers & geekeries


* Les daltoniens representent plus de 8% de la
population. Comment faire pour developper une IHM
convenant a tout le monde ?
* Combien de couleurs au max dans une IHM ?
* Que signifie RTFM ?
* Qui est Richard Stallman, Dennis Ritchie ?...
* Que signifie GNU ?
* Quel est l'quivalent de l'Appstore pour Android ?
* Qu'est-ce que Latex ?

Questions gnrales:

Qu'avez-vous appris cette semaine ?

Qu'est ce qui vous motive ou vous intresse dans le


dveloppement ?

Quel a t le dernier dfi technique que vous avez expriment et


comment l'avez-vous rsolu ?

Quelles considrations en terme d'UI, Scurit, Performance, SEO,


Maintenabilit ou Technologie faites-vous lorsque vous concevez une
application web ou site ?

Parlez-moi de votre environnement de travail prfr.

Avec quels logiciels de gestion de versions tes-vous familier?

Pouvez-vous dcrire comment vous travaillez (votre workflow)


lorsque vous crez une page web ?

Si vous aviez 5 feuilles de style diffrentes, de quelle faon les


intgreriez-vous le mieux dans un site ?

Pouvez-vous dcrire la diffrence entre amlioration progressive et


dgradation gracieuse ?

Comment optimisez-vous les performances de vos pages web


(assets/ressources) ?

Combien de ressources diffrentes la fois un navigateur peut-il


tlcharger partir d'un mme domaine ?
o Quelles sont les exceptions ?

Donnez 3 faons qui permettent de rduire le temps de chargement


d'une page (peru ou rel).

Si vous commencez travailler sur un projet existant, o votre


prdcesseur a utilis des tabulations pour indenter son code et que
vous utilisez des espaces, que faites-vous ?

Dcrivez comment vous dvelopperiez un simple diaporama

Quels outils utilisez-vous pour tester la performance de votre code ?

Si vous pouviez matriser parfaitement une technologie cette anne,


laquelle serait-elle ?

Expliquez l'importance des standards et des organisations les


dictant.

Qu'est-ce que le FOUC (flash of unstyled content) et comment


l'vitez-vous ?

Expliquez ce que sont ARIA et les lecteurs d'crans, et comment


rendre votre site internet accessible

Expliquez quelques-uns des pour et contre des animations CSS par


rapport aux animations JavaScript

[ ]
Questions sur HTML :

Que fait un doctype ?

Quelle est la diffrence entre les modes standard et quirks ?

Quelles sont les diffrences entre HTML et XHTML ?

Y a-t-il des problmes envoyer des pages avec le ContentType application/xhtml+xml ?

Comment servez-vous une page avec du contenu multilingue ?

quoi devez-vous faire attention quand vous designez ou


dveloppez des pages pour des sites multilingues ?

quoi les attributs data- servent-ils ?

Si l'on considre que HTML5 est une API Web ouverte, quelles sont
les briques de base de HTML5 ?

Dcrivez la diffrence entre cookie, sessionStorage, et localStorage.

Dcrivez la diffrence entre <script>, <script async> et <script


defer>.

Pourquoi est-ce gnralement une bonne ide de positionner


les <link> l'intrieur de <head></head> et les <script>juste
avant </body>? Connaissez-vous des exceptions ?

Qu'est-ce que le rendu progressif ?

[ ]

Questions sur CSS :

Quelle est la diffrence entre les classes et les IDs en CSS ?

Quelle est la diffrence entre un "reset" et une "normalisation" en


CSS ? Lequel choisiriez-vous et pourquoi ?

Dcrivez le positionnement flottant et son fonctionnement.

Dcrivez le z-index et comment le contexte d'empilement se


forme ?

Quelles sont les diffrentes mthodes de "clearing" des lments


flottants, et laquelle est approprie pour chaque contexte ?

Expliquez ce que sont les "sprites" CSS et comment vous les


implmenteriez sur une page ou un site.

Quelles sont vos techniques favorites de remplacement d'images, et


comment les utilisez-vous ?

Quelle approche choisiriez-vous pour rparer des bugs au niveau du


CSS spcifique certains navigateurs ?

Comment servez-vous vos pages pour les navigateurs aux


fonctionnalits rduites ?
o Quelles techniques/procds utilisez-vous ?

Quelles sont les diffrentes manires de masquer du contenu (en le


laissant disponible pour les lecteurs d'cran) ?

Avez-vous dj utilis un systme de grille, et si oui, lequel prfrezvous ?

Avez-vous dj implment des "media queries", ou des "layouts


CSS" spcifiques aux mobiles ?

Avez-vous dj touch au style d'un SVG ?

Comment optimisez-vous vos pages pour l'impression (le print) ?

Quelques astuces pour crire du CSS efficacement ?

Quels sont les avantages/dsavantages de l'utilisation des


prprocesseurs CSS ? (SASS, Compass, Stylus, LESS)

o Si vous avez un avis, dcrivez ce que vous aimez et n'aimez


pas des prprocesseurs que vous avez utilis.

Comment implmenteriez-vous un design qui utilise des polices de


caractres non standards ?

Expliquez comment un navigateur dtermine quels lments


correspondent un slecteur CSS.

Expliquez ce que vous avez compris du modle de boite (box model)


et comment implmenteriez vous une mise en page avec des
modles de boite diffrents.

Qu'est-ce que * { box-sizing: border-box; } fait ? Quels sont ses


dsavantages ?

Listez autant de valeurs que vous pouvez pour la proprit display.

Quelle est la diffrence entre inline et inline-block ?

Quelle est la diffrence entre les lments


ayant relative, fixed, absolute et static comme position ?

Le 'C' dans CSS veut dire Cascade (Cascading). Comment la priorit


est-elle dfinie lors de l'assignement de styles (exemples) ?
Comment pouvez-vous utiliser ce systme votre avantage ?

Quels frameworks CSS avez-vous utilis localement, ou en


production ? Comment feriez-vous pour les changer/amliorer ?

Avez-vous expriment le rcent flexbox ?

En quoi le "responsive design" est diffrent du "adaptive design" ?

Avez-vous dj travaill avec des images "retina" ? Si oui, quel


moment et quelles techniques avez-vous utilises ?

Y a-t-il des raisons particulires pour lesquelles vous voudriez


utilser translate() plutt que position: absolute ou vice-versa ? Et
pourquoi ?

[ ]
Questions sur JS :

Expliquez la dlgation d'vnement.

Expliquez comment fonctionne this en Javascript.

Expliquez comment fonctionne l'hritage de prototype.

Comment testez-vous votre code Javascript ?

Que pensez-vous d'AMD par rapport CommonJS ?

Expliquez pourquoi ce qui suit n'est pas une IIFE (Immediately


Invoked Function Expression) : function foo(){ }();.
o Qu'est-ce qu'il faut changer pour faire une IIFE correcte ?

Quelle est la diffrence entre une variable null, undefined et non


dclare ?
o Comment feriez-vous pour vrifier chacun de ces tats ?

Qu'est-ce qu'une "closure" et comment/pourquoi en utiliser une ?

Quelle est l'utilisation typique d'une fonction anonyme ?

Comment organisez-vous votre code ? (pattern modulaire, hritage


classique ?)

Quelle est la diffrence entre des objets htes et des objets natifs ?

Diffrence entre: function Person() {}, var person = Person() et var


person = new Person() ?

Quelle est la diffrence entre .call et .apply ?

Expliquez Function.prototype.bind ?

Comment optimisez-vous votre code ?

Pouvez-vous expliquer comment fonctionne l'hritage en


Javascript ?

Quand utiliseriez-vous document.write() ?

Quelle est la diffrence entre dtection de "feature", infrence de


"feature" et l'utilisation du "User-Agent" ?

Expliquez ce qu'est AJAX avec autant de dtails que possible.

Expliquez comment fonctionne JSONP (et pourquoi ce n'est pas


rellement de l'AJAX).

Avez-vous dj utilis des "templates" en Javascript ?


o Si oui, quelles librairies avez-vous utilises ?

Expliquez le phnomne de "hoisting".

Dcrivez le "event bubbling".

Quelle est la diffrence entre un "attribut" et une "proprit" ?

Pourquoi tendre des objets natifs de Javascript n'est-il pas une


bonne ide ?

Pourquoi tendre des objets natifs est-il une bonne ide ?

Quelle est la diffrence entre les vnements "document load" et


"document ready" ?

Quelle est la diffrence entre == et === ?

Expliquez la politique d'origine commune (same-origin policy) et ses


implications en JavaScript.

Expliquez les patterns d'hritage en JavaScript.

Faites fonctionner ceci :

[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]

Qu'est ce que l'oprateur ternaire ? Qu'est-ce que ce mot indique ?

Qu'est-ce que "use strict";? Quels sont les avantages et


dsavantages de son utilisation ?

Crez une boucle for qui se rpte 100 fois et affichez "fizz" aux
multiples de 3, "buzz" aux multiples de 5 et "fizzbuzz" aux
multiples de 3 et 5.

Pourquoi il est en gnral prfrable de laissez le 'scope' global d'un


site tel quel et ne jamais y toucher ?

Pourquoi utiliseriez-vous quelque chose comme l'vnement load ?


Est-ce que cet vnement a des avantages ? Connaissez-vous des
alternatives, et pourquoi les utiliseriez-vous ?

Expliquez ce qu'est une application mono-page (Single Page


Application) et comment feriez-vous pour qu'elle soit optimise pour
le rfrencement (SEO).

Quelle est l'tendue de votre exprience avec les "Promises" et/ou


leurs "polyfills" ?

Quels sont les pour et contre de l'utilisation des "Promises" la


place des "callbacks" ?

Quel est le rsultat de :

["1","2","3"].map(parseInt);
[ ]
Questions sur le rseau

Pourquoi est-il prfrable de disposer ses assets sur des domaines


diffrents ?

Faites de votre mieux pour dcrire le processus partir du moment


o vous tapez l'URL d'un site internet jusqu'au moment o la page a
finit de charger.

Quelle est la diffrence entre "Long-Polling", "Websockets" et les


vnements "Server-Sent" ?

Expliquez les enttes de requtes et rponses suivant :


o Diffrences entre Expires, Date, Age et If-Modified-...
o Do Not Track
o Cache-Control
o Transfer-Encoding
o ETag
o X-Frame-Options

Quelles sont les diffrentes actions (verbes) HTTP ? Listez toutes


celles que vous connaissez et expliquez-les.

[ ]
Questions sur la programmation :

Quelle est la valeur de foo ?


var foo = 10 + '20';
Comment feriez-vous marcher ceci ?
add(2, 5); // 7
add(2)(5); // 7
Que retourne ce code ?
"je suis un bouffeur de lasagne".split("").reverse().join("");
Que retourne window.foo ?
( window.foo || ( window.foo = "bar" ) );
Qu'affichent les deux alertes ci-dessous ?
var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);
Quelle est la valeur de foo.length ?
var foo = [];
foo.push(1);
foo.push(2);
[ ]
Questions pour le fun :

Quel est le truc le plus cool que vous ayez programm, de quoi tesvous le plus fier ?

Quelles sont les parties favorites des outils de dveloppement que


vous utilisez ?

Avez-vous des projets chouchous ? Quel genre ?

Quelle est votre fonctionnalit favorite dans IE ?

Comment voulez-vous votre caf ?

1.1 Dfinition d'un ERP


L'ERP vient de langlais Enterprise Ressource Planning .
On utilise parfois dans le monde francophone la dnomination PGI (Progiciel de gestion intgr) mais
la terminologie anglo-saxonne prime.
Un ERP rpond aux caractristiques suivantes :

Il mane dun concepteur unique

En cas dimpact dun module, linformation est mise jour en temps rel dans lensemble des
autres modules associs

Cest un systme qui garantie la piste daudit : il est facile de retrouver et danalyser lorigine
de chaque information

Il peut couvrir lensemble du Systme dInformation de lentreprise (sauf si lentreprise ne


choisit dans un premier temps dimplmenter que certains modules de l'ERP)

Il garantie lunicit des informations quil contient puisquil na quune seule base de donnes
au sens logique.

La nouvelle loi de Sylvia Pinel permet de louer ses enfants. C'est un des intrts de ce dispositif
fiscal par rapport au Duflot, avec une rduction d'impt plus importante si on s'engage sur une dure
plus longue.

Quel primtre de gestion couvre un ERP ?


La vocation dun ERP est d'homogniser le Systme d'Information de l'entreprise avec un outil
unique qui est capable de couvrir un large primtre de gestion, c'est--dire :

La gestion des achats

La gestion des ventes

La gestion comptable : comptabilit client, fournisseur, immobilisations, personnel

Le contrle de gestion

La gestion de production (planification, ...)

La gestion des stocks (logistique)

Un ERP est sub-divis en modules qui rpondent chacun un des domaines de gestion lists cidessus. On dit aussi que lERP est constitu de modules fonctionnels, chacun couvrant un primtre
de gestion de lentreprise. Concrtement, par exemple, la saisie d'une vente gnre automatiquement
une criture comptable en partie double dans le journal des ventes avec calcul automatique de la TVA
collecte. Le grand livre et le compte de rsultat sont automatiquement impacts.
Les diffrents environnements de travail dun ERP
Un ERP contient gnralement trois environnements de travail :

Un environnement de dveloppement qui permet dadapter le progiciel standard des


besoins spcifiques de lentreprise.

Un environnement de test dit encore environnement de recette qui permet de raliser


des simulations. Ces simulations permettent de tester de nouveaux paramtrages et de
vrifier le fonctionnement correct du progiciel par rapport un processus de gestion donn
(une vente, un achat, une sortie de stock, )

Un environnement de production qui correspond au progiciel utilis par les gestionnaires


de lentreprise au quotidien.

Le travail en environnement de test est pralable au passage lenvironnement de production.


La phase de tests est souvent appele recette informatique ou encore recette.

Avant la mise en place d'un ERP

Avant de mettre en place un ERP, chaque service avait son propre systme dinformation. Pour faire
le lien entre ces diffrents systmes, les situations suivantes se produisaient :

Double voire triple saisie des mmes informations dans des systmes dinformation distincts

Au mieux, lentreprise faisait dvelopper des interfaces informatiques entre ses diffrents SI

Consquences nfastes :
En cas de double saisie, on constatait un nombre lev derreurs et dincohrences entre les
diffrents systmes dInformation. En cas dinterface entre diffrents SI, la mise jour ne se faisait
pas en temps rel. Des dperditions de donnes survenaient parfois, du fait dun plantage
informatique au moment du transfert de donnes. Des erreurs humaines survenaient aussi
rgulirement (transfert du mauvais fichier, doublons dus deux transferts successifs malencontreux
) Dans certaines grandes entreprises, des contrleurs de gestion taient spcifiquement
embauchs pour lanalyse et la correction des incohrences entre ces systmes dinformation.
Par exemple, chez un grand constructeur de matriel informatique, un analyste des stocks devait
rconcilier les carts entre le systme enregistrant les entres et les sorties physiques de stock dun
ct et les critures comptables correspondantes de lautre.
Des carts de plusieurs dizaines de milliers deuros taient rgulirement constats et devaient tre
expliqus puis corrigs. Ce mode de fonctionnement cotait trs cher lentreprise et est devenu
inacceptable.
Pour mettre fin cette situation, les entreprises ont dcid dimplmenter un ERP.
Globalement, les bnfices dun ERP pour lentreprise sont les suivants:

Eviter la redondance dinformations entre diffrents SI de lentreprise.

Disposer dun outil multilingue et multidevises (trs adapt aux multi-nationales)

Eviter des restitutions dinformations divergentes entre diffrents services et donc apaiser les
conflits qui en rsultaient

Une meilleure coordination des services et du coup un meilleur suivi du processus de


commande qui inclut la prise de commande, lenregistrement dune sortie de stock,
lexpdition de la commande et lmission dune facture

Une meilleure matrise des stocks

Une normalisation de la gestion des Ressources Humaines, en particulier pour les


entreprises qui grent de nombreuses entits, parfois gographiquement disperses

Dfinition du Data Warehouse

Le Data Warehouse, ou entrept de donnes, est une base de donnes ddie au stockage
de l'ensemble des donnes utilises dans le cadre de la prise de dcision et de l'analyse
dcisionnelle. Le Data Warehouse est exclusivement rserv cet usage. Il est aliment en
donnes depuis les bases de production grce notamment aux outils d'ETL Extract Transform
Load.

Le coeur de Spring est compos de Spring Core : un conteneur qui implmente le motif de conception
IoC (Inversion of Control). Ce conteneur prend en charge la cration, la gestion du cycle de vie et les
dpendances des objets qu'il gre.
La dfinition de ces objets est faite dans la dclaration du contexte de Spring dans un fichier de
configuration XML ou partiellement ralise en utilisant des annotations.
Pour mettre en oeuvre certaines fonctionnalits, Spring a recourt la programmation oriente aspect
(AOP : Aspect Oriented Programming).