Proposition d'un processus de développement pour la modélisation ...

des données sensibles, les stockent, les partagent en interne et les ... branche technique spécifie l'architecture technique et la configuration matérielle du.
259KB taille 8 téléchargements 131 vues
Pr opo s i t i ond’ unpr oc e s s usde développement pour la modélisation s é c ur i s é ede ss ys t è me sd’ i nf o r mat i o n Salim CHEHIDA 1, Mustapha kamel RAHMOUNI 2 Dé pa r t e me n td’ I nf or ma t i qu e ,Université de Mostaganem, Algérie [email protected] 2 Dé pa r t e me n td’ I nf or ma t i qu e ,Université d’ Or a nEs-Sénia, Algérie [email protected] 1

Abstract. Le ss y s t è me sd’ i nf or ma t i on pr é s e nt ent des besoins plus en plus croissants en termes d’ ouv e r t ur eàl ’ e x t é r i e ur( c l i e nt s ,pa r t e na i r e s ,f our ni s s e ur s ) e td’ é v ol ut i v i t é( t e c h ni q uee tor g a ni s a t i on) .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 c ons t i t uel ’ u nde spr i nc i pa uxc ha l l e ng e spour les concepteurs des SI. Dans cet article, nous proposons un nouveau processus de développement construit àpa r t i rd’ UML qui prend en considération, en plus des besoins fonctionnels, les contraintes de sécurité et aussi le changement et l ’ é v ol ut i o ndel ’ a r c hi t e c t ur et e c hni q uede ss y s t è me sd’ i nf or ma t i on.Ce processus vérifie les caractéristiques des processus unifiés et est ba s és url ’ Extreme Programming (XP).

Mots clés : Modélisation, UML, Sécurité, Processus de développement, Processus Unifié, Extreme Programming.

1. Introduction Le sé v ol ut i on sr é c e n t e se tr a pi de sdel ’ i nf or ma t i qu eon tc on t r i bu éàl ’ a c c é l é r a t i on de sé c h a ng e sd’ i n f or ma t i ons .Ene f f e t ,l e sr é s e a uxdel ' e n t r e pr i s eme t t e n te nœu v r e 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 n ede v r a i tma l h e u r e u s e me n tpa ss ’ i nf l é c h i r .Le se n t r e pr i s e sse trouvent désormais c on f r on t é e sa uc on t r ôl ee f f i c a c edel ac onf i de n t i a l i t é ,del ’ i n t é g r i t ée tdel adi s pon i bilité 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é. Nou spe ns on squ el ’ é l a bor a t i ond’ un epol i t i qu edes é c u r i t é 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 ’ e s ti mpo-

sé comme le langage standard pour la modélisation de sv u e smu l t i pl e sd’ uns y s t è meà l ’ a i dedemé c a n i s me sc ommel e ss t é r é ot y pe s ,l e sé tiquettes, les notes, les contraintes, etc. UMLs e ce s tun ee xt e ns i ond’ UMLpr opos é epa rJ a nJ ü r j e n s( Munich University of Technology). Ce t t ev e r s i ond’ UMLu t i l i s el e sdi f f é r e n t smé c a n i s me sd’ e x t e ns i on 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’ uns e u lpr oc e s s u ss e r a i tun eg r a v ee r r e u rc a rl ava r i é t éde ss y s t è me se tde s techniques ne le permet pas. Le présent article propose un nouveau processus de développement permettant l ’ i n t é g r a t i onde sc on t r a i n t e sdes é c u r i t éda nsl amodé l i s a t i on de ss y s t è me sd’ i n f or ma t i on .Ent e n a ntcompte de sé v ol u t i onsdel ’ a r c h i t e c t u r et e c h nique 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 c l a s s e se td’ obj e t s , et la vue technique qui se préoccupe de la spécification de l ’ a r c h i t e c t u r et e c hn i qu edus y s t è 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. Nou sa v on se s s a y éd’ i n t é g r e rc e sd e r n i e r spr i n c i pe sdans notre processus de développement.

