課題の紹介

ケーススタディ:Pythonでソフトウェアを構築する

Mark Pedigo, PhD

Principal Data Scientist

ケーススタディとは?

  • 既存スキルを実課題に適用
  • 受講推奨コース
    • Software Engineering Principles in Python
    • Intermediate Object-Oriented Programming in Python

ケーススタディを議論する2人

ケーススタディ:Pythonでソフトウェアを構築する

ケーススタディのシナリオ

新築住宅の住宅ローンを算定

  • PyBank Financial のローン担当者
  • 次を行うプログラムを作成
    • 住宅購入予算を算出
    • 月々の支払額を算出
  • 免責事項:あくまで例示目的

loan_officer.jpg

ケーススタディ:Pythonでソフトウェアを構築する

実行計画

  • 計算を自動化するソフトウェア
  • クラスベースのソフトウェア工学原則を適用
  • 段階
    • 基本電卓
      • +, -, *, /, **
    • 金融電卓
      • 利息・金利を計算
    • 住宅ローン電卓
      • 借入額・返済額を計算

サイズが大きくなる3つの電卓

ケーススタディ:Pythonでソフトウェアを構築する

継承

クラス間でコードを再利用する

  • 子クラス(FinancialCalculator)は親クラス(BasicCalculator)の機能を継承
  • 子クラスは機能を追加可能
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)
    ...
ケーススタディ:Pythonでソフトウェアを構築する

ソフトウェア工学の復習

  • モジュール化・クリーン・読みやすく効率的なコード
    • 継承、メソッド
  • 既存のライブラリやフレームワークを活用
    • 既存コードを改変
    • 開発を効率化
  • 明確なドキュメント、コメント、利用ガイド
    • ドキュメント
  • テスト
    • doctest と単体テスト

ソフトウェア工学を表すアイコンに囲まれたコンピュータの画像

ケーススタディ:Pythonでソフトウェアを構築する

ロードマップ

プロジェクトの各パートを示すロードマップ。

ケーススタディ:Pythonでソフトウェアを構築する

作ってみましょう!

ケーススタディ:Pythonでソフトウェアを構築する

Preparing Video For Download...