再利用を前提としなければ、開発に膨大な時間とコストがかかるのは理解できた。使用する部品をどのように探すのかも課題として重要かもしれない。
設計技術。ドメイン、対象領域。設計が異なる。顧客管理システムなど。利用者とシステムの対話。問題解決に適用されるシステムは異なる。電車管理システム。データベースかリアルタイムか。事務処理システム。アーキテクチャ。設計のお手本。特定のモジュールに負荷がかからない。
何故に再利用する必要があるのか?部品を再利用すればコストがかからなくなる。信頼性も向上する。自分で同様の部品を作るなら、テストしなければならない。部品の再利用は生産性を向上させる。
再利用の課題。90年代後半にオブジェクト指向プログラミング。飛躍的に高まる?間違い。再利用可能なライブラリを作るのは簡単ではない。再利用部品は独立性が高く無ければならない。無用なモジュールが沢山ついてくるのは困る。再利用したくないモジュールになる。規模が大きい部品だと吟味する作業が必要となるし、不具合があっても原因を識別しづらい。部品の不具合を修正するにはコストがかかる。パッケージソフトライブラリ。カスタマイズ。使えるものを探して、小規模なら時間がかからない。豊富なライブラリ。システム開発の経験があるか?再利用部品の開発。そのまま適用することは出来ない。汎用性を持たせるための再開発が必要。どのくらい生産性向上に寄与するか。特定のドメインに依存する部品は再利用性が高いものもある。企業に依存するところと依存しないところに分ける。公開する情報には?再利用を促す為の情報など。不具合の報告や修正履歴。利用者の意見を取り込む必要もある。連絡先や、自動的にログ情報を送られるように。生産性を向上させるが、再利用部品のコストは?専門のチームを作るのが良い?ネット上で調達する。使用料を支払って。開発組織が二分化した。再利用部品の開発者。
再利用部品を開発するとして、結合度。密な結合の場合は、密結合。簡単に置換することは出来ない。フレームワークも。最適化アルゴリズムは、置換出来るようにしたい。疎結合。SAAS。置換可能である。netで。アダプターを利用する。インターフェイスの間に割り込ませる。インターフェイスの不整合。アダプターを使って割り込ませる。プログラムは今までの再利用部品を呼んでいるという感覚。サービスの使用形態には?部品の機能を呼び出す。GPSの座標情報で地図上の位置を。対話を用いて。データのやりとりや質問答。鉄道会社航空会社のチケットの予約サービス。空席情報を経て名前を入力するなど。対話を用いるサービス、組み合わせる事ができる。移譲。利用している人には一つのサーバを利用しているとみえるが。実は他のサービスを利用している。金融機関が決済しているシステム。Webで買い物をしている時に。最近の情報漏洩。ショッピングサイトにとって、情報を受け取るとリスクが。決済処理は金融機関に移譲。決済サービス。一つのサーバを利用。他のサーバーを統合。統合型サービス。複数の。一層目。ホテルの顧客サービス。複数のホテルの顧客サービスの層。複数のホテル予約サイト。最も安い値段で。層が何段にも積み重なることでシステムの付加価値を。既存のシステムを利用できるようアダプターを開発。窓口担当者向けのサービスを、一般人が利用できるようアダプターを。クライアントのソフトウェア。大型汎用コンピュータ。24時間365日の稼働。災害時にも。二重化以上に。大型汎用コンピュータを二重にする必要はある?
部品を単体で使う場合。複数の部品を組み合わせて。フレームワーク。設計の基本構造。アーキテクチャ。プログラムよりもっと抽象的。3層アーキテクチャなど。フレームワーク。枠組。複数の類似のシステムで共通。GUIのフレームワーク。スモールトークに実装。ライブラリとして提供。3つのクラス。状態を変えるオブジェクト。表の値が変われば参照しているものも変わる。イベントが生じて状態が変わる。モデル一つに対し複数のビューが対応。時計を用いて。時計は時刻を表示。アナログ・デジタル。表示される時は一つ。時刻が変われば表示ポリシーによって変わる。オブジェクトの状態に対応して表示。アプリケーションではオブジェクトの内容とビューとで矛盾が無いようにしなければならない。メッセージを送る。そのタイミングでメッセージを自分自身に送る。全てのビューに「更新せよ」。モデルさん、何時ですか?データを受け取ったら表示を変える。MVCフレームワーク。同報通信。汎用性が高い。コントローラー。スモールトークでの話。当時は文字ベース。GUIが開発して一般のプログラマが使えるようになる。
再利用。戦略的に再利用を前提とした。プロダクトライン開発。新しい製品を開発。既存のものを使わないとニーズに対応できない。捨てるのは勿体無い。どのように成長させるかは企業戦略で決める。基本機能がフレームワークに取り込まれる。生産性が上がる。アセット資産。コアアセット。