2. Présentation générale du processus 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 car a c t é r i s t i qu e sd’ unpr oc e s s usUPe ti le s tba s és u run ea ppr oche disciplinée focalisée s u rl ’ 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 c h a ng e me nt si mpos é sa us y s t è med’ i nf or ma t i on: i ls ’ a g i tdel av u el og i qu eoude conception qui décrit les aspects statiques et dynamiques du système en termes de classes et d’ obj e t set la vue technique qui se préoccupe de la spécification de l ’ a r c h i t e c t u r et e c h ni qu edus y s t è me .

3. Axiomes fondateurs Le processus en X est basé sur les deux axiomes suivants: 1) Las pé c i f i c a t i onf on c t i onn e l l ede ss y s t è me sd’ i nf or ma t i onn’ e s tpa ss u f f i s a nt epour 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’ i nf or ma t i ondoivent tenir compte, en plus des besoins fonctionnels, des différentes contraintes de sécurité. On peut procéder donc à une spécifi-

cation parallèle, suivant un axe gauche « fonctionnel » et un axe droite « de sécurité ». Al ’ i s s u ede sé v ol u t i on sde ss pé c i f i c a t i onsf on c t i onn e l l e se tde 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 fonctionnelst e lqu el ’ i de n t i f i c a t i ondel ac a r t edec r é di t ,l as pé c i f ic a t i onde sf a c t u r e si mpa y é e se tl ’ a f f e c t a t i onde sf a c t u r e sàpa y e r .Pa rc on t r el abr a nche droite consiste à spécifier et analyser les différentes contraintes de sécurité liées à l ’ opé r a t i ondepa i e me n tt e lqu el ’ i n t é g r i t ée tl ac on f i de n t i a l i t éde sf a c t u r e se tde si nformations de paiement et aussi la non répudiation de paiement. En fin, les résultats i s s u sde sde uxbr a n c h e spe r me t t e n td’ a s s u r e run eopé r a t i ondepa i e me n ts é c u r i s é e . Contraintes de sécurité

Besoins fonctionnels Conception du Système d’ I nf or mat i on

Fig. 1. Lac onc e pt i ond’ uns y s t è med’ i nf or ma t i ons uj e tàde sbe s o i ns fonctionnels et à des contraintes de sécurité

2) L’ or g a n i s a t i onlogique, qui décrit les aspects statique et dynamique du système en t e r me sdec l a s s e se td’ obj e t s , est en effet indépendante des technologies et architectures techniques utilisées pou rl edé v e l oppe me n td’ u npr odu i tl og i c i e l . 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è l el og i qu eda n sl ’ a r c h i t e c t ur et e c h n i qu e .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. Spécification des besoins fonctionnels

Conception logique

Spécification des contraintes de sécurité

Conception technique

Fig. 2. La conception des systèmes se fait suivant un axe logique et technique

4. Architecture et description des phases Laf i gu r es u i v a nt epr é s e n t el es c h é mag é n é r a ldupr oc e s s u se nX.D’ unc ôt é ,l a spécification parallèle des besoins fonctionnels et des contraintes de sécurité et, de l ’ a u t r ec ôt é ,l ac on c e pt i onl ogi qu ee tc e l l edel ’ a r c h i t e c t u r et e c h ni qu edus y s t è me ,qui donne au processus une forme en X. Recueil initial des besoins

Spécification des besoins fonctionnels

Spécification des contraintes de sécurité

Collaboration et validation

Analyse et conception

Architecture technique

Intégration, codage et tests

Fig. 3. Les phases du processus de développement en X

4.1. Recueil initial des besoins 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 é ) ,e tde sdi a g r a mme ss i mpl e spou rv i s u a l i s e rl ec on t e x t edus y s t è me .L’ obj e c t i f 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é. 4.2. Spécification des besoins fonctionnels 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’ u t i l i s a t i one s tl api e r r ea ng ul a i r edec e t t eé t a pe .El l epe r me tdes pé c i f i e rl ’ e ns e mbl e de ss é qu e n c e sd’ i n t e r a c t i on se n t r el es y s t è mee ts e sa c t e u r s .Ce t t eph a s ec ons i s t ea u s s i

