Nouvelles technologies pour automatiser le développement Déductions J.M. Vanel - 2009-05 Appliquer l'intelligence artificielle au génie logiciel Modélisation,

Slides:



Advertisements
Présentations similaires
Initiation à la conception des systèmes d'informations
Advertisements

Developpement Process « Coding party !! » Tony Carnal Altran.
Projet de fin d'étude pour l'obtention du Diplôme Nationale d'Ingénieur en Informatique Conception et développement des modules de GED pour l’ indexation.
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Les Logiciels Libres une informatique ouverte et citoyenne Samedi 25 Mars Thomas Petazzoni
Les Logiciels Libres : Une Opportunité Pour Votre Entreprise ?
Séminaire « Développement logiciel et ontologies » J.M. Vanel Appliquer l'intelligence artificielle au génie logiciel Modélisation, moteurs.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Page 1 La problématique du décideur La solution du « décisionnel » Les outils existants Mener un projet décisionnel Démo on line Sommaire.
La norme ISO et la gestion documentaire La création et la mise en œuvre d'un outil informatique.
Formation web sémantique J.M. Vanel RDF, RDF Schema, SPARQL, OWL, Modélisation, moteurs de règles Licence Creative Commons.
Le projet Déductions Faire tomber les murs du logiciel.
Le système Raid 5 Table des matières Qu'est ce que le RAID ? Les objectifs Le raid 5 Les avantages et les inconvénients Les composants d’un Raid.
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
MDA ( Model Driven Architecture ). Introduction Model Driven Architecture ● Framework ● Développement de logiciels ● Object Management Group (OMG) ●
Vers les usages... Le projet EnvOLE séminaire EOLE novembre 2006, Dijon Accueil Orientations Architecture Socle > EnvOLE Services > Centre de ressources.
GPA – 19 novembre Urbanisation : « ranger » le SIE GCiB – 16 mars 2010 F. Rougerie – Onema / DCIE.
1 DUT Informatique 2010 – 2011 Soutenance de stage Atelier Parisien d'Urbanisme La cartographie à l'heure du web Pierre Dargham Encadrant : Claude Luciani.
1 Rapport PFE Gestion de Stock M LLE Nouhaila Touzani Ouazli.
LE DEVELOPPEMENT AUTREMENT
Framework EHop/Ecenvir
Environnement du développement de BD ORACLE REPORTS 10g
Les P G I Les Progiciels de Gestion Intégrés
Cours MGL 847 Amélioration des processus
Le « Bugtracking » Alejandro FERNANDEZ – Etienne FONTEIX
PORTEFEUILLE DE COMPETENCES
Production de documents pédagogiques et chaîne éditoriale
L’infrastructure du SIE en bref
OWL-S.
Portefeuille des compétences
Clients riches RIA (Rich Internet Application) / RDA
Présentation du B2i école Références : B.O. n° 42 du 16 novembre 2006
Les bases de données et le modèle relationnel
Interaction avec une base de données
Module d’exploration : I.C.N
Amélioration de la qualité des forfaits
Les technologies AJAX.
Cissé Moussa Diawara Issif Master Informatique 2ième année
Comment améliorer l’adoption des applicatifs internes ?
Présentation du B2i école Références : B.O. n° 42 du 16 novembre 2006
Développement d’un réseau social de collaboration destiné aux médecins radiologues Soutenance de projet de fin d’étude En vue de l’obtention du diplôme.
Déductions: appliquer l'IA au logiciel
CMMI Capability Maturity Model Integration « Importance de CMMI dans la gouvernance IT basée sur COBIT »
Les applications de groupware
Plus de 4000 langages....
Edit the text with your own short phrase. The animation is already done for you; just copy and paste the slide into your existing presentation. REPUBLIQUE.
Modèles de représentation des systèmes d’information
Avantages et désavantages des normes
Message Oriented Middleware MOM - Beghdad abdelkrim -abass youcef.
GOUVERNANCE DES SYSTEMES D’INFORMATION IS governance.
CONCEPTION D’UNE BASE DE DONNEES INTERACTIVE ENTRE LA DEPP ET LES AGENCES URBAINES Mai 2012 DIRECTION DES ETABLISSEMENTS PUBLICS, DU PARTENARIAT ET DE.
Plan d'urbanisation Version / 02 / Nov Mai 2013 Passation des marchés Sommaire Une vision unifiée de l'urbanisation et de l'approche.
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CONCEPTION D’UN SYSTÈME INTELLIGENT DE MANAGEMENT D’UNE FLOTTE DE VEHICULES
Amélioration de la qualité des forfaits Vers la démarche CMM.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Auditeur: Léonardo AMODIO Cours: NFE107
Exposé de système / réseaux IR3
Structuration des documents pédagogiques
Introdution  Le test appartient à l'activité de Vérification et de Validation d'une application, qui consiste à déterminer si cette dernière a été développée.
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
Plan I.Définitions II.Objectifs III.Intérêt IV.Quoi tester ? V.Processus VI.Exemples VII.Conclusion VIII.Références.
L’analyse de la valeur des projets informatiques
Réalisé par: SAMMARI RIM SOUID AHLEM AMROUCH HAFEDH
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
YII Yes It Is !.
UX DESIGN User exprérience en anglais Expérience Utilisateur en français Concevoir, Créer, dessiner UX DESIGN, consiste à penser et concevoir un site web.
Transcription de la présentation:

