<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Propositiond'unprocessusde développement pour la modélisation sécuriséedessystèmesd'information</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Salim CHEHIDA</string-name>
          <email>salimchehida@yahoo.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mustapha kamel RAHMOUNI</string-name>
          <email>kamel_rahmouni@yahoo.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Départementd'Informatique,Université d'OranEs-Sénia</institution>
          ,
          <addr-line>Algérie</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Départementd'Informatique,Université de Mostaganem</institution>
          ,
          <addr-line>Algérie</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Mots clés : Modélisation, UML, Sécurité, Processus de développement</institution>
          ,
          <addr-line>Processus Unifié, Extreme Programming</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Lessystèmesd'informationprésentent des besoins plus en plus croissants en termes d'ouvertureàl'extérieur(clients,partenaires,fournisseurs) etd'évolutivité(techniqueetorganisation).Ouverture et évolutivité engendrent des gains de productivité et de compétitivité mais elles exposent aussi de plus en plus les systèmes aux actes de malveillance. La prise en compte des contraintes de sécurité (intégrité, confidentialité, non répudiation, disponibilité, etc.) au niveau de la modélisation constituel'undesprincipauxchallengespour les concepteurs des SI. Dans cet article, nous proposons un nouveau processus de développement construit àpartird'UML qui prend en considération, en plus des besoins fonctionnels, les contraintes de sécurité et aussi le changement et l'évolutiondel'architecturetechniquedessystèmesd'information.Ce processus vérifie les caractéristiques des processus unifiés et est basésurl'Extreme Programming (XP).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Lesévolutionsrécentesetrapidesdel’informatiqueontcontribuéàl’accélération
deséchangesd’informations.Eneffet,les réseauxdel'entreprisemettentenoeuvre
des données sensibles, les stockent, les partagent en interne et les communiquent à
d'autres entreprises ou personnes. Parallèlement, le nombre de problèmes de sécurité a
augmenté de manière très important ces dernières années, et cette courbe ascendante
nedevraitmalheureusementpass’infléchir.Lesentreprisesse trouvent désormais
confrontéesaucontrôleefficacedelaconfidentialité,del’intégritéetdeladisponibilité de ces informations. La sécurité à posteriori des SI (Firewall, Antivirus, etc.) et les
nouvelles technologies n tiers qui tiennent en charge le problème de sécurité en
dehors du code métier peuvent donner des résultats mais elle ne constitue pas une
véritable politique de sécurité. Nouspensonsquel’élaborationd’unepolitiquedesécurité
doit se faire en même temps que la modélisation fonctionnelle, et que le modèle final
doit intégrer à la fois les spécifications fonctionnelles et de sécurité.
UMLs’estimposé comme le langage standard pour la modélisation desvuesmultiplesd’unsystèmeà
l’aidedemécanismescommelesstéréotypes,lesétiquettes, les notes, les contraintes,
etc. UMLsecestuneextensiond’UMLproposéeparJanJürjens(Munich University
of Technology). Cetteversiond’UMLutiliselesdifférentsmécanismesd’extension
pour la modélisation des aspects de sécurité. Dans le cadre de la modélisation avec
UML, une famille de processus unifiés (Unified Processes) a été proposée. Concevoir
à partir d’unseulprocessusseraitunegraveerreurcarlavariétédessystèmesetdes
techniques ne le permet pas. Le présent article propose un nouveau processus de
développement permettant l’intégrationdescontraintesdesécuritédanslamodélisation
dessystèmesd’information.Entenantcompte
desévolutionsdel’architecturetechnique des systèmes, ce processus définit deux axes de conception : la vue logique ou de
conception qui décrit les aspects statiques et dynamiques du système en termes de
classesetd’objets, et la vue technique qui se préoccupe de la spécification de
l’architecturetechniquedusystème.Pour augmenter le niveau de satisfaction des
clients tout en rendant le développement plus facile en favorisant le travail en équipe,
la communication avec le client, et en livrant de façon itérative le produit logiciel, une
famille de méthodes appelées « Agile » a été proposée. Extreme Programming (XP)
est une méthode de type « Agile » basée sur les principes de communication,
simplicité, feedback et courage. Nousavonsessayéd’intégrercesderniersprincipesdans
notre processus de développement.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Présentation générale du processus</title>
      <p>Le processus en X ou XUP « X Unified Process » est un nouveau processus de
