I-16-1. 開発フレームワークの歴史、思想と背景

開発フレームワークとは何かを説明し、開発フレームワークの基本理念、目的、発展の歴史、開発フレームワークが登場した背景と思想について解説する。

【学習の要点】

* 開発フレームワークとは、アプリケーションソフトを開発する際に頻繁に必要とされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことである。

* 開発フレームワークは、ソフトウェア開発におけるさまざまな経験を踏まえ、開発生産性を向上させようとする試みの中で、長い時間をかけて発展してきた。

図I-16-1. 開発フレームワークの背景

【解説】

1) 開発フレームワークとは

開発フレームワークとは、アプリケーションを開発する場合に必要となる部品や、実装上の制約などを提供するもので、ソフトウェア開発における生産性や保守性の向上を目的としたものである。アプリケーションの骨組み部分が、よく洗練された形であらかじめ提供されるため、開発担当者のスキルへ依存する部分を減らすことで、設計レベルの欠陥を最小限に止め、一定の成果物品質を維持することができる。

2) 開発フレームワークの基本構成

開発フレームワークは、フローズンスポットとホットスポットから構成される。

* フローズンスポット

アプリケーションによらず常に必要となる機能を有した部分であり、固有のアプリケーションを開発する際には変更を加えない部分。開発フレームワークでは、これらの機能をそのまま提供する。

* ホットスポット

アプリケーションによって個別に開発される部分。開発フレームワークでは、この部分を実装上の制約という形で提供する。フレームワークが規定する制約に則ってホットスポット部分を実装することにより、初めて開発フレームワークの利点を享受することができる。

フローズンスポットの占める割合がホットスポットのそれに対して大きければ大きいほど、固有のアプリケーション開発時の工数は少なくなり、より高い開発生産性を得られる。しかしそれと同時に、フレームワークによる制約が多くなるため、そのフレームワークを適用できるアプリケーションは限定され、汎用性を失ってしまう。このように、フレームワークの汎用性と、そのフレームワークを適用したことにより得られる開発生産性の向上度合いは、常にトレードオフの関係にある。

3) 開発フレームワーク発展の背景

開発フレームワークは、ソフトウェア開発において先人の知恵を再利用し、開発生産性を向上させようとする試みの中で、長い時間をかけて発展してきたものである。特にGUIアプリケーションの開発における定型処理を標準化しようとする動きの中で、1980年に発表された統合開発環境である、Smalltalkにおいて取り入れられたMVC(Model/View/Controller)の概念は、現在ではGUIアプリケーションのみならず、Webアプリケーション開発に用いられるフレームワークにも大きな影響を与えている。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。