Propositions de sujets pour une étude de "reverse engineering"

Date limite du sujet sur le slack lundi 20h.


Vous pouvez tout à fait proposer votre propre sujet. Mais vous devez le faire valider avant de vous lancer dans le projet.

Avant-Propositions

  • Les questions sont données à titre indicatif. Il vous appartient (1) de choisir celles qui vous intéressent et (2) de les reformuler avec précision pour pouvoir y répondre avec des éléments tangibles : métriques, schéma d'architecture, …
  • Vous ne devez pas avoir besoin de déployer les plateformes pour répondre aux questions, mais vous le pouvez.
  • Il est possible que vous ne puissiez par répondre à certaines questions sur tous les points, mais vous pouvez établir quelles informations vous manquent ou comment vous procéderiez vous si vous aviez du temps?

Puis-je avoir confiance dans ce logiciel ?


PIX

Projet : PIX

Le projet Pix - https://pix.beta.gouv.fr/

PIX est un projet public de plateforme en ligne d’évaluation et de certification des compétences numériques, en cours de développement.

PIX est développée selon la méthodologie agile des « Startups d’Etat » dans le cadre d’un partenariat entre tous les acteurs du ministère de l’Education nationale, de l’Enseignement supérieur et la Recherche, le Conseil national éducation-économie et le secrétariat général à la modernisation de l’action publique….

Le référentiel de compétences s’adapte en permanence aux évolutions du monde numérique.

Code

 https://github.com/sgmap/pix

Premières questions

Nous nous posons la question d'utiliser cette plateforme dans un cadre privé ou au contrairement d'établissement. Indépendamment des aspects politiques 1) voici quelques questions auxquelles nous aimerions des réponses afin de faire ce choix ou non. Bien sûr vous êtes libres2) à les reformuler :

  1. A l'étude du code, est-ce que l'on peut faire confiance à la robustesse de la plateforme face à des hordes d'étudiants?
  2. Ce projet en version béta va devoir très fortement évolué pour s'adapter d'une part aux différents publiques, d'autres parts aux évolutions des NTICs. Quels sont les mécanismes d'évolution prévus? Pouvez vous évaluer quantitativement et/ou qualitativement la capacité d'évolution de ces codes ? la réactivité constatée de l’équipe de développement ?
  3. Ces codes seraient développés en mode agile. Pouvez-vous le confirmer à l'analyse du dépôt?
  4. Peut on faire confiance à un tel projet ? Quid de la qualité des codes ? Quid des aspects sécurité? Si vous ne pouvez pas répondre, complérement préciser cependant les éléments manquants.
  5. Certains textes parlent d’utiliser le “Machine Learning” pour apprendre des données produites par les utilisateurs. Pensez-vous qu’il sera facile d’accéder à ces informations et à quelles informations ?

Apprendre du code


WEKA

Projet

https://www.cs.waikato.ac.nz/ml/weka/

Weka is a collection of machine learning algorithms for data mining tasks. Weka contains tools for data pre-processing, classification, regression, clustering, association rules, and visualization. It is also well-suited for developing new machine learning schemes.

Weka is open source software issued under the GNU General Public License.

Code

https://github.com/bnjmn/weka/

Premières questions

Il n'est pas question dans le cadre de ce module de vous demander de comprendre les algorithmes de ML, mais de “seulement” ce que vous sauriez apprendre par le code. Vous pouvez faire le choix de réduire vos investigations à une sous-partie des codes.

Voici quelques unes des questions que nous nous posons :

  • Pourrions-nous avoir une vision globale de la structure des codes? Quelles sont les classes très partagées ?
  • On ne dispose pas ici de l'histoire du code ou que très partiellement, que peut-on cependant savoir des auteurs des différents algorithmes?
  • Tous les algorithmes ne supportent pas les mêmes données en entrée (i.e. certains algorithmes dans le CSV ne peuvent pas avoir d'attributs nominaux par exemple), sauriez-vous remonter l'ensemble de ces contraintes par une simple analyse des codes?
  • Sauriez-vous établir la “complexité” 3) des différents algorithmes.
  • Quid de la qualité de ces codes4)?

