PR

ソフトウェア開発方法論

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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