àdé c r i r el ady n a mi qu ede sc a sd’ u t i l i s a t i one nu t i l i s a ntl et e x t ee tl e sdi f f é r e nt smodèles dynamiques. 4.3. Spécification des contraintes de sécurité 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éc r i r el e ss c é n a r i osc r i t i qu e sàl ’ a i dede s différents modèles dynamiques, ainsi que l ’ i de n t i f i c a t i onde sa t t a qu e spos s i bl e s . 4.4. Collaboration et validation 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. Da n sl ec a r ded’ unpr oc e s s u si t é r a t i f ,i n c r é me n t a le tpi l ot épa rl e sr i s qu e s ,c e t t e étape permet aussi de partager le projet en itérations en affectant des niveaux de risqu eàc h a qu ec a sd’ u t i l i s a t i one ts e sc or r e s pon da n t sdes é c u r i t é ,e te nc omme n ç a n tpa r l e sc a sl e spl u sc r i t i qu e se nt e r me sdeg e s t i ondepr oj e ta f i nd’ a nn u l e rl e sr i s qu e s d’ é c h e c . 4.5. Analyse et conception Cette phase décrit les aspects statiques et dynamiques du système en termes de c l a s s e se td’ obj e t s ,a i n s iqu el e sc ol l a bor a t i on se tl e si n t e r a c t i on se n t r ec e sobj e t s .El l e 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é. 4.6. Architecture technique Cette phase consiste à recenser toutes les contraintes et les choix techniques. Elle pr odu i tde smodè l e s pe r me t t a n td’ expr i me rl e sc on t r a i n t e sdemi s ee nœuv r ea un iv e a uphy s i qu e( l e snœu dse tl e sc on n e x i on sphy s i qu e sdus y s t è me ) ,e tdedé f i n i run e 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 Ce t t eph a s ec on s i s t eài n t é g r e rl emodè l el og i qu eda nsl ’ a r c h i t e c t u r et e c h n i qu e , 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é.

5. Tactiques de progression 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. Laf i gu r es u i v a n t emon t r el e sdi f f é r e n t sn i v e a uxd’ a v a n c e me n tduprocessus en X. Contexte Cas de sécurité

Cas d’ ut i l i sat i on

Scénarios critiques

Enchaînements de description

Classes statiques

Choix technique

Interaction des objets

Composants d’ expl oi t at i on

Classes de conception

Spécification matérielle

Modèle de déploiement Modèle de données Codage et recette

Fig. 4. Niveaux de progression du processus en X

* Pour la phase de recueil initial de besoins : 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 : Le niveau « c asd’ ut i l i s at i on» a pour objet de montrer les différentes possibilités d’ u t i l i s a t i ondus y s t è meàpa r t i rdumodè l edec on t e x t ea f i nd’ i de n t i f i e rl ec ompor t ement de ce système sans spécifier sa structure interne. Le sc a sd’ u t i l i s a t i onpe r me t t e n t a u s s idef or c e rl ’ u t i l i s a t e u ràdé f i n i rc equ ’ i la t t e n ddus y s t è me . Les « enchaînements de description » consistent à établir une description des cas d’ u t i l i s a t i oni de n t i f i é sau n i v e a upr é c é de n t ,e npr é s e nt a n tl ’ e n s e mbl ede si n t e r a c t i on s entre les acteurs et le système considéré comme une boîte noire. La description des

