Successfully reported this slideshow.
Your SlideShare is downloading. ×

「構造化プログラミング」による設計と実装

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 23 Ad

「構造化プログラミング」による設計と実装

Download to read offline

古くからある構造化プログラミングの重要性は疑うべくもないものですが、古いだけにでは実際どうプログラミングすればどう役に立つのかの理解はおろそかにされがちです。それについて解説しました。

古くからある構造化プログラミングの重要性は疑うべくもないものですが、古いだけにでは実際どうプログラミングすればどう役に立つのかの理解はおろそかにされがちです。それについて解説しました。

Advertisement
Advertisement

More Related Content

More from potimarimo (20)

Recently uploaded (20)

Advertisement

「構造化プログラミング」による設計と実装

  1. 1. 「構造化プログラミング」に よる設計と実装 「構造化プログラミング」ダイクストラ 1969
  2. 2. 「構造化プログラミング」ダイクストラ 1969 「Goto分は有害である」ダイクストラ1968とは別。 構造化プログラミングの方法論を提唱したもの 古くて新しいものに置き換わるような話ではなく、基本として 今でも大事なまま
  3. 3. 構造化プログラミング • 1969年の論文内容はプログラム正当性検証のための設計技法 を扱っており、トップダウン設計、段階的な抽象化、階層的 なモジュール化、抽象データ構造と抽象ステートメントを連 携させる共同詳細化といった考え方が提唱されていた。出 典:Wikipedia 「Structured Programming」1969 ダイクストラ
  4. 4. 構造化 非構造化 構造化 脊椎動物 哺乳類 奇蹄目 鯨偶蹄目 ネコ目 ウサギ目 ゾウ目 霊長目 鳥類 タカ目 ペンギン目 スズメ目 爬虫類 有燐目 魚類 コイ目 フグ目
  5. 5. プログラムは複雑になってきて制御できなくなって きた(1969年)
  6. 6. 構造化して複雑さを排除
  7. 7. 一度に理解しなくてはいけない部分はこれだけ
  8. 8. 一度に理解しなくてはいけない部分はこれだけ
  9. 9. 構造化するために必要なこと
  10. 10. 構造化するために必要なこと 抽象 疎結合
  11. 11. プログラム分野での抽象とは • どう実装するか • 動くかどうかが重要 具体 • どういう動きをさせたいか • 人間にどう説明するかが重要 抽象
  12. 12. 実装は意識しない
  13. 13. 実装は意識しない
  14. 14. 抽象 実装しない人間にわかりやすい • プログラムに関係ない自然言語で書く • 関数名などで表現 データとアルゴリズムはセットで構造化
  15. 15. 疎結合 他のモジュールのこと は知らなくてもよい
  16. 16. オブジェクト指向との関連 • 抽象をわかりやすく表現 すべての物はオブジェクト • 処理とデータをセットで扱うための文法 クラス • 疎結合の一部をコンパイラでチェック カプセル化 • たくさんのメソッドを整理するための手法 継承・ポリモーフィズム
  17. 17. 関数型プログラミングとの関連 関連はないかな 単に構造化 は関数型プ ログラミン グの前提
  18. 18. モジュールに構造化するメリット 構造化したら何 が楽しいのか?
  19. 19. モジュールに構造化するメリット 理解しやすい。
  20. 20. モジュールに構造化するメリット 変更 が容 易。 一つ一つが変更しやすい 組み合わせを変えるだけ で済むことも
  21. 21. モジュールに構造化するメリット 高速化が容易な場合が多い 遅い部分が一か所にまとまっている 一つ一つのモジュールについて、多少複雑な高速 化を入いれてもカプセル化で他に影響を与えない
  22. 22. モジュールに構造化するメリット デバッグがしやすい ただしそのように作 れば 一つ一つの部分につ いてテスト、デバッ グで確認することが できる
  23. 23. モジュールに構造化するメリット 人員の交代が可能 •一つのモジュール内だけ理解すれば担 当できる •アジャイルで、担当者を固定しないと いうことができるのはこれ前提

×