SlideShare a Scribd company logo
1 of 22
オブジェクト指向モデリング

             20 12/10/26
    日本 XP ユーザーグループ関西
                       1
アジェンダ
•   自己紹介
•   オブジェクト指向の歴史
•   モデリング
•   モデリング実習
    – 車をモデリングしてみよう
    – ゲームをモデリングしてみよう
• クロージング

                2
自己紹介
• 名前:西 丈善
• 学歴:大阪電子計算機専門学校
• 経験: 19 年
• 業務:組込系
• 活動: XPJUG 関西、 PFP 関西
     Web 「アジャイル・ニュース・フラッシュ」運営
         電子書籍「サムライ・エピソード」執筆

                      3
オブジェクト指向の歴史



        4
オブジェクト指向の歴史
• ソフトウェア設計手法の歴史
  – 1. 無手順(暗黒時代)… 1955 年~
     • 小リソースのため、小さく速いプログラムが必要
     • 職人芸、開発者以外メンテナンス不可能


 – 2. 構造化設計… 1966 年~
    • バグ削減、職人芸の排除、保守性/再利用性の向上
    • GoTo レス
    • 「機能指向」な方法論


 – 3. オブジェクト指向設計… 1995 年~
    • 保守性/再利用性の更なる向上、修正範囲の局所化
    • システムを「オブジェクト」で表現     5
オブジェクト指向の歴史
• CPU の歴史                                      無
                                               手
                                               順
1960 年代         ・マイクロップロセッサ登場前
                                               構
                                               造
                ・真空管の演算器が主流                    化
                                               設
                                               計
1970 年代   前半    ・マイクロプロセッサ登場
                ・ Intel, ADM 創業
          後半    ・パソコン用 CPU が登場
1980 年代   前半    ・ 32BitCPU の登場
                                               オ
          後半    ・ RISC CPU の登場                 ブ
                                               ジ
1990 年代   前半    ・ 64Bit RISC CPU の登場           ェ
                                               ク
          後半    ・ CPU クロック競争                   ト
                                               指
2000 年代         ・ CPU クロック戦争終結~マルチコア化          向
・高速化/大容量化するハードウェアに伴い、アプリケーションも高度化/複雑化の一途を辿る。

                へ
・短期間で、高品質/高機能なソフトウェアの開発需要が増加。
                                        6
・市場ニーズに答えるための開発方法論が生み出された。
オブジェクト指向の歴史
• オブジェクト指向とは、「異なる3つの設計思想の同音異句」
• 下記 3 名の発想を統合したもの。
                       アラン・ケ
                       イ
                               ストラップ
(1) アラン・ケイ (1970 年 )
  「メッセージパッシング」を提唱。

(2) ビアルネ・ストラウストラップス( 1980 年 ) クック

  「抽象データ型(カプセス化、継承、多態性)」を体系
化

(3) ウィリアム・クック (1990 年 )
                        7
  「データに持たせる「手続き」によるデータ抽象化手
オブジェクト指向の歴史




         8
オブジェクト指向の歴史
• オブジェクト指向の構成要素
 – カプセル化
 – 継承
 – 多態性




                  9
オブジェクト指向の歴史
• オブジェクト指向のメリット
 – カプセル化により、堅牢なデータ保護が可能
 – 独立性が高く、再利用が容易
 – 差分プログラミングで、機能拡張が容易




                  10
オブジェクト指向の歴史
• オブジェクト指向のデメリット
 – 再利用性を向上するためには、しくみが必要
 – 小規模開発の場合、工数が増加する
  • ツールなど小規模開発の場合
  • 「力技による開発」より時間が掛かる
 – 要員確保が困難
  • 「オブジェクト指向設計」に慣れた要員は少ない
 – 概念が複雑かつ抽象的で分かりにくい
  • 習得に時間が掛かる
  • 社外の教育機関を利用するべきである
  • デザインパターンの習得が、理解を深める近道
                    11
モデリング




        12
モデリング
• モデリングとは?
  – 「システム化対象を、オブジェクト指向パラダイムを
    用いて図式化すること」


