QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL



Documents pareils
Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Visual Paradigm Contraintes inter-associations

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

UML (Paquetage) Unified Modeling Language

Le Guide Pratique des Processus Métiers

Cours en ligne Développement Java pour le web

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

MEGA ITSM Accelerator. Guide de Démarrage

MEGA ITSM Accelerator. Guide de démarrage

La gestion des serveurs de mail

Conception, architecture et urbanisation des systèmes d information

BIRT (Business Intelligence and Reporting Tools)

Publier dans la Base Documentaire

SECTION 5 BANQUE DE PROJETS

DOSSIER SOLUTION CA ERwin Modeling. Comment gérer la complexité des données et améliorer l agilité métier?

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Information utiles. webpage : Google+ : digiusto/

La messagerie électronique avec La Poste

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Refonte front-office / back-office - Architecture & Conception -

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

ANICOTTE Guillaume GUFFROY Matthieu LIMA Juliette SALLOUH Chamsseddine CAHIER DES CHARGES SI 28

COURS WINDEV NUMERO 3

Business Process Modeling (BPM)

Placez vous au préalable à l endroit voulu dans l arborescence avant de cliquer sur l icône Nouveau Répertoire

Devenez un véritable développeur web en 3 mois!

Business Process Execution Language

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Initiation à Mendeley AUT2012

Organiser le disque dur Dossiers Fichiers

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

MESUREZ L'IMPACT DE VOS CAMPAGNES!

F.A.Q 1.0 Designer 3D Atex System

Réalisation d une application de soumission de cours en ligne de l Université Virtuelle de Tunis

Installation et utilisation du client FirstClass 11

Analyse,, Conception des Systèmes Informatiques

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

RTDS G3. Emmanuel Gaudin

Campagnes d ings v.1.6

ESPACE COLLABORATIF SHAREPOINT

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

Gestion commerciale & marketing avec

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Trois nouveaux formulaires sont donc nécessaires : Pour l affichage de la liste, un formulaire de sortie WEB_Liste associé à la table des [Films] ;

Créer un compte itunes Store

COMPTA COOP. Guide d utilisation

Atelier n 12 : Assistance à distance

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation


Faire de la publicité sur GOOGLE AD-WORDS

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Manuel du gestionnaire

Module 24 : Analyse de scénarios

Mise en scène d un modèle dans l espace 3D

Atelier Le gestionnaire de fichier

Un logiciel pour aller plus loin dans la gestion de vos espaces. Mémo technique

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Guide d utilisation des services My Office

Utiliser le site Voyages-sncf.com

HTML5, CSS3 et JavaScript Développez vos sites pour les terminaux mobiles

RAPPORT DE CONCEPTION UML :

26 Centre de Sécurité et de

Gestion de la Relation Client

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

SQL Server Installation Center et SQL Server Management Studio

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Identification du module

Créer et partager des fichiers

Édu-groupe - Version 4.3

MATRICES RACI ET DIAGRAMMES BPMN : COMPLÉMENTAIRES DANS LES CONTRATS D OUTSOURCING. Processus, outsourcing

langage spécifiant un processus sous format XML Business Process Management : gestion de processus.

Formation : Modélisation avec UML 2.0 et Mise en pratique

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

Spécifications techniques

point On obtient ainsi le ou les points d inter- entre deux objets».

Le partage du disque dur raccordé à la Bbox avec Windows Vista

CAHIER DES CHARGES DE REALISATION DE SITE INTERNET

Nous souhaitons fournir un service sécurisé sans pour autant chiffrer sans garantir la fiabilité du chiffrement.

Solutions web : instructions aux développeurs

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Dossier I Découverte de Base d Open Office

Management des processus opérationnels

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Base de Connaissances SiteAudit. Utiliser les Rapports Planifiés. Sommaire des Fonctionnalités. Les Nouveautés

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Créer une trace, obtenir son fichier gpx et sa carte Ou Afficher un fichier trace GPX

Inspiration 7.5. Brève description d Inspiration. Avantages d Inspiration. Inconvénients d Inspiration

Présentation du tableau blanc interactif Interwrite

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

Exécution de processus

CATALOGUE FORMATIONS DOMAINE Bases de données

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US

Création d un document PublishView

