Retour à l'OSIS

Langages et Outils pour la fiabilité logicielle

17 Mai 2017 — Langages et Outils pour la fiabilité logicielle

14h-17h

IRILL, Paris "Qualité logicielle"

Résumé

Augmenter la fiabilité d'un logiciel permet à la fois de diminuer les risques pour ses utilisateurs, et de diminuer ses coûts pour ses concepteurs. Les langages modernes et les outils d'analyse permettent d'aider le développeur considérablement dans cette tâche souvent ingrate.

Increasing software reliability is a way to reduce risks for users, and to reduce costs for developers. Modern languages and analytic tools are proved to be very useful to the developer in this difficult task.

Flyer de la journée

Direction de programme

Programme dirigé par Emmanuel Chailloux (LIP6/UPMC, Irill), Roberto Di Cosmo (Irif, Irill, Inria, UPD)

Description détaillée

Un billet unique promotionnel  à 40 € est disponible pour assister aux 5 journées IoT, blockchain, Langages, Cloud, scikit-learn Day.

Programme résumé

  • 13:45: Accueil
  • 14:00: Mot d'introduction
  • 14:15: When Ada & SPARK steal from other languages to improve safety

    Raphaël Amiard (Adacore)

  • 14:45: Projet Rudder : d’une programmation objet classique aux Free Monads en 8 ans de Scala

    Vincent Membré & François Armand (Normation)

  • 15:15: Quelques principes de sécurité pour le développement d'applications robustes

    Eric Jaeger (ministère de la défense)

  • 15:45: Pause
  • 16:00: On static malware detection

    Tayssir Touilli (LIPN, univ Paris 13)

  • 16:30: Mise au point sur cartes graphiques

    Mathias Bourgoin (LIFO, univ Orléans)

  • 17:00: Développement des applications Web et mobiles du réseau social Be Sport grâce à la programmation multi-tier typée et au framework Ocsigen

    Vincent Balat (BeSport)

  • 17:30: Pot

Lieu

IRILL

Ville: Paris