développement que nous proposons dans cet article. Ce processus répond bien aux
caractéristiquesd’unprocessusUPetilestbasésuruneapproche disciplinée focalisée
surl’Extreme Programming afin de bien maîtriser, tout au long du cycle de
développement du logiciel, l'assignation des tâches et la responsabilisation des différents
acteurs participants. Le « X » signifie littéralement que le processus suit deux chemins
en haut et deux chemins en bas ce que donne une forme en X. Les deux chemins du
haut sont utilisés pour la spécification parallèle des besoins fonctionnels et des
contraintes de sécurité, et les deux chemins du bas correspondent aux deux axes des
changementsimposésausystèmed’information: ils’agitdelavuelogiqueoude
conception qui décrit les aspects statiques et dynamiques du système en termes de
classes et d’objetset la vue technique qui se préoccupe de la spécification de
l’architecturetechniquedusystème.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Axiomes fondateurs</title>
      <p>Le processus en X est basé sur les deux axiomes suivants:
1) Laspécificationfonctionnelledessystèmesd’informationn’estpassuffisantepour
résoudre les différentes problématiques liées à l’intégration des réseaux informatiques
dans ces systèmes, comme, entre autres, les problèmes de sécurité. La conception et la
réalisation des systèmes d’informationdoivent tenir compte, en plus des besoins
fonctionnels, des différentes contraintes de sécurité. On peut procéder donc à une
spécification parallèle, suivant un axe gauche « fonctionnel » et un axe droite « de sécurité ».
Al’issuedesévolutionsdesspécificationsfonctionnellesetde sécurité, la conception
du système consistera à fusionner les résultats de ces deux branches du processus.
Par exemple: Lorsque un client veut effectuer un paiement des factures par Internet
pour une entreprise commerciale, la branche gauche consiste à spécifier et à traiter les
différents besoins
fonctionnelstelquel’identificationdelacartedecrédit,laspécificationdesfacturesimpayéesetl’affectationdesfacturesàpayer.Parcontrelabranche droite consiste à spécifier et analyser les différentes contraintes de sécurité liées à
l’opérationdepaiementtelquel’intégritéetlaconfidentialitédesfacturesetdesinformations de paiement et aussi la non répudiation de paiement. En fin, les résultats
issusdesdeuxbranchespermettentd’assureruneopérationdepaiementsécurisée.</p>
      <p>Besoins
fonctionnels
Contraintes
de sécurité</p>
      <p>Conception du</p>
      <p>Système d’Information
Fig. 1. Laconceptiond’unsystèmed’informationsujetàdesbesoins</p>
      <p>fonctionnels et à des contraintes de sécurité
2) L’organisationlogique, qui décrit les aspects statique et dynamique du système en
termesdeclassesetd’objets, est en effet indépendante des technologies et
architectures techniques utilisées pourledéveloppementd’unproduitlogiciel.Le deuxième
axiome fondateur du processus en X consiste à décomposer et à traiter parallèlement
les vues logique et technique du système à partir des besoins fonctionnels et de
sécurité spécifiés précédemment. Enfin, la réalisation du système consiste à intégrer le
modèlelogiquedansl’architecturetechnique.La branche logique consiste en effet à
définir la structure et la dynamique des classes et des objets de système, à l'autre côté, la
branche technique spécifie l'architecture technique et la configuration matérielle du
système.</p>
      <p>Spécification des
besoins fonctionnels</p>
    </sec>
    <sec id="sec-4">
      <title>4. Architecture et description des phases</title>
      <p>LafiguresuivanteprésenteleschémagénéralduprocessusenX.D’uncôté,la