Business Process Design Max Pauron

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Transcription:

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL LA DÉCOUPE MVC (MODEL VIEW CONTROL) Imaginez la programmation en Python d un petit menu d une application visible sur la figure A.1. Lorsqu on clique sur un élément du menu, il ne se passe rien, ou presque : une fenêtre apparaît contenant juste un bouton «Do nothing button». Totalement inutile, certes, mais c est pour l exemple. Figure A.1 Une application avec juste un menu Le code Python dont l exécution affiche ce menu est repris ci-dessous, mais il est inutile à ce stade-ci d en comprendre le fonctionnement en détail. from Tkinter import * def donothing(): filewin = Toplevel(root) button = Button(filewin, text="do nothing button") button.pack() root = Tk() menubar = Menu(root) filemenu = Menu(menubar, tearoff=0) 1

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL filemenu.add_command(label="new", command=donothing) filemenu.add_command(label="open", command=donothing) filemenu.add_command(label="save", command=donothing) filemenu.add_command(label="save as...",command=donothing) filemenu.add_command(label="close", command=donothing) filemenu.add_separator() filemenu.add_command(label="exit",command=root.quit) menubar.add_cascade(label="file",menu=filemenu) editmenu = Menu(menubar, tearoff=0) editmenu.add_command(label="undo",command=donothing) editmenu.add_separator() editmenu.add_command(label="cut",command=donothing) editmenu.add_command(label="copy",command=donothing) editmenu.add_command(label="paste",command=donothing) editmenu.add_command(label="delete",command=donothing) editmenu.add_command(label="select All",command=donothing) menubar.add_cascade(label="edit",menu=editmenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label="help Index",command=donothing) helpmenu.add_command(label="about...",command=donothing) menubar.add_cascade(label="help", menu=helpmenu) root.config(menu=menubar) root.mainloop() L affichage d un tel menu ainsi que son utilisation exigent la prise en compte de trois fonctionnalités logicielles assez distinctes (mais pourtant en partie mélangées dans le code): Le graphisme du menu (par exemple sa couleur, le nombre d éléments qui apparaissent suite à l activation du menu, le type de caractère utilisé pour les éléments du menu). Les éléments qui composent le menu. Le fonctionnement du menu (qu advient-il lorsqu on choisit un des éléments). On conçoit aisément que, même si le petit code affiché ne le fait délibérément pas, il est préférable de tenir séparés ces trois aspects. Ainsi, on pourrait décider de modifier la liste des éléments sans pour autant qu il soit nécessaire de modifier et la représentation du menu et l exécution associée à certains des éléments. Il en va de même pour cette représentation. On devrait pouvoir aisément changer la couleur du menu sans affecter en rien son fonctionnement. On pourrait même récupérer la liste des éléments pour un tout autre composant graphique, un ensemble de boîtes à cocher par exemple. Il en découle naturellement qu il est bien plus logique et bien plus aéré d avoir un code se découpant comme ci-dessous : d abord la liste contenant tous les élé- 2

USE CASE ET MVC QUI EN DÉCOULE ments, ensuite une boucle permettant de créer les éléments graphiques associés à ces éléments. menuitems = ["New", "Open", "Save", "Save as...", "Close"] root = Tk() menubar = Menu(root) filemenu = Menu(menubar, tearoff=0) for x in menuitems: filemenu.add_command(label=x, command=donothing) Déjà, pour cet exemple, et aussi modeste soit-il, la séparation de ces trois aspects et fonctionnalités logicielles n en reste pas moins une première mise en œuvre de la recette de conception MVC. Ici le Model serait la liste des éléments (que l on pourrait installer dans un fichier séparé), la View serait la représentation graphique de ce menu (type de composant graphique pour afficher la liste, disposition géométrique du menu, couleur et taille des éléments), et son Control le mode du fonctionnement du menu et des éléments qui lui sont associés (dans le code, la déclaration séparée des fonctions donothing()). Un autre développeur pourrait vouloir récupérer votre formidable menu mais pour une toute autre liste d éléments. Imaginez le cas d un restaurateur chinois qui voudrait récupérer le menu d un restaurateur italien. Même si, en général, il est impossible de commander le plat numéro 257 dans un restaurant italien, pourtant et depuis des années notre préféré dans les restaurants chinois. USE CASE ET MVC QUI EN DÉCOULE Depuis l avènement d UML (Unified Modeling Language) comme langage de modélisation graphique des développements logiciels, tout projet informatique débute généralement par la mise au point du diagramme use case (dit «cas d utilisation» en français). Ce diagramme essentiel a pour mission d identifier les différents usages de ce logiciel vu du côté utilisateur, il en compose son «cahier de charge» et il est au départ de tout. La figure qui suit illustre un tel diagramme dans le cas d un distributeur automatique d argent. Décrivons la figure A.2. Ce logiciel sera utilisé par trois types d acteur : «le client», «la banque» et «l employé de maintenance». Chacun de ces acteurs, et c est ce qui les différencie, en fera un ensemble d usages (appelés les «cas d utilisation») qui lui sont propres. Ainsi le client pourra «retirer de l argent» ou «effectuer un virement» mais pas, et c est tant mieux, effectuer la maintenance. LE MODÈLE MVC ET USE CASE Comme l indique la figure A.3, ces use case vont donner naissance à trois types de fonctionnalité logicielle : contrôle, entité et interface, qui reprennent parfaitement la recette de conception MVC (il suffit d effectuer la substitution Modèle = Entités 3

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL Figure A.2 Diagramme «use case» d un distributeur automatique d argent Figure A.3 Le modèle MVC et use case = Modèle et Interface = Vue). Chaque cas d utilisation sera pris en charge par les éléments contrôles. Ainsi, effectuer un virement sera la responsabilité d un ensemble d acteurs logiciels particuliers qui n aura ni à se préoccuper de l interface avec le client ni avec les bases de données et les éléments entités. Le contrôle se devrait de fonctionner de façon identique si l on change la manière dont le client 4