Nouvelles technologies pour automatiser le développement Déductions J.M. Vanel Appliquer l'intelligence artificielle au génie logiciel Modélisation, moteurs de règles Multi-modèles, multi-plateformes Ergonomie et logique

Vision ● Appliquer l'Intelligence Artificielle au développement logiciel ● « Model once, run everywhere » « logiciel durable » ● Réduire la fracture des plateformes et des langages – Les infrastructures ne sont que des commodités, qui doivent être interchangeables

Objectif à long terme ● Augmenter la flexibilité des logiciels ● Diminuer les coûts de développement ● Maîtriser le développement logiciel ● Améliorer l'ergonomie

Développement Logiciel: le constat ● coûteux, d'une façon non prévisible ● non flexible ● non réutilisable ● les modèles et règles métier sont cachés parmi le code d'infrastructure ● non traçable: spécifications & implémentations non reliées ● non amical pour l'utilisateur ==> Non !

Le besoin des clients ● Vous développez des logiciels spécifiques, – Essentiels pour le service offert ● Besoin de réactivité ● Impossible de sous-traiter ● Ne pas être lié à une architecture technique ● Maîtrise et traçabilité dans la chaîne de production logicielle

Notre réponse aux besoins des clients ● Basée sur des modèles précis du métier (ontologies et règles) ● écrits en Anglais formel (Anglais contrôlé) ● Indépendante d'une architecture technique ● Utilise des techniques éprouvées de l'Intelligence Artificielle: systèmes experts, logique de description

Notre réponse aux besoins: outils 1 ● Tout est Open Source ● Environnement de développement à base de règles (EulerGUI) – Open Source, écrit en Java – 4 moteurs d'inférence (Java-Drools, Prolog, Python CWM et FuXi) – lit des modèles métiers dans plusieurs formats : UML, OWL, RDF(S), SQL, eCore – Exemple d'utilisation: générateur de formulaires

Notre réponse aux besoins: outils 2 ● Éditeur d'ontologies Protégé ● Protégé Web collaboratif ● Saisie Anglais contrôlé : ACE View (Protégé), ACEWiki ● serveurs RDF SPARQL : Joseki(Jena), Sesame, Virtuoso, … ● serveur EulerGUI

Réponse aux besoins: prestations ● interroger les experts métiers et formaliser leur expertise ● générer du code et des configurations pour un framework ou une plateforme donnée ● partenariat stratégique : mettre au point ensemble un générateur de code et configurations pour une plateforme, par exemple GWT, eclipse-EMF, PHP, etc

Moteurs de règles: avantages ● Une règle isolée a un sens ● Le moteur enchaîne les règles, pas le programmeur ● + efficace que la programmation classique ● Capture bien l'expertise métier ● Traduisible depuis et vers le langage naturel ● Les « systèmes experts « ont fait leurs preuves

Règles: exemples S'il y a une commande, il y a une demande de paiement associée : { ?C a Order } => { ?C hasPaymentRequest ?PR }. Si le porteur a eu un incident de paiement, alors la commande est annulée: { ?C hasHolder ?H. ?H hasPaymentIncident ?PI } => { ?C hasStatus cancelled }.

Règles: exemples 2 Si un client a commandé des articles dans le même domaine, mais autre catégorie que les derniers articles, alors on propose cette catégorie au client: { ?CUSTOMER :hasOrderedItem ?ITEM. ?ITEM :domain ?DOMAIN. ?ITEM :category ?CATEGORY. ?ITEM2 :belongsTo :lastItems. ?ITEM2 :domain ?DOMAIN. ?ITEM2 :category ?CATEGORY2. ?CATEGORY2 log:notEqualTo ?CATEGORY. } => { :proposal :category ?CATEGORY2 }.