c a sd’ u t i l i s a t i one s ti n di s pe n s a bl e ,c a re l l epe r me tde communiquer facilement et de manière précise avec les utilisateurs. * Pour la phase de spécification des contraintes de sécurité : 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 absol ume n tdi s t i n c t sde sc a sd’ u t i l i s a t i on; 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 : As s ur e rl ’ a u t h e nt i f i c a t i ond’ unutilisateur, As s u r e rl ’ i n t é g r i t é et la confidentialité des informations échangées, Assurer la non répu di a t i ond’ u ne transaction,... 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’ a s s u r e r 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 pe r me t t a n tl ’ é c h a n g e de si n f or ma t i ons c r i t i qu e s( n é c e s s i t el ac onf i de n t i a l i t ée t l ’ i n t é g r i t é ) * Pou rl aph a s ed’ analyse et conception : Les « classes statiques » sont identifiées à partir des concepts métier extraits des s c é n a r i osdede s c r i pt i onde sc a sd’ u t i l i s a t i one tde ss c é n a r i osc r i t i qu e s .Ces concepts seront e n s u i t ef or ma l i s é ss ousf or medec l a s s e se td’ a s s oc i a t i on sr a s s e mbl é e sda n sun diagramme statique. 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, pa rune n s e mbl ed’ obj e t s .Le niveau « interaction » consiste donc à représenter la collaboration entre ces objets à partir des s c é n a r i osdé c r i v a n tl ’ e x é c u t i onde sc a sd’ u t i l i s ation ou de sécurité 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 identif i é e sg r â c eàl ’ a n a l y s edy n a mi qu ede ss c é n a r i osd’ 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é. * Pou rl aph a s ed’ a r c h i t e c t u r et e c h ni qu e: Le niveau « choix technique » permet de spécifier les pré-requis et les stratégies techniques, a i ns iqu el es t y l ed’ a r c h i t e c t u r ee nt e n a n tc ompt edes contextes fonctionnel et de sécurité. Après la spécification des choix techniques, le niveau « composants d’ e x pl oi t at i on» définit la façon dont sera organisé les différents composant du système ( Ba s ededon n é e s ,Se r v e u r s ,Appl i c a t i on s , …) . Le niveau « spécification matérielle » pe r me tdedé f i n i rl ’ or g a n i s a t i onphy s i qu ee n termes de machines connectées par des moyens divers. En effet, les machines et les connexions sont toutes en r e l a t i ondi r e c t ea v e cl e sc ompos a n t sd’ e x pl oi t a t i on .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 :

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’ e x pl oi t a t i ons u rl er é s e a uphy s i qu e . 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. 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. Pol i t i qued’ i t é r at i one tdege s t i ondeprojets 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. La phase de spécification se fait par itération : chaque itération correspond à un package métier. Apr è sl ’ i de n t i f i c a t i onde sc a sd’ u t i l i s a t i one tdes é c u r i t é ,l ec h e fde pr o j e tv a l i dec e sc a sa v e cl ec l i e n toul e sa c t e u r sc on c e r n é s .Sil ’ e ns e mbl ede se x i g e nc e sa s s u r é e spa rl e sc a sd’ u t i l i s a t i one tdes é c u r i t én erépond pas aux besoins des cah i e r sde sc h a r g e s ,l ’ é qu i pedes pé cification doit reprendre la spécification et corriger les erreurs. Apr è sl av a l i da t i onde sc a sd’ u t i l i s a t i one tde sc a sdes é c u r i t édupa c k a ge métier correspondant à une itération, on devra associer des niveaux de risque à chaque cas. A cet effet, il faudr ac omme n c e rpa rl e sc a sd’ ut i l i s a t i one tdes é c u r i t él e spl us critiques en termes de gestion de projet afin de lever les risques majeurs. Une fois l ’ a f f e c t a t i onde sn i v e a uxder i s qu eé t a bl i e ,onpr oc è dea udé c ou pa g edupr oj e te ni t érations. Chaque itérationi n c l utu ne n s e mbl edec a sd’ u t i l i s a t i one tde cas de sécurité. La progression de la conception logique et technique est aussi de type itératif. L’ a n a l y s ee tl ac on c e pt i onl ogi qu ec omme n c e n tpa rl ’ i de n t i f i c a t i onde sc l a s s e sc a n didates à partir des cas d’ u t i l i s a t i ondel amê mei t é r a t i on .Ce sc l a s s e ss e r onte n s u i t edét a i l l é e s ,c ompl é t é e se topt i mi s é e s .Let r a v a i ld’ a f f i n e me n tc on s i s t eàa j ou t e r ,à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 ’ a n a l y s edy n a mi qu epou rl ’ a j ou tde sopé r a t i on s .Apr è sl ’ é l a bor a t i ondumodè l el og iqu ed’ un ei t é r a t i on ,ons pé c i f i el ’ a r c hi t e c t u r et e c hn i qu epe r me t t a n tl ’ e x pl oi t a t i onde ce modèle. Si lemodè l el og i qu ee ts onc or r e s pon da n tt e c h ni qu ed’ un ei t é r a t i ona t t e ig n e n tl e sobj e c t i f sf i x é s ,onpa s s eàl ’ i mpl é me nt a t i on .Les taches d’ i n du s t r i a l i s a t i on du logiciel concernent la mise en place des moyens et des outils qui vont permettre la livraison (release)d’ u n eitération.