spécification parallèle des besoins fonctionnels et des contraintes de sécurité et, de
l’autrecôté,laconceptionlogiqueetcelledel’architecturetechniquedusystème,qui
donne au processus une forme en X.</p>
      <p>Recueil initial des besoins</p>
      <sec id="sec-4-1">
        <title>4.1. Recueil initial des besoins</title>
        <p>Le recueil initial des besoins est la première phase du processus en X. Cette étape
joue un rôle très important car elle constitue le point de départ de la modélisation du
système. Elle consiste à effectuer un premier repérage des besoins fonctionnels et de
sécurité en utilisant le texte pour définir les cahiers des charges (fonctionnel et
sécurité),etdesdiagrammessimplespourvisualiserlecontextedusystème.L’objectif
principal de cette phase est donc de préparer le terrain aux phases de spécification des
besoins fonctionnels et des contraintes de sécurité.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Spécification des besoins fonctionnels</title>
        <p>Cette phase a pour objectifs de compléter le recueil initial des besoins
fonctionnels effectué durant la phase précédente, et de définir la frontière fonctionnelle entre
le système et son environnement en précisant les activités attendues des différents
utilisateurs du système. Cette étape produit un modèle qui permet de contrôler la bonne
adéquation des besoins fonctionnels avec ceux des utilisateurs. La technique des cas
d’utilisationestlapierreangulairedecetteétape.Ellepermetdespécifierl’ensemble
desséquencesd’interactionsentrelesystèmeetsesacteurs.Cettephaseconsisteaussi
àdécrireladynamiquedescasd’utilisationenutilisantletexteetlesdifférentsmodèles dynamiques.</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. Spécification des contraintes de sécurité</title>
        <p>Cette phase consiste à compléter la spécification des différentes contraintes de
sécurité recensées dans la phase de recueil initial des besoins, et qui dimensionnent la
conception logique et technique du système. Dans cette phase, nous introduisons les
notions de cas de sécurité et de diagramme de cas de sécurité. Un cas de sécurité est
utilisé pour représenter les services de sécurité fournis par le système pour les
différents acteurs. Cette phase consiste aussi à décrirelesscénarioscritiquesàl’aidedes
différents modèles dynamiques, ainsi que l’identificationdesattaquespossibles.</p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4. Collaboration et validation</title>
        <p>Cette phase consiste à coordonner entre les modèles de deux branches de
spécification, puis de valider les besoins fonctionnels et les contraintes de sécurité avec le
client. Danslecarded’unprocessusitératif,incrémentaletpilotéparlesrisques,cette
étape permet aussi de partager le projet en itérations en affectant des niveaux de
risqueàchaquecasd’utilisationetsescorrespondantsdesécurité,etencommençantpar
lescaslespluscritiquesentermesdegestiondeprojetafind’annulerlesrisques
d’échec.</p>
      </sec>
      <sec id="sec-4-5">
        <title>4.5. Analyse et conception</title>
        <p>Cette phase décrit les aspects statiques et dynamiques du système en termes de
classesetd’objets,ainsiquelescollaborationsetlesinteractionsentrecesobjets.Elle
produit un modèle de conception du domaine qui définit la structure et la dynamique
des objets connus dans le métier des utilisateurs du système dans le cadre de la mise
en application de leurs besoins fonctionnels et de sécurité.</p>
      </sec>
      <sec id="sec-4-6">
        <title>4.6. Architecture technique</title>
        <p>Cette phase consiste à recenser toutes les contraintes et les choix techniques. Elle
produitdesmodèlespermettantd’exprimerlescontraintesdemiseenoeuvreauniveauphysique(lesnoeudsetlesconnexionsphysiquesdusystème),etdedéfinirune
architecture basée sur des dispositions préventives prenant en considération les
contraintes fonctionnelles et de sécurité pour assurer la sécurité du système contre les
menaces potentielles.
4.7. Intégration, codage et tests</p>
        <p>Cettephaseconsisteàintégrerlemodèlelogiquedansl’architecturetechnique,
en spécifiant le modèle de déploiement et le modèle de données de système ainsi que
le codage et la réalisation du système. Cette phase permet aussi de tester les unités de
code réalisées et de valider les fonctions du système développé.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Tactiques de progression</title>
      <p>XUP passe par un ensemble d’étapes successives de plus en plus détaillées, une
