XDDPによる品質と生産性の同時達成

Similar documents
トレーニングのプレゼンテーション

USDM Quick Start Guide 2014 年 1 月 第 1.0 版 第 29 年度 (2013 年度 ) SQiP 研究会第 6 分科会 D グループ

障害管理テンプレート仕様書

変更要求管理テンプレート仕様書

変更の影響範囲を特定するための 「標準調査プロセス」の提案 2014年ソフトウェア品質管理研究会(30SQiP-A)

トレーニングのプレゼンテーション

要求仕様管理テンプレート仕様書

はじめてのPFD

構成管理記録テンプレート仕様書

メンバーの紹介 日本科学技術連盟ソフトウェア品質管理研究会 2010 年度第 6 分科会 B グループ リーダー関野浩之 アズビル株式会社 ( 発表者 ) 大坪智治 株式会社インテック 外谷地茂 キヤノンITソリューションズ株式会社 メンバーの特徴 開発案件のほとんどが派生開発 ( 組み込み系 :1

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

日本機械学会 生産システム部門研究発表講演会 2015 資料

Using VectorCAST/C++ with Test Driven Development

目次 ペトリネットの概要 適用事例

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

短納期開発現場への XDDP 導入手法

サイボウズ Office 10「個人フォルダ」

クラス図とシーケンス図の整合性確保 マニュアル

はじめに 本ドキュメントは Redmine を使用して稼働する定量的プロジェクト管理ツール ( 以下 IPF と略します ) のヘルプです IPF の操作に関わる機能を解説しており Redmine 及び構成管理ツール (Subversion Git) の標準機能については 本ヘルプの記載対象外として

テスト設計コンテスト

PowerPoint プレゼンテーション

4-2 メール メールについて S! メールと SMS の 2 つのメールを利用できます 4 OK! SMS S! SMS S! SMS S! SMS S!

GlobalFlow5 Ver.1.00R04 リリースノート

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

過去問セミナーTM

自己紹介 粟生木徹 主な業務実績 組込みシステム開発 仕様策定 検証 : コンシューマ電子機器 オンラインエンターテイメント関連アプリケーションなど 業務系システム開発 定義 検証 ( 新規 保守開発 ): 物流管理 販売管理 人事 給与 ASP パッケージなど プロセス改善 国際ソフトウェアプロセ

プロジェクトマネジメント知識体系ガイド (PMBOK ガイド ) 第 6 版 訂正表 - 第 3 刷り 注 : 次の正誤表は PMBOK ガイド第 6 版 の第 1 刷りと第 2 刷りに関するものです 本 ( または PDF) の印刷部数を確認するには 著作権ページ ( 通知ページおよび目次の前 )

15288解説_D.pptx

Microsoft PowerPoint - KanriManual.ppt

DataWare-NETご利用ガイド

編集する ファイルを開く マイクロデータの設定を行うファイルまたはファイルを開きます 開かれたファイルは編集画面に表示されて ブラウザ表示した時のプレビューも同時に表示されます HTML ファイルの選択 編集する ファイルを開くためにメインメニューから ファイル 開く を選びます ファイル選択ダイア

スライド 1

■POP3の廃止について

日経ビジネス Center 2

【手引き】完了時の手続について

Microsoft PowerPoint - B3-3_差替版.ppt [互換モード]

独立行政法人日本学術振興会科研費電子申請システム研究者向け操作手引 ( 科学研究費補助金 )( 交付内定時 決定後用 ) 繰越 ( 翌債 ) を必要とする理由書の作成 繰越 ( 翌債 ) を必要とする理由書情報の入力 繰越 ( 翌債 ) を必要とする理由書情報を入力するには

Microsoft PowerPoint - Wmodel( ) - 配布用.pptx

[ ]スマートセミナーバージョンアップリリースノート

040402.ユニットテスト

yukarik

WBS_Ch0.indd

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

<4D F736F F D FC8E448FEE95F1837C815B835E838B C8F92E88B608F912E646F63>

プロジェクトを成功させる見積りモデルの構築と維持・改善 ~CoBRA法による見積りモデル構築とその活用方法について~

どのような便益があり得るか? より重要な ( ハイリスクの ) プロセス及びそれらのアウトプットに焦点が当たる 相互に依存するプロセスについての理解 定義及び統合が改善される プロセス及びマネジメントシステム全体の計画策定 実施 確認及び改善の体系的なマネジメント 資源の有効利用及び説明責任の強化

目次 1.CALS システム利用から完了までの流れ 2 2. 納品データの登録 書類の提出 決裁 納品物を作る 5 3. 納品情報の入力 案件基本情報 書類納品情報 写真 図面等の納品情報 電子納品媒体作成 一括

17-2 一般ユーザー用 : 回覧板 回覧内容を確認する 新着表示一覧より タイトル をクリックして下さい 回覧内容確認画面が開きます 回覧内容確認画面 1 入力項目 説明 文字形式 桁数 必須 確認 OK NOの選択と コメントを入力して下さい 全角 指定なし この項目は 回覧作成時オプション項目

小笠原ベストマッチ

3. 回路図面の作図 回路図の作成では 部品など回路要素の図記号を配置し 要素どうしを配線するが それぞれの配線には 線番 などの電気的な情報が存在する 配線も単なる線ではなく 信号の入力や出力など部品どうしを結び付ける接続情報をもたせることで回路としての意味をもつ このように回路図を構成する図面は

4.7.4 プロセスのインプットおよびアウトプット (1) プロセスへのインプット情報 インプット情報 作成者 承認者 備 考 1 開発に関するお客様から お客様 - の提示資料 2 開発に関する当社収集資 リーダ - 料 3 プロジェクト計画 完了報 リーダ マネージャ 告書 ( 暫定計画 ) 4

Microsoft PowerPoint - Tsuzuki.ppt

Microsoft PowerPoint - 配布用資料.ppt


PowerPoint プレゼンテーション

お客様からの依頼内容とその現状

Cisco ViewMail for Microsoft Outlook クイックスタートガイド (リリース 8.5 以降)

操作マニュアル

目次 目次 1. はじめに 2. ログイン ID とアクセス権限 3. 前提条件 4. 事前準備 ( ログイン ) 4-1. ログイン画面アクセス 4-2. ログイン 4-3. ログイン後 5. ホーム画面 6. 特記すべき画面操作 6-1. カレンダー表示 6-2. メニュー表示 6-3. クリッ

目 次 1. はじめに ソフトの起動と終了 環境設定 発助 SMS ファイルの操作 電話番号設定 運用条件 回線情報 SMS 送信の開始と停止 ファイル出力... 16

小笠原ベストマッチ

えひめ電子入札共同システム 質問回答 工事 委託業務 操作マニュアル ( 受注者用 )

2 目次 1 はじめに 2 システム 3 ユーザインタフェース 4 評価 5 まとめと課題 参考文献

<4D F736F F F696E74202D20352D335F8D5C90AC CF909482CC90B690AC82C695D28F572E707074>

PowerPoint プレゼンテーション

Microsoft PowerPoint - T4OOマニュアル_admin管理者_ pptx

4.契約保証予約申込の作成・送信

小笠原ベストマッチ

CubePDF ユーザーズマニュアル

パソコンバンクWeb21 操作マニュアル[サービス利用編]

Microsoft Word - ModelAnalys操作マニュアル_

導入設定ガイド

PowerPoint プレゼンテーション

改訂履歴 日付バージョン記載ページ改訂内容 V2.1 - 初版を発行しました V3.1 P5 ドキュメントラベルが新規追加された事を追記 P7 P8 新しくなったラベルのツリー表示説明を追記 新しくなったラベルの作成 削除操作を追記 P9 ラベルのグループ

スライド 1


スタンプラリー 操作資料

PowerPoint プレゼンテーション

2. メンバー管理 2.1 管理者権限 2.2 組織の登録 2.3 役職の登録 2.4 メンバーの登録 2.5 共有アドレス帳 2.6 グループの管理

印刷アプリケーションマニュアル

PowerPoint プレゼンテーション

レビュー作業 共有レビュー 機能を使用するには Acrobat 8 Professional または Acrobat 8 Standard が必要です Acrobat 8 Professional を使って Adobe PDF に Adobe Reader のユーザにもレビュー担当者として参加を許可

CodeRecorderでカバレッジ

リスクテンプレート仕様書

2 課題管理( 学術研究助成基金助成金 ) 画面が表示されます 補助事業期間延長承認申請書 欄の [ 作成する ] をクリックします [ 作成する ] ボタンが表示されていない場合には 所属する研究機関の事務局等へお問い合わせください 300

スライド 1

すだちくんメール法人(所属設定職員管理)_docx

指定立替納付を使った場合の 国内提出書類の提出方法 1 出願書類や 納付書などを 指定立替納付で支払う場合の手順をご案内します ここでは ひな型を Word で編集する場合の手順を案内します 他を利用する場合は ユーザガイドをご覧ください (1) 指定立替納付を使うための事前準備 a. クレジットカ

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

2 課題管理 画面が表示されます 補助事業期間延長承認申請書 欄の[ 作成する ] をクリックします [ 作成する ] ボタンが表示されていない場合には 所属する研究機関の事務局等へお問い合わせください 295

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

「電子申告の達人(法人税編)」

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

1. 主な機能追加項目 以下の検索項目をサポートしました 書誌 全文検索コマンド検索 国内 査定日 最新の査定日 ( 登録査定日または拒絶査定日 ) を検索します 査定種別 最新の登録 拒絶査定 または査定なしを検索します 審査最終処分日 最新の審査最終処分日を検索します 審査最終処分種別 最新の審

テスト設計コンテスト

PowerPoint プレゼンテーション

Microsoft Word - WebClass Ver 9.08f 主な追加機能・修正点.docx

スライド 1

人事給与ご担当者各位 2016 年 10 月 14 日 システムバンク株式会社 マイナンバー管理システム Ver バージョンアップリリースの件 拝啓時下ますますご清祥のこととお慶び申し上げます 平素は格別のご高配を賜り 厚くお礼申し上げます このたび 下記の理由により マイナンバー管理シ

Transcription:

XDDP による品質と生産性の同時達成 JaSST 12 Niigata 基調講演資料 2012 年 3 月 16 日 株式会社システムクリエイツ代表取締役清水吉男 shimz@nifty.com URL=http://homepage3.nifty.com/koha_hp 派生開発推進協議会代表 URL=http://www.xddp.jp [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 1

agenda 1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDPで派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDPでビジネスに勝つ 7. XDDPから 次 へ USDM:Universal Specification Describing Manner の略. 仕様がモレない表現方法として筆者が開発したものです. XDDP: extreme Derivative Development Process の略. 派生開発に対応するように筆者が開発したプロセスです. PFD :Process Flow Diagram の略. 筆者が DFD をアレンジしてプロセスの設計に使いやすくしたものです. [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 2

5WCSQ( 上海 ) で Best Paper Award を受賞 System Creates 5WCSQ Best Paper award Process Improvement using XDDP - Applica7on of XDDP to the Car Naviga7on System - Keiji Kobata, Eiji Nakai, Takahiro Tsuda [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 3

5WCSQ( 上海 ) で Best Paper Award を受賞 11/1 4: 上海の復旦で開催された 5WCSQ (World Congress for Software Quality : 第 5 回世界ソフトウェア品質会議 ) で XDDP の導入を扱った論文が Best Paper Award を受賞 論文タイトル " Process Improvement using XDDP - Application of XDDP to the Car Navigation System - Keiji Kobata, Eiji Nakai, Takahiro Tsuda Denso Dr. Patricia McQuaid 氏 (ASTQB 会長 ) が Keynote 講演で アリアンロケットの打上げ失敗 パトリオットミサイルの誤射 放射線医療機器の誤照射のトラブルを紹介 これらはすべて派生開発のエラー [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 4

1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDP で派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDP でビジネスに勝つ 7. XDDP から 次 へ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 5

保守開発 の限界 保守開発 の定義 保守開発は JIS(JIS X 0161/ISO14764) で以下のように定義されている 保守のタイプ 作業内容 参照 http://www.jisc.go.jp/ 是正保守ソフトウェア製品の引き渡し後に発見された問題を訂正するために行う受身の修正. 訂正 予防保守引き渡し後のソフトウェア製品の潜在的な障害が運用障害になる前に発見し 是正するための修正. 緊急保守是正保守実施までシステム運用を確保するための 計画外で一時的な修正. 改良 適応保守 完全化保守 引き渡し後 変化した又は変化している環境において ソフトウェア製品を使用できるように保ち続けるために実施するソフトウェア製品の修正. 引き渡し後のソフトウェア製品の潜在的な障害が 故障として現れる前に 検出し訂正するための修正. 改良保守新しい要求を満たすための既存のソフトウェア製品への修正.( 機能追加を扱う ) 従来の 保守 は 是正 と 適応 の世界 08 年に 改良保守 と 緊急保守 が追加されたが 是正保守 と同じプロセス で 改良保守 が実施されることによって新たな問題が生じる危険がある [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 6

大部分は派生開発 派生開発のイメージ 製品 A. v1 製品 A. v2 製品 C. v1 製品 B. v1 製品 B v2 製品 B. v3 製品 B. v4 組織によっては 開発案件の 90% 以上は 派生開発 入社後 一度も新規開発に関わらない可能性大 一般に公表されている開発方法は 新規開発向け 派生開発 93% 組織の標準プロセスも派生開発にマッチしていない 納期遅延 いろいろな問題が発生する 6K 職場 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 7

派生開発は 部分理解 の制約を受ける 全体を理解できていなかったからナ ( 反省会 ) 現状 = 理解の参考になる成果物はない保守性を無視して作られたソースコードこれまでの変更で無節操に弄られていてきた読解技術も時間も不足している 全体を理解できる状況にはない 全体を理解すれば問題は解決する と思っているかぎり 理解できなかったときの対応が想定されない 派生開発では 部分理解 の制約の中で変更作業が強いられる 担当者の 思い込み 勘違い の混入を防ぐことはできない どう 発見するか? [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 8

拙速なソースコードの変更が行なわれている 開発期間が短いため ソースコードの変更を急がなければ間に合わ ない という圧力がかかる 該当する箇所を見つけ次第に変更してしまう 4 月 5 月 6 月 7 月 8 月 A ソース修正期間 B 実装工程の生産性が極端に低下 当初納期 間に合わないモンスター ( 遅れる ) なぜ こんなことが起きてしまうのか? 結果 当初納期から大幅に遅れる この状況に対して 次回はもっと早く変更しないと間に合わない という [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 9

変更の実現方法も 1 つとは限らない データ区分 1 2 3 4 A B C D 依頼 : 区分が 2 で C1 の条件のときは表示の位置を B 欄から C 欄に変更する 対応 1: 表示処理のところで条件を判断して表示の場所を変更する 2: 早い段階でデータの区分を変更して C 欄にでるようにする 3: データ区分とは別に表示区分のコードを導入して対応する ほとんど 対応 1 が選択される なぜ? テストでは どの対応でも OK となる 変更済みソースコードレビューでこの問題を発見できるか? [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 10

1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDP で派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDP でビジネスに勝つ 7. XDDP から 次 へ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 11

少しでも安いところへ発注! 基本 安いところに発注する 誤解 ソフトウェア開発の発注 と 部材の調達 と同じ発想? Faster,Cheaper,Worse = 安かろう 悪かろう コストを引き下げたい 生産性の向上で対応する方法 オフショア / ニアショア開発 品質と生産性を同時に達成するようなプロセスを設計できない 準備もせずに オフショア開発 を競ったことで混乱 コスト削減効果は? 品質を下げただけ? [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 12

なぜ 価格の叩き合いに巻き込まれるのか? 理由 品質と生産性において ダントツ の状態にないそのため 選択肢が発注側にある受注側 部材の調達との違いをアピールしていない 対応策 : 段階 1 生産性を30% 以上向上させる現行のコストで品質と納期を達成する 対応策 : 段階 2 選択肢を発注側から獲得する 中国のコストは まもなく優位性を失う [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 13

自分たちのソフトウェア開発の生産性は? ソフトウェア開発に関する生産性データは? 多くの組織は 品質のデータは収集している KLOC あたりのバグの発生率レビューでの指摘率ベースライン設定後の仕様変更率など 生産性データはなぜ収集していないのか? [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 14

生産性が犠牲に? 生産性を犠牲にした 改善 行われていないか? バグが多発 プロセス改善 反省会でテストの不足 プロセスの不備が指摘される 品質のためにプロセスが追加される 成果物とプロセスが合理的に連鎖していない 生産性の悪化 工数のロス / 不足 プロセスを省略 / 不十分な対応 新たなバグが発生異なる性質のバグ? [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 15

品質 と 生産性 は相反すると考えられている? System Creates これまでのプロセス改善の取り組み 品質 が中心 合理性を欠いたプロセスや成果物が変更される 品質 = テストの強化? トータルでの対応になっていない 品質 のためには 生産性 を犠牲にするのもやむを得ないの? プロセス に対して 非人間的 と揶揄される原因にもなる 生産性 を考慮しないプロセスに合理的はない [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 16

1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDP で派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDP でビジネスに勝つ 7. XDDP から 次 へ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 17

XDDP の誕生 40 数項目の機能追加と変更を 3 ヶ月で! アメリカの顧客からの要求 (1978 年 ) 初めて づくし 国内の客先には その製品の仕様を知る人はいない 1 週間で 機能追加と変更に分けたプロセスを設計 プロセスの合理性はシミュレーションで確認 品質 生産性 変更箇所 ( 理解した仕様を含む ) を before/after で記述し Faxでレビューを依頼 before は 現状の仕様を私が理解した状態 レビューで確認必要不可欠な最小限の成果物とプロセスの合理的な連鎖で構成見積りが可能な状態を確保 3 ヶ月の納期を達成 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 18

XDDP トライアングル XDDP は USDM と PFD の支援を受けて成り立っている 仕様上の手戻り作業を減らすこことで支援 XDDP 合理的な開発アプローチと変化に対する 別案 の考案で秩序を支援 USDM PFD 不安定要素の多い仕様化プロセスを効果的に支援 PFD ムダのない合理的な開発アプローチを設計し 計画書 に繋げる 途中で生じる変化に対して適切にプロセスと成果物を調整する USDM 追加機能の仕様モレを減らしたり 変更箇所 ( 変更仕様 ) の抽出モレを減らす ことで 短納期などの制約の中での開発作業を支援する [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 19

USDM における 要求仕様書 の考え方 そもそも 要求仕様書 とは どういう文書なのか? USDM における定義 要求仕様書とは 今回のプロジェクトで実現して欲しいこと (Requirements) について 作ることの関係者 が実現内容についての認識を特定 (Specify) できている文書 USDM では Specification とは関係者が同じものをイメージできる状態のことと捉える 要求仕様書機能仕様書 ( 等 ) 目的作るためのもの機能を説明するもの 関係者計画書で特定されている特定されていない 表現 関係者が Specify できる状態一般的な記述 納期やコスト背後に背負っている意識されない バージョン管理今回だけの文書 ソースコードと対でバージョンアップする [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 20

(PFD) 派生開発アプローチ ( 上位 ) System Creates 追加 と 変更 では 1 変更用 PFD 2 追加用 PFD として下位のPFDで展開する公式文書は テスト終了後に 差分 情報によって更新する 変更要求書 元のソースファイル スペックアウト資料 変更設計書 追加機能分の関数設計書 * 5 テストで確認した後で正式文書を更新する ( 更新 ) ベースの機能仕様書, 設計書等 追加機能要求書 ( 要求仕様書 )* 設計書等モジュール情報 1 変更要求を実現する 変更要求仕様書 TM 付き 3 テストケースを変更する 機能実現に関する資料等 追加機能要求書 追加機能分の設計書 2 追加機能の要求を実現する 追加機能分の関数設計書 * 追加機能要求書 ( 要求仕様書 )* 機能追加分のソースファイル 更新後ソースファイル 4 プログラムを結合してテストする ( 更新 ) テストケース プロセス #4 は, 実際には不具合への対応プロセスを含みます 新バージョンのソースファイル [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 21

(PFD) 変更プロセス : すべての変更を扱うプロセス System Creates 変更プロセスでは 3 点セット の成果物に変更箇所や変更法を記述し すべて揃った 後に一斉にソースコードを変更する 元のソースファイル * 変更要求 1.2 変更箇所についてソース等を調査検討する 調査資料 TM スペックアウト資料 * 変更設計書 ソースファイル単位 変更要求書 補助資料他 関連資料 変更要求 1.1 変更箇所を仕様書に記述する 変更仕様 変更仕様 変更要求仕様書 TM 情報 交点情報 1.5 変更設計書を作成する 1.6 ソースコードを一斉に変更する 元のソースファイル * 追加機能要求仕様書 追加要求 1.3 追加要求の変更仕様を抽出する 追加機能を受け入れるための変更方法を決めるために参照 変更仕様 スペックアウト資料 * 1.4 変更要求 TM を作成する 設計書等モジュール情報 ( 参照 ) ( 参照 ) 元のソースファイル * 更新後ソースファイル [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 22

(PFD) 機能追加プロセス : 機能追加を扱うプロセス System Creates 採用する設計手法の違いによっていくつかのプロセスは変化する 変更プロセスの 1.3 が終了すれば 2.2 以降に取り掛かる機能追加がないときは このプロセスは存在しない 追加機能要求書 変更用プロセスへ 追加機能要求仕様書 TM は もともと新規開発時に作成するものなので こうした機会に慣れておくと良い 要求 TM 追加機能分の設計範囲 手法によって変化する XDDP の管轄外 追加機能分の関数設計書 案件によっては, この段階で機能の追加方法などの調査が行われる その他資料 2.1 要求仕様書を作成する 機能実現に関する関連資料 ( 更新 ) 2.2 追加機能を設計する 追加機能分の設計書 2.3 追加機能の関数設計書を作成する 2.4 追加機能をコーディングする ソースファイル [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 23

派生開発では 2 種類の要求仕様書が必要 要求仕様書が異なる以上 対応するプロセスも異なるべき 機能レベル 仕様レベル 機能追加 要求 対応 要求仕様書 対応プロセス 追加 機能追加として扱う 追加分 = 追加機能要求仕様書追加用プロセス変更分 = 変更要求仕様書 移植 通常は変更として扱う 削除変更として扱う追加変更要求仕様書 変更用プロセス 変更 変更として扱う 削除 追加機能要求仕様書 変更要求仕様書 ( 機能追加を受け入れる変更を扱う ) 変更変更要求仕様書 ( その他一般の変更を扱う ) [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 24

1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDP で派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDP でビジネスに勝つ 7. XDDP から 次 へ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 25

追加機能要求仕様書 追加機能を扱う要求仕様書 新規開発時の要求仕様書と基本的に同じ構成 今回のプロジェクトで追加実現したいこと (Requirements) について 特定された関係者がその機能の内容を特定した (Specify) ことがまとめられた文書 実現方法は 設計プロセス で選択され評価される作るための文書だから 作り方の品質要求 も含まれる 要求 機能要求 非機能要求 機能に付随する品質要求 作り方に関する品質要求 納期 や コスト も背負っており 表現の多様性を許容する必要がある 関係者 は特定されている [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 26

( 追加機能要求仕様書 ) 要求は振る舞いの中の 動詞 を表現する 仕様 は 要求の中の 動詞 および 目的語 に存在する 振る舞い を要求として表現する 要求に含まれる 動詞 をすべて表現することを目指す 要求には それを必要とする 理由 をつける System Creates USDM の基本的な考え方 要求 DA07 理由 計測データを受信し 平均値を算出しながらリアルタイムに表示し 異常値が検出されたときは警告を表示する 計測データは熱によって変動しやすいため 内部の変化を早期に発見したい この要求の 赤字 の部分について仕様を展開することになる 受信方法 平均値の算出方法 計測データの表示 異常値の判断 警告の表示 要求にすべての 動詞 が表現されていれば これらについて仕様を展開すればよい [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 27

分割 階層化して要求の範囲を狭める 範囲の広い要求 = そこに含まれる 動詞 が多い => 分割 階層化 上位要求 : 主要な動詞によって振る舞いの範囲と特徴を表現する下位要求 : そこに含まれるすべての動詞を表現する 要求 MAL01 理由 事前に指定された受信および送信した電子メールをキーワードで検索して 選択した電子メールを メーラーに繋いで再利用したい メールが多くて 関連するメールを探すのに手間取る 要求 MAL01-01 表示された検索グループの中から一つを指定する 理由 検索グループが複数あるから 要求 MAL01-02 いくつかのキーワードの入力を受付それらを組み合わせて検索する 理由 可能性のあるキーワード ( 複数 ) で探したい 要求 MAL01-03 検索結果を表示し 見つかったときは subject などの情報を一覧で表示する 理由 Subject と日付などから目的のメールを探すことになる 要求 MAL01-04 一覧の中から選択されたメールを開く 理由 中身を見ないと分からないから 要求 MAL01-05 一つのメールを開いた状態でメーラーに繋いで編集できるようにする 理由 コピーの手間を省いて編集の操作に入りたい [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 28

仕様の < グループ > を先に設定する 動詞 及び 目的語 をから仕様の < グループ > を設定する 要求の範囲が適切に制御された状況では すべての 動詞 が見える この後の仕様化の作業では 人を投入することが可能になる 時系列 整理 要求 RSV01-03 予約操作を終了したときは 予約を確定させてクレジット処理を行い 登録されている メールアドレスに予約状況を送信する 理由 説明 < メールアドレスの確認 > 顧客に予約が成立したことを示すことと あとで確認できるようにするため クレジット情報の確認はログイン時に行っている < 予約番号の付与と予約結果の表示 > < クレジット処理 > < メールの編集と送信 > ここまでは 要求 を記述する作業の範囲 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 29

要求仕様の条件 要求に含まれる 具体的 な処理や振る舞いを表現したもの 仕様は 要求 から導出される 全ての仕様は いずれかの要求に属し すべてソースコードに変換される 実現可能性が見える ( 設計担当者 ) 前提条件や処理や振る舞いのための 制約 なども含むこと 具体的であるために 仕様間の矛盾 が見える 設計の様子がイメージできることがある 検証可能性が見える ( テスト担当者 ) その仕様が実現していることを検証する方法が見える 具体的であることで 関係者の間で違った意味に解釈されない 品質要求も例外ではない 品質要求にも 実現可能性と検証可能性は求められる [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 30

仕様 < グループ > の中で仕様を抽出する 基本的に一つの 動詞 の単位なので 仕様の抽出は容易になる レビューアにとってもレビューしやすい 要求 RSV01-03 予約操作を終了したときは 予約を確定させてクレジット処理を行い 登録されているメール アドレスに予約状況を送信する 理由 顧客に予約が成立したことを示すことと あとで確認できるようにするため < メールアドレスの確認 > RSV01-03-1 予約結果を送信するメールアドレスを確認する為に 登録されているアドレスを表示する RSV01-03-2 メールアドレスの変更がある時は 変更を受付ける RSV01-03-3 メールアドレスが変更された時は 再度入力を求めて確認する < 予約番号の付与と予約結果の表示 > RSV01-03-10 今回の一連の予約操作に対して 予約番号 を付与する 実際には もっと詳細化が必要 RSV01-03-11 ご予約状況 として以下の情報を表示する <クレジット処理 > RSV01-03-15 事前に登録しているクレジットカードの番号を使って 合計金額をクレジット会社に送信する <メールの編集と送信 > RSV01-03-20 ご予約状況 と同じ内容の情報を編集する( 図 12.3 参照 ) RSV01-03-21 確認されているメールアドレスに送信する RSV01-03-22 送信エラーの状態であれば 画面の印刷を促すメッセージを出す [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 31

仕様変更率 5% 以下 を目指す 仕様の詳細さが適切かどうかを測る方法は? 1 要求仕様のレビューの指摘件数 ( 指摘率 ) 2 仕様関係のバグの発生率 (KLOC 単位 ) 3 要求仕様のベースライン設定後の仕様変更率 ベースライン設定後の仕様変更率が 5% 以下に収まることを目指す 変更仕様数 ( ) 総仕様数 X100 5% ( ある程度 ) 母数が多くなれば変更率が下がる 5% 以下になると要件管理の対応が容易になる [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 32

1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDP で派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDP でビジネスに勝つ 7. XDDP から 次 へ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 33

変更要求仕様書 を導入する XDDP では すべての変更を扱う 要求仕様書 として 変更要求仕様書 を導入する 要求仕様書 の概念から発展したもの 今回の派生開発で変更したいこと (Change Requirements) について 特定された関係者が変更内容まで含めてその内 容について特定 (Specify) したことがまとめられた文書 変更の実現方法まで特定する (Specify) ために 変更仕様としては最終的 にソースコード ( 関数仕様 ) のレベルで記述する 理由 変更にははっきりとした 設計プロセス がない変更で行われるのは 通常は既に設計されたものを変更するだけであり 新たに設計することはない具体的に変更する関数名は TM がカバーする [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 34

( 変更要求仕様書 ) 変更要求の範囲と理由を表現する System Creates 変更が及ぶ 範囲 を表現し 何をどのように変更したいのかを記述することで 変更要求 としての役割を果たす 理由 を付けて変更要求の意図を明らかにする 変更要求も変更仕様も必ず before / after で表現する before は現状を表現し 該当カ所 影響箇所を探すのに有効 追加する 削除する はそれ自体に before / after を含んでいる 追加機能を受け入れるための変更も扱う 要求 LST.01 商品一覧と在庫確認リストの商品名の横に写真の表示を追加する 理由 派生品が多くなったことで 商品名を間違えるケースが増えているから 要求 DSP.01 計測したデータのマルチ画面表示で 縦に並べて表示出来るように変更する 理由 各形測地点での相違を時系列で一目で見えるようにして 同期のずれを早期に発見したい [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 35

( 変更要求仕様書 ) USDM による変更仕様の表現 System Creates 変更仕様がいろいろな箇所に散在する場合は <グループ>でまとめる変更箇所を見つけながら TM (Traseability Matrix) を作成する file file file file 要求 CCL30 加入者データに家族データを追加して家族割りサービスを始める 理由 同業他社との競争に勝つため < 加入者データの追加 > CCL30-01 主従区分と 10 個の家族データを追加する追加する家族データの属性は以下の通り 加入者数 加入者番号 < 加入者データの表示の変更 > CCL30-05 加入者名の横に主従区分の表示を追加する f3() CCL30-06 主従区分 = 主の時は その横に家族の加入者番号を登録数分表示する CCL30-07 主従区分 = 従の時は 主となる加入者番号を表示する f7() < 計算方法の変更 > CCL30-10 CCL30-11 加入者数に応じて以下の割引率の適用を追加する f9() Copyright 2012 System Creates Inc., All rights reserved Page 36 [JaSST 新潟 2012 基調講演 ] 主従区分 = 主に繋がる加入者の利用料金をまとめて計算する方法に変更 f1() f7() f8()

( 追加 / 変更要求仕様書 ) 機能追加には 2 種類の要求仕様書で対応する System Creates 現状のシステムに新機能を追加するには 少なくとも 1 カ所以上の変更 ( 仕様変更 ) が必要になる 追加機能要求仕様書 動画の保存と再生機能の新規に追加される要求仕様 要求 MOV.01 入手した動画の保存と再生を行う 理由カメラ付き携帯電話で静止画と動画が撮れるので 動画も一緒に扱いたい. 新規開発の時の要求仕様と同じ要領で作成する 対応させる 変更要求仕様書 要求 MVC.01 理由 動画の保存と再生機能を追加するするために 既存の 仕様 を変更する部分を扱う 入手した動画の保存と再生機能を追加する カメラ付き携帯電話で静止画と動画が撮れるので 動画も一緒に扱う必要が生じた 要求 MVC.01 設定操作のところで 動画を扱うための設定メニューを追加する 要求 MVC.02 機能選択メニューを変更して これらの機能を選択出来るようにする 要求 MVC.03 再生時に必要なバッファーを確保するために既存機能のバッファサイズを減らす 要求 MVC.04 保存時のファイル名の割り付けルールを変更する それぞれの下位要求の下に変更仕様を抽出する [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 37

(3 点セットの関係 ) TM を介して変更要求仕様書と変更設計書を繋ぐ 変更要求仕様書 TM は 変更要求仕様 と 変更設計書 の蝶番の役目を果たす TM の部分にいろいろな気付きの仕掛けを配置できる # 変更要求 仕様 A B C D E F G H 5 画面に通信記録の表示を追加する 5.1 接続状況の表示の大きさを に変更する f1(). 5.4 表示用メモリの配置を に変える F5() F7() 5.5 受信時データの区切りにコードを挿入する F9() TM( トレーサビリティ マトリクス ) System Creates 変更設計書 変更設計書 モジュール D の中で表示の変更方法についてのみ記述する 変更要求仕様を細かく分けることで 5.1 と 5.4 の変更方法に関する記述 ( 変更設計書 ) を分け ることができ その効果として レビューの精度が上がる 変更設計書 モジュール D の中でメモリの配置の変更方法についてのみ記述する 変更設計書 モジュール F の中でメモリの配置の変更方法についてのみ記述する [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 38

具体的な変更方法は変更設計書で対応する TM に 変更あり が示された単位で ソースコードレベルの具体的な変更方法を記述する ( 変更部分だけ ) 変更に伴うテスト内容 ( 単体テストに対応 ) もここで記述する ここで最終的に変更方法をレビューする バグの発生時に最初に立ち戻る場所でもある 派生開発においてはバグは変更した箇所に生じる 変更設計書の構成 ヘッダー部 構造の変更 関数外の変更 関数の変更 確認内容 マトリクスの交点の情報などで変更要求仕様書 (TM) と繋ぐ データの構造体の変更や 処理構造の変更の時に 図 で示す 関数の外の 定義 を変更する場合は ここに記述する 関数の中の 処理 を変更する場合は ここに記述する 1 つの関数とは限らない関数内の変更がないこともある 変更内容の適切さを確認するための 単体テスト の項目 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 39

3 点セット の成果物の意味 XDDP の変更プロセスでは 3 つの成果物を作成する ( 必須 ) 成果物カバー範囲記述内容レビュー機会 変更要求仕様書 What (Why) 何を変更するか? どのような振る舞いを変更するか なぜ 変更するのか? TM (Tracability Matrix) Where 変更する仕様がどこにあるか? 変更設計書 How 具体的な変更方法を記述する タイミングと視点を変えた効果的なレビューの機会を確保して 部分理解 の中で生じる担当者の思い込みや勘違いに気付く ソースコードを変更する前にレビューでバグを未然に防止する 今回の派生開発の変更記録として保存する [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 40

一気にソースコードを変更する XDDP では 準備された変更設計書を元に 全員が足並みを揃えて一気にソースコードを変更する 事前に変更設計書のレビューを終えている ソースコードの変更に必要な工数は確認されている 抜け駆け 変更は禁止だよ! 実装プロセス 単位時間当たりの生産性データを適用できるプロセス ソースコードのその箇所を見るのは 通常は 3 回目 である 80 130 行 / 時間 の実装プロセスの生産性を出すこともできる ソースコードの変更作業の段階で人を投入することが可能 変更要求仕様の段階で実装工数の予測はできる ソースコードの変更を 1 回 で済ませることで ソースコードの劣化を防ぐ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 41

正式文書はテスト後にマージする ベースの 公式文書 はテスト終了後 ( テスト後半 ) に短期間で更新 差分 の成果物はすべて事前にレビューによって承認されているさらに テストによってその変更が正しい ( 適切な ) ことを確認している構成管理手続きの中で 差分 情報を元にして公式文書を更新する テスト作業の一部と重ねることで文書更新の工数を隠す QA テストはほぼ収束したようだから マージ を開始するように 公式成果物 変更要求仕様書 変更設計書 機能仕様書 画面操作仕様書 制御仕様書 各段階の設計書 ( 仕様書 ) 関数仕様書 関数設計書 データ仕様 / 設計書 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 42

1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDP で派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDP でビジネスに勝つ 7. XDDP から 次 へ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 43

テストでできることは? 元から作り込まれた品質は変わらない テスト 川に流れ込んだ ゴミ を取り除く行為 テストの強化 ゴミを取り除く網の目を細かくしたり 網の数を増やすこと テストでは 水質 は変わらない 水質 は上流の 森 で決まる でも テスト結果から 水質 や 森 がわかる 水質 の問題 応答性に対して不適切なデータ構造安定化の障害となる複雑な処理構造可読性が悪く理解の支障になる 変化を加えた時にゴミに変化しやすい 性質 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 44

品質はプロセスに左右される ソフトウェアの開発 変換プロセス 検証プロセス 入力物から出力物に変換する 出力物に混入する欠陥を発見し修正する レビュー テスト 合理的な変換プロセス 成果物とプロセスが合理的連鎖で最終成果物を作り出す 検証プロセスが機能する XDDP は この状況を確保している 品質保証の根底となる [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 45

生産性データから効果が見える (1) 2 つの生産性の 差 からプロセスの様子がわかる 対全工程 ( 一般に認識されている ) 対実装工程 ( 要求仕様の難易度の影響を受けない ) 生成行数生成行数種類全工程の工数実装工程の工数生産性 2 8 行 / 時間 ( 一般 ) 80 100 行 / 時間 (XDDP) 差 大プロセスが整備され事前にレビューされている 小必要以上に ながら作業 が行われている可能性大 3 点セット の成果物があることで ながら作業 が大幅に減る [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 46

生産性データから効果が見える (2) 3 点セットの成果物を作ることで ソースコードの変更作業の生産性が向上 従来方法では 生産性は 5 10 行 / 時間 にまで低下する XDDPのプロセスでは 80 130 行 / 時間 も可能 変更行数 人数 20 000 行 5 人 注目! 2 3 割のソースコードの書き直しが生じていると思われます 生産性所要時間実装時間 / 個人 従来方法 5 行 /H 4000 時間 800 時間 XDDP 80 行 /H 250 時間 50 時間 4 ヶ月 1 週間余 3750 時間を使って 250 時間でソースコードを 変更できる状態を作り上げる. =XDDP の 3 点セット の成果物を用意する 実際には,3750 時間の 8 割程度で足りる. バグが 1/10 になることでテスト工数大幅減 平均で当初予定工数の 3 割減 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 47

複数チームでの開発もスムースに 派生開発を複数のチームで分担して開発する際に混乱しない 3 点セット の成果物で各チームの変更箇所などの情報が交換できるソースコードの変更をできるだけ遅らせて短期間で仕上げる 五月雨開発 にも効果を発揮する ベース 共通部分の改修 提供 A チームの変更 A チーム分担 B チームの変更 B チーム分担 統合 結合テスト C チームの変更 C チーム分担 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 48

1. 派生開発における品質問題 2. 品質のために生産性を犠牲にした 3. XDDP で派生開発のプロセス改善を 4. 追加機能要求仕様書 5. 変更 3 点セット 6. XDDP でビジネスに勝つ 7. XDDP から 次 へ [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 49

ソフトウェア開発の生産性は大幅に改善できる 生産性 3 倍 5 倍も可能 合理的な開発アプローチ と 事前のシミュレーション によって ソフトウエア開発の生産性は飛躍的に向上する 今まで ソフトウエア開発では生産性を追求してこなかったことで 改善の余地は手つかずで残っている XDDP にマッチしたテストのあり方も未開拓の状態 過去の文化と決別する絶好の機会 XDDP が その機会を提供する [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 50

オフショア開発から国内回帰へ ソフトウェア開発力 を失えば日本の産業の根底から崩れる 今日 製品を差別化するのは ソフトウェア 円高 製造部門の海外転出は止められなくても ソフトウェア開発は 品質 と 生産性 の向上で国内に留めることは可能 品質 と 生産性 の大幅な向上による競争力の強化へ 6K 職場 と決別し 憧れの職業へ ソフトウェア技術者に対する社会的地位の向上へ 品質と生産性の向上で これらが可能になることに気付いて欲しい [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 51

XDDP トライアングルの展開 XDDP の 3 つの技術は それぞれいろいろな取り組みに展開する 変化点管理 ISO 26262 DRBFM 影響箇所の見極め XDDP SPL(SPLE) リスク管理 プロジェクト計画 / 管理 PFD USDM FMEA Hazop プロセス保証 プロセス改善 形式言語との接合 UML との接合 [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 52

( 参考文献 ) 文献 ( 単行本 ) 1 改訂第 2 版 要求を仕様化する技術 表現する技術 ( 技術評論社 ) 2 派生開発 を成功させるプロセス改善の技術と極意 ( 技術評論社 ) USDM XDDP [JaSST 新潟 2012 基調講演 ] Copyright 2012 System Creates Inc., All rights reserved Page 53