• モデリングの種類
  – UML
     • オブジェクトモデリングのための標準化した仕様記
       述言語
  – CRC カード
     • オブジェクト指向の概念を教えるために導入された
       初心者向けの図法
     • 実開発でも使用可能         13
     • XP でも設計手法として利用されている
モデリング
• 本日は「 CRC カード」を使ってモデリングを説明します
  。
  – CRC = Class Responsibility Collaborator
  – 概念モデリング、詳細設計に活用可能
                   CRC カード
            クラス名



            責務         協調




                                14
モデリング
• CRC カードの説明
   – 「クラス」
      • クラスは、オブジェクトの雛形
      • クラス名は、シンプルな名詞形が良い
   – 「責務」
      • クラスが「知っている」あるいは「行う」事柄
   – 「協調クラス」
      • 当該クラスと協調/相互作用するクラス
        学生

        学生番号         ゼミ
        氏名
        住所
        ゼミに登録する
        ゼミを辞める
        成績証明書を請求する
                          15
モデリング
• CRC モデルの構築手順
 – クラスを見つける
   • 要件定義から名詞と動詞を抽出する
   • 類似したもの同士をグループ化する。
   • グループ化したものに、クラス名を命名する。


 – 責務を見つける
   • 名詞と動詞を「責務」に記入する。


 – 協調クラスを定義する
   • 関連または協調するクラスを探しだす。
   • 「協調」に、関連または協調するクラスを記入する。

                             16
 – カードをあちこち動かす
モデリング
• 例題1「あいさつシステム」




                  17
モデリング実習




      18
モデリング実習
• モデリング実習#1
 「車をモデリングしてみよう」




                  19
モデリング実習
• モデリング実習#2
 「ゲームをモデリングしてみよう」




                    20
クロージング




         21
•   参考 URL
     – http://d.hatena.ne.jp/sumim/20040525#p1
     – http://ja.wikipedia.org/wiki/CPU
     – http://ja.wikipedia.org/wiki/ オブジェクト指向
     – http://ja.wikipedia.org/wiki/ 構造化プログラミング
     – http://ja.wikipedia.org/wiki/ 統一モデリング言語
     – http://itpro.nikkeibp.co.jp/article/COLUMN/20060921/248617/
     – http://www.kogures.com/hitoshi/webtext/db-oodb/index.html
     – http://www.ogis-ri.co.jp/otc/swec/process/am-res/am/artifacts/crcModel.html




                                                                 22

More Related Content

Viewers also liked

上級救命技能認定
上級救命技能認定上級救命技能認定
上級救命技能認定Tetsuya Yoshida
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~Fujio Kojima
 
GoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターンGoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターンGaprot
 
デザインパターン勉強会
デザインパターン勉強会デザインパターン勉強会
デザインパターン勉強会Tetsuya Yoshida
 
デザインパターン
デザインパターンデザインパターン
デザインパターンgaaupp
 
お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~takepu
 
デザインパターン(state,strategy,template)
デザインパターン(state,strategy,template)デザインパターン(state,strategy,template)
デザインパターン(state,strategy,template)tniky1
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎文樹 高橋
 
オブジェクト指向最強
オブジェクト指向最強オブジェクト指向最強
オブジェクト指向最強haganemetal
 
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生Satoru Kodaira
 
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」Hokuto Tateyama
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)nomuken
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Tetsuya Yoshida
 
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクションat grandpa
 
Crystalを触り始めてから起こったこと
Crystalを触り始めてから起こったことCrystalを触り始めてから起こったこと
Crystalを触り始めてから起こったことat grandpa
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向hakoika-itwg
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版Mao Ohnishi
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向hakoika-itwg
 
オブジェクト指向での世界の捉え方
オブジェクト指向での世界の捉え方オブジェクト指向での世界の捉え方
オブジェクト指向での世界の捉え方Yoshikazu Hayashi
 
機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料
機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料
機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料at grandpa
 

Viewers also liked (20)

上級救命技能認定
上級救命技能認定上級救命技能認定
上級救命技能認定
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
 
GoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターンGoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターン
 
デザインパターン勉強会
デザインパターン勉強会デザインパターン勉強会
デザインパターン勉強会
 
デザインパターン
デザインパターンデザインパターン
デザインパターン
 
お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~
 
デザインパターン(state,strategy,template)
デザインパターン(state,strategy,template)デザインパターン(state,strategy,template)
デザインパターン(state,strategy,template)
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 
オブジェクト指向最強
オブジェクト指向最強オブジェクト指向最強
オブジェクト指向最強
 
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
 
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
 
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
 
Crystalを触り始めてから起こったこと
Crystalを触り始めてから起こったことCrystalを触り始めてから起こったこと
Crystalを触り始めてから起こったこと
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
 
オブジェクト指向での世界の捉え方
オブジェクト指向での世界の捉え方オブジェクト指向での世界の捉え方
オブジェクト指向での世界の捉え方
 
機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料
機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料
機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料
 

Similar to オブジェクト指向モデリング

Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストMasao Takaku
 
Metro Style AppsでMSIL
Metro Style AppsでMSILMetro Style AppsでMSIL
Metro Style AppsでMSILterurou
 
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01Ken SASAKI
 
[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...
[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...
[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...Deep Learning JP
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic Assembly【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic AssemblyDeep Learning JP
 
201110 03
201110 03201110 03
201110 03openrtm
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
研究・開発の紹介 (2016)
研究・開発の紹介 (2016)研究・開発の紹介 (2016)
研究・開発の紹介 (2016)Hironori Sakamoto
 
ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習kunihikokaneko1
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習openrtm
 
先端技術 競技プログラミング
先端技術 競技プログラミング先端技術 競技プログラミング
先端技術 競技プログラミング聡 中川
 
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...Deep Learning JP
 
X pages day発表_20141118
X pages day発表_20141118X pages day発表_20141118
X pages day発表_20141118Takashi Yamori
 
X pages day発表_20141118
X pages day発表_20141118X pages day発表_20141118
X pages day発表_20141118Takashi Yamori
 

Similar to オブジェクト指向モデリング (20)

ICRA 2018 速報
ICRA 2018 速報ICRA 2018 速報
ICRA 2018 速報
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
 
Metro Style AppsでMSIL
Metro Style AppsでMSILMetro Style AppsでMSIL
Metro Style AppsでMSIL
 
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
 
Bee Style:vol.001
Bee Style:vol.001Bee Style:vol.001
Bee Style:vol.001
 
[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...
[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...
[DL輪読会]Making Sense of Vision and Touch: Self-Supervised Learning of Multimod...
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
経営学 Ii 11
経営学 Ii 11経営学 Ii 11
経営学 Ii 11
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic Assembly【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic Assembly
 
201110 03
201110 03201110 03
201110 03
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
研究・開発の紹介 (2016)
研究・開発の紹介 (2016)研究・開発の紹介 (2016)
研究・開発の紹介 (2016)
 
ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習
 
先端技術 競技プログラミング
先端技術 競技プログラミング先端技術 競技プログラミング
先端技術 競技プログラミング
 
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
 
X pages day発表_20141118
X pages day発表_20141118X pages day発表_20141118
X pages day発表_20141118
 
X pages day発表_20141118
X pages day発表_20141118X pages day発表_20141118
X pages day発表_20141118
 
Review Pattern
Review PatternReview Pattern
Review Pattern
 

More from takepu

もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」takepu
 
XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門takepu
 
20121117 aut open_jam
20121117 aut open_jam20121117 aut open_jam
20121117 aut open_jamtakepu
 
PFP関西ワークショップ#26
PFP関西ワークショップ#26PFP関西ワークショップ#26
PFP関西ワークショップ#26takepu
 
ペアプロとは? 20120331
ペアプロとは? 20120331ペアプロとは? 20120331
ペアプロとは? 20120331takepu
 
Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」takepu
 
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」takepu
 
Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」takepu
 
行列のできるXp相談所 20110917
行列のできるXp相談所 20110917行列のできるXp相談所 20110917
行列のできるXp相談所 20110917takepu
 
Lt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.pptLt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.ppttakepu
 
劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→After劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→Aftertakepu
 
Xp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTXp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTtakepu
 
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山takepu
 
事例発表 本田
事例発表 本田事例発表 本田
事例発表 本田takepu
 
Et west2010 work-shop
Et west2010 work-shopEt west2010 work-shop
Et west2010 work-shoptakepu
 
Xp Terakoya 05
Xp Terakoya 05Xp Terakoya 05
Xp Terakoya 05takepu
 
Xpfp 070626
Xpfp 070626Xpfp 070626
Xpfp 070626takepu
 
Xp Terakoya No02
Xp Terakoya No02Xp Terakoya No02
Xp Terakoya No02takepu
 
Xp Terakoya No04
Xp Terakoya No04Xp Terakoya No04
Xp Terakoya No04takepu
 
PFP WS #20 B-1
PFP WS #20 B-1PFP WS #20 B-1
PFP WS #20 B-1takepu
 

More from takepu (20)

もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
 
XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門
 
20121117 aut open_jam
20121117 aut open_jam20121117 aut open_jam
20121117 aut open_jam
 
PFP関西ワークショップ#26
PFP関西ワークショップ#26PFP関西ワークショップ#26
PFP関西ワークショップ#26
 
ペアプロとは? 20120331
ペアプロとは? 20120331ペアプロとは? 20120331
ペアプロとは? 20120331
 
Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」
 
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
 
Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」
 
行列のできるXp相談所 20110917
行列のできるXp相談所 20110917行列のできるXp相談所 20110917
行列のできるXp相談所 20110917
 
Lt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.pptLt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.ppt
 
劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→After劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→After
 
Xp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTXp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLT
 
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山
 
事例発表 本田
事例発表 本田事例発表 本田
事例発表 本田
 
Et west2010 work-shop
Et west2010 work-shopEt west2010 work-shop
Et west2010 work-shop
 
Xp Terakoya 05
Xp Terakoya 05Xp Terakoya 05
Xp Terakoya 05
 
Xpfp 070626
Xpfp 070626Xpfp 070626
Xpfp 070626
 
Xp Terakoya No02
Xp Terakoya No02Xp Terakoya No02
Xp Terakoya No02
 
Xp Terakoya No04
Xp Terakoya No04Xp Terakoya No04
Xp Terakoya No04
 
PFP WS #20 B-1
PFP WS #20 B-1PFP WS #20 B-1
PFP WS #20 B-1
 

オブジェクト指向モデリング

  • 1. オブジェクト指向モデリング 20 12/10/26 日本 XP ユーザーグループ関西 1
  • 2. アジェンダ • 自己紹介 • オブジェクト指向の歴史 • モデリング • モデリング実習 – 車をモデリングしてみよう – ゲームをモデリングしてみよう • クロージング 2
  • 3. 自己紹介 • 名前:西 丈善 • 学歴:大阪電子計算機専門学校 • 経験: 19 年 • 業務:組込系 • 活動: XPJUG 関西、 PFP 関西      Web 「アジャイル・ニュース・フラッシュ」運営          電子書籍「サムライ・エピソード」執筆 3
  • 5. オブジェクト指向の歴史 • ソフトウェア設計手法の歴史 – 1. 無手順(暗黒時代)… 1955 年~ • 小リソースのため、小さく速いプログラムが必要 • 職人芸、開発者以外メンテナンス不可能 – 2. 構造化設計… 1966 年~ • バグ削減、職人芸の排除、保守性/再利用性の向上 • GoTo レス • 「機能指向」な方法論 – 3. オブジェクト指向設計… 1995 年~ • 保守性/再利用性の更なる向上、修正範囲の局所化 • システムを「オブジェクト」で表現 5
  • 6. オブジェクト指向の歴史 • CPU の歴史 無 手 順 1960 年代 ・マイクロップロセッサ登場前 構 造 ・真空管の演算器が主流 化 設 計 1970 年代 前半 ・マイクロプロセッサ登場 ・ Intel, ADM 創業 後半 ・パソコン用 CPU が登場 1980 年代 前半 ・ 32BitCPU の登場 オ 後半 ・ RISC CPU の登場 ブ ジ 1990 年代 前半 ・ 64Bit RISC CPU の登場 ェ ク 後半 ・ CPU クロック競争 ト 指 2000 年代 ・ CPU クロック戦争終結~マルチコア化 向 ・高速化/大容量化するハードウェアに伴い、アプリケーションも高度化/複雑化の一途を辿る。 へ ・短期間で、高品質/高機能なソフトウェアの開発需要が増加。 6 ・市場ニーズに答えるための開発方法論が生み出された。
  • 7. オブジェクト指向の歴史 • オブジェクト指向とは、「異なる3つの設計思想の同音異句」 • 下記 3 名の発想を統合したもの。 アラン・ケ イ ストラップ (1) アラン・ケイ (1970 年 )   「メッセージパッシング」を提唱。 (2) ビアルネ・ストラウストラップス( 1980 年 ) クック   「抽象データ型(カプセス化、継承、多態性)」を体系 化 (3) ウィリアム・クック (1990 年 ) 7   「データに持たせる「手続き」によるデータ抽象化手
  • 10. オブジェクト指向の歴史 • オブジェクト指向のメリット – カプセル化により、堅牢なデータ保護が可能 – 独立性が高く、再利用が容易 – 差分プログラミングで、機能拡張が容易 10
  • 11. オブジェクト指向の歴史 • オブジェクト指向のデメリット – 再利用性を向上するためには、しくみが必要 – 小規模開発の場合、工数が増加する • ツールなど小規模開発の場合 • 「力技による開発」より時間が掛かる – 要員確保が困難 • 「オブジェクト指向設計」に慣れた要員は少ない – 概念が複雑かつ抽象的で分かりにくい • 習得に時間が掛かる • 社外の教育機関を利用するべきである • デザインパターンの習得が、理解を深める近道 11
  • 13. モデリング • モデリングとは? – 「システム化対象を、オブジェクト指向パラダイムを 用いて図式化すること」 • モデリングの種類 – UML • オブジェクトモデリングのための標準化した仕様記 述言語 – CRC カード • オブジェクト指向の概念を教えるために導入された 初心者向けの図法 • 実開発でも使用可能 13 • XP でも設計手法として利用されている
  • 14. モデリング • 本日は「 CRC カード」を使ってモデリングを説明します 。 – CRC = Class Responsibility Collaborator – 概念モデリング、詳細設計に活用可能 CRC カード クラス名 責務 協調 14
  • 15. モデリング • CRC カードの説明 – 「クラス」 • クラスは、オブジェクトの雛形 • クラス名は、シンプルな名詞形が良い – 「責務」 • クラスが「知っている」あるいは「行う」事柄 – 「協調クラス」 • 当該クラスと協調/相互作用するクラス 学生 学生番号 ゼミ 氏名 住所 ゼミに登録する ゼミを辞める 成績証明書を請求する 15
  • 16. モデリング • CRC モデルの構築手順 – クラスを見つける • 要件定義から名詞と動詞を抽出する • 類似したもの同士をグループ化する。 • グループ化したものに、クラス名を命名する。 – 責務を見つける • 名詞と動詞を「責務」に記入する。 – 協調クラスを定義する • 関連または協調するクラスを探しだす。 • 「協調」に、関連または協調するクラスを記入する。 16 – カードをあちこち動かす
  • 22. 参考 URL – http://d.hatena.ne.jp/sumim/20040525#p1 – http://ja.wikipedia.org/wiki/CPU – http://ja.wikipedia.org/wiki/ オブジェクト指向 – http://ja.wikipedia.org/wiki/ 構造化プログラミング – http://ja.wikipedia.org/wiki/ 統一モデリング言語 – http://itpro.nikkeibp.co.jp/article/COLUMN/20060921/248617/ – http://www.kogures.com/hitoshi/webtext/db-oodb/index.html – http://www.ogis-ri.co.jp/otc/swec/process/am-res/am/artifacts/crcModel.html 22