15
8章:ソフトウェア再利用 1. ソフトウェア再利用 2. ソフトウェア再利用の課題 3. ソフトウェア再利用の手法 4. 再利用支援の組織体制

8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8章:ソフトウェア再利用

1. ソフトウェア再利用

2. ソフトウェア再利用の課題

3. ソフトウェア再利用の手法

4. 再利用支援の組織体制

Page 2: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.1 ソフトウェア再利用

ソフトウェア開発に必要とされる知識,プログラム,データなどを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

再利用の対象

・開発プロセス・開発環境・設計仕様・パッケージプログラム・プログラム部品・個別応用プログラム・テストデータ

再利用の効果

生産性向上

品質向上

・開発期間の短縮・コストの低減

・信頼性の向上・保守性の向上

Page 3: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.1 ソフトウェア再利用

ソフトウェア再利用の手順

ユーザ要求再利用による

ソフトウェア開発ソフトウェア納品

オープンソフトウェア

標準部品の登録

再利用検索

ソフトウェア部品群

Page 4: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.2 ソフトウェア再利用の課題

1. 下位レベルの再利用は効果が小さい

2. 上位レベルの再利用は標準化が難しい

3. 応用分野ごとに標準化が異なる

4. ソフトウェア再利用の手法が未確立

5. 余分な作業が発生し,再利用の効果が出ない

6. 標準部品ソフトウェアの品質が保証されない

Page 5: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.3 ソフトウェア再利用の手法

1. ソフトウェア再利用の要点1.再利用効果の現れ方

2.技術的アプローチ以外の事項の重要性

3.再利用されるソフトウェア品質の判定

4.再利用効果の測定に基づく再利用レベルの向上

2. 再利用可能な標準部品を開発する手法

全ライン数

ライン数全ライン数-新規作成

全ライン数

流用ライン数改造ライン数

全ライン数

再利用ライン数再利用率

新規作成 流用改造

Page 6: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.3 ソフトウェア再利用の手法

組織内標準化部品プログラム開発

1. 部品プログラムの選別と開発1. 標準化部品の階層的選別

2. リエンジニアリングによる開発

3. 新たな標準化部品の開発

2. ドメインに特化した部品プログラムの開発1. ドメイン分析・モデリング

2. ドメインモデル

3. ソフトウェア構造モデル

4. 部品プログラムの開発

ドメイン分析

SWアーキテクチャ標準化

再利用可能成果物開発

ドメインモデル

SW構造モデル

部品

Page 7: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.3 ソフトウェア再利用の手法

3.再利用によるソフトウェアを開発する手法1.応用プログラムの再利用

2.テンプレート

3.フレームワーク

4.パッケージプログラム

1. 利用可能パッケージソフトウェアの調査

2. 機能や品質の事前確認

3. 利用技術の習得

4. 保守と保証の確認

5.コンポーネントウェア

1. オブジェクトコードの再利用

2. 複合オブジェクトの再利用

3. オープンな再利用

類似Prog検索

再利用可能部分の切出し

ソースコード修正

AP群 類似AP再利用可能AP

再利用AP

Page 8: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.3 ソフトウェア再利用の手法

コンポーネントウェアを実現する基盤技術

• ActiveX/DCOM :• CORBA :• JavaBeans :

リエンジニアリング

• リバースエンジニアリング・・・下流から上流へ向けて分析する

• フォワードエンジニアリング・・・上の分析を基にしソフトウェアを再生する

Page 9: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

8.4 再利用支援の組織体制

1. ソフトウェア部品開発チーム

2. ソフトウェア部品管理チーム

3. 再利用支援環境整備チーム

4. 再利用促進教育チーム

Page 10: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

コンポーネントウェアを利用する側からの分類

統合型ソフトウェアの下で、文書処理や表計算を行う場合 MS-Officeの下で、MS-WordやMS-Excelなどを組み合わせて文書を作

成しようしている場合などである。

ここで利用されている基礎技術は、複合文書を実現するための諸技術である。ワープロを打っている人も、立派なコンポーネントウェアユーザであると言える。

部品をマウスで結合してアプリケーション開発を行う場合 APPGALLERYやHOLON/VPなどを利用して、アプリケーションソフト

ウェアを開発している場合が、この典型である。

コンポーネントウェアが実現している部品化再利用技術を最も享受している場合である。

問題は、部品を順に結合することだけで、アプリケーションを表現することができる分野には、制限があることである。

Page 11: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

コンポーネントウェアを利用する側からの分類

スクリプト言語を用いて手順を記述することによって部品を結合する場合 2項目の手段で記述できないようなアプリケーションに対しては、自分である程度のプログラムを記述するしかない。Visual Basicを用いてスクリプティングを行ない、 VBX部品やOCX部品を結合する場合がこの典型である。どの程度のプログラムを記述すればよいのかが、この場合のキーである。

コンポーネントウェアを部品として用いながら、本格的なプログラムを書く場合Active X(またはOLE)、Opendocなどによって与えられる機能を駆使しながら、 C++などでプログラムを書く場合に対応する。

Page 12: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

コンポーネントウェア方法論とツール

1.を支援する方法論は、狭い意味でのソフトウェア工学の対象外.

文書をアプリケーションとみなすというコンポーネントウェアの見方の新規的な点に由来している

2.のようなソフトウェア開発の形態は、エンドユーザコンピューティング(EUC)を呼ばれる分野に属する場合が多いEUCにおいては、部品として与えられる定型的な処理や簡易的な画面設計結果を、自分の環境にあわせて、組み合わせて利用する業務の流れを最もよく認識しているのはエンドユーザである

3.および4.は基本的には、プログラムを対象とした部品化再利用技術である。これまでの手続き的なプログラム部品が、オブジェクト的になっていることだけが異なるだけである

数多いオブジェクト指向分析・設計方法論で、部品の存在を明確に仮定しているものは存在しない。長い歴史をもつ構造化分析・設計方法論でも部品を前提として十分な効果を上げているものは存在しない

Page 13: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

コンポーネントウェア方法論とツール

オブジェクト指向分析・設計が脚光を浴びたのは、その方法論のためで、CASEツールによるものではなかった。

コンポーネントウェアが脚光を浴びたのは、そのツールのためで、本格的な方法論は存在しない

クラスライブラリやフレームワークに代表されるオブジェクト指向開発技術が効果的な再利用を実現できなかった

Page 14: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

ソフトウェア開発方法論

対象物をどのように人間が把握し,設計し,プログラムとして実現するかという視点

構造化プログラミング

オブジェクト指向開発方法論

開発の運営方法の視点

ウォータフォールモデル

スパイラルモデル

プロジェクトへの開発者の参加基準

伽藍方式

ある程度まとまるまで外部に公開しない.

バザール方式

参加者を限定せず個人が中心となった方法(GNU/Linux)

Page 15: 8章:ソフトウェア再利用 - shonan-it.ac.jp8.1 ソフトウェア再利用 ソフトウェア開発に必要とされる知識,プログラム,データな どを,何らかの形でパターン化・標準化・部品化することで,繰返し利用を可能にする

ソフトウェア開発工程

要求分析

設計

コーディング

テスト

運用・保守

ソフトウェア開発の技術

プロダクト・・・モデルの表現方法 UML プロセス・・・管理工程・手順 CMM/CMMI プロジェクト管理・・・FunctionPoint, PM/PMBOK

研究分野

プログラム意味論

ソフトウェア検証論

ソフトウェア開発環境

関連デザインパターンアスペクト指向(AOP, Class 横断機能)アジャイルソフトウェア開発(迅速・軽量開発)