telle progression organise le volume des informations collectées et définit les objectifs
à atteindre pour chaque étape suivant un découpage en niveaux de détail croissants.
Lafiguresuivantemontrelesdifférentsniveauxd’avancementduprocessus en X.</p>
      <p>Contexte</p>
      <p>Cas d’utilisation
Enchaînements de description</p>
      <p>Classes statiques
Interaction des objets
Classes de conception</p>
      <p>Cas de sécurité
Scénarios critiques</p>
      <p>Choix technique
Composants d’exploitation</p>
      <p>Spécification matérielle
Modèle de déploiement</p>
      <p>Modèle de données</p>
      <p>Codage et recette
* Pour la phase de recueil initial de besoins :</p>
      <p>Le niveau « contexte » consiste à définir la frontière fonctionnelle et les différents
services de sécurité attendus du système considéré comme une boîte noire.
* Pour la phase de spécification des besoins fonctionnels :</p>
      <p>Le niveau « casd’utilisation» a pour objet de montrer les différentes possibilités
d’utilisationdusystèmeàpartirdumodèledecontexteafind’identifierlecomportement de ce système sans spécifier sa structure interne. Lescasd’utilisationpermettent
aussideforcerl’utilisateuràdéfinircequ’ilattenddusystème.</p>
      <p>Les « enchaînements de description » consistent à établir une description des cas
d’utilisationidentifiésau niveauprécédent,enprésentantl’ensembledesinteractions
entre les acteurs et le système considéré comme une boîte noire. La description des
casd’utilisationestindispensable,carellepermetde communiquer facilement et de
manière précise avec les utilisateurs.
* Pour la phase de spécification des contraintes de sécurité :</p>
      <p>Le niveau « cas de sécurité » permet de définir les services de sécurité fournis par
le système (toujours envisagé comme une boite noire) afin de répondre aux
différentes exigences de sécurité identifiées au niveau contexte. Les cas de sécurité sont
absolumentdistinctsdescasd’utilisation; ils ne produisent pas une valeur ajoutée
fonctionnelle mais ils recouvrent en effet tous service de sécurité dont un utilisateur
bénéficie. Par exemple : Assurerl’authentificationd’unutilisateur, Assurerl’intégrité
et la confidentialité des informations échangées, Assurer la non répudiationd’une
transaction,...</p>
      <p>Les « scénarios critiques » consistent à décrire les interactions ou les actions qui
incluent un risque en mettant en jeu les différentes services ou propriétés de sécurité
spécifiées par les cas de sécurité. Par exemple : les scénarios qui permettent d’assurer
la non répudiation dans les transactions; il garantir que si une action est exécutée, elle
ne peut pas être niée (elle est prouvée), les scénarios qui permettent d’assurer un
échange équitable lors d'une transaction, les scénarios qui spécifient les interactions
permettantl’échange desinformationscritiques(nécessite la confidentialité et
l’intégrité)
* Pourlaphased’analyse et conception :</p>
      <p>Les « classes statiques » sont identifiées à partir des concepts métier extraits des
scénariosdedescriptiondescasd’utilisationetdesscénarioscritiques.Ces concepts
seront ensuiteformaliséssousformedeclassesetd’associationsrassembléesdansun
diagramme statique.</p>
      <p>Après le développement du modèle statique, nous remplaçons le système,
considéré comme une boite noire lors de la spécification, parunensembled’objets.Le niveau
« interaction » consiste donc à représenter la collaboration entre ces objets à partir des
scénariosdécrivantl’exécutiondescasd’utilisation ou de sécurité</p>
      <p>Le niveau « classe de conception » consiste à optimiser les modèles statiques en
affinant les classes, les associations et les attributs, et en ajoutant les opérations
identifiéesgrâceàl’analysedynamiquedesscénariosd’interaction. Dans le modèle de
conception, on doit spécifier les propriétés de sécurité sur les données en profitant de
la spécification des contraintes de sécurité.
* Pourlaphased’architecturetechnique:</p>
      <p>Le niveau « choix technique » permet de spécifier les pré-requis et les stratégies