scikit-learn

Projet

Scikit-learn is a Python module for machine learning built on top of SciPy and distributed under the 3-Clause BSD license.

The project was started in 2007 by David Cournapeau as a Google Summer of Code project, and since then many volunteers have contributed. See the AUTHORS.rst file for a complete list of contributors.

It is currently maintained by a team of volunteers.

Website: http://scikit-learn.org

Code

https://github.com/scikit-learn/scikit-learn

Premières questions

Mêmes questions que pour Weka à l'exclusion de celle sur les auteurs qui pourra être abordée différemment ici.

SPOON

Projet

http://spoon.gforge.inria.fr/

Spoon is an open-source library that enables you to transform (see example) and analyze Java source code (see example) . Spoon provides a complete and fine-grained Java metamodel where any program element (classes, methods, fields, statements, expressions…) can be accessed both for reading and modification. Spoon takes as input source code and produces transformed source code ready to be compiled.

SpoonLabs is a Github group for centralizing all projects and experiments that use Spoon for Java source code analysis and transformation using Spoon

Code

https://github.com/SpoonLabs

Premières questions

Sauriez-vous parser les bases de codes d'utilisation de Spoon pour déterminer :

  1. la place de spoon dans ces projets;
  2. les types d'éléments mis en jeu dans les transformations de codes;
  3. les dépendances entre ces codes.

Comparer des codes

Weka versus scikit-learn

Projet

Il s'agit de comparer Weka et Scikit-learn (voir plus haut).

Code

https://github.com/scikit-learn/scikit-learn

Premières questions

Comparer ces deux bibliothèques :

  1. Sauriez-vous de manière automatique déterminer les algos présents versus absents de ces deux bibliothèques?
  2. Pourriez vous faire le lien entre les deux architectures (structurations) de ces libraires?
  3. En quoi les communautés qui contribue au niveau code, sont elles différentes?

Quels tests ? Quels limites dans les codes? Que nous .. DOCKER

Titre

Projet

Description

Code

code

Premières questions

1) https://github.com/docker/compose Quels sont les principaux contributeurs ? Quelle est l’histoire vu du côté code : fonctionnalités ajoutées - ôtées Quelle qualité pour les codes ? - Quelle fréquence de bug ? Quelle couverture ? Peut-on croire à la pérennité de cet outil ?

Quells tests de composition?

Quel métric pour quoi?

Titre

Projet

Description

Code

code

Premières questions

L'idée serait ici d'évaluer plusieurs projets et de regarder la correspondance des métriques avec nos attentes…

BUT4Reuse

Titre

Projet

Description

Code

https://github.com/but4reuse/but4reuse

Premières questions

Quelle qualité des codes composés?

JUNIT5

Titre

Projet

Description

Code

https://github.com/junit-team/junit5

Premières questions

sss

TITRE

Aller plus loin sur le projet de l'an passé

Projet

Description

Code

Premières questions

sss

TITRE

Titre

Projet

Description

Code

code

Premières questions

sss

de python 2 à 3 : Il existe 22three Quels projets l'utilisent? Quels tickets ont été postés? Quelles sont les codes impactés? Si cela fonctionne pourquoi les gens ne migrent pas ?

J'ai un soft pour remplir … on trouve les jar sur maven 1) comment recherchez vous? 2) Pas tous ont les sources JTS biblio de codes …. géométrie algébrique en java JTS source code 8 repos github différents C'est la seule Retracer l'historique de ce soft, identifier les évolutions, On les laisse faire.

regarder tous les projets qui utilisent Docker-compose avec des versions differentes.. est-ce qu'il y a eu des migrtions? je veux tous les fichier qui ont utilisé Docker-compose? les images les plus composées? La taille moyenne ? Binding réseaux? Les volumes?

Comment est architecturé le code entre tous les Dockers

1) au sens premier du terme
2) fortement invités
3) il vous appartient de préciser son sens
4) A vous de choisir le/les sens de qualité dans votre étude