Open Source strategy for software development

lingi2401  2019-2020  Louvain-la-Neuve

Open Source strategy for software development
Note du 29 juin 2020
Sans connaitre encore le temps que dureront les mesures de distances sociales liées à la pandémie de Covid-19, et quels que soient les changements qui ont dû être opérés dans l’évaluation de la session de juin 2020 par rapport à ce que prévoit la présente fiche descriptive, de nouvelles modalités d’évaluation des unités d’enseignement peuvent encore être adoptées par l’enseignant ; des précisions sur ces modalités ont été -ou seront-communiquées par les enseignant·es aux étudiant·es dans les plus brefs délais.
5 crédits
30.0 h + 15.0 h
Q1
Enseignants
Dricot Lionel;
Langue
d'enseignement
Anglais
Préalables
Corequis :LINGI2255
Thèmes abordés
Présentation de l'option Open Source tout en la comparant de façon systématique à l'option «propriétaires», lors du choix d'une application; analyser l'intérêt de contribuer à un logiciel Open Source, le cas échéant.
Analyse et mise en oeuvre d'une approche Open Source pour le développement d'une application; opportunité de distribution d'une application Open Source, par exemple pour un objectif de valorisation ou d'image.
Approche de type Open Source pour développements interne
  • Objectifs visés par une approche Open Source
  • Avantages et difficultés de cette approche
  • Mise en oeuvre pratique
Développement de produits Open Source
  • Objectifs visés par une approche Open Source
  • Intégration et gestion d'une communauté Open Source
  • Droits d'auteur et choix d'une licence Open Source
  • Mode de valorisation et modèle économique
  • Mise en oeuvre pratique
Acquis
d'apprentissage

A la fin de cette unité d’enseignement, l’étudiant est capable de :

1 Eu égard au référentiel AA du programme « Master ingénieur civil en informatique », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • INFO1.2
  • INFO6                                 
Eu égard au référentiel AA du programme « Master [120] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • SINF6
Aux termes de la formation, les apprenants seront capables de :
  • Comprendre et expliquer les avantages et inconvénients d'une approche Open Source pour le développement interne d'un logiciel
  •  Justifier le choix d'une approche Open Source pour le développement d'un logiciel au sein d'une organisation
  • Se positionner et justifier un choix propriétaire par rapport à un choix Open Source ;
  • Organiser un développement selon une approche Open Source
  • Planifier la rencontre et le déroulement des objectifs d'une manière cohérente
  • Comprendre et expliquer les avantages, inconvénients et les modèles économiques d'une distribution Open Source d'un logiciel
  • Justifier le choix d'une distribution Open Source d'un logiciel développé
  • Organiser un développement collaboratif Open Source
  • Justifier le choix d'une approche contributive pour le développement d'un logiciel
 

La contribution de cette UE au développement et à la maîtrise des compétences et acquis du (des) programme(s) est accessible à la fin de cette fiche, dans la partie « Programmes/formations proposant cette unité d’enseignement (UE) ».
Contenu
Ce cours se propose de répondre à ces questions à travers un cours théorique illustré par des exemples réels et documentés ainsi qu'à travers une approche pratique encourageant les étudiants à contribuer à l'open source.
L'approche théorique abordera les domaines suivants :
  • Histoire de l'Open Source, du logiciel libre, GNU et les grands projets open source marquants.
  • Aspects légaux de l'open source : les licences.
  • Aspects politiques de l'utilisation de logiciels open source. Exemple de la ville de Munich et du projet Limux.
  • Aspects de gouvernance communautaire : comment contribuer, gérer et faire vivre un projet open source ? Comment gérer une communauté et ses conflits ? Qui décide du code, des releases, de la documentation ? Exemples du projet GNOME et du noyau Linux. Outils de communication Open Source.
  • Aspects économiques : les différents business model de l'open source. Les succès et les échecs. Exemples historiques de Red Hat, Ubuntu et Mandriva. Exploration des nouveaux modèles avec OpenCollective
  • Aspects technico-politiques de l'open source 1 : la sécurité, le respect de la vie privée.
  • Aspects technico-politiques de l'open source 2 : l'interopérabilité et les formats ouverts.
  • L'open source à l'heure du web : les défis, la licence AGPL. Exemple des projets React et AngularJS
  • Open Source et décentralisation. Exemples des projets XMPP, Diaspora, Mastodon et Bitcoin. Introduction à la blockchain.
  • Étude de cas 1 : Recommander une solution open source au sein d'une entreprise. Notion du Total Cost of Ownership.
  • Étude de cas 2 : Utiliser de l'open source en coopération avec du logiciel propriétaire : les différents scénarios. Exemple d'Android.
  • Étude de cas 3 : open sourcer une application propriétaire existante. Exemple de Mozilla.
Comme travail pratique, les étudiants devront réaliser tout au long du cours un rapport analysant un projet open source de leur choix. En sus de cette analyse, ils seront invités à apporter une contribution au projet, même simple ou non-technique, et à décrire le processus de cette contribution.
Méthodes d'enseignement
Cours ex-cathedra, avec interventions externes et projet individuel à mettre en 'uvre durant l'année.
La date limite de remise du projet est deux semaines avant l'examen ou fin du quadrimestre
Modes d'évaluation
des acquis des étudiants
Examen oral durant lequel l'étudiant défendra son projet (50% des points) et répondra à des questions du professeur (50% des points)
Les modalités restent les mêmes en septembre (le projet étant individuel et pouvant être accompli en juillet/août).
Faculté ou entité
en charge
INFO


Programmes / formations proposant cette unité d'enseignement (UE)

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Master [120] : ingénieur civil en informatique

Master [60] en sciences informatiques

Master [120] en sciences informatiques