techniques, ainsiquelestyled’architectureentenantcomptedes contextes
fonctionnel et de sécurité.</p>
      <p>Après la spécification des choix techniques, le niveau « composants
d’exploitation» définit la façon dont sera organisé les différents composant du
système (Basededonnées,Serveurs,Applications,… ).</p>
      <p>Le niveau « spécification matérielle » permetdedéfinirl’organisationphysiqueen
termes de machines connectées par des moyens divers. En effet, les machines et les
connexions sont toutes en
relationdirecteaveclescomposantsd’exploitation.Lemodèle matériel doit intégrer les dispositions de prévention pour répondre aux
contraintes de sécurité.
* Pour la phase Intégration, codage et tests :</p>
      <p>Le « modèle de déploiement » permet de représenter les postes de travail, la
répartition des fonctions du système, ainsi que la localisation des composants
d’exploitationsurleréseauphysique.</p>
      <p>Le « modèle de données » permet la conception du stockage des données en
étudiant sous quelle forme les instances sont sauvegardées sur un support physique.</p>
      <p>Le niveau « Codage et recette » permet de produire et tester les unités de code puis
de valider les fonctions de système développé.
6. Politiqued’itérationetdegestiondeprojets</p>
      <p>Après le recueil initial des besoins et la définition des cahiers des charges
fonctionnel et de sécurité avec le client, le système est découpé en packages fonctionnels
fortement cohérents (en termes métier) et faiblement couplés (indépendants). A cet
effet, il convient de spécifier les packages de sécurité permettant la structuration des
contraintes de sécurité liées à chaque package fonctionnel. Un package fonctionnel et
son correspondant de sécurité sont appelés package métier. Il sera ensuite demandé au
client de définir des niveaux de priorité pour chaque package métier afin de livrer les
fonctions les plus demandées.</p>
      <p>La phase de spécification se fait par itération : chaque itération correspond à un
package métier. Aprèsl’identificationdescasd’utilisationetdesécurité,lechefde
projetvalidecescasavecleclientoulesacteursconcernés.Sil’ensembledesexigencesassuréesparlescasd’utilisationetdesécuriténerépond pas aux besoins des
cahiersdescharges,l’équipedespécification doit reprendre la spécification et corriger
les erreurs. Aprèslavalidationdescasd’utilisationetdescasdesécuritédupackage
métier correspondant à une itération, on devra associer des niveaux de risque à chaque
cas. A cet effet, il faudracommencerparlescasd’utilisationetdesécuritélesplus
critiques en termes de gestion de projet afin de lever les risques majeurs. Une fois
l’affectationdesniveauxderisqueétablie,onprocèdeaudécoupageduprojetenitérations. Chaque itérationinclutunensembledecasd’utilisationetde cas de sécurité.</p>
      <p>La progression de la conception logique et technique est aussi de type itératif.
L’analyseetlaconceptionlogiquecommencentparl’identificationdesclassescandidates à partir des cas
d’utilisationdelamêmeitération.Cesclassesserontensuitedétaillées,complétéesetoptimisées.Letravaild’affinementconsisteàajouter,àmodifier ou à supprimer des classes, des associations ou des attributs. On profite ensuite de
la branche de sécurité pour définir les contraintes de sécurité sur les données, et de
l’analysedynamiquepourl’ajoutdesopérations.Aprèsl’élaborationdumodèlelogiqued’uneitération,onspécifiel’architecturetechniquepermettantl’exploitationde
ce modèle. Si
lemodèlelogiqueetsoncorrespondanttechniqued’uneitérationatteignentlesobjectifsfixés,onpasseàl’implémentation.Les taches d’industrialisation
du logiciel concernent la mise en place des moyens et des outils qui vont permettre la
livraison (release)d’uneitération.</p>
    </sec>
    <sec id="sec-6">
      <title>7. Réutilisation et maintenance</title>
      <p>La phase de spécification des besoins fonctionnels produit des modèles pour le