7. Réutilisation et maintenance La phase de spécification des besoins fonctionnels produit des modèles pour le moyen et long terme, a f i ndec a pi t a l i s e rl emé t i e rdel ’ e nt r e pr i s ee tl ef on c t i on n e me nt des ons y s t è med’ i nf or ma t i on.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 é c u r i t é si mpos é e sa uxs y s t è me sd’ i nf or ma t i ona pr è sl ac a pt u r ede sme n a c e spr ov enantdel ’ e nv i r onn e me ntdel ’ e n t r e pr i s e .Sil ’ e nv i r onn e me nte x i g eden ou v e l l e sdonnes en matière de sécurité, il suffira d’ i n t é g r e rl as pé c i f i c a t i onde sn ouv e l l e sc on t r a i nt e sdes é c u r i t éda n sl emodè l el og i qu ee td’ a r c h i t e c t u r et e c h ni qu epou rme t t r eàj ou rl e système sans passer par la spécification fonctionnelle. 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’ u nautre côté, la phase d’ a r c h i t e c t u r et e c h n i qu epe r me tdedé v e l opper des modèles pour le court et le moyen terme afin de visualiser la conception technique du système. Le modèle logique étant i n dé pe n da n tdel ’ a r c h i t e c t u r et e c hn i qu e , 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. Lepr oc e s s use nXvé r i f i el e sc ar ac t é r i s t i que sd’ unpr oc e s s usuni f i é Un processus unifié est un processus de développement logiciel construit sur UML, i le s ti t é r a t i fe ti n c r é me n t a l ,c e n t r és u rl ’ a r c h i t e c t u r ee tpi l ot épa rl e se x i g e n c e sde su t il i s a t e u r s .Lepr oc e s s u se nXvé r i f i el e sc a r a c t é r i s t i qu e sd’ unpr oc e s s u su n i f i é . 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. Pou rc h a qu ec a s d’ u t i l i s a t i on ,on pr oc è de à l a de s c r i pt i on de l ’ e n s e mbl e d’ i n t e r a c t i on se n t r el e su t i l i s a t e u r se tl es y s t è me .Le sc on c e pt su t i l i s é sda nsc e t t ede scription mets en évide n c el e sdi f f é r e n t e sc l a s s e se tobj e t sdus y s t è me .Da n sl ’ a u t r ec ô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 concept i ond’ a r c h i t e c t u r e ,l e sc h oi xt e c hn i qu e sdoi v e n tê t r epi l ot é spa rl e sbe s oi ns 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’ u t i l i s a t i onpou rl ’ i de n t i f i c a t i onde spos t e sdet r a v a i l , et les contraintes de sécurité pour montrer les conditions de sécurité sur les connexions. La configuration maté-

rielle doit i n t é g r e rl e sdi s pos i t i f spr é v e n t i f se tl e sc ompos a n t sd’ e x pl oi t a t i ondoi v e n t satisfaire les exigences fonctionnelles et de sécurité. Le processus en X itératif et incrémental Lec h oi xd’ u n ei t é r a t ion repose sur deux facteurs: - Une itération prend en compt eu nc e r t a i nn ombr edec a sd’ u t i l i s a t i onet ses correspondants de sécurité - L’ i t é r a t i ont r a i t ee npr i or i t él e sr i s qu e sma j e u r s . Ac h a qu ei t é r a t i on ,l e sdé v e l oppe u r si de n t i f i e n te ts pé c i f i e n tl e sc a sd’ ut i l i s a t i onse t 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 c a sd’ u t i l i s a t i onet aux cas de sécurité.Dè squ’ un ei t é r a t i onr é pon da u xobj e c t i f s fixés, l edé v e l oppe me n tpa s s eàl ’ i t é r ation suivante. 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édu c t i onde sr i s qu e sd’ é c h e c ,i lc on v i e n td’ a s s oc i e rde sni v e a u xder i s qu epou rc h a que c a sd’ u t i l i s a t i one tdes é c u r i t é , afin de commencer par les cas les plus critiques en termes de gestion de projet. Le processus en X centré sur l’ a r c h i t e c t u r e L’ a r c h i t e c t u r ed’ u ns y s t è mel og i c i e lpe u tê t r edé c r i t ec ommel e sdi f f é r e n t e sv u e sdu s y s t è me .L’ a r c h i t e c t u r e« 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. La vue des besoins des utilisateurs La vue des processus

