ソフトウェア開発方法論

2009年4月2日(木)
上川 伸彦

開発の全体像(開発プロセスと開発方法論)

 ソフトウエア開発手法と聞いて、皆さまは何を思い浮かべるでしょうか?この連載を読んでいる方々は、少なからず、ソフトウエア開発に携わっていらっしゃるかと思いますが、それでも、思い浮かべる内容は十人十色かと思います。本連載では、ソフトウエアの開発手法のうち、「開発プロセス」という切り口に焦点を当て、その基本的な部分を紹介していきたいと思います。

 開発プロセスとは、一言で表すと「ソフトウエア開発をどう進めるか」を体系化したもの、となります。この開発プロセスは、主に、ソフトウエアにより構成されるシステム全体(または開発プロジェクト)を対象としていて、システムの規模や複雑さが増大するにつれ、必要性や重要性が認識され始めました。最近では、システムのみならず、プロジェクトにかかわるメンバーのモチベーション等を視野に入れているものもあり、この辺りは、プロジェクト管理手法との関連も深くなってきています。

 さて、早速、代表的な開発プロセスの1つ、ウォーターフォール・モデルの……と行きたいところですが、その前に開発方法論を紹介したいと思います。ここで言う開発方法論とは、一言で表すと「ソフトウエアをどう作るか」を体系化したもの、を指します(図1-1)。

構造化技法(構造化プログラミング)

 ではまず、開発方法論として、構造化技法を取り上げます。1960年代には、開発されるソフトウエアの大規模化、複雑化により、ソフトウエアの開発効率化や品質向上に対するニーズが高まっていました。これに対する解決策として提唱されたのが、構造化定理を基にした構造化技法でした。
----------------------------------------
構造化定理:プログラムは、「順次・選択・繰り返し」の3つの基本構造を組み合わせた、1つの入り口と1つの出口を持つ形式で記述できる。
----------------------------------------
 上記「順次・選択・繰り返し」とは、例えば、Javaの場合、下記と考えて問題ありません。
・順次:上から順番に実行すること
・選択:if文
・繰り返し:for文

 つまり、この構造化定理では、あるプログラムは、if文やfor文を組み合わせたサブルーチンとして記述できる、と言っているのです。

 この構造化技法とは、プログラムをいくつかの単位に分け、あるプログラムから別のプログラム(サブルーチン)を呼び出す構造とすることにより、プログラムを理解しやすい(開発しやすい)構造とすることと言えます。

 これは、システム全体では複雑な処理に見えても、細かく分割していけば単純な処理の積み重ねにできる、というものです(図1-2)。現在では、後ほど説明するオブジェクト指向が主流になっていますが、構造化技法の考え方は、オブジェクト指向の考え方と矛盾するものではなく、むしろ、根本的に違いはないので、基本的で重要な考え方と言えます。

 ここまで構造化技法の説明をしてきましたが、「複雑な処理を簡単な処理に分割する」とは、何かピンときませんか?そうです、「モジュール化」に似てますね。構造化技法は、現在でもソフトウエアの品質基準として使われるモジュール化を促進するものと言うことができます。では次に、モジュール化の評価基準について見ていきましょう。

株式会社ビーブレイクシステムズ
(株)ビーブレイクシステムズ技術担当取締役。RDB製品の開発、各種業界団体におけるXML/EDI標準の策定やSOA基盤の設計等に従事。最近は、業務システムの構築に携わることが多く、お客様からの無理難題と向き合う日々を送っている。http://www.bbreak.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています