architectures logicielles_11-12.pdf

122
Prof : Mr Baba Fall, Doctorant en informatique LTI/ESP/UCAD ARCHITECTURES LOGICIELLES

Upload: papematarsarr

Post on 29-Dec-2014

32 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ARCHITECTURES LOGICIELLES_11-12.pdf

Prof : Mr Baba Fall, Doctorant en informatique

LTI/ESP/UCAD

ARCHITECTURES LOGICIELLES

Page 2: ARCHITECTURES LOGICIELLES_11-12.pdf

Contexte Général

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 2

« L’étude formelle des aspects architecturaux des logiciels fait, depuis peu, l’objet de recherches actives.

S’il est vrai qu’une maquette à jeter ne justifie pas une conception logicielle poussée, la maintenabilité et la modifiabilité de systèmes de plus en plus complexes ne peuvent plus se contenter d’une organisation logicielle artisanale : les choix architecturaux doivent être justifiés et s’appuyer sur un ou plusieurs modèles d’architecture idoine.»

Source : Gaëlle Calvary, Joëlle Coutaz, Laurence Nigay, Daniel Salber, PAC+3 : un modèle d’architecture générique pour systèmes multi-utilisateurs, CLIPS-IMAG, B.P. 53 - 38041 Grenoble Cedex 9, France

Page 3: ARCHITECTURES LOGICIELLES_11-12.pdf

Solution de l’architecture logicielle

L'architecture logicielle constitue le plus gros livrable d'un processus logiciel après le produit (le logiciel lui-même).

En effet, la phase de conception devrait consommer autour de 40 % (Pressman R. S., Software Engineering: A Practitioner's Approach,

Third Edition. McGraw-Hill. Chapitre 4, p. 107, 1992.) de l'effort total de développement et devrait être supérieure ou égale, en effort, à la phase de codage mais il peut être moindre.

L'effort dépend grandement du type de logiciel développé, de l'expertise de l'équipe de développement, du taux de réutilisation et du processus logiciel.

3 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 4: ARCHITECTURES LOGICIELLES_11-12.pdf

Objectifs

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 4

Présentation de méthodes et d’outils modernes pour le développement de logiciels.

Mise en œuvre de principes d'ingénierie afin d'obtenir, à prix raisonnable, des logiciels fiables et efficaces.

Minimisation du coûts de développement, de maintenance et d'utilisation pendant toute la vie du logiciel.

Approches méthodologiques pour la conception, développement et évolution du logiciel.

Page 5: ARCHITECTURES LOGICIELLES_11-12.pdf

Pourquoi modéliser avant …? Les deux objectifs principaux de toute

architecture logicielle sont :

la réduction des coûts : est principalement réalisée par la réutilisation de composants logiciels et par la diminution du temps de maintenance (correction d'erreurs, adaptation du logiciel),

et l'augmentation de la qualité du logiciel : se trouve distribuée à travers plusieurs critères; la norme ISO 9126 est un exemple d'un tel ensemble de critères.

5 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 6: ARCHITECTURES LOGICIELLES_11-12.pdf

Critères de qualité logiciel 1/5 L'interopérabilité extrinsèque exprime la capacité du

logiciel à communiquer et à utiliser les ressources d'autres logiciels comme, par exemple, les documents créés par une certaine application.

L'interopérabilité intrinsèque exprime le degré de cohérence entre le fonctionnement des commandes et des modules à l'intérieur d'un système ou d'un logiciel.

La portabilité exprime la possibilité de compiler le code source et/ou d'exécuter le logiciel sur des plates-formes (machines, systèmes d'exploitation, environnements) différents.

6 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 7: ARCHITECTURES LOGICIELLES_11-12.pdf

Critères de qualité logiciel 2/5 La compatibilité exprime la possibilité, pour un

logiciel, de fonctionner correctement dans un environnement ancien (compatibilité descendante) ou plus récent (compatibilité ascendante).

La validité exprime la conformité des fonctionnalités du logiciel avec celles décrites dans le cahier des charges.

La vérifiabilité exprime la simplicité de vérification de la validité.

L'intégrité exprime la faculté du logiciel à protéger ses fonctions et ses données d'accès non autorisés.

7 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 8: ARCHITECTURES LOGICIELLES_11-12.pdf

Critères de qualité logiciel 3/5 La fiabilité exprime la faculté du logiciel à gérer

correctement ses propres erreurs de fonctionnement en cours d'exécution.

La maintenabilité exprime la simplicité de correction et de modification du logiciel, et même, parfois, la possibilité de modification du logiciel en cours d'exécution.

La réutilisabilité exprime la capacité de concevoir le logiciel avec des composants déjà conçus tout en permettant la réutilisation simple de ses propres composants pour le développement d'autres logiciels.

8 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 9: ARCHITECTURES LOGICIELLES_11-12.pdf

Critères de qualité logiciel 4/5 L'extensibilité exprime la possibilité d'étendre

simplement les fonctionnalités d'un logiciel sans compromettre son intégrité et sa fiabilité.

L'efficacité exprime la capacité du logiciel à exploiter au mieux les ressources offertes par la ou les machines où le logiciel sera implanté.

L'autonomie exprime la capacité de contrôle de son exécution, de ses données et de ses communications.

9 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 10: ARCHITECTURES LOGICIELLES_11-12.pdf

Critères de qualité logiciel 5/5 La transparence exprime la capacité pour un

logiciel de masquer à l'utilisateur (humain ou machine) les détails inutiles à l'utilisation de ses fonctionnalités.

La composabilité exprime la capacité pour un logiciel de combiner des informations provenant de sources différentes.

La convivialité décrit la facilité d'apprentissage et d'utilisation du logiciel par les usagers.

10 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 11: ARCHITECTURES LOGICIELLES_11-12.pdf

Evolutivité de logiciel

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 11

Graphique de dégradation du logiciel en fonction de l'architecture.Inspiré de : Pressman R. S., Software Engineering: A Practitioner's Approach, Fifth Edition. McGraw-Hill. Chapitre 1, p. 8, 2001.

Page 12: ARCHITECTURES LOGICIELLES_11-12.pdf

Réutilisation de composants logiciels

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 12

Une réutilisation bien orchestrée nécessite la création et le maintien d'une bibliothèque logicielle et un changement de focus.

Créer une application revient à créer les composants de bibliothèque nécessaires puis à construire l'application à l'aide de ces composants.

Une telle bibliothèque, facilitant le développement d'application est un Framework d'entreprise et son architecture ainsi que sa documentation sont les pierres angulaires de la réutilisation logicielle en entreprise.

Page 13: ARCHITECTURES LOGICIELLES_11-12.pdf

Définition Modèle d’architecture

Organisation logicielle de l’ensemble des modules ou bibliothèques du systèmes

Le modèle du programmeur

Rappel : ne pas confondre avec le modèle conceptuel Organisation conceptuelle de l’ensemble des

fonctionnalités du système en un ensemble de commandes et leurs effets

Du modèle d’architecture découle (fig. 1) … les performances, la maintenabilité, la modularité du

système

Du modèle conceptuel découle (fig. 2) … les performances, la satisfaction et l’état de l’utilisateur

13 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 14: ARCHITECTURES LOGICIELLES_11-12.pdf

Fig.1 : Les sites web basés sur KSup à l'université Lumière Lyon 2

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 14

Page 15: ARCHITECTURES LOGICIELLES_11-12.pdf

Fig.2 : MCT d’un logiciel de vente en ligne

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 15

Page 16: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèles d’architecture logicielle

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 16

Modèle de base :

séparation de l’IHM et du noyau fonctionnel

Autres modèles d’architecture:

Modèle Seeheim ou modèle langage

Modèle Objet

MVC (Model View Controller)

Modèle Multi Agents : PAC (Presentation Abstract Control)

Noyau fonctionnel

IHM

Page 17: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèle Seeheim

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 17

Ce patron d’architecture logicielle est introduit en 1983 lors d’un atelier de travail en Allemagne par Eurographics.

Ce modèle stipule que l’IHM est composée de 3 parties : la présentation : couche qui gère les IO, elle présente les

données et interprète les actions utilisateur; la Gestion du Dialogue gère la séquence des IO, par

exemple l’enchaînement des écrans dans une interface graphique;

le Modèle Interfaçage de l’Application est la couche qui sert à relier le Noyau Fonctionnel et les données.

Il s’applique à l’analyse des logicielles en une vue macroscopique.

Page 18: ARCHITECTURES LOGICIELLES_11-12.pdf

Schéma du modèle Seeheim

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 18

Noyau Fonctionnel

Interface avec Noyau Fonctionnel

Contrôle du Dialogue

Présentation

Page 19: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèle Objet

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 19

« Développer objet c'est bien, architecturer c'est mieux. »

Existe dans de multiples variantes :

comme modèle architectural :

comme modèle conceptuel,

comme modèle conceptuel et architectural.

Engendre la construction de modèles plus élaborés :

Model View Controller,

Presentation Abstract Control

Page 20: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèles architecturaux objet 1/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 20

Un modèle ne représente toujours qu'un point de vue sur le système considéré, le plus important étant les motivations.

Pour éviter de formuler les motivations pour chaque diagramme l'architecte produira les différents diagrammes en fonction d'un modèle de conception et réutilisera des patrons de conception éprouvés.

