Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
Extensible Markup Language

Extensible Markup Language

Catégorie:Normes et standards informatiques Catégorie:XML XML (Extensible Markup Language ou langage de balisage extensible) est un standard du World Wide Web Consortium qui sert de base pour créer des langages balisés spécialisés; c'est un « méta langage ». En ce sens XML permet de définir un vocabulaire et une grammaire associée sur base de règles formalisées. Il est suffisamment général pour que les langages basés sur XML, appelés aussi dialectes XML, puissent être utilisés pour décrire toutes sortes de données et de textes. Il s'agit donc partiellement d'un format de données. L'extensibilité de XML est principalement assurée par la notion fondamentale d'espaces de noms (NameSpace).

Objectifs et utilité

L'objectif initial de XML était de faciliter le partage de textes et d'informations structurées, par exemple au travers de l'Internet, en séparant le contenu (les données) du contenant (la présentation des données). Il constitue une simplification de SGML bien qu'il apporte des améliorations quant à la portabilité, notamment grâce à l'intégration d'Unicode. Les dialectes XML (XSLT, XML Schema, XHTML, RDF/XML, SOAP, SMIL, MathML, SVG) sont décrits de façon formelle : une structure de données simple est définie avec une DTD (Document Type Definition), une structure de données détaillée est définie avec un XML Schema ou tout autre DSDL (Document Schema Definition Languages, c'est-à-dire language de description de schéma). Il existe des outils (qui peuvent être gratuits ou libres) permettant la manipulation de ces définitions : les processeurs XML [http://www.w3.org/XML/#software] . La disponibilité d'une syntaxe standard et d'outils de manipulation réduit significativement le coût du cycle de développement, permettant à des programmes de modifier et de valider, sans connaissances préalables, des documents écrits dans ces langages. En effet, avant l'avènement du populaire langage généraliste de description de données qu'est XML, les concepteurs de logiciels avaient pour habitude de définir leurs propres formats de fichiers ou leurs propres langages pour partager les données entre programmes (à l'exception de quelques standards professionnels tels qu'EDIFACT). Ceci nécessitait de concevoir et de programmer des analyseurs syntaxiques dédiés.

Fonctionnement

Un fichier XML est un fichier texte. Le codage des caractères est défini dans la première déclaration du document. Par défaut il s'agit de UTF-8, une transcription binaire particulière de Unicode, un format qui diffère peu de l'ASCII (sur-ensemble). Le fichier XML est structuré en « éléments » à l'aide de « balises » qui marquent le début et la fin de chaque élément. Les éléments peuvent contenir du texte et éventuellement d'autres éléments (le mot « élément » est donc trompeur). L'ensemble des données du document XML est contenu dans un élément unique appelé « racine », élément qui contient tous les autres éléments. Outre les éléments et le contenu des éléments, on trouve aussi dans un document XML:
- des commentaires (qui ne font pas partie des données au sens strict) ;
- des instructions de traitement (directives données au processeur XML) ;
- des « appels » de caractère (pour coder des caractères qui n'existent pas dans le codage choisi pour le document tout entier) ;
- des « appels » d'entités (permet l'appel d'une entité nommée qui est une sorte de « macro » de texte).

Règles fondamentales

L'efficacité de XML dépend fortement des normes strictes qui régissent sa structure. Pour être considéré comme un document XML, un document doit être « bien formé », c'est-à-dire qu'il doit être conforme aux règles suivantes :
- Dans sa première déclaration, le document doit être identifié comme un document XML. Cette première déclaration est nommée le prologue. Il doit contenir des informations sur la version de XML utilisée, le codage des caractères (si nécessaire) et indiquer également si le fichier XML est associé à une DTD ou à un autre langage de définition de document (XML Schema, Relax NG Schematron) ou s'il est autonome.
- Un document XML ne doit avoir qu'un seul élément racine, tous les autres éléments sont contenus dans cet élément, aussi appelé lélément document.
- Chaque élément XML doit commencer par une balise ouvrante et se terminer par une balise fermante. Un élément vide peut être représenté par une
balise d'élément vide qui ressemble à ceci : <exemple/>; cette balise est considérée comme étant une balise ouvrante suivie d'une balise fermante. Ceci est utilisé pour éviter de devoir écrire <exemple></exemple> tout en conservant le bon formatage.
- La valeur d'un attribut doit être entre guillemets (simple « ' » ou double « " »).
- Les entités doivent être imbriquées et ne pas se recouvrir, c'est-à-dire qu'une entité ne doit pas commencer dans une entité et se terminer dans une autre. Il est à noter que XML est sensible à la casse. Par exemple, « <Exemple></Exemple> » est une paire bien formée alors que « <Exemple></exemple> » n'en est pas une. Contrairement au HTML, les balises XML indiquent ce que signifient les données et non la façon de les afficher (du moins par principe, chaque langage basé sur XML est libre de le suivre ou non). Quand un document XML est bien formé et conforme à la DTD auquel il est associé, ce document est qualifié de
valide. Un document XML peut être associé à des feuilles de style XSLT, feuilles qui permettent de générer de nouveaux documents contenants des informations provenant du document XML. Il est ainsi possible de générer des fichiers XML ayant une structure différente du document initial (transformation), mais aussi d'autres documents : requêtes SQL, pages HTML, etc. Un document XML peut aussi être affiché par certains navigateurs Web (par exemple Internet Explorer ou Mozilla) en utilisant une feuille de style CSS.

Utilisations actuelles

Le succès de XML s'explique aussi par la définition d'interfaces de programmation (API) standard pour les processeurs XML. Les API les plus largement utilisées sont :
- SAX utilisé pour les traitements de documents à la volée (cette API est utilisée pour des traitements au fur et à mesure de la réception d'un document XML),
- DOM utilisé pour les accès directs aux éléments d'un document XML, grâce à la construction d'un arbre logique complet contenant toute la structure du document XML (cette API est utilisée quand le document est entièrement disponible). DOM permet également de générer de nouveaux documents XML, en créant un arbre logique, qu'on transforme ensuite en document XML. Ces API sont les plus utilisées mais d'autres API existent, comme JAXP, JDOM et dom4J pour Java XML est également utilisé dans le cadre d'architectures de type SOA (
Service Oriented Architecture) pour les Web Services. Une grande partie de l'interface des navigateurs Firefox et Mozilla est construite avec des langages utilisant XML. OpenDocument est un standard XML émergent dans le domaine de la bureautique. Basé sur le format des premières versions d'OpenOffice.org, il permet maintenant l'interopérabilité avec d'autres applications comme KOffice.

Technologies en relation avec XML


- CSS
- Document Object Model
- DTD
- HTML
- Namespaces
- SGML
- Simple API for XML
- XPath

Dialectes XML

Voir aussi


- Base native XML
- UIML
- S-expression
- RSS
- ASN.1
- Parser
- Jedit, un éditeur multi-plateforme supportant XML grâce à des modules d'extension.

Liens externes


- [http://www.teluq.ca/inf6450/ Cours en ligne sur le XML à l'Université du Québec à Montréal]
- [http://www.w3.org/ Site web du W3C (en)]
- [http://www.oasis-open.org/home/index.php Site web du consortium OASIS (en)]
- [http://www.w3.org/XML/ Page d'accueil XML du W3C (en)]
- [http://www.yoyodesign.org/doc/w3c/xml11/ Recommandation XML 1.1 (fr)]
- [http://pages.videotron.com/fyergeau/w3c/xml10/REC-xml-19980210.fr.html Recommandation XML 1.0 (fr)]
- [http://fr.selfhtml.org/xml/ SELFHTML: XML (fr)]
- [http://www.editix.com Editeur XML multi-platformes] Un exemple d'éditeur XML
- [http://www.ultra-fluide.com/ressources/fr/semark/presentation.htm Marquage d'un contenu XML (fr)] à partir de lexiques externes (outil XSLT)
- [http://www.xml-dev.com:8080/tldp/http%3a//www.jesuislibre.org/docbook/xml/xml.xml XML: Principe et utilisation (fr)] ja:Extensible Markup Language ko:XML th:XML

Catégorie:Normes et standards informatiques

Catégorie:Informatique Catégorie:Normalisation


Catégorie:XML

Article principal : XML Catégorie:Langage balisé Catégorie:Format de données numériques ja:Category:Extensible Markup Language

Format ouvert

Catégorie:Format de données numériques Un format ouvert est un format de données interopérable et dont les spécifications techniques sont publiques et sans restriction d'accès ni de mise en œuvre, par opposition à un format fermé (loi française n° 2004-575 du 21 juin 2004).

Format ouvert/fermé et format propriétaire

Un format est dit propriétaire s'il a été élaboré par une entreprise, dans un but essentiellement commercial. Un format propriétaire peut être ouvert (le format PDF d'Adobe par exemple), ou fermé (le format '.doc' de Microsoft par exemple).

Les formats

Le format de données est la manière utilisée en informatique pour représenter et stocker des données. C'est une convention utilisée pour représenter des données, soit des informations représentant un texte, une page, une image, un son, un fichier exécutable, etc. Par exemple, si vous tapez ou éditez un article dans wikipedia, vous verrez qu'il existe une syntaxe pour faire votre mise en page, organiser les titres, mettre en gras etc. A l'affichage ensuite, vous ne verrez que des titres, du texte en gras, mais à l'édition vous verrez comment votre article est stocké de façon compréhensible par l'ordinateur. C'est un exemple de représentation des données, ouvert dans ce cas car la syntaxe est publique et consultable sur Syntaxe wikipédia.

Format ouvert

Un format de données est dit ouvert si son mode de représentation a été rendu public par son auteur et qu'aucune entrave légale ne s'oppose à sa libre utilisation (brevet, copyright, etc.). Les formats ouverts sont généralement créés dans un but d'interopérabilité. Un document enregistré dans un format ouvert sera indépendant du logiciel utilisé pour le créer, le modifier, le lire l'imprimer etc. C'est ce qu'on appelle l'interopérabilité : laisser libre choix du logiciel pour utiliser le document.

Format fermé

Un format de données est dit fermé si son auteur essaie, soit par la non-divulgation de son mode de réprésentation, soit par des entraves légales, d'en restreindre l'utilisation. Cela est généralement fait par des sociétés qui veulent empêcher que les fichiers créés avec leurs applications puissent être utilisés avec d'autres applications. Ainsi par exemple un simple document texte peut être enregistré dans un format fermé, format qui va imposer que quiconque voulant consulter ce document doive au préalable aquérir le logiciel adéquat, payant dans la plupart des cas, alors qu'en enregistrant ce même document dans un format ouvert, il aurait été interopérable.

Les principaux formats ouverts


- Portable Network Graphics
- Tagged Image File Format
- Ogg Vorbis
- Hypertext Markup Language
- XHTML
- Feuilles de style en cascade
- OpenDocument format
- Portable_Document_Format

Liens externes


- http://www.openformats.org : Projet collaboratif de documentation sur les formats ouverts et sur les enjeux techniques, politiques et économiques de leur usage
- http://www.w3.org/TR/ : Rapports techniques du W3C sur les formats de fichiers comme HTML, XHTML, XML...(anglais)
- http://formats-ouverts.org/ : Blog de Thierry Stoehr traitant des formats ouverts (et donc aussi des formats fermés)
- [http://www.legifrance.gouv.fr/WAspad/UnTexteDeJorf?numjo=ECOX0200175L article de loi] définissant les formats ouverts

W3C

World_Wide_Web_Consortium Catégorie:Sigle

Langages balisés

Les langages de balisage représentent une classe de langages spécialisés dans l'enrichissement d'information textuelle. Ils opèrent grâce aux balises, unités sémantiques délimitant chacune un ensemble à l'intérieur d'un fichier texte. L'inclusion de balises permet de transférer à la fois la structure du document et son contenu. Cette structure est compréhensible par un programme informatique, ce qui autorise un affichage personnalisé selon des règles pré-établies ; la typographie (en premier lieu la fonte) et d'autres éléments de présentation peuvent changer. On peut de plus inclure des éléments non-textuels.

Langages SGML

Les langages de balisage les plus utilisés sur le Web sont des langages dérivés de SGML.
- SGML
  - DocBook (SGML)
  - HTML
  - XML
    - DocBook (XML)
    - XHTML
    - XSL-FO

Balise HTML

Le langage à balises le plus couramment utilisé sur le World Wide Web est le HTML. En HTML, on utilise des balises pré-définies afin de préciser à l'intérieur d'un fichier texte des éléments tels les titres, les paragraphes, les acronymes, les citations.

Les éléments de blocs et les éléments en-ligne

On distingue les balises définissant un bloc des balises en-ligne par : ; le modèle de contenu : les éléments de bloc peuvent contenir à la fois données, éléments de bloc et éléments en-ligne ; les éléments en-ligne ne peuvent contenir que des éléments en-ligne et des données. «L'idée inhérente à cette distinction structurelle, c'est que les éléments de bloc créent des structures « plus grandes » que les éléments en-ligne.» ; le formatage : «Par défaut, les éléments de bloc sont formatés différemment des éléments en-ligne. En général, les éléments de bloc commencent sur une nouvelle ligne, et non les éléments en-ligne.» «Les feuilles de style fournissent les moyens de spécifier la restitution d'éléments arbitraires, y compris si l'élément est rendu comme étant de type bloc ou de type en-ligne.» L'ensemble des citations est tiré de la spécification standard HTML. [http://www.la-grange.net/w3c/html4.01/cover.html]

Dérive de la balise HTML

HTML n'était pas conçu pour inclure des concepts de présentation avancée, mais la structure d'un document, particulièrement une publication scientifique. Suite à son succès dans bien d'autres domaines, on a néanmoins utilisé au fur et à mesure des balises ne délimitant plus un ensemble sémantique. Par exemple, les deux balises table et font :
- « table » (balise délimitant un tableau) a servi à présenter à l'écran de manière originale un contenu non tabulaire.
- « font » définissait une police de caractères ou une couleur à utiliser pour une partie du texte. Cependant, un mouvement réclamant un bon usage de la balise HTML et l'utilisation d'autres moyens (comme les CSS) afin de séparer clairement structure et présentation a trouvé sa place sur le Web, et l'on reconsidère de plus en plus la balise HTML comme une unité sémantique.

Exemple

:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

On délimite la phrase « Lorem ipsum dolor sit amet, consectetuer adipiscing elit. » par la balise p (définissant un paragraphe) au moyen d'une balise d'ouverture (

) et une balise de fermeture (

). Cette phrase est inclue dans l'élément p, lui-même obligatoirement contenu dans l'élément (cet élément définit le début du corps du fichier HTML.)

XML

CSS Le XML pousse très loin la description sémantique d'un fichier, permettant de délimiter avec précision, par exemple dans une recette, les , le , les , etc. Afin d'exploiter un document XML écrit de cette façon, on utilise des feuilles XSLT permettant de transformer un document XML en un autre type de document XML. Toutefois, cette liberté dans le choix des balises permet à un fichier d'être écrit en XML sans pour autant délimiter des informations sémantiques : hors-contexte, la balise ne signifie rien, à moins de définir sa signification à l'intérieur d'un fichier de définition, appelé Doctype, associé au fichier XML. Microsoft utilise un format XML pour ses formats de fichier Microsoft Office.

Voir aussi


- TeX et LaTeX
- Wiki
- SGML
- PostScript et PDF Catégorie:Format de données numériques ja:マークアップ言語 ko:마크업 언어

Format de données

Le format des données est la manière utilisée en informatique pour représenter des données sous forme de nombres binaires. C'est une convention (éventuellement normalisée) utilisée pour représenter des données, soit des informations représentant un texte, une page, une image, un son, un fichier exécutable, etc. Lorsque ces données sont stockées dans un fichier, on parle de format de fichier. Une telle convention permet d'échanger des données entre divers programmes informatiques ou logiciels, soit par une connexion directe soit par l'intermédiaire d'un fichier.

Typologie

On distingue un format dont la spécification est publiquement accessible, un format ouvert, d'un format fermé dont la spécification est secrète. Un format fermé correspond généralement à un logiciel seul capable de pleinement l'exploiter. Une autre distinction s'opère entre un format normalisé, faisant l'objet d'une normalisation par une institution publique ou internationnale (ISO, W3C) et un format quelconque, qui peut devenir un standard de fait s'il est populaire. Un tel format est parfois normalisé par la suite.

Formats des nombres

Nombres entiers

Un nombre entier naturel est en général simplement représenté en binaire (en base 2), avec la règle de conversion classique. Lorsque l'on veut représenter un entier relatif, on réserve un bit pour désigner le signe (en général le bit le plus à gauche) ; on parle alors d'« entier signé ». La plupart du temps, les nombres négatifs seront codés selon la règle du complément à deux. Par exemple, avec un octet on peut représenter :
- les entiers naturels de 0 (00000000 en binaire) à 255 (11111111 en binaire)
- les entiers relatifs de -128 (10000000 en binaire) à -1 (11111111 en binaire) et de 0 (00000000) à 127 (01111111) ; on code donc avec un octet les entiers de -128 à +127. Voir l'article détaillé : Système binaire

Nombres fractionnaires

Pour les nombres fractionnaires, la convention de numération veut qu'en base n, « 0,a » désigne a·1/n (=a·n-1), « 0,0a » désigne a·1/n2 (=a·n-2)... Par exemple en base 10 (n = 10), « 0,005 » désigne 5·10-3. Ainsi, le nombre 0,001 en binaire (n = 2) désigne 1·2-3=0,125. Donc en informatique, la première solution consiste à attribuer un certain nombre de bits à droite aux puissances négatives de 2. Une autre solution consiste à considérer les nombres comme des caractères (du texte), et à utiliser par exemple le format ASCII. Cependant, cela ne peut concerner que le stockage : l'ordinateur ne pouvant appliquer que l'arithmétique binaire, il faut nécessairement les convertir en binaire pour le calcul. Voir l'article détaillé : Virgule flottante.

Formats de texte

Les textes sont formés de caractères en nombres finis (lettres, diacritiques, signes de ponctuation...). Il est donc simple d'attribuer un nombre à chaque caractère. Cette conversion caractère → nombre est définie par convention sous la forme d'une table, ou page de code. Les plus utilisés sont l'ASCII et l'Unicode. Les textes comprennent aussi de la mise en page (alignement des paragraphes) et de la mise en forme (type de police de caractère, taille...). La solution retenue en général consiste à définir des mots de commande, des instructions, séparées du texte par un caractère spécial. Ainsi, en HTML, les instructions sont appelées « balises » et sont mises entre des crochets <...> ; en LaTeX, les instructions sont introduites par une barre de fraction inversée \. De ce fait, certains caractères sont réservés aux instructions et ne peuvent plus faire partie du texte ; il existe alors des « codes d'échappement », ou bien des instructions spéciales permettant de les représenter. Le logiciel Microsoft Word a retenu une autre manière de stocker la mise en forme : les données (texte et images) sont mis en brut (sans mise en forme) dans le document, et la mise en forme est définie dans une partie du document appelée « saut de section » (section break). Le saut de section, hormis le fait de marquer un changement de mise en page (saut de colonne, saut de page), est une zone invisible contenant des pointeurs attribuant un formattage à une partie de la section. Cette solution se révèle très lourde et source de problèmes (corruption de documents) pour les documents très volumineux (plusieurs centaines de pages).

Formats d'image

La base de la représentation des images est la géométrie analytique.

Format carte de points

géométrie analytique

Un petit retour en arrière

En 1672, Isaac Newton démontre à l'aide du prisme que la lumière blanche procède de l'addition de toutes les couleurs (Newton dénombrera sept couleurs, nombre arbitraire et culturellement marqué). En 1839, l'année de la naissance de la photographie, Michel Eugène Chevreul publie un livre expliquant les effets optiques produits par les couleurs et leur juxtaposition, c'est-à-dire non pas la superposition couches colorées (filtres) ou le mélange de couleurs, mais l'effet produit par des couleurs différentes mises côte-à-côte et vues de loin. En 1869 (le 7 mai précisément, sans se connaître et sans avoir travaillé ensemble... une des grandes coïncidences de l'histoire), Louis Ducos de Hauron et Charles Cros proposent à la Société française de photographie un procédé de leur invention qui permet d'obtenir des clichés en couleurs. Tous ces travaux marqueront Georges Seurat, le créateur du pointillisme (ou néo-impressionnisme), et seront à l'origine de l'impression en couleurs ou encore de la télévision en couleurs. Il faudrait aussi parler des procédés textiles, notamment ceux de Jacquard, qui considèrent les images comme des matrices de points (l'industrie textile a d'ailleurs été la première à utiliser la programmation par cartes perforées). Tout ceci est à l'origine des images « en carte de point », ou en anglais, « bitmap ».

Les images à l'écran

On peut donc découper une image en points élémentaires, ou « pixel », et attribuer une couleur à ce pixel. La couleur est représentée par un nombre, la correspondance couleur → nombre étant faite par une « palette ». Il est inutile de donner les coordonnées des points : si l'on donne la largeur de l'image en nombre n de points, alors les n premiers points représentent la première ligne, les points n+1 à 2n représentent la deuxième ligne... Il suffit alors de fixer par convention l'ordre de balayage, en l'occurrence l'ordre de lecture occidental (de gauche à droite et de haut en bas). Ceci donne une image au format carte de points, souvent appelée image bitmap. C'est donc un canevas de points dont chacun se voit attribuer une valeur colorée. Les grandes différences entre les formats existants sont la profondeur de couleurs (1 bit : noir ou blanc, 8 bits : 256 couleurs, 24 bits : 16 millions de couleurs...) et le type de compression (sans compression, ou raw, avec une compression par motifs, avec une compression destructive...) Par exemple, prenons une carte noir et blanc (1 pour blanc, 0 pour noir) définissant une image large de cinq points par la suite de chiffres suivante : 1000101010001000101010001 il faut découper cette carte par groupes de 5 bits : 10001 01010 00100 01010 10001 ce qui nous donne le dessin d'un « X » blanc sur fond noir. Le format des données doit donc inclure, outre la liste des points, la largeur de l'image et la description de la palette ; ceci se fait en général en début de fichier (on parle d'« entête » de fichier). Ce procédé a été utilisé pour envoyer un message dans l'espace à destination d'une intelligence extra-terrestre : il s'agit d'une image noir-et-blanc représentant le système solaire, de dimensions n sur m, n et m étant des nombres premiers. Les émetteurs espèrent ainsi que les récepteurs sauront décomposer les n×m en ses deux facteurs, et ainsi recomposer l'image.

Format vectoriel

Une image au format vectoriel est une image qui se décrit par des ensemble de coordonnées mathématiques et non par un canevas de point. Par exemple,
- pour décrire une ligne il suffit de connaître ses coordonnées de départ et d'arrivée ;
- pour un rectangle (ayant ses axes alignés aux axes du système de coordonnées en cours), deux points suffisent aussi (deux coins opposés)
- pour un cercle, un seul point, ainsi qu'un rayon, sont nécessaires Une image vectorielle est donc un ensemble de coordonnées et de commandes que le programme d'affichage (à l'écran ou sur papier) se charge d'interpréter. Pour des images pouvant être réduites facilement à des formes géométriques (typographisme, cartographie...), le format vectoriel est extrêmement économe. La particularité des formats vectoriels est que leur rendu final ne dépend que de la résolution du périphérique de sortie. Ce type d'image peut aussi être agrandi sans effets gênants ; il n'y a pas d'effet de « pixellisation » (les lignes diagonales ou courbes n'apparaissent pas sous forme d'escalier). Quelques formats vectoriels célèbres : Adobe PDF (Acrobat), Adobe illustrator AI, encapsuled postscript EPS, Quark QXD, Macromedia Flash (format d'animation vectorielle), SVG, AutoCAD DXF.

Représentation des couleurs

Format de son

Les formats de son se décomposent en trois parties:
- les formats bruts: le son n'est pas compressé, les valeurs issues de la conversion des valeurs analogiques en numérique (échantillonage) sont enregistrées dans l'ordre chronologique et par canal;
- les formats compressés: le son est compressé avec ou sans pertes suivant un algorithme adapté à la perception des sons de l'oreille humaine et/ou une compression classique;
- les formats de flux (stream): permet l'écoute par partie sans avoir la totalité du fichier. (Voir le chapitre Formats classiques)

Compression des données

La compression des données est la technique qui consiste à transformer les données afin qu'elles prennent moins de place. Les données devant être décompressées avant d'être traitées, ceci se fait aux dépens de la rapidité, et avec un risque plus grand de perte de données. L'idée de base est qu'en général, des éléments se répètent dans les fichiers. On a donc intérêt à représenter les éléments se répétant souvent par des nombres plus petits (c'est-à-dire prenant moins de bits). On peut distinguer deux types de compression :
- les compressions sans a priori sur les données : ce sont des algorithmes qui travaillent uniquement sur les nombres, quelle que soit l'information portée par ces nombres ; ils sont donc généraux, pas spécifiques aux données ; on peut distinguer :
  - les algorithmes à table stockée : l'algorithme fait une première analyse pour repérer les éléments se répétant, et construit une table de correspondance avec un code raccourci pour chaque élément répétitif ; la taille occupée par la table de stockage fait que ce procédé est plutôt adapté aux gros fichiers ;
  - les algorithmes à table construite à la volée : la table de corrspondance est construite de manière systématique, sans analyse préalable du fichier ; elle peut être reconstruite à la volée à partir du fichier compressé ; c'est par exemple le cas de l'algorithme de Lempel-Ziv-Welch (LZW)
- les compressions spécifiques aux données : si l'on connaît les données, on peut optimiser l'algorithme ; par exemple si l'on sait que l'on a affaire à un texte, on peut se baser sur la fréquence d'utilisation des mots dans le langage ; on distingue deux sous-catégories :
  - les compressions sans perte de qualité ;
  - les compressions avec perte de qualité : la première idée est de faire un « sous-échantillonnage », c'est-à-dire de simplement dégrader la qualité des données
en étudiant les sens et la manière dont le cerveau interprète les informations, on peut dégrader certaines caractéristiques des données peu sensibles, donc sans trop altérer la qualité globale des données ; ainsi, si l'oreille humaine est peu sensible à certaines gammes de fréquences, on peut dégrader (voire supprimer) certaines parties du spectre et pas d'autre ;
les algorithmes de compression d'image et de film JPEG et MPEG utilisent une perte de qualité. Voir l'article détaillé Compression de données.

Formats classiques


- Images : JPEG, GIF, PNG, BMP
- Dessin vectoriel : SVG, Flash, AI, EPS, DXF
- Son : MP3, WAV, WMA, AAC, Ogg, FLAC
- Vidéo : MPEG, AVI (DVD, DivX, XviD)
- Page : DOC, RTF, PDF, PostScript, OpenDocument
- Document : PDF, HTML, MHTML
- Exécutable : EXE, ELF

Voir aussi

Théorie des types | format ouvert | standard | ISO | W3C | Extension de fichier Catégorie:Logiciel
-
ja:ファイルフォーマット

NameSpace

Espace de noms (NameSpace) Dans le monde des technologies de l'information cette notion couvre pas mal de domaines et je vais essayer de l'expliquer à travers la technologie XML. "Bonjour, how are you?" Cette phrase n'a de sens que si vous devinez quelle est la langue utilisée pour chacunes de ses parties. Si vous ne pouvez deviner quelles sont les langues utilisées et donc vers quel dictionnaire vous devez vous diriger il serait peut être bon d'offrir plus d'informations: "FR:Bonjour, EN:how are you?" Nous avons maintenant identifié chacune des entités d'information comme étant différentes; elles n'appartiennent pas au même ESPACE. Il nous reste maintenant à définir cet ESPACE. FR --> Dictionnaire Français EN --> DIctionnaire Anglais En XML cela se formalisera de la manière suivante:

Internet

Internet est le nom donné au réseau informatique mondial, reposant sur le système d'adresses global des protocoles de communication TCP/IP (Transmission Control Protocol/Internet Protocol) et qui rend accessible au public des services comme le courrier électronique et le World Wide Web. Comme l'internet a été popularisé par l'apparition du World Wide Web (alias la Toile d'Araignée Mondiale), un système hypertexte fonctionnant sur l'internet, les deux sont parfois confondus par le public non averti. La Toile est une application informatique fonctionnant sur Internet parmi d'autres, comme le courrier électronique, la messagerie instantanée ou les systèmes de partage de fichiers poste à poste. poste à poste

Terminologie

Le terme d'origine anglaise Internet a été dérivé du concept dinternetting (interconnecter des réseaux) dont la première utilisation documentée remonte à octobre 1972 par Robert Kahn [http://www.cnri.reston.va.us/bios/kahn.html] au cours de la première ICCC (International Conference on Computer Communications) à Washington. Au cours de l'histoire de la création d'Internet, on trouve différents noms qui sont parfois considérés comme ancêtres du terme Internet : internetting, interconnected networks, internetworking, internetwork, international inter-connected networks, Inter Net, inter-net, International Network. Toutefois les origines exactes du terme Internet restent à déterminer. Ce flou a favorisé l'apparition de multiples explications faisant office d'origine. Aujourd'hui ceux qui prétendent détenir la véritable origine du terme sont légion (un exemple courant est de dire quInternet est l'acronyme dinterconnected networks). Toutefois on sait que c'est le 1983 que le nom Internet, déjà en usage pour désigner l'ensemble d'ARPANET et des réseaux, est devenu officiel. La définition de ce qu'est Internet n'est pas évidente à expliciter de manière précise sans entrer dans les détails techniques, ce qui tend à une vulgarisation de la définition et facilite les confusions et imprécisions en français. Une des confusions les plus courantes porte sur le Net (en français « réseau ») et le Web (en français « toile » dans le sens « toile d'araignée »). En réaction à l'importance croissante du « phénomène Internet » et la prolifération de termes relatifs à ce phénomène dans le langage, il y a eu diverses publications au Journal officiel de la République française [http://www.journal-officiel.gouv.fr/]. L'une d'elle indique qu'il faut utiliser le mot Internet comme un nom commun, c'est-à-dire sans majuscule. L'Académie française recommande de dire « l'internet », comme on dit souvent « le web ». En anglais, on utilise un article défini et une majuscule pour parler dInternet. Cet usage vient du fait quInternet est de loin le plus étendu (mondial) et le plus grand internet du monde. Un internet (avec un i minuscule) est un terme anglais utilisé pour désigner une interconnexion de réseaux informatiques par internetworking (voir l'article anglais internetworking). L'usage courant fait référence à Internet de différentes manières. Outre les recommandations officielles, il n'est pas rare de rencontrer les termes suivants : « le Net » ou « le net », « Internet », « l'Internet », « le réseau des réseaux » ou plus simplement « le réseau » ou « le Réseau » décliné parfois en « Le réseau ». Certains termes sont utilisés à tort pour faire référence à Internet, par exemple : « la Toile », « le web » ou « le Web » (the Web en anglais), mais cela désigne la Toile et non pas Internet. Cette confusion entre web et net existe aussi en anglais.
- Internet a été conçu pour relier des réseaux informatiques hétéroclites sur des distances intercontinentales : universitaires, d'entreprises, gouvernementaux, domestiques, etc., qui peuvent eux-mêmes relier des sous-réseaux et finalement des ordinateurs.

Histoire

Les origines

Les mémos que J.C.R. Licklider du Massachusetts Institute of Technology (MIT) écrivit en août 1962 sont les plus anciens textes décrivant les interactions sociales qui seraient possibles avec un réseau d'ordinateurs. Cela devait notamment faciliter les communications entre chercheurs du Defense Advanced Research Projects Agency (DARPA). En octobre 1962, Licklider fut le premier chef du programme de recherche en informatique du DARPA. Il convainquit ses successeurs Ivan Sutherland, Bob Taylor et le chercheur du MIT Lawrence G. Roberts de l'intérêt des réseaux informatiques. En 1961, Leonard Kleinrock du MIT avait publié le premier texte théorique sur les télécommunications par paquets et en 1964 il publia le premier livre sur le sujet. En 1965, Roberts testa avec Thomas Merrill la première connexion informatique à longue distance, entre le Massachusetts et la Californie. Le résultat montra que des ordinateurs pouvaient travailler ensemble à distance, mais que le mode de télécommunication par établissement de circuit du système téléphonique était inadapté. Le concept de communication par paquets de Kleinrock s'imposa. En 1966, Roberts fut engagé par Taylor au DARPA pour concevoir l'ARPANET. Il publia les plans en 1967. En présentant ce texte, il découvrit deux autres groupes de chercheurs travaillant indépendamment sur le même sujet : un groupe du National Physics Laboratory (NPL) du Royaume-Uni avec Donald Davies et Roger Scantlebury, et un groupe de la RAND Corporation avec Paul Baran. Entre 1962 et 1965, le groupe de la RAND avait étudié la transmission par paquets pour l'armée américaine. Le but était de pouvoir maintenir les télécommunications en cas d'attaque (éventuellement atomique), ce que permet une transmission par paquets dans un réseau non centralisé. Il s'agit d'un développement indépendant d'ARPANET : bien que probablement robuste face à une telle attaque, ARPANET n'a été conçu que pour faciliter les télécommunications entre chercheurs. En août 1968, le DARPA accepta de financer le développement du matériel de routage des paquets d'ARPANET. Ce développement fut confié en décembre à un groupe de la firme BBN (Bolt Beranek and Newman) de Boston. Ce dernier travailla avec Robert E. Kahn (Bob Kahn) sur l'architecture du réseau. Roberts améliorait les aspects topologiques et économiques du réseau. Kleinrock préparait des systèmes de mesure du réseau. En septembre 1969, BBN installa le premier équipement à l'université de Californie (UCLA) où travaillait Kleinrock. Le second nœud du réseau fut installé au Stanford Research Institute (SRI) où travaillait Doug Engelbart sur un projet d'hypertexte. Deux nœuds supplémentaires furent ajoutés avec l'université de Santa Barbara et l'université de l'Utah. Fin 1969, ARPANET comptait donc quatre nœuds. Le Network Working Group (NWG) conduit par Steve Crocker finit le protocole de communication poste à poste NCP en décembre 1970. Ce protocole fut adopté entre 1971 et 1972 par les sites branchés à ARPANET. Ceci permit le développement d'applications par les utilisateurs du réseau. En 1972, Ray Tomlinson mit au point la première application importante : le courrier électronique. En octobre 1972, Kahn organisa la première démonstration à grande échelle d'ARPANET à l'International Computer Communication Conference (ICCC). C'était la première démonstration publique. Le concept d'Internet est né d'ARPANET. L'idée était de permettre la connexion entre des réseaux divers : ARPANET, des communications avec les satellites, des communications par radio. Cette idée fut introduite par Kahn en 1972 sous le nom de
Internetting. Le protocole NCP d'ARPANET ne permettait pas d'adresser des hôtes hors d'ARPANET ni de corriger d'éventuelles erreurs de transmission. Kahn décida donc de développer un nouveau protocole, qui devint finalement TCP/IP. En parallèle, un projet inspiré par ARPANET était dirigé en France par Louis Pouzin : le projet Cyclades. De nombreuses propriétés de TCP/IP ont été aussi développées, plus tôt, pour Cyclades. Pouzin et Kahn indiquent que TCP/IP a été inspiré par Cyclades. En 1973, Kahn demanda à Vinton G. Cerf (Vint Cerf) (parfois appelé père de l'Internet) de travailler avec lui, car Cerf connaissait les détails de mise en œuvre de NCP. Le premier document faisant référence à TCP est écrit en 1973 par Cerf : A Partial Specification of an International Transmission Protocol. La première spécification formelle de TCP date de décembre 1974, c'est le RFC 675. La version initiale de TCP ne permettait que la communication en établissant un circuit virtuel. Cela fonctionnait bien pour le transfert de fichiers ou le travail à distance, mais n'était pas adapté à des applications comme la téléphonie par Internet. TCP fut donc séparé de IP et UDP proposé pour les transmissions sans établissement d'un circuit.

Gouvernance/Gestion

Un certain nombre d'organismes sont chargés de la gestion d'Internet, avec des attributions spécifiques. Ils participent à l'élaboration des standards techniques, l'attribution des noms de domaines, des adresses IP, etc. :
- ICANN ; sous la tutelle du ministère du Commerce américain.
- IETF ;
- ISOC.
- Liens externes
  - http://www.gouvernance-internet.com.fr (non maintenu)
  - http://smsi.internet.gouv.fr/ site officiel de la contribution française au sommet mondial de la société de l'information

Technique

Internet est composé d'une multitude de réseaux répartis dans le monde entier. Chaque réseau est rattaché à une entité propre (université, fournisseur d'accès à Internet, armée) et se voit attribué un identifiant unique appelé
Autonomous System (AS). Afin de pouvoir communiquer entre eux, les réseaux s'échangent des données, soit en établissant une liaison directe, soit en se rattachant à un nœud d'échange (point de peering). Chaque réseau est donc connecté à plusieurs autres réseaux. Lorsqu'une communication doit s'établir entre deux ordinateurs appartenant à des AS différents, il faut alors déterminer le chemin à effectuer parmi les réseaux. Aucun élément d'Internet ne connaît le réseau dans son ensemble, les données sont simplement redirigées vers un autre nœud selon des règles de routage. Environ 50 % du trafic mondial d’Internet passe par l'État de Virginie. Un très gros spammeur (envoi de pourriels) habitant dans un État voisin y est condamné en novembre 2004 à neuf ans de prison.

Requis

Faire partie d'Internet, en tant que réseau de réseaux, nécessite d'être connecté à un réseau IP. Pour le grand public, du matériel et des logiciels sont nécessaires :
- Canal de communication :
  - lignes téléphoniques :
    - analogiques : RTC, xDSL
    - numériques : RNIS
  - fibre optique
  - câble
  - satellite
- Fournisseur d'accès à Internet (
FAI) (en anglais ISP pour Internet Service Provider)
- Client pour le protocole réseau utilisé (PPP, PPPoX, Ethernet, ATM, etc.) D'autres logiciels sont eux nécessaires pour exploiter Internet suivant les usages.
- World Wide Web : un navigateur Web
- Messagerie électronique : un client SMTP et POP(POP3) ou IMAP / IMAP4 D'autres encore assurent la sécurité, par exemple :
- Pare-feu

Protocoles

Internet fonctionne suivant un modèle en couches, calqué sur le modèle OSI. Les éléments appartenant aux mêmes couches utilisent un protocole de communication pour s'échanger des informations. Un protocole est un ensemble de règles qui définissent un langage afin de faire communiquer plusieurs ordinateurs. Ils sont définis par des normes ouvertes, les RFC. Chaque protocole a des indications particulières et, ensemble, ils fournissent un éventail de moyens permettant de répondre à la multiplicité et à la diversité des besoins sur Internet. Les principaux sont les suivants :
- IP (
Internet Protocol) : protocole réseau qui définit le mode d'échange élémentaire entre les ordinateurs participant au réseau en leur donnant une adresse unique sur le réseau.
  - TCP : responsable de l'établissement de la connexion et du contrôle de la transmission. C'est un protocole de remise fiable. Il s'assure que le destinataire a bien reçu les données, au contraire d'UDP.
    - HTTP (
HyperText Transfer Protocol) : protocole mis en œuvre pour le chargement des pages Web.
    - HTTPS : pendant du HTTP pour la navigation en mode sécurisé.
    - FTP (
File Transfer Protocol) : protocole utilisé pour le transfert de fichiers sur Internet.
    - SMTP (
Simple Mail Transfer Protocol) : mode d'échange du courrier électronique en envoi.
    - POP3 (
Post Office Protocol version 3) : mode d'échange du courrier électronique en réception.
    - IMAP (
Internet Message Access Protocol) : un autre mode d'échange de courrier électronique.
    - IRC (
Internet Relay Chat) : protocole de discussion instantanée.
    - NNTP (
Network News Transfert Protocol) : protocole de transfert de message utilisé par les forums de discussion Usenet
    - SSL ou
TLS : protocoles de transaction sécurisée, utilisés notamment pour le paiement sécurisé.
  - UDP : permet de communiquer, de façon non fiable mais légère, par petits datagrammes.
    - DNS (
Domain Name System) : système de résolution de noms Internet.
  - ICMP (
Internet control message protocol) : protocole de contrôle du protocole IP. Indépendamment du transfert entre deux points, quelques protocoles sont nécessaires aussi pour que les passerelles puissent s'échanger des informations de routage. Ce sont Interior Gateway Protocol (IGP), Exterior Gateway Protocol (EGP) et Border Gateway Protocol (BGP).

Citations


-
Je suis convaincu qu'Internet est une expérience pour voir à combien d'adultes l'on peut faire fixer un écran sur lequel rien d'intéressant ne se passe, et où souvent il ne se passe rien - Jerry Pournelle.
-
Regardez bien au fond du flacon d'où est sortie la bulle Internet : vous verrez qu'il y reste encore beaucoup de savon ! - Jean-Pierre Raffarin
-
Sur internet, on peut écouter la radio tout en payant le téléphone. - Anne Roumanoff
-
Internet. On ne sait pas ce qu'on y cherche mais on trouve tout ce qu'on ne cherche pas. - Anne Roumanoff

Voir aussi

Liens internes

Organisme

[ Internet Society | Internet Engineering Task Force | Internet Systems Consortium ]

Technique

[ adresse IP | suite des protocoles internet | modèle OSI | fournisseur d'accès à Internet | hébergeur Internet | Internet2 ]

Application

[ courrier électronique | World Wide Web | messagerie instantanée | Poste à poste | visioconférence | radio | utilisations d'Internet ]

Société

[ internaute | commerce électronique | société de l'information | fracture numérique | technologies de l'information et de la communication | économie de la connaissance | libertés sur Internet | langues de l'Internet | Dépendance à l'internet ]

Cyberculture

[
flaming | hack | crack | net-sociologie | netiquette | troll | loi de Godwin | Internetophobie ]

Liens externes


- [http://stielec.ac-aix-marseille.fr/electron/cours.htm#internet
Internet et réseaux] ;
- [http://www.9atech.com/page_fete1.html Une histoire alternative et distrayante de l'Internet.];
- [http://www.ietf.org/rfc/rfc1000.txt RFC1000], l'histoire des débuts de l'Internet et des premiers RFC;
- [http://www.isoc.org/internet/history/brief.shtml
A Brief History of the Internet], par l'ISOC ;
- [http://www.computerhistory.org/exhibits/internet_history/ Internet history], histoire illustrée ;
- [http://www.cs.utexas.edu/users/chris/think/ THINK protocols], par l'université du Texas à Austin, recherche historique ;
- [http://www.ibiblio.org/pioneers/index.html Internet Pioneers], avec plusieurs biographies ;
- [http://www.anderbergfamily.net/ant/history/ History of the Internet and Web], chonologie ;
- [http://opte.org/ The Opte Project], cartographie d'Internet ;
- [http://www.acm.org/ubiquity/views/v6i5_simoneli.html A Concise Guide to the Major Internet Bodies].
- [http://www.alexa.com/ Alexa], Mesure d'audience ; Catégorie:Internet fiu-vro:Internet ja:インターネット ko:인터넷 ms:Internet simple:Internet th:อินเทอร์เน็ต


Unicode

Unicode est un standard informatique développé par le Consortium Unicode qui vise à donner à tout caractère de n'importe quel système d'écriture de langue un identifiant numérique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel.

But

Unicode, dont la première publication remonte à 1991, a été développé dans le but de remplacer l'utilisation de pages de code nationales. Ces pages de code présentaient en effet quelques problèmes. Par exemple lorsqu'était prévu un caractère « signe monétaire », le même texte autorisant aux USA une dépense en dollars pouvait une fois transmis par courrier électronique au Royaume-Uni autoriser la même dépense en livres sterling, sans que quoi que ce soit ait été modifié au texte ! Dans la pratique, tous les systèmes d'écriture ne sont pas encore présents, car un travail de recherche documentaire auprès de spécialistes peut encore s'avérer nécessaire pour des caractères rares ou des systèmes peu connus (parce que disparus, par exemple). Cependant, tous les systèmes les plus utilisés dans le monde sont représentés, ainsi que des règles sur la sémantique des caractères, leurs compositions et la manière de combiner ces différents systèmes (par exemple, comment insérer un système d'écriture de droite à gauche dans un système d'écriture de gauche à droite ?).

Normes et versions

Le travail sur Unicode est parallèle et synchronisé avec celui sur la norme ISO/CEI 10646 dont les buts sont les mêmes. L'ISO/CEI 10646, une norme internationale publiée en français et en anglais, ne précise cependant ni les règles de composition de caractère, ni les propriétés sémantiques des caractères. Unicode aborde cependant la problématique de la casse, du classement alphabétique, et de la combinaison d'accents et de caractères. Les caractères de la version 3.0 d'Unicode ont les mêmes identifiants que ceux de la norme ISO/CEI 10646:2000. La version 3.2 d'Unicode classe 95 221 caractères, symboles et directives. La version actuelle est la version 4.1 de 2005. Des problèmes semblent cependant exister, pour le codage des caractères chinois .

La limite de l'octet

Là où l'ASCII utilisait jadis 7 bits et ISO 8859-1 8 bits (comme la plupart des pages de codes nationales), Unicode, qui rassemble les caractères de chaque page de code, avait besoin d'utiliser plus que les 8 bits d'un octet. La limite fut dans un premier temps fixée à 16 bits puis est désormais placée entre 20 et 21 bits par caractère.

UTF, Unicode Transformation Format

Dans un but de compression simple et raisonnable, Unicode accepte plusieurs formes de présentation pour représenter un caractère (au sens de symbole). Citons :
- UTF-8 ;
- UTF-16 ;
- UTF-32. Le chiffre après UTF représente le nombre minimal de bits avec lequel un caractère est codé.

UTF-8

L'UTF-8, spécifié dans le RFC 2279, est le plus commun pour les applications Internet. Son codage de taille variable lui permet d'être en moyenne moins coûteux en occupation mémoire. Mais cela ralentit nettement les opérations où interviennent des extractions de sous-chaînes, car il faut compter les caractères depuis le début de la chaîne pour savoir où se trouve le premier caractère à extraire. L'UTF-8 assure aussi une compatibilité avec les manipulations simples de chaînes en ASCII dans les langages de programmation.

UTF-16

L'UTF-16 est un bon compromis lorsque la place mémoire n'est pas trop restreinte, car la très grande majorité des caractères Unicode assignés pour l'instant, qui sont les caractères les plus fréquemment utilisés, peut être représentée sur 16 bits. Il a l'avantage que tous les caractères prennent, au minimum, la même place (2 octets). C'est notamment l'encodage qu'utilise la plateforme Java en interne.

UTF-32

L'UTF-32 est utilisé lorsque la place mémoire n'est pas un problème et que l'on a besoin d'avoir accès à des caractères de manière directe et sans changement de taille (hiéroglyphes).

Les polices de caractères Unicode

Avant de parler de police Unicode, il faut bien comprendre un principe essentiel : dire qu'Unicode code des caractères revient à dire qu'il attribue un numéro à des symboles. Unicode ne code en revanche pas les descriptions des caractères, les glyphes, c'est-à-dire la représentation graphique du caractère. Il n'y a donc pas une bijection entre la représentation du caractère et son numéro comme c'est le cas dans une police ASCII ou latin-1 classique. Ainsi, le caractère français é peut-il être décrit de deux manières : soit en utilisant directement le numéro correspondant au é, soit en faisant suivre le numéro du 'e' par celui de l'accent aigu sans chasse. Quelle que soit l'option choisie le même glyphe sera affiché. On dira du premier caractère qu'il est précomposé, du second que c'est une composition (deux caractères forment un seul glyphe composé des deux). De nombreux glyphes sont dans ce cas et peuvent être codés de ces deux manières. Le plus souvent, le glyphe précomposé est préférable (c'est le cas pour le grec polytonique, par exemple, lequel, codé en décomposition, peut ne pas être satisfaisant graphiquement : selon les polices de caractères, les différents constituants du glyphe étant parfois mal disposés et peu lisibles). De même, certains systèmes d'écriture, comme la devânagarî ou les caractères arabes, nécessitent un traitement complexe des ligatures : les graphèmes changent en effet de forme en fonction de leur position et/ou par rapport à leurs voisines (cf. Variante contextuelle et Lettre conjointe). On comprend donc que le terme de police Unicode doit être utilisé très prudemment. Avoir une police qui représente un certain nombre ou toutes les représentations graphiques que l'on peut obtenir avec Unicode n'est pas suffisant, il faut en plus que le système d'affichage possède les mécanismes de représentation idoines (ce que l'on nomme le moteur de rendu) capable de gérer les ligatures, variantes contextuelles et formes conjointes de certaines écritures. Au contraire, une police qui ne représente que certains caractères mais qui sait comment les afficher mérite mieux le terme de police Unicode. Le moteur de rendu doit comporter dans certains cas des informations sur les coupures de lettres. Ainsi la lettre allemande s/z, lorsqu'elle se trouve sur une coupure, se traduit en deux s : un avant et un après la coupure.

Détails techniques

Bibliothèques logicielles

La bibliothèque multiplateforme ICU permet de manipuler des données unicodées. Un support d'Unicode spécifique à certaines plateformes (non compatible quant au code-source) est également fourni par les systèmes modernes (Java, MFC, GNU/Linux).

Partitionnement

Le partitionnement à jour peut être trouvé sur le site officiel d'Unicode. Cependant, vu le rôle important d'Unicode, (ISO 10646) on décrira ici les principaux blocs de caractères. Les noms français sont les noms officiels de l'ISO/CEI 10646, la norme internationale bilingue qui reprend les mêmes caractères qu'Unicode. Ils sont aussi officiels que les noms anglais. # Note: La casse des noms de bloc n'est pas normative. # « Latin de base » est donc équivalent à « LATIN DE BASE » # # # Code de début ..Code de fin; nom du Bloc 0000..007F; Latin de base 0080..00FF; Supplément Latin-1 0100..017F; Latin étendu A 0180..024F; Latin étendu B 0250..02AF; Alphabet phonétique international (API) 02B0..02FF; Lettres modificatives avec chasse 0300..036F; Diacritiques 0370..03FF; Grec et copte 0400..04FF; Cyrillique 0500..052F; Supplément cyrillique 0530..058F; Arménien 0590..05FF; Hébreu 0600..06FF; Arabe 0700..074F; Syriaque 0780..07BF; Thâna 0900..097F; Dévanâgarî 0980..09FF; Bengali 0A00..0A7F; Gourmoukhî 0A80..0AFF; Goudjerate 0B00..0B7F; Oriya 0B80..0BFF; Tamoul 0C00..0C7F; Télougou 0C80..0CFF; Kannara 0D00..0D7F; Malayalam 0D80..0DFF; Singhalais 0E00..0E7F; Thaï 0E80..0EFF; Lao 0F00..0FFF; Tibétain 1000..109F; Birman 10A0..10FF; Géorgien 1100..11FF; Jamos hangûl 1200..137F; Éthiopien 13A0..13FF; Chérokî 1400..167F; Syllabaires autochtones canadiens 1680..169F; Ogam 16A0..16FF; Runes 1700..171F; Tagalog ou tagal 1720..173F; Hanounóo 1740..175F; Bouhid 1760..177F; Tagbanoua 1780..17FF; Khmer 1800..18AF; Mongol 1900..194F; Limbu 1950..197F; Taï-le 19E0..19FF; Symboles khmers 1D00..1D7F; Supplément phonétique 1E00..1EFF; Latin étendu additionnel 1F00..1FFF; Grec étendu 2000..206F; Ponctuation générale 2070..209F; Exposants et indices 20A0..20CF; Symboles monétaires 20D0..20FF; Signes combinatoires pour symboles 2100..214F; Symboles de type lettre 2150..218F; Formes numérales 2190..21FF; Flèches 2200..22FF; Opérateurs mathématiques 2300..23FF; Signes techniques divers. 2336 à 237A = symboles APL 2400..243F; Pictogrammes de commande 2440..245F; Reconnaissance optique de caractères 2460..24FF; Alphanumériques cerclés 2500..257F; Filets 2580..259F; Pavés 25A0..25FF; Formes géométriques 2600..26FF; Symboles divers 2700..27BF; Casseau 27C0..27EF; Divers symboles mathématiques - A 27F0..27FF; Supplément A de flèches 2800..28FF; Combinaisons Braille 2900..297F; Supplément B de flèches 2980..29FF; Divers symboles mathématiques-B 2A00..2AFF; Opérateurs mathématiques supplémentaires 2B00..2BFF; Divers symboles et flèches 2E80..2EFF; Formes supplémentaires des clés CJC 2F00..2FDF; Clés chinoises (K'ang-hsi ou Kangxi) 2FF0..2FFF; Description idéophonographique 3000..303F; Symboles et ponctuation CJC 3040..309F; Hiragana 30A0..30FF; Katakana 3100..312F; Bopomofo 3130..318F; Jamos de compatibilité hangûl 3190..319F; Kanboun 31A0..31BF; Bopomofo étendu 31F0..31FF; Extension phonétique katakana 3200..32FF; Lettres et mois CJC cerclés 3300..33FF; Compatibilité CJC 3400..4DB5; Supplément A aux idéophonogrammes unifiés CJC 4DC0..4DFF; Hexagrammes du Classique des mutations ou Yi-king 4E00..9FA5; Idéophonogrammes unifiés CJC A000..A48F; Syllabaire yi des Monts frais A490..A4CF; Clés yi AC00..D7A3; Hangûl D800..DB7F; Demi-zone haute ☒DB80..DBFF; Partie à usage privé de la demi-zone haute DC00..DFFF; Demi-zone basse ☒E000..F8FF; Zone à usage privé F900..FAFF; Idéogrammes de compatibilité CJC FB00..FB4F; Formes de présentation alphabétiques FB50..FDFF; Formes A de présentation arabes FE00..FE0F; Sélecteurs de variante FE20..FE2F; Demi-signes combinatoires FE30..FE4F; Formes de compatibilité CJC FE50..FE6F; Petites variantes de forme FE70..FEFF; Formes B de présentation arabes FF00..FFEF; Formes de demi et pleine chasse FFF0..FFFF; Caractères spéciaux 10000..1007F; Syllabaire linéaire B ou syllabaire mycénien 10080..100FF; Idéogrammes du linéaire B 10100..1013F; Nombres égéens 10300..1032F; Alphabet italique 10330..1034F; Gotique 10380..1039F; Ougaritique 10400..1044F; Déséret 10450..1047F; Shavien 10480..104AF; Osmanya 10800..1083F; Syllabaire chypriote 1D000..1D0FF; Symboles musicaux byzantins 1D100..1D1FF; Symboles musicaux occidentaux 1D300..1D35F; Symboles du Classique du mystère suprême 1D400..1D7FF; Symboles mathématiques alphanumériques # 20000..2A6D6; Supplément B aux idéogrammes unifiés CJC 2F800..2FA1F; Supplément aux idéogrammes de compatibilité CJC # E0000..E007F; Étiquettes E0100..E01EF; Supplément de sélecteur de variante # ☒FFF80..FFFFF; Zone supplémentaire A à usage privé ☒10FF80..10FFFF; Zone supplémentaire B à usage privé Les zones à usage privé indiquées par le symbole ☒ ne contiennent pas les mêmes œils d'une police à l'autre et doivent donc être évités.

Voir aussi


- Caractère asiatiques
- Aide:Caractères spéciaux
- Caractères APL/APL2 en Unicode
- ASCII
- EBCDIC
- ISO/CEI 10646
- Aide:Unicode
- Wikipédia:Unicode/Test
- Table des caractères unicode (complète, très lourde : 671 Ko)
- Table des caractères unicode divisée :
  - de 0 à 4095 - de 4096 à 8191 - de 8192 à 12287 - de 12288 à 16383
  - de 16384 à 20479 - de 20480 à 24575 - de 24576 à 28671 - de 28672 à 32767
  - de 32768 à 36863 - de 36864 à 40959 - de 40960 à 45055 - de 45056 à 49151
  - de 49152 à 53247 - de 53248 à 57343 - de 57344 à 61439 - de 61440 à 65535

Liens externes


- [http://www.unicode.org Page d'accueil du consortium Unicode] (anglais);
- [http://hapax.qc.ca traduction française officielle de l'ISO/CEI 10646 et Unicode] (français);
- [http://www.decodeunicode.org/ DecodeUnicode - Unicode WIKI], chaque charactère du BMP d'Unicode avec 50.000 gifs dans trois tailles (anglais, allemand)
- Chapitres 2, 3, et 4 du livre [http://www.oreilly.fr/catalogue/284177273X.html Fontes et codages] ;
- [http://www.cs.uu.nl/~otfried/Mule/unihan.html essai] sur le problème han (en anglais) ;
- [http://www.tron.org page d'accueil de TRON] ;
- [http://www.alanwood.net/unicode/ site recensant les différents blocs d'Unicode avec pages de tests, conseils et liens vers les polices permettant d'afficher les blocs en question] ;
- [http://unicode.coeurlumiere.com/ table des caractères Unicode de 1 à 65535] ;
- [http://www.unicode.org/reports/tr10/ la question du tri] ;
- [http://hapax.qc.ca/BabelMap_fr.html graticiel BabelMap (éditeur de police Unicode UTF8, UTF16, UTF32)] ;
- [http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8 and Unicode FAQ] de Markus Kuhn, article très complet (en anglais).
- [http://masculinehygiene.com/sburke/unicode_sliderule/ The Unicode Sliderule] : un outil web de saisie de caractères.

Autres références


- http://www.freenix.fr/unix/linux/HOWTO/Unicode-HOWTO-1.html
- http://sivanataraja.free.fr/config/test.htm : exemple d'utilisation d'Unicode.
- RFC3718, RFC3492, RFC2482, RFC2044, RFC1642, RFC1641 Catégorie:Unicode Catégorie:Norme ja:Unicode ko:유니코드 th:ยูนิโคด zh-min-nan:Thong-iōng-bé

Dialecte XML

Catégorie:XML Un dialecte XML est un langage dérivé de la norme XML du W3C. Un document d'un dialecte XML est un document XML bien formé et qui est valide par rapport à une grammaire de description, qui peut être fournie soit sous la forme d'une DTD, un schéma XML, ou toute autre forme de langage de description de format de document.

Exemples de dialecte XML

Langage de description de format de document XML (DSDL) :
- XML Schema
- Relax NG
- Schematron Langage de transformation XML :
- XSLT
- XQuery (forme XQueryX)
- STX Langage de représentation de document :
- XSL-FO Langage de représentation graphique vectorielle :
- SVG Langage de représentation de formules mathématiques :
- MathML Langage de représentation de document hypertexte :
- XHTML
- Attention, le HTML bien qu'il soit également un "langage de représentation de document hypertexte" , n'est pas un dialecte XML. Il s'agit d'un "dialecte SGML". Langage de traitement de formulaires :
- XFORM Langage de représentation d'interfaces graphiques :
- UIML
- XUL
- XAML
- MXML (Flex) Langage de communication dédié aux services :
- SOAP Langage de définition de règle :
- RuleML Format d'échange de données lié à l'utilisation de stylet :
- InkML Langage de définition d'un article de journal :
- NITF Langage de définition d'un contenu informatif :
- NewsML Langage de description d'ontologies :
- OWL

Attention

Les dialectes suivants ne sont pas des dialectes XML, bien qu'ils soient intimement lié à XML. Langage de description de format de document XML :
- DTD Langage de requète XML :
- XPath
- XQuery (forme FLWR) Langage de feuille de style :
- CSS

XML Schema

XML Schema est un langage de description de format de document XML permettant de définir la structure d'un document XML. Un schéma XML est lui-même un fichier XML. La connaissance de la structure d'un document XML permet notamment de vérifier la validité de ce document. Un fichier de description de structure (XML Schema Description en anglais, ou fichier XSD) est donc lui-même un document XML. Une instance d'un XML Schema est un peu l'équivalent d'une DTD. XML Schema amène cependant plusieurs différences avec les DTDs : il permet par exemple de définir des domaines de validité pour la valeur d'un champ, alors que cela n'est pas possible dans une DTD ; en revanche, il ne permet pas de définir des entités. Ce langage de description de contenus de documents XML est lui-même défini par un schéma, dont les balises de définition s'auto-définissent (c'est un exemple de définition récursive). Un exemple de fichier XSD : Suivi d'un fichier xml valide : De Latour Jean 1967-08-13

Voir aussi

Liens internes


- Relax NG
- Schematron

Lien externe


- [http://www.w3.org/XML/Schema La page sur XML Schema du W3C]
- [http://xmlfr.org/w3c/TR/xmlschema-0/ Traduction Française de la recommandation du W3C sur les schémas XML]
- [http://www.laltruiste.com/document.php?rep=coursschema Excellente documentation (ou tuto.) sur les schémas XML]
- [http://www.w3schools.com/schema/default.asp Autre tutoriel sur XSD (en Anglais)] Catégorie:XML ja:XMLスキーマ

RDF

Resource Description Framework (RDF) est un modèle de graphes pour décrire les (méta-)données et permettre un certain traitement automatique des métadonnées. Une des syntaxes (sérialisation) de ce langage est RDF/XML. Il s'agit d'un dialecte XML développée par le consortium W3C. En annotant des documents non structurés et en servant d'interface pour des applications et des documents structurés (par ex. bases de données, GED, etc. ) RDF permet une certaine interopérabilité entre des applications échangeant de l'information non formalisée et non structurée sur le Web. Un document structuré en RDF est un ensemble de triplets. Un triplet RDF est une association : \left\ Par exemple, le sujet peut être un document à commenter, l'objet, une propriété de ce document comme son titre et le prédicat, la valeur de cette propriété. Ainsi, RDF en soi n'est pas un dialecte XML. Il est possible d'avoir recours à d'autres formalismes pour exprimer les triplets RDF. RDF est simplement une structure de données constituée de nœuds et organisée en graphe. Bien que RDF/XML — sa version XML proposée par le W3C — n'est qu'une sérialisation du modèle, elle est souvent appelée RDF. Un abus de langage désigne à la fois le graphe de triplets et la présentation XML qui lui est associée. Chaque élément de ces triplets peut être un URI, un littéral ou une variable. Un document RDF ainsi formé correspond à un multi-graphe orienté étiqueté. Chaque triplet correspond alors à un arc orienté dont le label est le prédicat, le nœud source est le sujet et le nœud cible est l'objet. La sémantique d'un document RDF peut être exprimée en théorie des ensembles et en théorie des modèles en se donnant des contraintes sur le monde qui peuvent être décrites en RDF. RDF hérite alors de la généricité et de l'universalité de la notion d'ensemble. Cette sémantique peut être aussi traduite en formule de logique du premier ordre, positive, conjonctive et existentielle : \left\ \Leftrightarrow predicat(objet, sujet) ce qui est équivalent à : \forall \ objet,\ \ \exists \ \ sujet \ \ tq \ \ predicat(objet, sujet) Le W3C a prévu un mécanisme d'inférence pour la sémantique de RDF déduisant exclusivement et intégralement les conséquences des prédicats, sans que ce mécanisme ne fasse l'objet d'une recommandation. RDF est une des bases du succès du Web sémantique .

Liens externes


- [http://www.w3.org w3.org]
- [http://www.la-grange.net/2004/08/05#rdf-poete une introduction à RDF] qui se veut accessible à tous.
- [http://www.la-grange.net/w3c/REC-rdf-syntax/ Spécification] traduite en français par Karl Dubost. Catégorie:Normes et standards informatiques Catégorie:XML ja:Resource Description Framework ko:RDF

Synchronized Multimedia Integration Language

Catégorie:XML Synchronized Multimedia Integration Language (SMIL) est une spécification du W3C. L'objectif de SMIL est de permettre l'intégration de contenus multimédias diversifiés (images, sons, textes, vidéo, animations, flux de texte) en les synchronisant afin de permettre la création de présentations multimédias. SMIL s'appuie sur le langage XML. La structure XML d'un document SMIL décrit le déroulement temporel et spatial des différents composants intégrés. En d'autres termes, SMIL permet d'indiquer le moment où un contenu sera affiché, pendant combien de temps et dans quelle partie de la fenêtre d'affichage.

Liens externes

Logiciels permettant de visualiser ou de modifier des présentations SMIL


- [http://www.oratrix.com/GRiNS/ GriNs], éditeur et lecteur de fichiers SMIL
- [http://www.real.com/player/ RealPlayer], lecteur SMIL 2.0
- [http://www.apple.com/fr/quicktime/ Apple Quicktime], lecteur SMIL 1.0
- [http://wam.inrialpes.fr/software/limsee2/ limsee2] éditeur smil WYSIWYG opensource.

Autres liens


- [http://www.w3.org/AudioVideo/ La page SMIL du W3C]
- [http://ramhurl.real.com/smildemohurl.ram?file=resources/samples/smilbasic/smilmarkup.smil Exemple de presentation SMIL] (ouvrir avec RealPlayer)

Scalable Vector Graphics

Catégorie:Format de données numériques Catégorie:imagerie numérique Catégorie:XML Catégorie:XML] Scalable Vector Graphics (SVG) est une spécification du W3C. SVG est un format basé sur XML permettant de décrire des ensembles graphiques vectoriels. Les coordonnées, dimensions et structures des objets vectoriels sont indiqués sous forme numérique dans le document XML. Un système spécifique de style (CSS ou XSL) permet d'indiquer les couleurs et les polices d'écriture à utiliser. Ce format gère quelques formes géométriques de base (rectangles, ellipses), mais aussi des chemins (paths), qui utilisent les courbes de Bézier et permettent ainsi d'obtenir n'importe quelle forme. Le remplissage peut se faire à l'aide de dégradés (gradients en anglais) de couleurs de motifs (pattern) qui sont des objets SVG quelconques, ou de filtres (appelés shaders en imagerie 3D). On peut également appliquer des motifs le long des chemins (markers), et utiliser les fonctions de remplissage. Le canal alpha, pour la transparence, est géré à tous les niveaux. Comme dans tout document XML, les objets sont gérés sous forme de hiérarchie, et le format permet l'intégration d'animations, ou sa manipulation par programmation, notamment grâce à des scripts qui peuvent être intégrés dans le SVG. Un des intérêts majeurs de SVG est qu'il peut être inclus dans d'autres documents XML, comme par exemple des documents XHTML ou des documents XML devant être traités par XSL-FO. Une image SVG peut également être manipulée par l'intermédiaire du modèle Document Object Model. SVG peut être visualisé nativement avec certains navigateurs web, comme Mozilla (fonctionnalité en développement et non intégrée aux versions officielles) et Firefox (dans sa version 1.5), ou à l'aide d'un plug-in pour d'autres. Certaines interfaces graphiques l'utilisent pour la gestion et l'affichage d'icônes, et d'interface, comme X.org, GNOME, KDE ou certains téléphones portables.

Exemple

Description de trois objets géométriques simples, un rectangle, un cercle, un triangle, dont les deux derniers appartiennent à un groupe nommé « contenu » :




   

   
      
      
   


copie d'écran du résultat : Image:Exemple.png 'Il faudrait permettre ici la visualisation de l'exemple en question au format SVG'

Liens externes, logiciels permettant de lire, d'afficher, de générer des documents SVG

Bibliothèques SVG


- [http://xml.apache.org/batik/index.html Apache Batik], API Java permettant de générer des documents SVG
- [http://librsvg.sourceforge.net librsvg] est une bibliothèque spécialisée SVG, en permettant la manipulation et la conversion en bitmap (en mémoire ou en fichier jpg/png.
- [http://svg.kde.org/ KSVG] bibliothèque SVG du bureau KDE.
- [http://xsvg.org/ bibliothèque xsvg] utilisée par le projet X.org, utilisant [http://cairographics.org Cairo] pour l'acceleration matérielle du rendu, comme un des 2 moteurs SVG de Mozilla pour linux.
- [http://search.cpan.org/~ronan/SVG-2.30/ module Perl SVG]
- [http://freshmeat.net/projects/php_svggraph/ svgGraph], bibliothèque PHP + exemple + doc permettant de faire des histogrammes (ligne, barre) SVG en PHP
- http://www.openclipart.org/ Bibliothèque de clip art au format SVG, libre de droits (projet initié par les créateurs d' Inkscape)

Visualisation/plugin SVG


- [http://librsvg.sourceforge.net librsvg] bibliothèque SVG, contient un visualiseur et un plugin Mozilla/Firefox SVG depuis la 2.8.0 (supporte les path, gradients, markers, filters).
- [http://svg.kde.org KSVG] KSVG est conçu comme un KPart pouvant être intégré notamment au navigateur web Konqueror.
- [http://www.adobe.com/svg/viewer/install/main.html Adobe SVG Viewer], visualiseur SVG, notamment comme plugin HTML
- [http://www.smartgraphics.com/Viewer_prod_info.shtml Corel SVG Viewer], un autre visualiseur SVG (en anglais)
- Projet Mozilla navigateur Web, incluant l'affichage SVG (relativement limité). On peut y inclure le plugin de la librsvg.
- Opera navigateur Web, la version 8 inclue l'affichage SVG en sa version 1.1 Tiny sans plugin.
- Certains téléphones mobiles permettent la visualisation de documents SVG Tiny, une liste de téléphones est disponible sur le lien suivant [http://svg.org/special/svg_phones]
- Mozilla Firefox en version 1.5 intègre SVG 1.1 en natif sans plugin

Édition SVG


- Sodipodi, un logiciel libre de dessin vectoriel.
- Inkscape, un logiciel libre de dessin vectoriel spécialisé SVG (fork de Sodipodi).
- [http://www.nongnu.org/skencil skencil] (anciennement Sketch), est un éditeur vectoriel permettant l'import/export SVG.
- The GIMP Logiciel de dessin et animation orienté bitmap, gérant l'import et l'export des paths au format SVG, et la transformation d'images au format SVG, vers un bitmap grâce à la bibliothèque librsvg
- OpenOffice.org Draw, le module Draw de la suite OpenOffice.org permet l'exportation de graphiques au format SVG.
- [http://kde.org/areas/koffice/karbon/index.php Karbon 14], l'éditeur vectoriel de la suite KOffice supporte le format SVG.
- Scribus est un logiciel de PAO supportant le format SVG.
- [http://www.stacken.kth.se/project/pptout/ Passepartout] est un logiciel de PAO supportant le format SVG.
- [http://www.imagemagick.org Imagemagick] permet la manipulation et la conversion de fichiers svg par scripts, en ligne de commande et dans de nombreux langages.
- [http://www.orvinfait.fr/svg/svg.html Logiciel de dessin et d'animation de la SARL Orvinfait], Logiciel en ligne de création de SVG en français permettant de créer et d'animer des dessins, des textes et des images. Les formes des dessins peuvent être facilement créées et transformées grâce aux points de construction. Les positions de ces derniers peuvent être changées avec la souris. Grâce aux filtres, il est possible de donner des effets 3D aux textes, dessins et images.
- Amaya logiciel libre d'édition de contenus Web. Permet l'édition de fichiers SVG.

Environnement graphique utilisant le format SVG


- GNOME L'environnement graphique GNOME, gère les icônes et les dessins au format SVG, c'est pour ce bureau que la librsvg à été conçue à la base.
- X.Org L'environnement X11 libre X.org permet l'utilisation du format SVG, et l'accélération matérielle partielle des tracés SVG.
- KDE L'environnement graphique KDE permet également l'utilisation du format SVG

Voir aussi

Liens externes


- [http://ptaff.ca/svg/ La page francophone du format SVG]
- [http://www.svgfr.org/ Portail francophone de la communauté SVG]
- [http://www.w3.org/Graphics/SVG/ La page SVG du site W3C]
- [http://www.svg.org SVG.org] Un site d'information sur le format SVG et ses applications
- [http://www.mozilla.org/projects/svg/ La page SVG de Mozilla]
- [http://david.bellot.free.fr/svg-cards Un jeu de cartes très détaillé entièrement duen SVG] ja:SVG ko:SVG th:Scalable Vector Graphics zh-min-nan:SVG

XML Schema

XML Schema est un langage de description de format de document XML permettant de définir la structure d'un document XML. Un schéma XML est lui-même un fichier XML. La connaissance de la structure d'un document XML permet notamment de vérifier la validité de ce document. Un fichier de description de structure (XML Schema Description en anglais, ou fichier XSD) est donc lui-même un document XML. Une instance d'un XML Schema est un peu l'équivalent d'une DTD. XML Schema amène cependant plusieurs différences avec les DTDs : il permet par exemple de définir des domaines de validité pour la valeur d'un champ, alors que cela n'est pas possible dans une DTD ; en revanche, il ne permet pas de définir des entités. Ce langage de description de contenus de documents XML est lui-même défini par un schéma, dont les balises de définition s'auto-définissent (c'est un exemple de définition récursive). Un exemple de fichier XSD : Suivi d'un fichier xml valide : De Latour Jean 1967-08-13

Voir aussi

Liens internes


- Relax NG
- Schematron

Lien externe


- [http://www.w3.org/XML/Schema La page sur XML Schema du W3C]
- [http://xmlfr.org/w3c/TR/xmlschema-0/ Traduction Française de la recommandation du W3C sur les schémas XML]
- [http://www.laltruiste.com/document.php?rep=coursschema Excellente documentation (ou tuto.) sur les schémas XML]
- [http://www.w3schools.com/schema/default.asp Autre tutoriel sur XSD (en Anglais)] Catégorie:XML ja:XMLスキーマ

Cycle de développement

Il existe différents types de cycles de développement entrant dans la réalisation d'un logiciel. Ces cycles prendront en compte toutes les étapes de la conception d'un logiciel.

Les Grandes Familles

Cycle en cascade

Cycle en cascade Ce cycle est hérité du bâtiment. Ce modèle repose sur les hypothèses suivantes
- on ne peut pas construire la toiture avant les fondations
- les conséquences d'une modification en amont du cycle ont un impact majeur sur les coûts en aval (on peut imaginer la fabrication d'un moule dans l'industrie du plastique) Les phases traditionnelles de développement sont effectuées simplement les unes après les autres, avec un retour sur les précédentes, voire au tout début du cycle. Le processus de développement utilisant un cycle en cascade exécute des phases qui ont pour caractéristiques :
- de produire des livrables définis au préalable
- de se terminer à une date précise
- de ne se terminer que lorsque les livrables sont jugés satisfaisants lors d'une étape de validation-vérification

Cycle en V

Cycle en V Pour pallier au problème de réactivité du modèle en cascade, le modèle du cycle en V a été imaginé. Ce modèle est une amélioration du modèle en cascade qui permet en cas d'anomalie, de limiter un retour aux étapes précédentes. Les phases de la partie montante, doivent renvoyer de l'information sur les phases en vis-à-vis lorsque des défauts sont détectés afin d'améliorer le logiciel.
De plus le cycle en V met en évidence la nécessité d'anticiper et de préparer dans les étapes descendantes les " attendus " des futures étapes montantes : ainsi les attendus des tests de validation sont définis lors des spécifications, les attendus des tests unitaires sont définis lors de la conception, etc. Le cycle en V est devenu un standard de l'industrie du développement de logiciel et de la gestion de projet depuis les années 1980.

Cycle en spirale

Le développement reprend les différentes étapes du cycle en V. Par l'implémentation de versions successives, le cycle recommence en proposant un produit de plus en plus complet.

Cycle itératif

Cycle itératif On décorelle les activités avec les artéfacts car un artéfact est le produit issu d'une activité. Ainsi, on applique un cycle de type roue de Deming sur la production d'une documentation, d'un code, d'un test, etc. Rapporté à une activité de type gestion de projet, la première phase sera celle de
- la faisabilité : l'acceptation d'un nouveau besoin
- l'élaboration : on imagine comment on va le réaliser
- la fabrication : construction.
- la transition : tout est mis en œuvre pour livrer au client. Le cycle itératif n'est pas une bijection avec le cycle en V du type
- faisabilité = spécifications
- élaboration = architecture
- fabrication = développment prototype
- transition = tests Sachant que chaque itération ne dépasse jamais huit semaines, cette tactique est donc impossible. En fait, l'idée est de livrer au plus tôt quelque chose qui puisse être testé par le client. On peut en effet réaliser plusieurs itérations sur une documentation telle que l'architecture. De la même manière, si un document n'est qu'un des artéfacts parmi d'autres, il ne faut pas obtenir un document complet. On préfèrera utiliser la loi de Pareto : ne pas passer 80% de l'effort sur les 20% restant. La différence entre un PDCA et une itération est la durée : elle doit être courte et régulière alors qu'une roue de Deming appliqué à une organisation de 300 personne prends plusieurs mois, voire plusieurs années.

Comparaison des approches Cascade, V et Itératif

Le cycle en V a pour origine l'Industrie Lourde. La particularité de ce milieu est que la phase qui suit nécessite bien plus de ressources que la précédente.
Par exemple, pour fabriquer un objet en Matière plastique, # un Bureau d'étude va concevoir le produit, # puis des empreintes de moules seront usinées et placées dans des carcasses pour recevoir de la matière plastique par injection # et une fois que le prototype est correct, on passe à une phase de production. Il faut savoir que pour un objet simple tel qu'un gobelet en plastique, la conception est une affaire d'une poignée de semaines (soit quelques milliers d'euros) alors qu'un moule (empreinte + carcasse) nécessite plusieurs mois de fabrication et plusieurs centaines de milliers d'euros.
Par conséquent, dans un tel contexte, pour bien gérer son projet, il est important de ne pas négliger la validation de chaque étape sous peine de le voir déraper.
Ce phénomène intervient sur des chantiers logiciels réunissant des dizaines voire des centaines de personnes. Les décision de l'équipe de direction ou d'architecte de projet impactent tellement d'ingénieurs pour de telles durée qu'il vaut mieux s'assurer de la validité de chaque étape.
Par ailleurs, pour limiter l'entropie du système constitué par l'équipe-projet, il est nécessaire de formaliser par des documents (voire des outils)
- les processus
- les besoins
- les spécifications logicielles
- l'architecture logicielle
- les tests Dans le cas d'un projet logiciel impliquant une douzaine de personnes pendant une à deux années, la configuration n'est plus la même ; en effet, avec de tels projet on dispose :
- d'une plus grande réactivité due à
  - une proximité géographique
  - une facilité (relative) de communication
- d'un facteur de coût limité entre chaque étape Aussi, il est possible de s'orie