ソフトウェアライフサイクルからSQuBOK® を読み解く 第1回
株式会社日立システムアンドサービス シニアコンサルタント
古賀 惠子
日本ユニシス株式会社 品質保証部
大川 鉄太郎
株式会社ニルソフトウェア シニアコンサルタント
河合 一夫
はじめに
これから4回に渡って,SQuBOK®のポイント解説ということで重要な語句や難解な知識の説明をします.SQuBOK®は,ソフトウェア品質に関する日本の暗黙知を形式知化したものであり,またソフトウェア品質に関する最新のテーマを整理し,体系化したものです.既にご存知かも知れませんが,SQuBOK®はソフトウェア品質に関する知識を「SQuBOK®樹形図」として体系化しています.この樹形図は,知識を3つのカテゴリ「1.ソフトウェア品質の基本概念」「2.ソフトウェア品質マネジメント」「3.ソフトウェア品質技術」に分けています.Vol.3~6の連載では,これらのカテゴリに関して説明をしました.
本連載では,これらのカテゴリで記述されている知識をソフトウェアライフサイクルという視点を通じて考えてみたいと思います.ソフトウェアは,企画,開発,運用・保守という期間を経て,最後は廃棄されます.ソフトウェアエンジニアは,ソフトウェアのライフサイクルに渡ってさまざまな活動を実施します.そのライフサイクルにおける活動で,SQuBOK®に記述されているソフトウェア品質の知識を利用して,ソフトウェア製品の品質を社会,顧客,利用者の期待するレベルに維持する一助としていただきたいと思い,本連載を進めます.
本連載の進め方
この連載には,二人の人物が登場します.ソフトウェア品質のご意見番ともいえる,ご隠居こと古河課長とソフトウェア品質保証の担当者で,元気はあるけれど,よく失敗する熊さんこと熊川さんです.この二人にSQuBOK®のポイントとなる知識を語って貰うことにしましょう.
本連載は次のように進めていきたいと思います.
- ソフトウェアのライフサイクルとは
- ライフサイクルに関連する規格・標準
- ライフサイクルと品質技術
- ライフサイクルにおけるプロセス評価と改善
第1回の内容
今回は,「ソフトウェアのライフサイクルとは」ということで,まずはソフトウェアライフサイクルとは,どういったものなのか,ソフトウェアの品質を考える上でどのような意味を持つのか,二人の人物にさっそく語って貰います.
ソフトウェアライフサイクルとは
熊川さんは,朝から悩んでいます.
「うーん,ソフトウェアって,いろいろな開発方法があるし,開発した後は保守もあるし,ドキュメントの管理もあるなあ.また,いろいろな問題の解決もしないといけないし,なんだか複雑に入り組んでいて,全体をどうやって考えればいいのだろう」
そんな熊川さんをみていたご意見番の古河課長,
「ソフトウェアライフサイクルって言葉を知っている?」
と後ろにSQuBOK®ガイドを持ちながら熊川さんに聞いてみました.
「課長,何ですか? ソフトウェアライフサイクルって?」
「ソフトウェアの企画・開発から保守を経て破棄されるまでの期間をソフトウェアライフサイクルと言うんだよ.ソフトウェアの開発や保守には,いろいろなプロセスがあるだろ?だから,それに適したプロセスを選択する必要があるんだ.SQuBOK®にもライフサイクルプロセスのマネジメントが記述されているよ」
と言って,課長は後ろに持っていたSQuBOK®を熊川さんに渡しました.
「ソフトウェアのプロセスをライフサイクルモデルで整理すると,自分たちに足りないプロセスや知識がはっきりするんですね」
目から鱗が少し落ちたような顔をしていた熊川さんをみて,課長は
「それでは,ライフサイクルを通じてソフトウェアの品質に関係するキーワードや知識をSQuBOK®を使って少し説明しようか?」.
熊川さんは古河課長からの思わぬ言葉に嬉しそうにうなずきました.
ソフトウェアの開発や保守には,さまざまなプロセスが複雑に関連します.プロセスとは,「入力を出力に変換するアクティビティやタスクの集合」と定義できます.もちろん,プロセスを実行するためには様々な知識や技術が必要です.ソフトウェアの開発が,複雑化,多様化,グローバル化というキーワードで表される今日において,ソフトウェアのプロセスを共通の言葉やモデルで記述,定義することはますます重要となります.例えば,複数の会社でソフトウェアを開発する場合,別の会社にソフトウェア開発を委託する場合,海外のエンジニアと一緒にソフトウェアの開発を行う場合など,ソフトウェアのライフサイクルに関する共通のモデルや言葉がなければ,スムーズな開発を行うことはできません.ライフサイクルの一連のプロセスの理解や記述は,ソフトウェアの品質向上を考える上で重要なポイントです.
ソフトウェアのライフサイクルに関する知識は,ライフサイクルモデルやプロセスモデルとしてSQuBOK®に記述されています.私たちがよく耳にするウォータフォールモデルは,プロセスモデルの1つです.その他にもスパイラルモデルやアジャイルモデルなど様々なプロセスモデルがあります.プロセスモデルは,ソフトウェアの開発工程や手順など,ソフトウェア開発の本質的な部分を取り出して表現したものです.どんなプロセスモデルを用いてソフトウェアの開発を行うのか,それによって実施する作業や作成する成果物が異なります.それぞれのプロセスモデルには長所、短所があります。実際の開発に適したプロセスを定義して、適用してください.ここで注意しなければいけないのは,各モデルの特徴をきちんと理解することです.
「フーン、なるほど!? ライフサイクルモデルやプロセスモデルを利用して,自分たちに適したプロセスを定義して活用すれば,やるべきことの漏れが防げて,手戻りの削減や品質向上につなげることができるんですね.でもプロセスってどんなものがあるのかな.もう少し具体的な内容を知りたいナ……」と熊川さん.
そういうわけで、次回は,ライフサイクルプロセスに関連する規格や標準の説明をすることにします.