BIPROGY Foresight in sight BIPROGY Foresight in sight

ソフトウェア品質保証

技報サイト内検索

ソフトウェア品質保証

ソフトウェア品質保証の考え方と実践

服部克己

今日、人々の生活や社会経済活動は情報システムなくしては成り立たない。社会インフラとなった情報システムに求められる品質レベルはこれまでより遥かに高くなっており、これまでと同じソフトウェア品質保証活動では時代の要請に対応しきれないと日本ユニシスグループでは考えている。そこで“Quality First”という品質ビジョンを掲げて高品質なソフトウェアを常に提供できる品質保証の仕組みを構築している。この仕組みには日本ユニシスグループが顧客の真の要望を理解し、品質を最重視した情報システム構築に必要な知財、プロセス、組織が結集されている。

ダウンロード【PDF】(1.8 MB)別ウィンドウで開く

品質保証レビューにおける品質評価手法

中辻等

日本ユニシスでは、ソフトウェアの受託開発ならびに製品開発の品質を顧客に保証するために、品質保証レビューを実施している。品質保証レビューは、開発部門から独立した品質保証部門の第三者が実施することで、客観性を保持している。プロジェクトの品質を計画、プロセス、プロダクトの三軸で評価することで総合的な評価を可能とした。また、経営的な視点でのレビューや開発部門でのレビューと連携することで品質保証レビューの有効性を高めている。プロジェクト・アセスメントが品質保証レビューの主要な評価手法であり、プロジェクトの品質を第三者の立場から客観的に評価している。設計尺度などを用いて、モジュールごとの特性を定量的に評価する手法を開発し有効性を確かめた。今後は、設計工程からプロダクト品質を確保する手法として活用する。

ダウンロード【PDF】(904.1 KB)別ウィンドウで開く

CMMIの適用による品質、信頼性と生産性の向上

五十嵐茂

CMMI(能力成熟度モデル統合)は、CMM(能力成熟度モデル)を基にした、システム開発プロセスの評価と改善のためのガイドラインである。製品やサービスの品質、信頼性と生産性の向上を目指す組織において世界中で広く普及しているが、近年、一部組織での誤った解釈や適用が報告されている。 CMMIについては、ベンチマークテストの結果として成熟度レベルを導出するアプローチが一般的によく知られているが、段階表現か連続表現を用いる改善経路の選択や厳格な評定か簡易な評定かの評定手法の選択によって、実際の適用においては多様なアプローチを取ることができるようになっている。 日本ユニシスは、1990年代にサービス事業の本格化を始めたときからCMM/CMMIの適用を行ってきた。組織標準プロセスを展開し始めた当初は、その展開状況をモニタリングするためセルフアセスメントを定期的に実施した。その後、業種別組織単位で成熟度レベルによる公式のベンチマークテストに挑戦し、現在は第三者マイルストーンレビューに同期してプロジェクトアセスメントを行っている。

ダウンロード【PDF】(1.1 MB)別ウィンドウで開く

要求品質を確保するためのRFP作成支援の方法

増山義三

システム開発の問題の多くは、要求定義の段階に原因がある。システム開発の成功の鍵が要求定義にあるにもかかわらず、ユーザ企業自身では適切に要求仕様条件を表すRFPを作成することが難しいという調査結果もある。目指すべきRFP は、経営層や利用部門の参画を得、要求の背景にあるビジネス目的を共有し、要求を漏れなく明確に表現したものである。品質保証の観点からは、要求仕様の品質に関するIEEE推奨案にある、妥当性、非あいまい性、完全性、無矛盾性、ランク付け、検証可能性、変更可能性、追跡可能性の八つの品質特性を考慮して要求品質を確保する必要がある。 日本ユニシスのシステム化アプローチUnisys 3D Blueprintingを用いてユーザ企業のRFP作成を支援する方法は、要求を事業要求、業務要求、システム要求に分類して、経営層を含むユーザ企業の関係者にも分かり易いモデルで記述する。併せて、関係者が参加するワークショップを開催してビジネス目的を共有する。また、a)RFPに必要な内容を網羅する成果物セットを用いる、b)要求の理由と発生源を明確に記述する、c)システム要求と上位の事業要求や業務要求との対応付けを確認する、d)参照モデルと比較して要求の漏れを確認する、などにより前述した八つの品質特性を満たす高品質のRFP作成を実現する。 RFP段階での経営層の関与が不十分だったプロジェクトは、システム要件定義に先立って、この方法を活用してシステム化の目的を経営層と再確認することを推奨する。

