Die Herausforderung

Fallstudie: Software in Python entwickeln

Mark Pedigo, PhD

Principal Data Scientist

Was ist eine Fallstudie?

  • Wende vorhandene Skills auf ein Praxisproblem an
  • Voraussetzungen
    • Software Engineering Principles in Python
    • Intermediate Object-Oriented Programming in Python

Zwei Personen besprechen in einem Meeting eine Fallstudie

Fallstudie: Software in Python entwickeln

Szenario der Fallstudie

Hypotheken für Neubauten bestimmen

  • Kreditsachbearbeiter:in bei PyBank Financial
  • Baue ein Programm, das
    • das Hausbudget ermittelt
    • die monatliche Rate bestimmt
  • Hinweis: Nur zu Illustrationszwecken

loan_officer.jpg

Fallstudie: Software in Python entwickeln

Vorgehensplan

  • Software automatisiert die Berechnungen
  • Mit Software-Engineering-Prinzipien, klassenbasiert
  • Phasen
    • Basisrechner
      • +, -, *, /, **
    • Finanzrechner
      • Zins, Zinssatz berechnen
    • Hypothekenrechner
      • Kreditsumme, Rückzahlungen berechnen

Drei Taschenrechner, zunehmend größer

Fallstudie: Software in Python entwickeln

Vererbung

Code wird zwischen Klassen wiederverwendet

  • Die Kindklasse (FinancialCalculator) erbt alle Funktionen von der Elternklasse (BasicCalculator)
  • Die Kindklasse kann zusätzliche Funktionen implementieren
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)
    ...
Fallstudie: Software in Python entwickeln

Rückblick: Software-Engineering-Prinzipien

  • Modularer, sauberer, lesbarer, effizienter Code
    • Vererbung, Methoden
  • Wiederverwendbare Libraries, Frameworks, bestehende Lösungen nutzen
    • Vorhandenen Code anpassen
    • Entwicklung straffen
  • Klare Doku, Code-Kommentare, Nutzungshinweise
    • Dokumentation
  • Tests
    • doctest und Unit-Tests

Ein Computer, umgeben von Icons für Software Engineering

Fallstudie: Software in Python entwickeln

Roadmap

Roadmap mit den Projektteilen.

Fallstudie: Software in Python entwickeln

Lass uns bauen!

Fallstudie: Software in Python entwickeln

Preparing Video For Download...