La vue des Composants La vue logique La vue de déploiement

Fig. 5. Le sv ue sd’ a r c hi t e c t ur ed a nsl epr oc e s s use nX

8.2. Le processus en X est basé sur XP (Extreme Programming) 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 [6] : * 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 f a br i qu ée tl ac on c e pt i ondel ’ a ppl i c a t i on . * 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. Pour vérifier ces quatre principes,l epr o c e s s u se nX me te nœuv r el e spr a t i qu e s suivantes : Travail en équ i pee tl ’ i mpl i c a t i onduc l i e nt: 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. Programmation pilotée par les tests : 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. Cycles itératifs pilotés par le client : 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é.

9. Conclusion Le processus e nX v é r i f i el e sc a r a c t é r i s t i qu e sd’ u npr oc e s s u sun i f i ée tpe r met la mi s ee nœu v r ede sdi f f é r e n t e spr a t i qu e sdel ’ 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é,a i n s iqu ’ une conception parallèle de la vue logique et techniqu ed’ u ns y s t è me .Cedé c ou pa g ef a v or i s el et r a v a i le né qu i pee tr é pon da u xbe s oi ns

d’ é v ol u t i onde ss y s t è me s .Lepr oc e s s u se nX dé f i n i tu n ebon n epol i t i qu ed’ i t é r a t i on pilotée par les risques et les priorités du client,a i ns iqu ’ un ebonne tactique de progression définissant les objectifs à atteindre à chaque phase.

10. Références Bibliographie 1. 2.

P. ROQUES et F. VALLEE, « UML en action », Eyrolles, (2002). J.L. BENARD, L. BOSSAVIT, D.WILLIAMS, « L’ Ex t r e mePr ogr ammi ng avec deux études de cas », Eyrolles, (2002). 3. I.JACOBSON, G.BOUCH, J.RAMBAUGH, « Le processus unifié de développement logiciel », Eyrolles, (2000). 4. A.COCKBURN, « Ré di ge r de sc as d’ ut i l i s at ion efficaces », Eyrolles, (2001). 5. P.ROQUES, « UML par la Pratique », Eyrolles, 2ème édition (2003). 6. R.MEDINA, « L’ Ex t r e meProgramming », Cours Crossbow Labs, (2008). 7. P. KRUCHTEN , « The Rational Unified Process : An Introduction », Addison-Wesley, Second Edition (2000). 8. P. KRUCHTEN et K. PER, « Guide pratique du RUP », Campus Press, (2003). 9. S. MENG « Security Requirements Analysis and Modeling of Distributed System »s, Master´s Thesis , Munich University of Technology Department of Informatics, Software & Systems Engineering, (2004). 10. E.MAIWALD, « Sécurité des réseaux », Campus Press, (2001). 11. J.JURJENS, « Secure Systems Development with UML: a Foundation », (2003). 12. S.CHEHIDA, « Modélisation sécurisée des systèmes d'information Etude de cas: ANPE », Mini-projet (2007). 13. P. ROQUES, « UML est-il soluble dans les méthodes agiles ? », Eyrolles, (2007). 14. B.DEBBABI, M.S.BOUDJELDA, « Le processus unifié de développement logiciel RUP », (2007). 15. G. PICARD, «le processus unifié», Cours ENS Mines Saint-Etienne, (2008). 16. P. ROQUES, « Modéliser un site e-commerce», Eyrolles, (2002). 17. K.SCOTT, «Unified Process Explained », Addison-Wesley, (2002). 18. C.LARMAN, « UML et les Design Patterns », Campus Press, (2002). Webographie 1. 2. 3. 4. 5. 6. 7.

http://www.xprogramming.com/software.htm http://www.agilealliance.org http://en.wikipedia.org/wiki/Rational_Unified www.extremeprogramming.org, www.xpdeveloper.com www.xprogramming.com www.xp123.com