ダウンロード【PDF】(2.3 MB)別ウィンドウで開く

システム基盤AtlasBaseによる品質・生産性への取り組み

井手ノ上淳

1990年代に普及が始まったオープンシステムは、顧客に製品選択やアーキテクチャの選択という機会を与えたが、同時に技術の採用基準や製品組み合わせの複雑さなど新たな問題も引き起こした。また製品の増加による技術の分散やオフショアの活用などで、開発プロセスが分断化される問題にまで及んでいる。更にITがビジネスに深く関わり情報システムの重要性が増すことで、顧客のニーズにも変化が起こっており、SIerには様々な製品やサービスを組み合わせた調達やシステムの実装力だけではなく、ビジネスへの影響度を踏まえた情報システム提案やITによる差別化要素なども求めるようになってきている。 このような状況下で、日本ユニシスグループは、システム開発環境での問題や顧客ニーズに対応するため、業務アプリケーション開発の基盤であるアプリケーションフレームワーク領域とインフラストラクチャ領域を対象にして、従来からの知財を体系化・標準化した「AtlasBase」を開発・推進している。AtlasBaseは、構成要素としてプロダクトと開発方法を規定しており、それらを横断する検証フレームワークと知財の運用方法・人材支援体制を提供している。AtlasBaseをあるボリューム以上の開発プロジェクトで適用することにより、工数換算で5〜25%程度の低減が認められた。

ダウンロード【PDF】(1.5 MB)別ウィンドウで開く

見積品質向上に向けた留意点と組織的な取り組み

新井 秀夫

ソフトウェア開発の見積りが適切にできて初めてプロジェクトの成功につながることは言うまでもない。見積品質向上のためには、プロジェクト運営の中での見積変動要因のコントロールや組織としてのソフトウェア開発プロセスの成熟度が極めて重要である。見積りの時期によっては、最終的な規模に対して誤差があることを前提にした予防策の実施が必要である。すなわち、要件や作業範囲の曖昧な部分を変動要因として仕様や範囲を想定し、それらが変化したときには再見積を行うといった対応である。また、変動要因をコントロールする上では要件管理やリスク管理、課題管理等、プロジェクト管理の確実な実施や契約によるリスク回避を行っていくといった多面的なアプローチが重要である。見積品質向上のためには、組織としての見積結果を検証する体制(第三者チェックやレビュープロセス)や見積実行結果をフィードバックして技法やツールを継続的に改善する仕組みが機能する必要がある。

ダウンロード【PDF】(2.2 MB)別ウィンドウで開く

コードクローン検出ツールによるソフトウェア開発成果物の可視化効果

暮井 豊

近年、ソフトウェア開発の成果物の一つであるプログラム・ソースコードを「"コードクローン"と呼ぶ重複コード片」の存在状態に基づいて可視化することができる「コードクローン検出ツール」が登場してきた。 筆者は、日本ユニシスグループにおけるソフトウェア開発・保守プロジェクトの協力を得て、コードクローン検出ツールを大規模業務ソフトウェアに適用し、品質向上の観点から、その有効性について検証してきた。検証は、大規模業務ソフトウェアへの適用に際して必要となった機能、各プロジェクトでの適用目的に応じて必要となった機能を補完しながら進めた。その結果、コードクローン検出ツールの活用がソフトウェア品質の測定あるいは改善に対して必然的な効果をもたらすものとして位置づけるまでには至らなかった。しかし、いくつかの適用事例を通して、"既存ソフトウェアの改変や再構築時の計画・見積・実行"、"外注納品物の検収"などにおいて有益な情報を得る手段となることが確認できた。本稿では、これらの結果を踏まえ、現時点で有効と考える適用場面を提案し、その期待効果について述べる。

ダウンロード【PDF】(1.5 MB)別ウィンドウで開く

大規模ソフトウェアの保守開発を対象とした故障モード影響解析(FMEA)適用の試み

山科隆伸,森崎修司