Modélisation: pourquoi ? ● Si on y réfléchit, une application ce n'est que: – un modèle de données, – des règles (validation, présentation, formulaires,... ), – et de l'infrastructure (Web, IHM, bases de données,...) ● Mais couramment on aboutit à un code source où tout cela est mélangé ==> maintenabilité et réutilisabilité faibles

Analyse de coûts ● Coûts cachés: – plus de 50% du coût logiciel est en maintenance – Délais longs: le « time to market » est pourtant essentiel ● Rigidités : ajouter des fonctionnalités ou changer de plateforme sont difficiles ==> on fait de nouveaux développements ● Interopérabilité difficile entre logiciels ==> on ressaisit des données ● services informatiques liés à la TMA en France en 2008 : 2 milliards € ; SOA : 700 millions

Points forts et avantages ● « Model once, run everywhere » « logiciel durable » ● Les infrastructures ne sont que des commodités, qui doivent être interchangeables ● Open Source ● Basé sur des standards reconnus : RDF, OWL, N3, Drools – UML, eCore, SQL lus en entrée

Modélisation facilitée – UML textuel Person<|---Customer---Buying<|---ServiceBuying <|---MerchandiseBuying HelpRequest Buying date: Date explanation: String

Modélisation facilitée – Anglais contrôlé 1 à partir de cette phrase: Every card is a means of a payment. ce modèle formel est récupéré : Card ---|> MeansOfPayment

Anglais contrôlé 2 à partir de cette phrase: If a user U has-as-friend a person X, and has-as-friend a person Y, and X is not Y, and X has-as-friend Z, and Y has-as-friend Z, and Z is not U then Z is-a-proposed-friend-for U. ( règle à la Facebook ) Cette règle formelle est récupérée : {?t0 a ns1:person. ?t1 a ns1:person. ?t2 a ns1:user. ?t2 ns1:has-as-friend ?t0. ?t2 ns1:has-as-friend ?t1. ?t0 ns1:has-as-friend ?t3. ?t1 ns1:has-as-friend ?t3. ?t0 owl:differentFrom ?t1. ?t3 owl:differentFrom ?t2} => {?t3 ns1:is-a-proposed-friend-for ?t2}.

Le flux d'information (vu par le concepteur) Réutiliser la technologie existante Modèle métier SQL UML POJO RDFS, OWL Règle s N3SWRL Rewerse Prolog Drools Déductio ns Applicatio n Abstraite Plateform e Concrète SwingPHP eclipse.Net JDBC Sesam e Web Services C embarqué Anglais contrôlé

Cohérence et réutilisation Réutiliser les modèles existants Modèle métier Règle s Déductio ns Application 1 Java Swing MySQL Expose / appelle Services Web Extraction, particularisation Application 2 PHP MySQL Application 3

Générateur de formulaire ● Les techniques courantes des générateurs d'application sont limitées: ● OWL est mieux adapté qu'UML pour modéliser les concepts métier ● OWL est basé sur la logique de description

Le Web Sémantique ● Fondement solide pour les modèles métier – Standards d'échange: RDF, OWL, N3 – Milliers de modèles disponibles sur plusieurs moteurs de recherche : SwoogleSwoogle – Au contraire UML est complexe, peu interopérable, sans modèles disponibles ● Le WS est pensé pour exposer des données riches sur le Web; nous le réutilisons comme socle pour l'ingénierie du logiciel

Problèmes avec UML ● Modélisation par et pour les développeurs ● Cependant le rapport entre un modèle UML et le code source est complexe – Il existe des variantes plus ou moins proches de la programmation – Certaines notations déterminent directement le source, d'autres sont descriptives ● L'OMG a toujours mal promu ses technologies ● pas de modèles réutilisables Open Source

Ouvrir l'Open Source ● Des milliers d'applications et de composants disponibles, mais... ● Pour en intégrer un, il faut souvent des jours de lecture de code; ● Le projet Déductions vise à : – formaliser l'interface entre un composant et l'application, et à automatiser l'intégration – Formaliser la sémantique des applications, afin de sélectionner à partir de besoins

Mesures à prendre ● Impliquer la direction ● Recenser, améliorer, créer des modèles – Utiliser toutes les sources, même textuelles ● Expliciter les règles : niveaux générique, entreprise, applicatif ● Formation sur la modélisation, les technologies basées sur les règles ● Choisir un projet pilote pour commencer avec la technologie « Déductions »