Programme détaillé

  • 13:45 - Accueil
  • 14:00 - Mot d'introduction
  • 14:15 - When Ada & SPARK steal from other languages to improve safety

    Raphaël Amiard (Adacore)

    Ada, un des premier langages orienté sureté et standardisé, continue encore aujourd'hui d'évoluer, influencé par les fonctionnalités de langages plus (ou moins) récents. SPARK, un langage supportant la preuve formelle, inspiré d'Ada, évolue en parallèle. Dans cet exposé, nous verrons les influences qui sont aujourd'hui explorées par les concepteurs de Ada et SPARK, pour améliorer la sureté du langage.


  • 14:45 - Projet Rudder : d’une programmation objet classique aux Free Monads en 8 ans de Scala

    Vincent Membré & François Armand (Normation)

    8 ans, 70k lignes de codes, peu de logiciels ont autant de vécu que Rudder avec le langage Scala. Nous proposons, à travers ce retour d’expérience, de vous montrer comment nous utilisons Scala, plus particulièrement son système de type très puissant et ses traits fonctionnels, pour rendre la programmation du logiciel plus sûre, plus simple et surtout plus facile à maintenir.

    Nous nous appuierons sur des exemples issus du projet afin de montrer comment, au fil des années, nous avons utilisé de plus en plus de tactiques et de concepts à cette fin, des plus simples tels que l’absence de variables mutables, aux plus puissants comme les Free Monads.

  • 15:15 - Quelques principes de sécurité pour le développement d'applications robustes

    Eric Jaeger (ministère de la défense)

  • 15:45 - Pause
  • 16:00 - On static malware detection

    Tayssir Touilli (LIPN, univ Paris 13)

    The number of malware is growing extraordinarily fast. A  malware may bring serious damage, e.g., the worm MyDoom slowed down global internet access by ten percent in 2004. Thus, it is crucial to have efficient up-to-date virus detectors. Existing antivirus systems  use various detection techniques to identify viruses such as   (1) code emulation where the virus is executed in a virtual environment to get detected; or (2) signature detection, where a signature is a pattern of program code that characterizes  the virus. A file is declared as a virus  if it contains a sequence of binary code instructions that matches one  of the known signatures.

    These techniques are becoming insufficient. Indeed, emulation based techniques can only check the program's behavior in a limited time interval.  As for signature based systems, it is very easy to virus developers to  get around them. Thus, a robust malware detection technique needs  to check the behavior (not the syntax) of the program without executing it. We show in this talk how using behavior  signatures allow to efficiently detect malwares in a completely static way. We implemented our techniques in a tool, and we applied it to detect several viruses. Our results are encouraging. In particular, our tool was able to detect more than 800 viruses. Several of these viruses could not be detected by well-known anti-viruses such as Avira, Avast, Norton, Kaspersky and McAfee

  • 16:30 - Mise au point sur cartes graphiques

    Mathias Bourgoin (LIFO, univ Orléans)

    La programmation GPGPU (calcul généraliste à l'aide d'accélérateurs graphiques) est maintenant très répandue et peu chère.
    Soigneusement utilisée, elle permet un gain de performances impressionnant.
    Cependant, elle exige généralement que les développeurs combinent plusieurs modèles de programmation, à travers des langages et des outils très complexes.
    Les programmes GPGPU sont ainsi difficiles à concevoir et à déboguer.

    Après une introduction rapide à la programmation GPGPU, je présenterai SPOC : une bibliothèque portable pour le langage OCaml associée à un DSL permettant de générer du code
    GPGPU à l'exécution. Je détaillerai ensuite notre solution de profilage qui se concentre sur deux points principaux :
    - rester portable et offrir des informations pertinentes, quelle que soit la combinaison d'architectures GPU présentes dans le système

    - offrir au programmeur des informations utiles facilement reliables au code écrit à l'origine et non au code généré.

  • 17:00 - Développement des applications Web et mobiles du réseau social Be Sport grâce à la programmation multi-tier typée et au framework Ocsigen

    Vincent Balat (BeSport)

    Be Sport est une start-up qui développe une plateforme sociale réunissant tous les acteurs du sport : les fans, athlètes, media, marques, etc. Pour permettre de développer rapidement, et avec des moyens limités, ses applications Web et mobiles, Be Sport a fait le choix d'utiliser le framework Ocsigen, qui propose une façon radicalement nouvelle de programmer, basée sur une version multi-tier du langage OCaml, et une utilisation intensive du typage statique. Les applications Web et mobiles (iOS, Android) sont écrites avec un code source unique, qui permet de décrire les côtés serveur et client, et la version Web et mobile, le typage garantissant la fiabilité.



  • 17:30 - Pot

Intervenants

  • Éric JAEGER

    Fonctionnaire SSI du ministère de la défense depuis fin 2014, après un passage d'une dizaine d'années par l'ANSSI où il a notamment travaillé sur la prise en compte de la sécurité dans le développement logiciel.

  • François ARMAND

    François Armand, papa³, développeur passionné, Scala depuis >10 ans, cofondateur & CTO de Normation, lead-dev Rudder.

  • Mathias BOURGOIN

    Maître de conférences (LIFO, Univ Orléans)

  • Raphaël AMIARD

    Raphaël Amiard is a software engineer at AdaCore working on tooling and compiler technologies. He joined AdaCore in 2013, after an internship on AdaCore's IDEs. His main interests are compiler technologies, language design, and sound/music making.

  • Tayssir TOUILLI

    Directrice de recherche (DR - CNRS) au LIPN

  • Vincent BALAT

    CTO de Be Sport

  • Vincent MEMBRÉ

    Vincent Membré, Développeur Lambda chez Normation, depuis 5 ans ( Scala \o/, mais pas uniquement) , Release manager sur Rudder, presque double papa.

Organisateurs (2017)

Co-organisateurs et sponsors (2017)

Ils parlent de l'OSIS (2017)