moyen et long terme, afindecapitaliserlemétierdel’entrepriseetlefonctionnement
desonsystèmed’information.La phase de spécification des contraintes de sécurité,
quant à elle, produit des modèles pour le court terme, afin de définir les exigences de
sécuritésimposéesauxsystèmesd’informationaprèslacapturedesmenacesprovenantdel’environnementdel’entreprise.Sil’environnementexigedenouvellesdonnes en matière de sécurité, il suffira
d’intégrerlaspécificationdesnouvellescontraintesdesécuritédanslemodèlelogiqueetd’architecturetechniquepourmettreàjourle
système sans passer par la spécification fonctionnelle.</p>
      <p>La phase d’analyse et de conception produit des modèles pour le moyen et long
terme afin de représenter la vue logique de système en termes de classes et objets.
D’unautre côté, la phase d’architecturetechniquepermetdedévelopper des modèles
pour le court et le moyen terme afin de visualiser la conception technique du système.
Le modèle logique étant indépendantdel’architecturetechnique, on peut donc
réaliser le même modèle logique en utilisant les différentes technologies dépendantes des
mêmes exigences fonctionnelles et de sécurité.
8. Le processus en X, Processus Unifié et Extreme Programming
8.1. LeprocessusenXvérifielescaractéristiquesd’unprocessusunifié</p>
      <p>Un processus unifié est un processus de développement logiciel construit sur UML,
ilestitératifetincrémental,centrésurl’architectureetpilotéparlesexigencesdesutilisateurs.LeprocessusenXvérifielescaractéristiquesd’unprocessusunifié.
Le processus en X piloté par les exigences des utilisateurs :
Les exigences des utilisateurs sont donc prioritairement abordées dans ce processus en
considérant deux types de besoins :
1. Les besoins fonctionnels qui correspondent aux fonctions métiers du système.
2. Les besoins de sécurité qui correspond aux services de sécurité qui doivent être
rendu par le système.</p>
      <p>Pourchaque cas d’utilisation,on procède à la description de l’ensemble
d’interactionsentrelesutilisateursetlesystème.Lesconceptsutilisésdanscettedescription mets en
évidencelesdifférentesclassesetobjetsdusystème.Dansl’autrecôté, les cas de sécurité et scénarios critiques permettant de définir les sous systèmes, les
objets et les classes critiques ainsi que des niveaux de sécurité sur les données. Pour la
conceptiond’architecture,leschoixtechniquesdoiventêtrepilotésparlesbesoins
fonctionnels et les contraintes de sécurité. Le modèle de déploiement exprime
généralement la répartition physique des fonctions métier sur les différents acteurs. Ce
modèle doit prendre en considération les fonctions du système spécifiées par les cas
d’utilisationpourl’identificationdespostesdetravail,et les contraintes de sécurité
pour montrer les conditions de sécurité sur les connexions. La configuration
matérielle doit intégrerlesdispositifspréventifsetlescomposantsd’exploitationdoivent
satisfaire les exigences fonctionnelles et de sécurité.</p>
      <p>Le processus en X itératif et incrémental
Lechoixd’uneitération repose sur deux facteurs:
- Une itération prend en compteuncertainnombredecasd’utilisationet ses
correspondants de sécurité
- L’itérationtraiteenprioritélesrisquesmajeurs.</p>
      <p>Achaqueitération,lesdéveloppeursidentifientetspécifientlescasd’utilisationset
de sécurité, créent une conception logique et technique, intègrent et implémentent ces
conceptions sous forme de composants et vérifient que ceux-ci sont conformes aux
casd’utilisationet aux cas de sécurité.Dèsqu’uneitérationrépondauxobjectifs
fixés, ledéveloppementpasseàl’itération suivante.</p>
      <p>Dans le cadre de la livraison des parties de système prioritairement demandées,
notre politique de gestion de projet consiste à définir de niveaux de priorité pour chaque
package métier afin de livrer les parties les plus demandées. Dans le cadre de la
réductiondesrisquesd’échec,ilconvientd’associerdesniveauxderisquepourchaque
casd’utilisationetdesécurité, afin de commencer par les cas les plus critiques en
termes de gestion de projet.</p>
      <p>Le processus en X centré sur l’architecture</p>
      <p>L’architectured’unsystèmelogicielpeutêtredécritecommelesdifférentesvuesdu