保守・派生開発型ソフトウェアでは、既存部分の整合性を満たしながら機能追加、改変をする必要がある。既存部分が大きくなるにつれてその制約条件が増え、機能追加や改変が難しくなる。本稿では、ハードウェアの信頼性向上の手法である故障モード影響解析を大規模な保守開発ソフトウェアに適用評価した結果を紹介する。評価において、同一ソフトウェアの新しいバージョンのテスト工程で発見された不具合の中には、古いバージョンを基に抽出した故障モードを用いることで未然に防止できるものがあったことを確認できた。さらに、故障モード影響解析を実際に適用するには煩雑な作業が伴うため、これを支援するツールを開発した。支援ツールは過去の不具合に基づく影響度の自動算出や開発担当者への自動振分けができ、品質向上や適用コスト低減につながる。

ダウンロード【PDF】(2.1 MB)別ウィンドウで開く

基幹システムにおけるテスト十分性の確保

飯田志津夫

基幹系システムの開発規模や複雑性は増大を続けているが、企業活動に欠くべからざる存在として、また、社会のインフラストラクチャとして、高い信頼性が求められている。 信頼性を確保するには、非機能要件も含めて十分なテストを実施する必要があるが、テスト活動だけを対象としても品質の向上には限度がある。先ず、テストの有効性を確保できる環境を、開発活動全体を通して確立する必要がある。次に、複数の技法を組み合わせてテスト設計を実施しテストの網羅性を高めるが、この結果テスト項目数が増えコストや納期に悪影響を与えてはならない。このため、効率化の観点から、テストの網羅性を確保しつつ合理的にテスト項目数を削減する技法の有効性を示す。

ダウンロード【PDF】(907.9 KB)別ウィンドウで開く

ソースコード静的メトリクス分析と単体テストアセスメント  ─ ソフトウェア品質向上への第三者評価による組織的取り組みの紹介

浦野隼人,沖汐大志

ソフトウェア品質管理の重要性に着目し、日本ユニシスでは、品質管理に関する社内標準を定め、各開発プロジェクトにてこれを実践することでソフトウェアの品質確保に努めてきた。これに加え近年、ソフトウェア品質の更なる向上へ向けて、ソースコードの定量的な測定・分析(ソースコード静的メトリクス分析)活動や、設計書の仕様に基づいた単体テストの妥当性に関するアセスメント(単体テストアセスメント)活動を、開発プロジェクト外の第三者的な組織が主体となって実施している。 これら二つの活動は、従来の品質管理手法を補完する取り組みとして有効なものであり、その直接的なアウトプットである分析・評価結果に基づき適切な是正策を講ずることが品質改善へと繋がる。また、これらの活動を通じた品質改善を効果的に実践する上では、現物確認の徹底・品質データの蓄積と再利用・品質を重視したプロジェクト運営・質の高い設計文書の整備といった基本動作が重要である。

ダウンロード【PDF】(1.3 MB)別ウィンドウで開く

Java EE ベースの大規模開発における単体テストの実践的アプローチ

二木隆彰,新井敦

Java EE(Java Platform, Enterprise Edition)はミッションクリティカルな大規模情報システムの基盤技術として広く普及しており、様々な開発支援ツールが提供されている。 大規模な情報システムの開発において、品質と開発生産性を向上させるための重要なポイントの一つに、開発時の単体テストがある。膨大な量のソースコードで構成される大規模な情報システムはテストケースの数も多く、リグレッションテストを繰り返し実施するため、ツールを効果的に活用して手作業を効率化するための単体テストのアプローチが必要となる。 また、多くの開発者が同時並行で作業する大規模開発では、成果物や作業の手順を定義することで作業プロセスを標準化した上で、開発環境の統一や検証作業の問題、リグレッションテストの簡素化など、実践する上でのいくつかの課題に対応する必要がある。 進化する開発技術を活用することを前提としたテストアプローチを作り上げて改善していくことが、システムの品質と開発の生産性を向上させることにつながる。

ダウンロード【PDF】(748.7 KB)別ウィンドウで開く

STEM 2.0  ─クリーンなソフトウェアを生み出す科学的で規律のある方法

T. Ashok

本稿はクリーンなソフトウェアを生成するテストに対するエンジニアリングアプローチを概説する。STEM バージョン2.0 は、STAG社のテストエンジニアリング方法論であり、三つのフェーズにわたる八つのディシプリンを活用して実践される32 個の科学的コンセプトから構成される。STEMは開発の最終ステージでの製品評価、初期ステージでのサブシステム/コンポーネント評価、要件の妥当性確認に適用される。

ダウンロード【PDF】(5.2 MB)別ウィンドウで開く