プログラム再構成に関する 特許申請について

Download Report

Transcript プログラム再構成に関する 特許申請について

ソフトウェア工学
知能情報学部
新田直也
ソフトウェア工学の現在


ソフトウェア工学の議論は,いつでもプロセス(開発工程)か
プロダクト(成果物)が中心.
プロセス:




アジャイル開発
モデル駆動型アーキテクチャ(MDA)
ソフトウェアファクトリ
プロダクト:






UML
デザインパターン
フレームワーク
可変性分析,マルチパラダイムデザイン
アスペクト指向,サブジェクト指向
サービス指向アーキテクチャ(SOA)
← ハッカー
← IBM
← マイクロソフト
プロセスにおける論点
基本的にパラダイムはオブジェクト指向から進歩し
ていない.
 論点は,軽量級か重量級か?




アジャイル: 軽量級(人間性を重視)
モデル駆動型アーキテクチャ,ソフトウェアファクトリ:
重量級(工学性,機械性を重視)
根本には,ソフトウェア開発は技芸か?数理か?とい
う議論がある.

個人的な立場:
基本的には技芸だが,未知の数理によって開発がもっと
楽になるのでは?
モデル駆動型アーキテクチャ
UMLはOSや言語に依存しない.
 UMLを高級プログラミング言語とみなせないか?





UML(特にクラス図)から,プラットフォームに合ったプロ
グラムを自動導出する試み.
OMG(Object Management Group)主導で進められ
ている.
Eclipseなどでも対応しつつある.
個人的な批判:



図で書くよりプログラミングする方が早い.
図だけで細かい処理を記述するのは困難.
結局,ウォーターフォールの延長線上にある.
統一プロセス(Unified Process)
UMLは記法の統一のみであった.
 UMLのスリーアミーゴがプロセスの統一も目指した.
 3つの特徴.




ユースケース駆動:
ユースケース図を基本に開発を進める.
アーキテクチャ中心:
アーキテクチャ(システムの全体構造)を洗練させていく.
繰り返し型開発:
基本的にスパイラルモデルと同様.ただし,各繰り返しは
方向付け,推敲,構築,移行というフェーズによって構成
される.
プロダクトにおける論点

結局,パラダイムはオブジェクト指向から進歩してい
ない.




UML
デザインパターン
フレームワーク
この先,どこへ向かうのか?



オブジェクト指向によってプログラムの設計がより強く意
識されるようになった.
設計にパターンしか見出せていないということは,結局,
設計に関する理論がまだ未完成であるということ.
可変性分析,マルチパラダイムデザインが新しい方向性.
フレームワーク

アプリケーション間で共有されるソフトウェアの骨組
みに相当するソースコード.



社内の複数アプリケーション間で共有.
世界中で共有.(フレームワーク単体で流通.)
オブジェクト指向技術に基づく.



親クラス(抽象クラス)の集合.
多相性によってフレームワーク側からアプリケーション側
が呼び出される(制御の反転).
ハリウッドの原則:「俺に電話するな.必要ならこちらから
電話する.」
アプリケーション
ライブラリ
アプリケーション
フレームワーク
フレームワークの長所と問題点

長所:




ライブラリより再利用の単位が大きい.
実装だけでなく設計も再利用することができる.
メインループを再利用することができる.
問題点:



使い方が難しい.
理解するのに時間がかかる.
開発できるアプリケーションが制限される.

場合によっては実装工程終盤でフレームワークが使えないことが
判明し,プロジェクトが進まなくなってしまうこともあり得る.
サービス指向アーキテクチャ
ソフトウェア部品や機能(サービス)をネットワーク上
にインタフェースと共に公開.
 サービス間の連携によってシステムを構築する.
 Webサービス




インタフェース記述: WSDL
遠隔呼出し(バインド): SOAP
分散オブジェクトシステムとほぼ同義.

呼出し側の記述が簡潔になったことが特長.
アスペクト指向
オブジェクト指向を補完するパラダイム.
 主にIBMが主導.
 オブジェクト指向におけるクラス階層は単一の視点
から見たものに過ぎない.その視点でモデル化でき
ない処理は複数クラスに分散.(横断的関心事)


たとえばログ出力処理は,ほとんどすべてのクラスに散ら
ばる.
横断的関心事をアスペクトとして抜き出す.
 アスペクトはコンパイル時または実行時にクラスに
織り込まれる.(ウィービング)

まとめ
まさに現在進行形なのでまとめることは不可能.
 ただし,プロセスの観点とプロダクトの観点は重要.
 ソフトウェア工学が面白い時代? (過渡期?)
 混乱しているということは,裏を返せば,新しいパラ
ダイムの誕生前夜なのかもしれない.

ソフトウェア工学のまとめ

ソフトウェア工学:
ソフトウェアの開発,運用,保守に対する,系統的で統制さ
れ定量化可能な方法.すなわちソフトウェアへの工学の適用.

ソフトウェア工学は未だ確立していない.


銀の弾丸などない(人月の神話,F.P.ブルックス,Jr.)
→ 一歩一歩ゆっくりと進歩していくしかない.
ソフトウェアの本質:




複雑性
同調性
可変性
不可視性
まとめのまとめ
結局,特効薬(銀の弾丸)はまだ存在しない.
 技術の地道な積み重ねによってのみ発展する?
→ 新しい技術をチェックしておくこと.
 ただし,ソフトウェア工学分野には使えない技術も多
いので注意が必要.
「ここが明るくて探しやすいからですよ。」
 後は,実務経験を積むこと.



失敗
苦労