système.L’architecture« 4+1 » vues proposée par Ph. Kruchten présente cinq vues
imbriquées : la vue des besoins des utilisateurs, la vue logique ou de conception, la
vue des processus, la vue des composants ou de réalisation et la vue de déploiement.
Chaque vue est une projection dans l'organisation et la structure du système qui
s'intéresse à un aspect particulier de ce système. Les différentes vues sont abordées par le
processus en X.</p>
      <p>La vue des besoins des utilisateurs</p>
      <p>La vue des processus
La vue logique</p>
      <p>La vue des Composants</p>
      <p>La vue de déploiement</p>
      <sec id="sec-6-1">
        <title>8.2. Le processus en X est basé sur XP (Extreme Programming)</title>
        <p>
          Extreme Programming est une méthode « Agile » basée sur un ensemble de
pratiques destinées à organiser le travail d'une équipe de développement. Plus
généralement, les pratiques XP sont sous-tendues par les quatre principes suivants [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] :
* La Communication : XP favorise le contact humain, la communication directe,
plutôt que le cloisonnement des activités et les échanges de documents formels. Les
développeurs travaillent directement avec le client et les testeurs sont intégrés à l'équipe
de développement.
* Le Feedback : Les pratiques XP sont conçues pour donner un maximum de
feedback sur le déroulement du projet afin de corriger la trajectoire au plus tôt. En
particulier, les points de début d'itération offrent à l'équipe le moyen de prendre du recul sur
son fonctionnement et de l'améliorer sans cesse au fil des itérations.
* La Simplicité: XP relève le défi suivant : « que pouvons-nous arrêter de faire tout
en continuant à créer efficacement un logiciel qui réponde aux besoins réels du client
? ». Cette recherche de simplification touche le processus lui-même, mais aussi l'outil
fabriquéetlaconceptiondel’application.
* Le Courage: il s'agit principalement du courage d'honorer les autres valeurs –celui
de maintenir une communication franche et ouverte, d'accepter et de traiter de front
les mauvaises nouvelles, etc.
        </p>
        <p>Pour vérifier ces quatre principes,leprocessusenX metenoeuvrelespratiques
suivantes :
Travail en équipeetl’implicationduclient:</p>
        <p>Le processus en X partage le travail de développement en plusieurs équipes
(équipe de spécification fonctionnelles, équipe de spécification de sécurité, équipe de
conception logique, équipe technique, équipe de codage et réalisation et testeurs) et
favorise la communication entre les différentes équipes ainsi que la communication
avec le client ou les utilisateurs.</p>
        <p>Programmation pilotée par les tests :</p>
        <p>Pour chaque scénario planifié, un ensemble de tests de recette est élaboré. Ces tests
consistent à vérifier chacune des fonctionnalités demandées par le client. Le client
doit donc participer à ces tests. En complément des tests de recette, qui servent à
prouver au client que le logiciel remplit ses objectifs, Le processus en X réalise des
tests unitaires. Ces tests permettent de spécifier et valider le comportement de chaque
portion de code ajoutée.</p>
        <p>Cycles itératifs pilotés par le client :</p>
        <p>L'équipe livre régulièrement des versions du logiciel, les livraisons de nouvelles
versions s'enchaînent à un rythme soutenu pour obtenir un feedback maximal sur
l'avancement des développements. Au début de chaque itération, le client et les
différentes équipes de développement se réunissent pour la planification de chaque
itération. Cette réunion se présente comme une réelle séance de travail, qui donne aux
différents intervenants l'occasion d'aligner leur compréhension de ce qui doit être réalisé.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>9. Conclusion</title>
      <p>Le processus enX vérifielescaractéristiquesd’unprocessusunifiéetpermet la