LE MODÈLE MVC ET USE CASE Figure A.4 MVC et distributeur d argent automatique voit sa banque sur son navigateur Web et la manière dont les comptes en banque sont finalement stockés sur le disque dur. À chaque intersection entre les acteurs et le cas d utilisation doit correspondre un ensemble d éléments interfaces (ou view) dont le rôle sera en effet de gérer l interface graphique avec l utilisateur. Enfin, les objets fondamentaux dits parfois «métiers» utilisés par l application tels que «CompteEnBanque», «Virement», «Client», etc. feront chacun l objet d une classe ou d éléments logiciels qui, in fine, s associeront à des versions permanentes de chacun d entre eux (par exemple des tables «clients» et «compte en banque» dans une base de données relationnelles) stockés sur le disque dur. Comme la figure A.4 l indique, les éléments contrôles demeurent au centre de tout. Ce sont les éléments pivots de l application. Ils mènent la danse. Les interfaces, tout en recevant les sollicitations des utilisateurs, s adressent à eux pour relayer celles-ci. À leur tour, les contrôles parlent aux éléments entités (par exemple, ils vont aller chercher le statut des comptes en banques ou créer de nouveaux virements) et sollicitent en retour les éléments interfaces pour recevoir de la part des utilisateurs d autres informations utiles à la continuation de l interaction (combien retirer du compte, sur quels autres comtes effectuer le virement, etc.). Dans la plupart des environnements de développement logiciel, ces trois rôles, modèle/vue/contrôle, sont clairement tenus séparés et joués respectivement par les classes «Modèles», qui s occuperont de la mise en correspondance avec la base de données relationnelles, les «classes GUI» (dans le cas d un développement Web, il s agira alors de mettre en œuvre ses connaissances d HTML, CSS ou XML), qui permettront l interface entre l utilisateur et le système, et les fonctionnalités «contrôle» qui, par l intermédiaire de codes (écrits dans n importe quel langage de programmation), s occuperont de toute la logique de fonctionnement de l application. 5

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL MODÉLISATION DE PROCESSUS ET DÉVELOPPEMENT LOGICIEL À côté des diagrammes d utilisation (use case) d UML, l industrie informatique a proposé un autre standard de notation destiné plus spécifiquement à modéliser les processus métier (ou business process), baptisé BPMN (Business Process Modeling and Notation). Des logiciels spécialisés permettent de tracer graphiquement les séquences d activités composant les processus, en ce compris leurs entrées, actions, et décisions. Au départ, de tels modèles n étaient destinés qu à informer le développement futur du logiciel supportant le processus. Mais de plus en plus, la démarche de développement logiciel s intègre verticalement, de l analyse des processus au développement, test et déploiement du système. Dès lors, les logiciels de type BPMN s interfacent désormais (quand ils n y sont pas complètement intégrés) avec les outils de développement logiciel et les systèmes d intégration d application (enterprise application integration ou EAI) qui seront présentés au chapitre 9. L idée est de rendre aussi transparente et automatique que possible la transposition d un modèle (use case en UML ou processus métier en BPMN) en code informatique correspondant. L architecture des systèmes d information d entreprise a largement évolué dans un sens qui permet cette intégration et vise à donner au maximum la haute main du développement logiciel à ceux qui en ont besoin, c est-à-dire aux utilisateurs eux-mêmes. 6