Présentation du défi

Étude de cas : développer un logiciel en Python

Mark Pedigo, PhD

Principal Data Scientist

Qu'est-ce qu'une étude de cas ?

  • Appliquer vos acquis à un problème réel
  • Cours prérequis
    • Principes d'ingénierie logicielle en Python
    • Programmation orientée objet intermédiaire en Python

Deux personnes en réunion discutant d'une étude de cas

Étude de cas : développer un logiciel en Python

Scénario de l'étude de cas

Déterminer l'hypothèque pour des logements neufs

  • Chargé·e de prêts chez PyBank Financial
  • Créer un programme pour
    • Déterminer le budget logement
    • Calculer la mensualité
  • Avertissement : à titre illustratif uniquement

loan_officer.jpg

Étude de cas : développer un logiciel en Python

Plan d'action

  • Logiciel automatisant les calculs
  • En appliquant des principes d'ingénierie logicielle, basés sur des classes
  • Étapes
    • Calculatrice de base
      • +, -, *, /, **
    • Calculatrice financière
      • Calcul des intérêts, du taux
    • Calculatrice d'hypothèque
      • Calcul du montant et des remboursements

Trois calculatrices, de taille croissante

Étude de cas : développer un logiciel en Python

Héritage

Réutilisation de code entre classes

  • La classe enfant (FinancialCalculator) hérite de toutes les fonctionnalités de la classe parente (BasicCalculator)
  • La classe enfant peut ajouter des fonctionnalités
class BasicCalculator:
    def multiply(self, x, y):
        result = x * y
        return result
  ...
# Child of BasicCalculator
class FinancialCalculator(BasicCalculator):
    def months_from_years(self, years):
        # Inherits the .multiply() method
        return self.multiply(years, 12)
    ...
Étude de cas : développer un logiciel en Python

Rappel des principes d'ingénierie logicielle

  • Code modulaire, propre, lisible, efficace
    • Héritage, méthodes
  • Tirer parti de bibliothèques, frameworks et solutions existants
    • Modifier du code préexistant
    • Accélérer le développement
  • Documentation claire, commentaires, guides d'usage
    • Documentation
  • Tests
    • doctest et tests unitaires

Image d'un ordinateur entouré d'icônes représentant l'ingénierie logicielle

Étude de cas : développer un logiciel en Python

Feuille de route

Feuille de route présentant les différentes parties du projet.

Étude de cas : développer un logiciel en Python

Construisons !

Étude de cas : développer un logiciel en Python

Preparing Video For Download...