miseenoeuvredesdifférentespratiquesdel’Extreme Programming. Il constitue une
trame pour intégrer les meilleures pratiques dans les différents cycles de
développement. Ce processus permet une spécification parallèle des besoins fonctionnels et des
contraintes de sécurité,ainsiqu’une conception parallèle de la vue logique et
techniqued’unsystème.Cedécoupagefavoriseletravailenéquipeetrépondauxbesoins
d’évolutiondessystèmes.LeprocessusenXdéfinitunebonnepolitiqued’itération
pilotée par les risques et les priorités du client,ainsiqu’unebonne tactique de
progression définissant les objectifs à atteindre à chaque phase.
10. Références</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P.</given-names>
            <surname>ROQUES</surname>
          </string-name>
          et F. VALLEE, « UML en action », Eyrolles, (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>J.L.</given-names>
            <surname>BENARD</surname>
          </string-name>
          , L. BOSSAVIT,
          <string-name>
            <surname>D.WILLIAMS</surname>
          </string-name>
          , « L'ExtremeProgramming avec deux études de cas », Eyrolles, (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>I.JACOBSON</surname>
          </string-name>
          , G.BOUCH,
          <string-name>
            <surname>J.RAMBAUGH</surname>
          </string-name>
          , « Le processus unifié de développement logiciel », Eyrolles, (
          <year>2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>A.COCKBURN</surname>
          </string-name>
          , «
          <article-title>Rédiger des cas d'utilisation efficaces »</article-title>
          , Eyrolles, (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. P.ROQUES, «
          <article-title>UML par la Pratique »</article-title>
          , Eyrolles, 2ème édition (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>R.MEDINA</given-names>
            ,
            <surname>« L'ExtremeProgramming »</surname>
          </string-name>
          , Cours Crossbow Labs, (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. P. KRUCHTEN , «
          <article-title>The Rational Unified Process : An Introduction »</article-title>
          ,
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          , Second
          <string-name>
            <surname>Edition</surname>
          </string-name>
          (
          <year>2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>P.</given-names>
            <surname>KRUCHTEN</surname>
          </string-name>
          et K. PER, «
          <article-title>Guide pratique du RUP »</article-title>
          , Campus Press, (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>S. MENG</surname>
          </string-name>
          «
          <article-title>Security Requirements Analysis and Modeling of Distributed System »s,</article-title>
          <source>Master´s Thesis</source>
          , Munich University of Technology Department of Informatics,
          <source>Software &amp; Systems Engineering</source>
          , (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. E.MAIWALD, «
          <article-title>Sécurité des réseaux »</article-title>
          , Campus Press, (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>J.JURJENS</surname>
          </string-name>
          , «
          <article-title>Secure Systems Development with UML: a Foundation »</article-title>
          , (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>S.CHEHIDA</surname>
          </string-name>
          , «
          <article-title>Modélisation sécurisée des systèmes d'information Etude de cas: ANPE », Mini-projet (</article-title>
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. P. ROQUES, «
          <article-title>UML est-il soluble dans les méthodes agiles ? »</article-title>
          , Eyrolles, (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>B.</given-names>
            <surname>DEBBABI</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.S.BOUDJELDA</surname>
          </string-name>
          , « Le processus unifié de développement logiciel RUP », (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. G. PICARD, «le processus unifié»,
          <source>Cours ENS Mines Saint-Etienne</source>
          ,
          <article-title>(</article-title>
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. P. ROQUES, «
          <article-title>Modéliser un site e-commerce»</article-title>
          , Eyrolles, (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>K.</given-names>
            <surname>SCOTT</surname>
          </string-name>
          , «Unified Process Explained », Addison-Wesley,
          <article-title>(</article-title>
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. C.LARMAN, «
          <article-title>UML et les Design Patterns »</article-title>
          , Campus Press, (
          <year>2002</year>
          ).
          <article-title>Webographie 1</article-title>
          . http://www.xprogramming.
          <source>com/software.htm 2</source>
          . http://www.agilealliance.org 3. http://en.wikipedia.org/wiki/Rational_Unified 4. www.
          <source>extremeprogramming.org, 5. www.xpdeveloper.com 6. www.xprogramming.com 7</source>
          . www.xp123.com
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>