La devise des trois pères fondateurs d'UML est « Centré sur l'architecture, piloté par les cas d'utilisation et au développement itératif et incrémentiel ». Cette devise indique clairement qu'aucune décision architecturale ne doit être prise sans que celle-ci ne soit dictée par la satisfaction des spécifications systèmes (cas d'utilisation).

Page 21: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèles architecturaux objet 2/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 21

La vue des cas d'utilisation est un modèle d'analyse formalisé par Ivar Jacobson. Un cas d'utilisation est défini comme un ensemble de

scénarios d'utilisation, chaque scénario représentant une séquence d'interaction des utilisateurs (acteurs) avec le système.

Chaque cas d'utilisation est représenté par un diagramme de cas d'utilisation, chacun des scénarios de celui-ci étant décrit par un ou plusieurs diagrammes dynamiques :diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions.

L'intérêt des cas d'utilisation est de piloter l'analyse par les exigences des utilisateurs.

Page 22: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèles architecturaux objet 3/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 22

La vue logique constitue la principale description architecturale d'un système informatique Cette vue décrit, de façon statique et dynamique, le

système en termes d'objets et de classes. La vue logique permet d'identifier les différents

éléments et mécanismes du système à réaliser. Elle permet de décomposer le système en abstractions et est le cœur de la réutilisation.

La vue logique est représentée, principalement, par des diagrammes statiques de classes et d'objets enrichis de descriptions dynamiques : diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions

Page 23: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèles architecturaux objet 4/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 23

La vue des processus décrit les interactions entre les différents processus, threads (fils d'exécution) ou tâches, elle permet également d'exprimer la synchronisation et l'allocation des objets. Cette vue permet avant tout de vérifier le respect des contraintes de fiabilité, d'efficacité et de performances des systèmes multitâches.

La vue de réalisation permet de visualiser l'organisation des composants (bibliothèque dynamique et statique, code source...) dans l'environnement de développement et de gérer la configuration (auteurs, versions...). Les seuls diagrammes de cette vue sont les diagrammes de composants.

Page 24: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèles architecturaux objet 5/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 24

La vue de déploiement représente le système dans son environnement d'exécution. Elle traite des contraintes géographiques (distribution des processeurs dans l'espace), des contraintes de bandes passantes, du temps de réponse et des performances du système ainsi que de la tolérance aux fautes et aux pannes. Cette vue est fort utile pour l'installation et la maintenance régulière du système.

Page 25: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèle Vue Contrôleur

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 25

Origine de MVC : Modèle issu de Smalltalk-80 (Environnement Interactif de

programmation) Adopté par de nombreuses boîtes à outils graphiques:

Smalltalk-80, Java AWT, Microsoft Foundation Class Library, X-Designer, etc.

Principe de base : M : Modèle

représente les données de l’application (implémente fonctionnalité et structure de données)

V : Vue présente l’information aux utilisateurs en utilisant les données

issues des modèles

C : Contrôleur se charge de l’interaction avec l’utilisateur

Page 26: ARCHITECTURES LOGICIELLES_11-12.pdf

MVC

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 26

La modularité : « diviser pour mieux régner »

Exemples :

Eclipse : d’où la possibilité d’ajouté des fonctionnalité sans affecter la partie visuelle

Excel

Bonnes applications web (Content Management System) : Django, Drupal, Joomla, etc.

Page 27: ARCHITECTURES LOGICIELLES_11-12.pdf

Presentation Abstraction Conrol

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 27

Ressemble au MVC:

Cependant découpe le projet en 3 sous projets ayant chacun : une partie Présentation

une partie Contrôle

une partie Métier ou implémentation

Page 28: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèle architecture PAC

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 28

Page 29: ARCHITECTURES LOGICIELLES_11-12.pdf

Communication entre les composants MVC

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 29

Modèle Etat et comportement

de l’application

Contrôleur Gestion des entrées

Vue Présentation

Notification des changements

dans le modèle

Dispositif s d’entrée, clavier, souris, etc.

Requêtes d’affichage

Dispositifs d’affichage

Accès ou modification du

modèle

Accès ou modification du

modèle

Page 30: ARCHITECTURES LOGICIELLES_11-12.pdf

Modèle multi-vues

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 30

Modèle asymétrique Une paire Contrôleur/Vue est associée à un seul modèle Un modèle peut se voir associer plusieurs paires

Contrôleur/Vue

Listes de dépendants et notification Les paires Vue/Contrôleur d’un modèle sont enregistrées

au niveau de ce modèle dans sa liste de « dépendants » Lorsque le modèle change, tous les dépendants sont

notifiés

Cycle standard d’interaction dans MVC Interaction utilisateur activation d’un

contrôleurmodification du modèlenotification et modification des vues.

Page 31: ARCHITECTURES LOGICIELLES_11-12.pdf

Conclusion MVC

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 31

Avantages

vues multiples synchronisées

vues et contrôleurs modulaires développement de composants réutilisation

programmation naturelle du « look and feel » cohérence interne et externe des interfaces

Inconvénients

complexité de communication entre les composants

Page 32: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple d’application MVC

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 32

Il s’agit d’une application J2ME qui permet de gérer une bourse et les différentes dépenses.

Ce projet se divise en 3 parties (package) :

model : se trouvent les classes Business et Rubrique

view : se trouvent AccueilPrincipal, AjoutRubrique, Confirmation, ConfirmationSuppression, EditerPlanning, EnregistrerDepense, Etat, NouveauPlanning, Parametre, Planning, SupprimerRubrique

control : BudgetMidlet

Page 33: ARCHITECTURES LOGICIELLES_11-12.pdf

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 33

Page 34: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Framework Django Django est développé avec Python.

Il a été conçu pour rendre les tâches de développement web rapides et faciles.

Il peut être installer à partir du gestionnaire de package ou avec la commande sudo apt-get install django sous Ubuntu 10.x

Il peut être utilisé sous iPython en mode commande en important le package django.

34 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 35: ARCHITECTURES LOGICIELLES_11-12.pdf

Créer un projet Django

La commande suivant permet de créer un nouveau projet Django sous le shell d’Ubuntu : django-admin startproject nom_projet

Créez un dossier où vous voulez loger vos codes (mkdir

/home/myDjangoProject) et s’y placer avant d’exécuter la commande :

Essayons de voir de plus pré les fichiers générés par startproject

35 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 36: ARCHITECTURES LOGICIELLES_11-12.pdf

Les fichiers d’un projet Django

__init__.py : un fichier vide qui indique à Python que ce répertoire doit être considéré comme un package.

manage.py : est une commande de ligne qui permet d’interagir avec ce projet Django.

settings.py : paramétrage / configuration du projet Django.

urls.py : les déclarations URL pour ce projet. Il contient la table des matières des URLs.

36 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 37: ARCHITECTURES LOGICIELLES_11-12.pdf

Démarrer le serveur Django

Pour vérifier si le serveur fonctionne, nous nous plaçons dans le répertoire générer par startproject et lançons la commande suivante : python manage.py runserver

Nous venons de démarrer le serveur Django

37 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 38: ARCHITECTURES LOGICIELLES_11-12.pdf

Changement de port du serveur Django

Le port server Django par défaut est 8000

Pour changer le port d’exécution du serveur de développement Django : python manage.py runserver 8080

Pour changer l’adresse IP du serveur de Django, nous passons l’argument IP à la commande. Mais si nous voulons être vus par tous les réseaux, nous exécutons la ligne suivante : python manage.py runserver 0.0.0.0:8000

38 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 39: ARCHITECTURES LOGICIELLES_11-12.pdf

Configurer la base de données

La configuration de la Base de Données du projet se fait par la modification des éléments par défaut dans le fichier settings.py

39 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 40: ARCHITECTURES LOGICIELLES_11-12.pdf

Où activer les applications Django

Toujours dans le fichier settings.py vers le fond du fichier se trouve l’INSTALLED_APP; cette variable contient le nom de toutes les applications Django actives.

Par défaut les applications disponibles sont : django.contrib.auth : un système d'authentification

django.contrib.contenttypes : un Framework pour les types de contenu

django.contrib.sessions : un Framework pour les sessions

django.contrib.sites : un Framework pour la gestion de plusieurs sites avec une installation Django

django.contrib.messages : un Framework de messagerie

Ces applications précitées font au moins usages d’une table de la Base de Données.

40 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 41: ARCHITECTURES LOGICIELLES_11-12.pdf

Comment générer la Base de Données La base de données est générée avec la commande

suivante : python manage.py syncdb

Cette commande consulte la variable INSTALLED_APP et génère la BD conformément aux réglages dans le fichier settings.py.

Dans le processus de création de la BD un message vous sera demandé pour créer un super compte du système d’authentification.

Un coup d’œil à la BD permet de voir les tables créées conformément aux applications dans la variable INSTALLED_APP.

41 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 42: ARCHITECTURES LOGICIELLES_11-12.pdf

Créer des modèles pour app 1/3 Django est fourni avec un utilitaire qui génère

automatiquement la structure de répertoires de base d'une application.

Nous pouvons créer une nouvelle app (une application web qui fait quelque chose) partout où on se trouve avec Django. Nous décidons de la créer dans le répertoire /mysite généré auparavant.

La commande suivante permet de créer une nouvelle app : python manage.py startapp polls

42 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 43: ARCHITECTURES LOGICIELLES_11-12.pdf

Créer des modèles pour app 2/3 __init__.py : indique à Python que ce répertoire doit être

considéré comme un package.

models.py : contient les méta données de l’application.

tests.py : un exemple d’app de teste

views.py : porte les liens vers les pages de l’application.

43 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 44: ARCHITECTURES LOGICIELLES_11-12.pdf

Créer des modèles pour app 3/3 Ajoutons la nouvelle app parmi les données

d’INSTALLED_APP puis retapons la commande python

manage.py syncdb.

Pour voir le code utilisé pour générer la nouvelle table Etudiants et ses champs qui sont les classes déclarées dans le fichier models.py, exécutons la commande suivante : python manage.py sql etudiants

44 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 45: ARCHITECTURES LOGICIELLES_11-12.pdf

Manipuler votre app depuis l’interface iPython

la commande suivante nous permet de dialoguer avec

notre modèle : python manage.py shell

A nous de dialoguer avec la BD: Importer les classes décrivant le modèle de nos tables dans la BD

Lançons quelques requêtes : Afficher les enregistrements dans la table Etudiant : Etudiant.objects.all()

Créer un nouveau objet Etudiant :

Enregistrer un objet dans la BD:

45

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 46: ARCHITECTURES LOGICIELLES_11-12.pdf

Utiliser le site administrateur de Django

Décommentez django.contrib.admin au niveau d’INSTALLED_APP dans le fichier settings.py

De même (r’admin/’,’include(admin.site.urls)’) au niveau d’urlpatterns dans le fichier urls.py

Redémarrez le serveur : pyhon manage.py runserver puis tapez localhost:8000/admin/ avec un navigateur internet

46 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 47: ARCHITECTURES LOGICIELLES_11-12.pdf

Rendre modifiable l’app etudiants par le site admin de Django

Créer un fichier admin.py dans le dossier /etudiants puis y inscrire :

Modifier le formulaire du site admin : un exemple

47 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 48: ARCHITECTURES LOGICIELLES_11-12.pdf

Créer ses pages admin perso Afin de créer des interfaces, la première chose à faire est

de modifier la variable urlpatterns au niveau du fichier urls.py

Ajouter la fonction index dans le fichier views.py

Aller à l’adresse localhost:8000/etudiants/ après avoir redémarrer le serveur

48 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 49: ARCHITECTURES LOGICIELLES_11-12.pdf

Mettre ses données dans un Template 1/2

Editer la variable TEMPLATE_DIRS de settings.py en ajoutant le chemin vers notre dossier Template (mytamplates) de votre projet

Puis réécrire les fonctions du fichier views.py

Enfin créer un fichier index.html dans le dossier mytamplates

49 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 50: ARCHITECTURES LOGICIELLES_11-12.pdf

Mettre ses données dans un Template 2/2

50 Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012

Page 51: ARCHITECTURES LOGICIELLES_11-12.pdf

Web Framework Python : Django

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 51

Pour plus de détails, consulter le lien suivant : http://docs.django-fr.org/

Page 52: ARCHITECTURES LOGICIELLES_11-12.pdf

Web Framework Java : Struts

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 52

http://igm.univ-mlv.fr/~dr/XPOSE2003/COPIN/

Page 53: ARCHITECTURES LOGICIELLES_11-12.pdf

Solution d’entreprises

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 53

Il existe deux solutions d’architecture logicielle : ERP (Enterprise Resource Planning) ou PGI (Progiciels de

Gestion Intégrés) : elle intègre trois aspects que sont : la communication entre l’entreprise et ses clients (Business To

Costumer, B2C), le fonctionnement interne de l’entreprise (Business To Employer,

B2E), la relation de l’entreprise avec ses différents partenaires et

fournisseurs (Business To Business, B2B).

CRM (Costumer Relationship Management) : elle est associée aux techniques de marketing moderne. Elle propose des fonctionnalités telles que: la gestion des prospects (potentiels clients), la gestion des clients et de leurs achats, le reporting.

Page 54: ARCHITECTURES LOGICIELLES_11-12.pdf

PGI

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 54

Les ERP sont principalement destinés aux grandes entreprises car leur implémentation nécessite un coût important.

Les avantages de la mise en place d’un ERP sont : l’intégrité et l’unicité du système d’information : il

permet d’éviter la redondance de l’information entre les différentes SI de l’entreprise;

la mise à jour des données en temps réel : elle se propage à tout module concerné;

la multilingue et la multidevise : car il s’adapte au marché mondial;

la synchronisation des traitements et optimisation des processus de gestion.

Page 55: ARCHITECTURES LOGICIELLES_11-12.pdf

PGI

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 55

Cependant il renferme certains inconvénients :

risque organisationnel : le progiciel et l’organisation doivent cohabiter;

mise en œuvre : formation des utilisateurs;

risques économiques : du fait de sa complexité d’où l’investissement qu’il utilise

Page 56: ARCHITECTURES LOGICIELLES_11-12.pdf

Intégration des départements avec une architecture PGI ou ERP

PGI

Base de

données

unique

CRM

Commerce

Marketing

Production

Finance

E-

commerce

Ventes

Comptabilité

générale

Comptabilité

analytique

Comptabilité

tiers

Engagements Budget

Immobilisations

Analytique

industrielle

Campagne

marketing

Action

commerciale

Stocks

Support client Réapprovisionnements

Achats

Données

techniques

Configurateur

Contrôle de

gestion

Assurance

qualité

Planification

Ordonnancement

Outils de

pilotage

Source : Adonix Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 56

Page 57: ARCHITECTURES LOGICIELLES_11-12.pdf

Architecture physique d’un PGI

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 57

client 1

client 2

client n

base de données Ex : ORACLE

serveur ERP

services

Reporting Module de gestion de relation client

Page 58: ARCHITECTURES LOGICIELLES_11-12.pdf

Architecture modulaire d’un PGI

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 58

Page 59: ARCHITECTURES LOGICIELLES_11-12.pdf

Caractéristiques d’un PGI

1. Exploitation d’une base de données unique.

2. Fonctionnalités intégrant tous les champs de la gestion.

3. Grande capacité de paramétrage.

4. Outil d’aide à la décision.

5. Architecture informatique ouverte.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 59

Page 60: ARCHITECTURES LOGICIELLES_11-12.pdf

1- Exploitation d’une base de données unique

On distingue trois étapes historiques dans l’évolution du système d’information de gestion :

a. des applications indépendantes;

b. des interfaces spécifiques pour chaque module;

c. l’intégration des fonctionnalités avec un PGI.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 60

Page 61: ARCHITECTURES LOGICIELLES_11-12.pdf

a - Des applications indépendantes

C

O

M

M

E

R

C

I

A

L

F C

I O

N M

A P

N T

C A

E B

S I

L

I

T

E

P

R

O

D

U

C

T

I

O

N

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 61

Page 62: ARCHITECTURES LOGICIELLES_11-12.pdf

a - Des applications indépendantes • Un système d’information existe pour chaque

fonction; • Chaque fonction, (commerciale, production,

recherche - développement, comptabilité - finances, ressources humaines ) dispose de sa propre base de données;

• Exemple : Les données concernant un client (code, nom, adresse) peuvent différer de l’application comptable à l’application commerciale.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 62

Page 63: ARCHITECTURES LOGICIELLES_11-12.pdf

b- Des interfaces spécifiques

P

R

O

D

U

C

T

I

O

N

C

O

M

M

E

R

C

I

A

L

F C

I O

N M

A P

N T

C A

E B

S I

L

I

T

E

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 63

Page 64: ARCHITECTURES LOGICIELLES_11-12.pdf

b- Des interfaces spécifiques Puis des interfaces spécifiques ont instauré une

communication entre les différents modules.

L’utilisateur prend l’initiative de mettre à jour les bases des autres modules par un transfert ponctuel des données.

Exemple : mise à jour des écritures comptables à partir du module commercial.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 64

Page 65: ARCHITECTURES LOGICIELLES_11-12.pdf

c- L’intégration dans un PGI

C

O

M

M

E

R

C

I

A

L

F C

I O

N M

A P

N T

C A

E B

S I

L

I

T

E

F

O

N

C

T

I

O

N

S

P

R

O

D

U

C

T

I

O

N

PROCESSUS

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 65

Page 66: ARCHITECTURES LOGICIELLES_11-12.pdf

c- L’intégration dans un PGI Une donnée est saisie, une seule fois, au moment de

l’événement qui la génère.

Elle est disponible en temps réel pour l’ensemble des utilisateurs (autorisés) de la base unique, commune à tous les modules.

La base de données relationnelle permet d’éviter les redondances.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 66

Page 67: ARCHITECTURES LOGICIELLES_11-12.pdf

2- Fonctionnalités intégrant tous les champs de la gestion

Les modules PGI couvrent l’ensemble des activités de l’entreprise.

La richesse des fonctionnalités des modules et l’intégration des données permettent une approche globale de la gestion.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 67

Page 68: ARCHITECTURES LOGICIELLES_11-12.pdf

Le PGI permet notamment : une très forte automatisation des tâches répétitives ; une structuration complexe, multiaxes et multi-

hiérarchiques de l’analyse de gestion ; la planification des tâches de gestion et le suivi des

opérations en cours ; les opérations de consolidation des comptabilités

dans les groupes de sociétés ; la gestion des procédures de contrôle des

opérations (workflow).

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 68

Page 69: ARCHITECTURES LOGICIELLES_11-12.pdf

Le PGI permet aussi :

de répondre à des besoins spécifiques à chaque entreprise : module d’atelier de génie logiciel;

de s’adapter à de nouveaux champs de la gestion :

la gestion de la relation clients (CRM),

la gestion des compétences en relations humaines

la gestion de la chaîne logistique.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 69

Page 70: ARCHITECTURES LOGICIELLES_11-12.pdf

3- Grande capacité de paramétrage Paramétrage de la base de données pour

l’adapter aux métiers et aux pratiques spécifiques de l’entreprise.

Paramétrage de l’espace personnel de chaque poste de travail : autorisations d’accès;

environnement graphique personnalisé;

traçabilité des opérations.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 70

Page 71: ARCHITECTURES LOGICIELLES_11-12.pdf

4- Outil d’aide à la décision Le PGI donne au contrôle de gestion les moyens de

son développement :

utilisation du langage de requête SQL des bases relationnelles Oracle, SQL Server, DB2

communication par l’architecture de base en client/serveur

création d’états et tableaux de bord adaptés aux besoins de l’utilisateur.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 71

Page 72: ARCHITECTURES LOGICIELLES_11-12.pdf

5- Architecture informatique ouverte

L’architecture informatique intègre des technologies diverses et avancées :

l’utilisation d’un réseau multi-sites;

l’intégration est réalisée par un réseau Intranet/Extranet.

la consultation et la modification décentralisées de la base de données en utilisant les connexions Internet.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 72

Page 73: ARCHITECTURES LOGICIELLES_11-12.pdf

Source : Adonix

Serveur

d’application Serveur de

données

Oracle

SQLserver

DB2

Windows NT/2000

Unix / MacOs

Windows

Linux

MacOs

Serveur

Internet

Apache ou IS

Windows NT / 2000

Internet Explorer

Firefox

Opéra

Internet Explorer

Netscape

Navigator

Site

Web

Architecture informatique d’un PGI

Clients e-commerce Clients PGI

mode web

Clients PGI mode

Client / Serveur

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 73

Page 74: ARCHITECTURES LOGICIELLES_11-12.pdf

Architecture générale d’un PGI

ERP

Site

Internet

Connexions

Intranet

Connexions

Client / Serveur

Connexions

Internet

Clients e-commerce

Partenaires

Personnel nomade

Sites décentralisés

Filiales,

Entrepôts,

Agences

Distributeurs,

Fournisseurs,

Sous-traitants

Source : Adonix Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 74

Page 75: ARCHITECTURES LOGICIELLES_11-12.pdf

Conclusion sur les ERP ou PGI La mise en place d’un projet PGI est d’abord un

projet organisationnel.

Au-delà de la complexité technique des matériels et logiciels mis en service, l’introduction d’un PGI entraîne : la remise en cause des compétences et des métiers; une redéfinition des jeux de pouvoir; une évolution de la culture de l’entreprise et de son

système de valeurs.

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 75

Page 76: ARCHITECTURES LOGICIELLES_11-12.pdf

Costumer Relationship Management

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 76

Le CRM est associé aux techniques de marketing moderne, du coup les entreprises ne peuvent plus échapper ces technologies et outils.

En effet, un CRM dépasse l'approche marketing traditionnelle focalisée sur la relation entre un produit/service et son client ou encore la notoriété et l'image de marque.

Grâce aux nombreuses fonctionnalités offertes par le CRM telles que la gestion des prospects, gestion des clients et de leurs achats, de reporting,... Il est possible pour l'entreprise de personnaliser l'offre, sous forme de publicités ou encore d'e-mails afin de fidéliser un maximum le client, d'améliorer leur satisfaction et par la même occasion d'accroître l'efficacité des employés et par conséquent d'augmenter les ventes.

Page 77: ARCHITECTURES LOGICIELLES_11-12.pdf

Service Oriented Architecture

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 77

SOA peut signifier différentes choses selon le groupe de personnes: une configuration de services qu’une entreprise veut montrer à

ses clients et partenaires ou tout autre organisation;

un modèle architectural qui exige la fourniture de services caractérisés par la modularité, l’encapsulation, le couplage léger entre module, la réutilisation;

un modèle de programmation avec des standards, des outils et des technologies comme les services web;

Business

Executive,

Analyst

Architect

Developer

Page 78: ARCHITECTURES LOGICIELLES_11-12.pdf

Problématique de l’intégration en entreprise

Entreprises découpées en départements fonctionnels y compris le système d'information (SI)

Processus métiers des entreprises de + en + multi-départementaux

Coûts considérables dans la gestion des flux entre départements et dans l’intégration de leurs SI

Page 79: ARCHITECTURES LOGICIELLES_11-12.pdf

Problématique de l’intégration en entreprise • Les entreprises doivent s’adapter en permanence et être de + en + réactives

aux variations des marchés (fusions, acquisitions, scissions, diversification des offres commerciales, changement technologiques, …)

• Leurs SI ne doivent pas être un frein à ces changements

C’est l’activité qui pilote la technologie et non l’inverse

Page 80: ARCHITECTURES LOGICIELLES_11-12.pdf

Hier : plat de spaghettis

Développements coûteux

Interconnexions redondantes (point à point)

Grande complexité

Maintenance difficile

Page 81: ARCHITECTURES LOGICIELLES_11-12.pdf

Demain : Architecture urbanisée

L’urbanisation informatique définit l'organisation d’un SI à l’image d’une ville o découper le SI en modules autonomes (zone, quartier, îlot, bloc)

o localiser les zones d’échange d’informations (routes, ponts, tunnels) qui permettent de découpler les différents modules

L‘urbanisation a pour objectif de faire évoluer le SI et sa composante informatique au même rythme que la stratégie et l'organisation des métiers de l'entreprise.

Page 82: ARCHITECTURES LOGICIELLES_11-12.pdf

Presentation Layer

CartController AccountController

Business Logic Layer

Account Cart Inventory Item OrderInsert OrderRead Product Profile

Category

Check out

Create Account

Default

Error Help Item Details

Items

My Account

Edit Account

Order Billing

Order Process

Order Shipping

SignOut Shopping Cart

Search SignIn

e-commerce : Couches

Data Access Layer

IAccount IInventory IItem IOrder IProduct IProfile

Page 83: ARCHITECTURES LOGICIELLES_11-12.pdf

Data Access Layer

IAccount IInventory IItem IOrder IProduct IProfile

e-commerce : Domaines

Presentation Layer

Business Logic Layer

Account Cart Inventory Item OrderInsert OrderRead Product Profile

Category

Check out

Create Account

Default

Error Help Item Details

Items

My Account

Edit Account

Order Billing

Order Process

Order Shipping

SignOut Shopping Cart

Search SignIn

Catalog Inventory Shopping Billing

1.0

1.1

1.2

1.0

2.0

3.5

10.0

11.2

11.5

5.1

5.2

5.3

1.0

6.0

7.0

Page 84: ARCHITECTURES LOGICIELLES_11-12.pdf

Data Access Layer

Presentation Layer

Business Logic Layer

e-commerce : Domaines

Catalog Inventory Shopping Billing

Page 85: ARCHITECTURES LOGICIELLES_11-12.pdf

e-commerce : Services

Presentation Layer

Business Logic Layer

Data Access Layer

Service Layer

Show Catalog

Make Inventory

Shop Manage

Customer Bill

Page 86: ARCHITECTURES LOGICIELLES_11-12.pdf

Principes fondamentaux de l’architecture SOA

Il n’existe pas une recette pour garantir le succès de la mise en place d’une SOA mais des principes à respecter :

Discussion entre métier et IT Utilisation des use case métier Utilisation de standards Pas de remise en cause de l’existant lors d’évolutions

technologiques Découplage entre fournisseur et consommateur de

services Indépendance des ressources vis à vis de ceux qui les

utilisent

Page 87: ARCHITECTURES LOGICIELLES_11-12.pdf

Qu’est ce qu’un Service (au sens SOA) ? Partage les caractéristiques suivantes d’un objet

Modulaire (ensemble de fonctionnalités qui font sens)

Partage les caractéristiques suivantes d’un composant Boite noire (séparation interface/implémentation)

Indépendant de la localisation

Neutralité vis-à-vis des protocoles de transport

Correspond à un périmètre fonctionnel que l’on souhaite exposer à des consommateurs (il a une granularité plus forte qu’un composant)

Est faiblement couplé (indépendant des autres services)

Expose un petit nombre d’opérations offrant un traitement de bout en bout

Sans état

Page 88: ARCHITECTURES LOGICIELLES_11-12.pdf

Un Service expose un Contrat

Les services communiquent par messages

Conditions Générales de Vente Règlement Intérieur

Vos droits/Vos devoirs in

out

Un Service est Autonome

Les Frontières entre services sont Explicites

4 propriétés du service à retenir

Page 89: ARCHITECTURES LOGICIELLES_11-12.pdf

Gestion de prêts en couplage fort

LoanAgent

calculateRisk

Loan Account

createLoan

checkCredit

LoanApproval SMSGateway

sendConfirmation

Entités

LoanAgent est lié à LoanApproval et Loan LoanApproval est lié à Account Loan est lié à SMSGateway

Page 90: ARCHITECTURES LOGICIELLES_11-12.pdf

Gestion de prêts en couplage faible

LoanProcess CreateLoan CheckAccount Balance

Calculate LoanRisk

Notify ViaSMS

Services

Qu’est ce que LoanProcess ? Un processus métier !

Il permet d’orchestrer les services => couplage lâche

Page 91: ARCHITECTURES LOGICIELLES_11-12.pdf

Planifier

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 91

Avant de commencer un projet, il est indispensable de planifier pour ne pas avoir de mauvaises surprises.

Il convient ainsi de :

fixer vos objectifs en se posant les bonnes questions,

identifier le public cible,

produire un cahier des charges,

« n’hésiter pas à aller voir ce que font vos concurrents ou partenaires »

Page 92: ARCHITECTURES LOGICIELLES_11-12.pdf

Rédaction d’un cahier des charges (CC) 1/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 92

« Quels sont les principaux éléments dont il faut tenir en compte pour la rédaction d’un cahier des charges dans le cadre d’un développement d’application informatique. »

Place du CC dans le projet est de définir :

les objectifs mesurables à atteindre,

des ressources requises,

de la planification de la mise en œuvre,

des outils d’évaluation,

des méthodes de contrôle.

Page 93: ARCHITECTURES LOGICIELLES_11-12.pdf

Rédaction d’un cahier des charges (CC) 2/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 93

Deux cas de figure s’offre à nous :

imposer une solution, des spécifications détaillées, un outil ou un produit;

décrire uniquement les fonctionnalités souhaitées en faisant le choix de la solution à adopter.

Positionnement et objectifs du projet au sein de l’entreprise et dans le marché

importance stratégique et économique

fourniture matériel informatique et/ou logiciel, main d’œuvre, réseau informatique

Page 94: ARCHITECTURES LOGICIELLES_11-12.pdf

Rédaction d’un cahier des charges (CC) 3/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 94

Spécifications applicatives:

le contenu des écrans de l’utilisateur final,

le contenu des bases de données,

les différentes transactions informatiques et leur cheminement entre les utilisateurs et la base de donnée,

les traitements à effectuer pour chaque transaction,

les liaisons avec les applications existantes dans l’entreprise (si elles existent),

l’interface utilisateur (le choix du navigateur, l’emploi des langues, l’ergonomie, etc.).

Page 95: ARCHITECTURES LOGICIELLES_11-12.pdf

Rédaction d’un cahier des charges (CC) 4/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 95

Spécifications techniques : localisation des terminaux utilisateurs et des serveurs

informatiques, localisation des applications et des bases de données (lieux

d’hébergement, répartition des processus applicatifs entre serveur et utilisateur)

volumes (nombre et fréquence des transactions entre les utilisateurs et les applications résidant dans les serveurs)

réseau reliant les utilisateurs et les serveurs (type, vitesse et performance des liaisons, disponibilité, support)

architecture et fonctionnalité des serveurs (web, application, BD) outils de sécurisation des transactions procédure de gestion de la maintenance matériel et logiciel évolutivité de la solution (possibilités et coûts) plan de formation des utilisateurs et des gestionnaires documentation requise

Page 96: ARCHITECTURES LOGICIELLES_11-12.pdf

Rédaction d’un cahier des charges (CC) 5/5

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 96

Spécifications de réalisation: liste des contraintes imposées par le client standards techniques (hardware, langage de

développement, format de fichiers, bases de données, etc.);

standards propres à l’entreprise : documentation, méthode d’analyse, outils de gestion des projets, de maintenance des applications, logiciels utilisés, etc.;

ressources : réutilisation du câblage, du matériel existant, etc.

le délai des prestations

etc.

Page 97: ARCHITECTURES LOGICIELLES_11-12.pdf

Concevoir

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 97

Structurer et créer une arborescence cohérente

utiliser du papier ou des logiciels appropriés pour représenter la base du logiciel, un logiciel Mind Map : freeMind permet de représenter un

projet ou une idée graphiquement,

les organigrammes.

cela permet d’éviter des modifications du premier niveau de l’application dès ses premières années,

Page 98: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple de structure à l’aide d’un logiciel Mind Map

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 98

Page 99: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple de structure à l’aide d’un organigramme

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 99

Page 100: ARCHITECTURES LOGICIELLES_11-12.pdf

Structuration des pages et modèles en zones

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 100

Technique des maquettes en fil de fer

permet de structurer le contenu,

force à la réflexion,

facilite la lecture en créant une structure de la page.

Ergonomie

ne pas essayer à réinventer la roue,

rassurer le lecteur à une présentation type,

faciliter la navigation,

pas de code compliqué, la page doit se comprendre en elle-même.

Page 101: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple de zone appliqué à un site

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 101

Page 102: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple de modèles en fil de fer : version papiers collés

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 102

Page 103: ARCHITECTURES LOGICIELLES_11-12.pdf

Procédure et rédiger

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 103

Identifier et classifier les contenus

quel contenu va dans quelle partie du logiciel ou concerne quelle personne,

quel contenu vais-je mettre et dans quel format,

planifier déjà la mise à jour : quel contenu, par qui et à quelle fréquence.

Eviter les redondances

facilite la mise à jour,

élimine les erreurs et incohérences,

ainsi les liens sont privilégiés.

Page 104: ARCHITECTURES LOGICIELLES_11-12.pdf

Procédure et rédiger

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 104

Rédiger pour le web et pour être lu : forme

pourquoi le web est différent : écran, lien, coup d’œil;

phrases brèves;

contenu structuré : titre, liste, etc.;

mots mis en évidence, sobriété des couleurs.

contenu technique du journal : l’idée principale au début;

adaptez vous au public-cible : attention au jargon interne ou spécialisé;

oubliez l’académie : écrivez pour être lu (abandon après 3 écrans);

pensez à ce que le lecteur doit savoir en quittant.

Page 105: ARCHITECTURES LOGICIELLES_11-12.pdf

Visibilité d’un site web

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 105

Google Tips : représente 90 à 95% (?) des moteurs de recherche

Quelques astuces pour que votre site soit correctement indexé: réf. les règles d’indexation de Google Tips utiliser des termes clés; mise en valeur des éléments <title>,<h1>, etc.; ne pas utiliser de contenu image ou flash à la place

d’un texte, il ne simule pas d’instruction JavaScript; la notoriété est le nombre de pages liées à la votre; etc.

Page 106: ARCHITECTURES LOGICIELLES_11-12.pdf

Visibilité d’un site web

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 106

Quelques astuces pour optimiser votre placement : bon référencement = mixe indexation / pertinence/

notoriété; ne changer pas l’url d’une page : ancienne = plus-value; respecter les consignes de rédaction et formater

correctement votre texte; être pertinent dans les termes utilisés; utiliser les standards web comme les blogs, les CMS; privilégier les liens entrants avec les termes pertinents

du site; mettre le lien sur les termes précis et non sur un petit

bouton à côté; etc.

Page 107: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple de conception de site

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 107

Les objectifs liés à la création du site lecampusard sont multiples : fournir les anciennes épreuves de devoirs et d’examens et leur

correction si possible, expliquer les démarches administratives à faire pour certaines

choses qui concernent les étudiants permettre aux étudiants de passer des annonces de sollicitation

de cours de renforcement dans leur spécialité, liées les personnes qui sollicites des cours à de potentiels tuteurs fournir des liens vers des préinscriptions, donner accès à des articles publiés dans les différentes écoles

doctorales de l’université,

Public visé : les étudiants; les chercheurs; les parents d’étudiants ou d’élèves;

Page 108: ARCHITECTURES LOGICIELLES_11-12.pdf

Coût de développement d’un logiciel : le réseau de PERT

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 108

Le réseau de PERT (Program Evaluation and Review Technique ie Technique d’Evaluation et d’Examen de Programme) est une technique de gestion de projet.

« Pert » est aussi l’équivalent de malicieux en anglais.

Permet : de visualiser la dépendance des tâches, d’ordonnancer les tâches, d’estimer le temps d’implémentation d’un

programme.

Page 109: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Réseau de PERT : principes

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 109

On utilise un graphe de dépendance.

Pour chaque tâche, on indique une date de début et une date de fin au plus tôt et au plus tard.

Le diagramme permet de déterminer le chemin critique qui conditionne la durée minimale du projet.

Objectif : « terminer un projet dans les meilleurs délais en trouvant la meilleure organisation possibles et d’identifier les tâches critiques. »

Les tâches critiques ne doivent souffrir d’aucun retard sous peine de retarder tout le projet.

Page 110: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Réseau de PERT : mis en œuvre

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 110

Tâche : C40 indique le nom d’une Tâche « C » et sa durée « 40 »

Tâche fictive :

Etape :

Numéro étape

DTôt, FTôt

Dtard, FTard

on calcule deux valeurs pour chaque étape :

la date au plus tôt (Dtôt,Ftôt) : il s’agit de la date à laquelle une tâche pourra être commencée au plus tôt, en tenant compte du temps nécessaire à l’exécution des tâches précédentes. la date au plus tard (Dtard,Ftard): il s’agit de date à laquelle une tâche doit être terminée obligatoirement sans quoi l’ensemble du projet sera retardé. Marge : il s’agit de la différence entre les dates au plus tôt et au plus tard.

Page 111: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Réseau de PERT : exemple

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 111

Représentons les tâches suivants à l’aide d’un diagramme de PERT : a - étude, réalisation et acceptation des plans, b - préparation du terrain, c – commande des matériaux, d – creusement des fondations, e – commande des portes et fenêtres, f – livraison des matériaux, g – construction des fondations, h – livraison des portes et fenêtres, i – construction des murs j – mise en place des portes et fenêtres

Page 112: ARCHITECTURES LOGICIELLES_11-12.pdf

Le réseau de PERT : niveau

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 112

Trouvons les différents niveaux :

1 – a, b

2 – c, e, d

3 – f, h

4 – g

5 – i

6 – j

Page 113: ARCHITECTURES LOGICIELLES_11-12.pdf

Le réseau de PERT : graphe

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 113

Page 114: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Réseau de PERT : consignes et calculs

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 114

Ne pas croiser les flèches en traçant

Pour déterminer la date au plus tôt d'une tâche, il faut parcourir le diagramme de gauche à droite et calculer le temps du plus long des chemins menant du début du projet à cette tâche. S'il y a plusieurs sous-chemins, on effectue le même calcul pour chacun et on choisit la date la plus grande.

Pour déterminer la date au plus tard d'une tâche, il faut parcourir le diagramme de droite à gauche, et soustraire de la date au plus tard de la tâche suivante la durée de la tâche dont on calcule la date au plus tard. S'il y a plusieurs sous-chemins, on effectue le même calcul pour chacun et on choisit la date la plus petite.

La différence entre la date au plus tard et la date au plus tôt d'une tâche s'appelle la marge totale.

Page 115: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Réseau de PERT :chemin critique

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 115

On dit qu'une tâche de A vers B est critique si la différence entre la date au plus tard de B et la date au plus tôt de A est égale à la durée de la tâche à accomplir.

L'ensemble des tâches critiques constitue le chemin critique, c'est-à-dire le chemin sur lequel aucune tâche ne doit avoir de retard pour ne pas retarder l'ensemble du projet.

Page 116: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Réseau de PERT : chemin critique

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 116

Page 117: ARCHITECTURES LOGICIELLES_11-12.pdf

Le Réseau de PERT : chemin critique

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 117

NB: un projet peut avoir plusieurs chemins critiques, un chemin est sous-critique lorsque sa durée est très

proche de la durée du chemin critique. Il suffirait d'un léger retard, de N jours ou semaines, d'une tâche de ce chemin sous-critique pour que ce chemin devienne critique.

la marge libre d'une tâche T est le délai de retard maximum que l'on peut apporter à la mise en route de cette tâche, sans pour autant que les tâches suivantes en soient affectées. Elle est égale à la différence entre : la plus petite date au plus tôt des tâches suivantes

la date au plus tôt de la tâche T, à laquelle on rajoute sa durée

Page 118: ARCHITECTURES LOGICIELLES_11-12.pdf

Les étapes d’un Réseau de PERT

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 118

Premièrement : recenser les tâches et leurs antécédents directs, -Tableau 1

Deuxième : renseigner le tableau des successions, Tableau 2

Troisièmement : dessiner le diagramme.

Page 119: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple appliqué à la cuisson d’un gâteau méringué

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 119

Page 120: ARCHITECTURES LOGICIELLES_11-12.pdf

Exemple appliqué à la cuisson d’un gâteau meringué (suite)

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 120

Page 121: ARCHITECTURES LOGICIELLES_11-12.pdf

Le diagramme de GANTT

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 121

Passer d’un enchaînement PERT à un calendrier

Affecter les ressources

Utiliser les marges pour des « chargements » au plus tôt et au plus tard.

Application : utilisons le logiciel OpenProj libre ou MS Project de Microsoft

Page 122: ARCHITECTURES LOGICIELLES_11-12.pdf

REMARQUES ET SUGGESTIONS

Architectures Logicielles - Licence TéléInfo - ESP/UCAD - avril 2012 122