
特別講義レポート-2013年度特別講義-
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
例会回数 |
例会開催日 |
活動内容 |
---|---|---|
1 |
2013年5月10日(金) |
【特別講義】 |
2 |
6月14日(金) |
【特別講義】 |
3 |
7月11日(木)~12日(金) |
合宿(会場:箱根ホテル小涌園) |
4 |
9月11日(水)~13日(金) |
ソフトウェア品質シンポジウム2013(会場:東洋大学/東京) |
5 |
10月11日(金) |
【特別講義】 |
6 |
11月8日(金) |
【特別講義】 |
7 |
12月20日(金) |
【特別講義】 |
8 |
2014年1月17日(金) |
【特別講義】 |
9 |
2月28日(金) |
分科会成果発表会 |
第1回特別講義 レポート
日時 |
2013年5月10日(金) 10:10~12:00 |
---|---|
会場 |
日本科学技術連盟・東高円寺ビル 地下1階講堂 |
テーマ |
「ソフトウェア品質向上活動の重要性~現場に喜ばれる活動を研究論文へ~」 |
講師名・所属 |
飯泉 紀子氏(日立ハイテクノロジーズ) |
司会 |
SQiP研究会運営委員長 秋山 浩一氏 (富士ゼロックス株式会社) |
アジェンダ |
1. ソフトウェア開発における制約と品質 |
アブストラクト |
ソフトウェア品質向上活動の重要性は、今更語らずとも重々承知と言われそうです。 |
<講義の要約> ◆1章 ソフトウェア開発に ■ソフトウェア開発の課題 ■達成する“品質”は何か、単位を何にするのか、目標値をいくつにするのか 『品質とは障害がないこと』とした場合、障害の少なさを単位当たりの量で把握する。≪単位≫はコード行数やファンクションポイント、≪量≫は開発の工程(プロセス)ごとに検出された障害数を利用する。 世の中の平均、自社の実力、顧客の要求から品質の目標値を決める。例えば、「1ヶ月後までに300万円で要求事項を実現してほしい」という顧客の要求に対し、「割り当てられるリソースは4~5人なので、品質レベルは“B”で請け負う(品質レベル“B”とは・・・)」と定義して納期とコストを守る。 SQuBOKのMartinの言葉にあるように、品質の達成度は『システムが本稼働するとき、どこまで真のビジネス(ユーザ)ニーズにあっているかということ』である。そのためには、進化し続けるシステムを構築すること、時間とともに変化する顧客の要求を的確に把握し、その変化に可能な限り応えることが重要である。また、開発のスピードを上げながら、ユーザのニーズとの不一致を極力少なくする努力が必要である。したがって、品質は、何を達成しようとしているのか、状況に合わせて定義するものである。 ◆2章 ソフトウェア品質向上の道筋 ■ゴール設定 ■アプローチの検討 ○SWOTとは 強み(Strength)、弱み(Weakness)、機会(Opportunity)、脅威(Threat)の4つの要因を軸に事業の評価や目標達成のための戦略を練るツールである。 ○マネージメントコントロールフレームワークとは マネージメントコントロールフレームワークとは期待されるように振舞いたくない原因を明らかにし、適合するアプローチでコントロールする手法で、原因とアプローチには以下のものがある。 ■施策実施と結果確認 ソフトウェア品質向上策:事例1 ○動機 ○要因 ○解決策 ○効果 ○成功の秘訣 ソフトウェア品質向上策:事例2 ○動機 ○課題 ○解決策 ○ドメイン知識の抽出と表現の実施 ○ドメイン知識の共有(活用)・効果 ○成功の秘訣 ◆3章 ソフトウェア品質技術の心得 ■ソフトウェア品質技術者とは ■研究会は練習の場 ■論文とは ◆質疑応答 Q:オリエンテーションに感銘した。このステップは飛ばし、知識レベルが異なるまま進めているが、担当者によって違う反応が返ってくることになり困っている。何かよい方法はないか? Q:ドメイン知識の共有による組織的開発力強化は、だれかが責任を持ってメンテナンスしていくことが必要であると思うが、それをどのようにしているか教えてほしい。 <講義の感想> |
第2回特別講義 レポート
日時 |
2013年6月14日(金) 10:00~12:00 |
---|---|
会場 |
日本科学技術連盟・東高円寺ビル 2階講堂 |
テーマ |
「なぜなぜとカイゼン(人重視マネジメントの考え方)」 |
講師名・所属 |
黒岩 雅彦氏(日本電気株式会社) |
司会 |
第2分科会主査 早川 勲氏(アズビル株式会社) |
アジェンダ |
1. 現在要求されるもの、過去の品質マネジメントにおける課題 |
アブストラクト |
現在のSI事業、SW開発においては、非常に短期間で高品質の要求が求められています。しかしながら、要求される機能は複雑化し、その体制もオフショア開発を含めた多くの組織、会社、要員による遂行が必要になります。また、要員確保のために、多くの新人、新規参画者による体制を構築せざるを得ません。 |
<講義の要約> ◆今事業に求められるもの ◆なぜなぜ(なぜ3)の種類と目的 ◆基本的な品質管理について ◆従来の品質管理手法の課題 ◆ミッションクリティカルシステムでの考慮点 ◆対策としての「プロセスベースの品質保証」の適用 ◆プロセスカイゼンの考え方 ◆忙しい人を更に忙しくするジレンマ ◆有識者の苦悩 ◆良いチェックシートとは ◆なぜ3の適用範囲 ◆現実のスピード感を考慮しての対策制御 ◆大局観によるカイゼンの重要性 ◆コミュニケーション能力の重要性 ◆適材適所で、かつ助け合える要因配置 ◆権限委譲によるチーム力の発揮 ◆当事者意識の重要性 ◆部下の育成 ◆マネジメントの役割とは ◆内部摩擦の無駄 ◆楽しく仕事をするということ ◆風土を作ることの重要性 ◆質疑応答 Q.本日説明いただいた内容の動きが出来れば本当に組織は良くなると思うが、黒岩様レベルの人を育成するのは現実には難しいと思う。なぜなぜ塾を開講して育成しているそうだが、具体的にはどのようなやり方をしているのか教えてほしい。 Q.「私は面倒くさがりやだから・・・は嫌だ」という言葉を多く聞かれたが、その反面、「人を育てないとみんなが幸せになるラインを決めて、そこから下の人は個別に指導すればいい」とも仰っておられる。そもそも「個別に指導」は外から見ると面倒くさいことだと思うが黒岩様はそのようには見えない。「何を面倒くさいと思うか」が大事なキーポイントのように思うがこの基準は何か? ◆感想 |
第3回特別講義 レポート
日時 |
2013年7月11日(木) 13:30~16:00 |
---|---|
会場 |
箱根ホテル小湧園 蓬莱 |
テーマ |
「チームビルディングの実践と理論 ~組織とコミュニケーションのモデリング~」 |
講師名・所属 |
栗田 太郎氏(フェリカネットワークス株式会社) |
司会 |
|
アジェンダ |
1. [簡単な解説] 「モデル」とは |
アブストラクト |
モデリングやコミュニケーション、チームビルディングに関する基本的なことがらを確認した後、個人やチームでブロックを用いたモデリングを行いながら対話をしていくことで、自己紹介やチームビルディングを試行し、研究会におけるチームの形成と、一人ではできないソフトウェアの品質確保に向けたコミュニケーションの重要性の再確認を行う。 |
<講義の要約> ◆「モデル」とは ◆チームビルディングとその必要性 チームビルディングの目的は、「チームを形成すること」「コミュニケーションを図り、相互に理解し、そしてお互いの信頼を深めること」にある。 プロジェクトのチームビルディングを繰り返すことが「プロジェクトとして共有された価値観」を醸成し、プロジェクトを成功に導く。 システム開発ではコミュニケーションが重要視される。コミュニケーションが必要なのは、システム開発に限ったことではないが、人が関わる以上、複数の人の意見を聞きながら、合意を得て進めていく必要があるためである。 チームビルディングとは、チームで目的を達成するために必要となるコミュニケーションの活性化を図るために行う日々の取り組みである。 ◆[ワークショップ]手はじめ・手ならい ワークショップはブロックを使い、コンストラクショニズム(「手を動かしてみる」「ものを使って考える」「手を動かして考える」こと)を体験した。 ◆[ワークショップ]チームでのモデリング ◆コンストラクショニズムとシリアスゲーム ◆チームビルディングとコミュニケーション まずは、「親睦を図る。お互いを知る」ことから始め、この後、プロジェクトの課題に対する議論、技術やその移転に関する議論、技術的なコミュニケーションに関する議論、コミュニケーションや議論に関する議論など、「チームが直面している課題に関する議論」へと発展させていく。 ◆最後に <講義の感想> |
第5回特別講義 レポート
日時 |
2013年10月11日(金) 10:00~12:00 |
---|---|
会場 |
日本科学技術連盟・東高円寺ビル 2階講堂 |
テーマ |
「リーン開発と品質」 |
講師名・所属 |
天野 勝氏(株式会社 永和システムマネジメント) |
司会 |
鷲崎 弘宜氏(早稲田大学准教授) |
アジェンダ |
1. リーンから、リーン(ソフトウェア)開発へ |
アブストラクト |
トヨタ生産方式の研究から生まれた、「リーン」という概念が、ソフトウェア開発の現場でも活かされるようになってきている。しかし、リーン開発は原則集にしか過ぎないため、プロセスとしての形を持たず、理解、認識がしにくいという特徴がある。 |
司会者:鷲崎氏からの講演への着目点のご案内 <講義の要約> 【1】リーンから、リーン(ソフトウェア)開発へ ・リーンの起源 ・TPS(トヨタ生産方式)の家 ・リーンソフトウェア開発 【2】リーン開発で重視する「品質」 ・SQuBOK(ソフトウェア品質)とリーン開発との接点 ・納品後のソフトウェアの機能の利用度 ・システムは陳腐化する 【3】リーン開発 ・前提とするビジネス環境 ・ニーズに合う商品を提供するために 【4】リーン開発の原則 【タスク切り替えのムダを体験するワーク】 ・原則2:品質を作りこむ ・原則3:知識を作り出す ・原則4:決定を遅らせる ・原則5:速く提供する ・原則6:人を尊重する ・原則7:全体を最適化する 【5】リーン開発はアジャイル開発か? ・代表的なアジャイル開発手法 ・アジャイル開発とリーン開発の関係 【バリューストリーム分析と7つの原則の理解を深める演習の紹介】 ・7つの原則の理解を深める 【6】リーン開発的なソフトウェア開発の分析 【7】リーン開発を取り巻く世界 ・タスクボードの例(人毎の作業を把握) ・ファーストフード店の座席稼働率の問題 ・リーンスタートアップと学習サイクル ◆質疑応答 Q2. 原則4の「決定を遅らせる」についてですが、部下とか回りのメンバーに影響する仕事をしている場合に、自分の決定を遅らせると回りに影響が出てくるし、出荷間際に作りこんだものは回りにも影響が出てしまって品質も保てないのではないでしょうか?そこで解釈は以下で宜しいでしょうか。方針の決定、及び主要な機能の改造追加はしておき、出荷に向けたチューニングは出荷間際に実施する。という事でしょうか? Q3. タスクボードを試したがうまくいきませんでした。人の常として自分のノルマを守ろうという考えが強いからだと思いました。最終的に関連者全体がうまく回るという事を伝えて普及させるにはどうしたら良いでしょうか。 Q4. バリューストリームマップの書き方で「価値」の行、「ムダ」の行の書き方について教えてほしい。 ◆感想 |
第6回特別講義 レポート
日時 |
2013年11月8日(金) 10:00~12:00 |
---|---|
会場 |
日本科学技術連盟・東高円寺ビル 2階講堂 |
テーマ |
「コンピュータゲーム開発と品質」 |
講師名・所属 |
長久 勝氏(国立情報学研究所) |
司会 |
SQiP研究会第4分科会主査 金山 豊浩氏((株)ミツエーリンクス) |
アジェンダ |
1. 品質の観点からゲーム産業を俯瞰 |
アブストラクト |
コンピュータゲームは、その多くが非常に短期間で消費されてしまうため、ユーザ体験が次回作の購買行動に強く影響を与えます。 |
<講義の要約> ◆品質の観点からゲーム産業を俯瞰 上記のようなビジネス状況において、ゲーム業界ではQCDがどのように考えられているのかについて紹介する。 「C:コスト」を占める順位は、人件費、広告宣伝費、運営費、開発環境整備費、管理費、製造費などである。いちばん掛かるのはソフトウェアエンジニア、シナリオライタ、デザイナなどを雇用する人件費で、次いではコンシューマに製品を通知するための広告宣伝費である。 「D:納期」は基本的に短納期が求められる。コストの大半は人件費なので、コストを抑えるために、短期間で制作することが必要で、同じ内容(アイデア)のゲームであれば、出来るだけ早く販売したものが勝者になる。投資効果が見込める大規模タイトルは十分な投資と時間を掛けて制作することができるが、新ジャンルは出来るだけ短い期間で制作し出来るだけ早く販売することが求められる。 「Q:品質」の要求水準は、ユーザ視点(需要)と事業者視点(供給)で決まる。 ◆コンピュータゲーム開発の現状について ○開発の自動化(ツールの活用) 2)CI(継続的インテグレーション) ○開発プロセス 〇ゲームとしての品質 ◆コンピュータゲーム開発のこれからについて ○DSLのうれしさ DSLを使ってシナリオの矛盾点を見つけるデモ ◆質疑応答 A:欧米ではサブプライムの時に多くのスタジオがリストラを実施した。リストラされた彼らの多くは、他の仕事に就くのではなく、数人が集まってインディゲームを制作するようになった。 Q:LTSAなどのモデル検査の中で、例えば、最初に戻るとか、もう一回やってみるといったことは、テスト観点でいうとテストデザインに相当すると思うが、シナリオからどこをテストするのか、どのような検査コードで、どのような条件で組み上げていくのか、ということを、どのように設計しているのか教えてほしい。 A:モデル検査に限ったことではなく、ユニットテスト(テスティングFW)の上で自動検査コードを出す取り組みと似ている。 <講義の感想> |
第7回特別講義 レポート
日時 |
2013年12月20日(金) 10:00~12:00 |
---|---|
会場 |
日本科学技術連盟・東高円寺ビル 2階講堂 |
テーマ |
「システムズエンジニアリングにおける運用と品質」 |
講師名・所属 |
山本 修一郎氏(名古屋大学教授) |
司会 |
鷲崎 弘宜氏(早稲田大学准教授) |
アジェンダ |
1.システムズエンジニアリングとは |
アブストラクト |
システムズエンジニアリングで重要となる関知識として、システ ムの運用概念、要求工学、アーキテクチャフレームワークの事例として、INCOSE ConOps、IEEE29148要求工学標準、TOGAFを概観する。 |
司会者:鷲崎氏からの講演への着目点のご案内 <講義の要約> ◆はじめに ◆1.システムズエンジニアリングとは 2)Soft Systems Methodology(ソフトウェアシステム方法論) 3)21世紀systems Methodology(システムズエンジニアリングの情報) ・社会システム ・システムの階層 最近は従来のシステムズエンジニアリングよりも更に複雑な問題を解決するための新たな技術が、エンタープライズシステムズエンジニアリングと言われている。よって、企業の為のシステム工学ではなくて、社会全体で相互結合されるようなシステムをどうやって開発していくかと言うことである。 ・5階層のシステム工学 ・外部ループ・内部ループ ・発展と変革 ・システム科学の類型 ・扱いにくい問題の統治 ・分析と合成 4)Enterprise Systems Engineering (以降、ESEと略記) ◆2.関連知識(具体的な関連分野の知識) 1)運用概念の事例 ConOps ・CONOPSの構成要素 ・Concept of Operations(CONOPS)文書 ・プロダクトラインに対するCONOPS (http://resources.sei.cmu.edu/asset_files/TechnicalReport/1999_005_001_16745.pdf) ・CONOPS文書の位置付け例 ・プロダクトラインのためのCONOPS文書の構成例 ・CONOPS文書の内容例 ・CONOPSの定義対象 ・CONOPSの活用工程 2)要求工学標準IEEE29148におけるシステム要求 ・ステークホルダ要求(StRS)の構成例 ・システム要求の構成例 3)システム運用知識の抽出方法(実例からの考察) ・運用の限界 ・運用前の要求品質の確保とその記載方法 ・運用要求定義票と運用要求の抽出法 ・運用活動知識の構成と運用活動定義票の付随資料例 4)アーキテクチャフレームワーク事例 TOGAF(The Open Group Architecture Framework) ・Zachmanフレームワーク ・変換分析 ・TOGAFの主要なアクタ関係 ・TOGAFのステークホルダ ・ADM(Architecture Development Method)フェーズと技法の関係 よって、プロジェクトを成功させる秘訣は一つしか無い。目的を実現できる能力を持った者を集める事である。そうでないと途中で放棄される。もう一つのやり方は、自分の組織だけでやるのであれば、そのメンバーの能力に応じた目的だけを定義する事である。こういう議論を開発現場ですると夢が無いと言われるが、実際は非現実的な夢を見れば失敗するのである。では、自分達の能力を超えた夢を達成するために何をしたら良いかと言えば能力を持った外部パートナーと協業するべきである。 こういった考慮をするために最初に作るのはビジネスアーキテクチャである。ビジネスアーキテクチャとは、ゴールの定義とビジネスプロセスの定義である。これはまさにCONOPSでやるところである。つまり、運用回りの明確化、情報システムのアーキテクチャ、テクノロジーアーキテクチャ(情報技術基盤)の設計である。情報システムアーキテクチャの中で、データアーキテクチャとアプリケーションアーキテクチャを定義する。次に、機会とソリューションとの対応でどういう可能性があるか分析する。これがわかるとこの中でトランジションアーキテクチャが明確になる。変換分析では、現状から有るべき姿をどう実現するかを分析する。ここでケイパビリティ計画が必要となる。つまり、実現可能なリソースがあるか、さらに配置はどうするかということである。 次に移行計画を作成し、実装ガバナンスへ入り、実際のシステム開発に入る。最後にアーキテクチャ変更管理を実施するがここが最重要である。通常システムを作ったら終わりと考えていないだろうか。作り上げた次の段階から運用が始まるわけで、システムのゴールを定義したがこの定義したゴールがシステムの運用によって、本当に達成されたかどうかをモニタリングする必要がある。 この時に実装されたシステムが目的を達成できていなかったら、二つの場合がある。一つはシステムの実装が誤っている。二つ目は目的を間違えている。つまりビジネス環境の中でこういう目的を立ててシステムを作ったが、その目的は仮説でしかない。ビジネスが変化していれば、あるいはビジネスの捉え方を誤っていれば目的が正しく達成できない事が有る。その時は目的を変える必要が有る。つまり、新たな目的のためにアーキテクチャビジョンを再設計する必要が有る。よって、TOGAFでもHitchins氏らの提唱の紹介で説明したような外部ループがここで回っているという事である。 TOGAFはアーキテクチャとかソリューションをしっかりと定義するので、それをビルディングブロックとしてリポジトリに入れておき再利用するようにするという仕組みを提案している。よって、ZachmanのEAと比較するとかなりにプロセス寄りになっていることがわかる。具体的にどのようにアーキテクチャを開発するのかという方法がADMである。これら各フェーズが繰り返されるわけである。 ・TOGAFのエンタープライズ連続体 ・ケイパビリティとアーキテクチャ ・TOGAFアーキテクチャ要求仕様の構成と開発工程 ・FEAの概要(紹介のみ) ・Gartnerフレームワークの工程(紹介のみ) ・アーキテクチャフレームワークの比較 ◆3.保証ケースによる品質の確認手段 1)非機能要求グレードと保証ケース ・保証ケース(D-Case)の例 ・D-Caseの5つの役割 ・D-Case実装評価研究会:4回開催、述べ130名が出席(http://www.dcase.jp) ・D-Case活用事例 ・安全性ケースを作成する上での課題 ・議論分解パターンの構成 ・議論分解パターンの分類 ・パターン事例 ・パターンの記述例 分解状況はアーキテクチャが明確になっているときである。アーキテクチャが明確になっていない場合はアーキテクチャ分解パターンは使えない。解決策はシステムのアーキテクチャが二つのサブシステムによって構成されているとすると、サブシステム間に相互作用が有る。その場合、システムが保証されると説明されるためには、少なくともサブシステムの両者が保証されていると説明されていること、更に、サブシステム間の相互作用が保証されているという事が説明できる事が条件である。そのときの前提はシステムアーキテクチャの定義である。 また、各説明要素はand条件である。なぜかと言うとシステムの安全性や妥当性を保証するためのものだからである。つまり、条件が成立する時もしない時もシステムは安全でなければならないからである。 条件選択に対する信頼性も用意されている。矛盾を解決する時のパターン、代替案と比較するパターン、参照モデルのパターン、DEOSプロセス等が用意されている。なお、DEOSプロジェクトとは、システムが通常運用されている時も安全で、システムが変革対応する時も安全、更にシステムが障害を起こした時も迅速対応できる、つまりシステムが全体で信頼できるという考え方である。よって、DEOSプロセスは運用を前提としたような考え方になっている。 IPAが数年前に非機能要求のグレード表を作ったが、その非機能要求に応じた形で、確かにこのサービスは非機能要求を満たしているという事を示すというためのパターンである。 Availability(可用性)をシステムは達成していますという事をまず主張する。次にAvailabilityの複数の各品質特性を達成している。その品質特性を達成している事を試すために、特性評価指標が定義されており、その特性表か指標が達成されている事が主張になり、その主張を満たすための情報が証拠になる。達成結果つまりテスト結果証拠文書等がエビデンスになる。 ・Dimensions of Assurance Integrity Level(保証の一貫性レベル) ・欠陥分析手法と安全性ケース 2)ISO26262と安全性ケース ・ISO26262の概要 3)非機能要求グレードと保証ケース ・主張の定量評価尺度定義法 4)O-DA標準の概説(TOGAFのdependability拡張としてのO-DA技術標準) ・O-DA(安全・高信頼性検証国際標準)を発表 8/7日(米国時間6日) ・O-DA標準の構成 ・Open Dependability through Assuredness Framework(変化対応サイクル) ・高信頼性(Assuredness)の言葉の意味・定義 ・高保証アーキテクチャの言葉の意味・定義 ・説明責任の言葉の意味・定義 ・保証内容メタモデルの言葉の意味・定義 ・高信頼ADMの概要 運用についても運用管理の保証ケースを作る事が明記されている。よって、運用している時もこの運用は問題なく実行されているという証拠を残す必要があるという事である。つまり、運用プロセスが定義されている事が条件なので、運用要求記述票の説明で述べたように、運用活動とは何か、運用活動におけるリスクとは何かを明確に定義して、運用リスクを解消する対策がとられているという事を確認する必要がある。これが達成できれば、保証ケースが作成できる事になる。そのために、ITILについての保証ケースを作る必要がある。 5)ITILと保証ケース ・運用活動の妥当性確認例 ・ITサービス継続性管理の活動 ・開始段階のチェックリストの例 ・ITサービス継続性管理に対する開始段階に対するD-Case 6)テストと保証ケース ・D-Caseとテストの関係 ・テスト十分性に対する保証ケース作成手順 ・要求記述表 ・要求逸脱分析表 パラメータは要求記述表の各記述項目のそれぞれに対して、HAZOP(Hazard and Operability Study)のガイドワード(逸脱の条件)を用いて、必要とされる以外の情報が入る可能性があるとか、部分的で完全ではないとかの逸脱の条件を分析して記載する。その逸脱の重要性をリストアップして重大な事項についてはテストをする。それ以外はテストしない。なぜかというと、システマチックに網羅的にあげる事ができるようになるため、この条件網羅の結果は非常に多数となる。その結果多数のためにテストができなくなるからである。 ・テスト十分性確認 D-Case(一般形) 7)具体例 ・要求記述表の例 ・要求逸脱分析表の例と・テスト十分性確認 D-Case(具体例) ◆Q&A A1_段階毎に分類した活動の大分類があるが、まず活動内容に分解する。その活動内容の結果全てが最下段の証跡になる。同様に全ての段階毎の活動結果を証跡として並べた物であり、この条件全てを満たせば、サービスの継続性が維持できる事を証明できるということである。 Q2_システムのある観点で分解して、andで満たしていくという考え方のみだと、Open systemまでの保証はできるが、Enterpriseになると更に複雑な相関関係も考慮が必要なので、そこまではカバーできないように考えるがいかがか。冒頭のシステムの階層の説明で、「Enterprise」「System of systems」「System」の階層が示されているが、SOSまでは、システムとシステムの相関であるので個々のシステムも満足、つまりdependableかどうか確かめていけば全体としてもdependableだという考え方と理解した。しかし、Enterpriseは更に複雑との理解だがいかがか。 A2_結局は階層性が有ると言う事なので、Enterpriseの中に複数のSOSがある事である。環境とも相互作用があるし、システムと環境の作用も有る。環境の中自体はわからないとしても、環境とシステムの間の関係の分析はある程度できるし、それを分析しておかないと想定外の事が起きた時にどうするかがわからない。リスクマネージメントの根本はシステムが想定した条件の下ではただしく動作する事が確認できる。想定している範囲で条件からの逸脱が有っても対処している。つまり例外入力に対して対応ができる。それは例外処理が有るからである。では最後に何が残るかというと、想定した例外以外の何かが起きるCaseでそれは書けない。では起きた時にどうするかというと運用プロセスで対応する。よって、それが最後の歯止めになる。運用プロセスにおいてシステムが困難な状況に陥ったら、「このようにしてここまでは何とかして継続性を保証します」と記載されていれば、その訓練はできる。「何が起きるか解らないが何か重大な異常が起きた時にはこのようにしてシステムの継続性を保証します。」という証拠は作成可能である。よって、このようにすればEnterprise系のシステムでもAssurance Caseを適用できる。 Q3_システムエンジニアリングとして運用についてお客様に対し契約をアプローチするが、契約に結びつかない事が多い。特にお客様側が想定していない状況を条件としても交渉が難しい状況である。よってこういう運用についての提案は誰が出すかが重要と考える。ステークホルダを誤ると突然否定される恐れもある。よってこういった取り組みはお客様側と共に検討していく以外無いのか。 A3_その通りである。正しいお客を見つける必要が有る。間違ったお客様がステークホルダだと思い込む場合もある。逆に言えば、間違っていると判断した場合には適切なステークホルダを探しに行く必要が有る。 Q4_Dependability Caseはあくまでも証拠があるという事であって、運用するシステムは正しいとか安全だと言う保証ではないと考えて良いのか。つまり現実の運用の中で確かに安全であるとかDependableであるという事は、D-caseなどに照らして判断して、間違いが有れば見直して行くという事か。もしも前提が間違っている場合は、Caseの見直しもあり得るのか。 A4_その通りである。システムが安全だという説明ドキュメントがAssurance Caseである。説明の中にはシステムが安全だという証拠がある。という事である。つまり、なぜ安全だと言えるのかという事を説明する文書である。前提が間違っていればCaseを見直す。必要な議論が抜けている場合も有るし、必要な証拠がそろっていない場合も有る。最悪の場合証拠が偽造の場合もある。 Q5_証拠能力の内容で、SNSとかIDサービスでは「如何に受けているか」とか「如何に沢山の人が使っているか」という尺度が、品質が良いという尺度よりもビジネス要件として重要である。これを本日の手法で検証しようとした場合、アクセス数をエビデンスとして使うべきと考えるが、企画の段階で取れるアクセス数と、サービス立ち上げ後の階で把握できるアクセス数との間では、ユーザの層の違いとかで中身が異なる。その場合証拠として正しいかどうかが危ういと見られる恐れが有る。このように同じ手法で把握したとしか主張できない場合もある。その場合は企画の段階で何を正とするかを合意した上で進める必要があるという事か。 A5_そうならないように企画段階でしっかりとAssurance Caseを書くという事である。つまり、アクセス数がこの手法によって収集されますと定義する事である。 Q6_安全性は大事なコンセプトだが、「謝ってしまえば良い」というサービスも多く有る。そういう風土に対して金券を配れば良いとか、値段の交渉にも発展する場合もある。また、電子書籍を出した時にユーザがAPLをInstallできなかった時に、社長がNGは2割か3割でしょと言ってしまったものとかもある。こういった事例は社会をダメにしていると思う。こういった事例も含めプロセスだけでなく社会全体の状況を見ていく必要が有ると考える。しかしながら風潮としては謝ってしまえば良いという方が強まっていると感じるがいかがか。 A6_コストパーフォーマンス的には謝って済む場合はその方が良いかも知れない。逆に、それによって失う信用もあるのでそういった事について議論すべきと考える。つまり信頼性を保証すべき対象の選択について保証ケースを使って議論をすべきと考える。よって、全てを徹底的に実施するという事ではないと考える。すなわち、保証対象の選択という議論がある。もう一つは、謝る謝らないに依らず罰則規定が有るようなものもある。つまり法律は守る必要が有る。この範囲で守っていますという事についての説明をする必要が有る。そしてその事についてAssurance Caseを書くことができる。 ◆感想 |
第8回特別講義 レポート
日時 |
2014年1月17日(金) 10:00~12:00 |
---|---|
会場 |
(財)日本科学技術連盟・東高円寺ビル 2階講堂 |
テーマ |
品質知識体系とソフトウェア開発技術 - SQuBOK を中心に - |
講師名・所属 |
鷲崎 弘宜氏(早稲田大学) |
司会 |
演習Ⅲ主査 小池 利和氏(ヤマハ(株)) |
アジェンダ |
・エンジニアリングとは: 科学的基盤、妥当な知識、コミュニティ、社会への価値 ・品質の知識体系:SWEBOK、SQuBOK ・知識体系の活用:ポータル、辞書、文献ガイド ・SQuBOKによるソフトウェア開発技術と品質の俯瞰 ・SQuBOKにみる主要な品質組み入れ技術: 設計、実装、運用ほか |
アブストラクト |
あなたのソフトウェア品質活動は「正統なエンジニアリング」を成していますか? |
<講義の要約> ◆エンジニアリングとは 知識体系としてSQuBOKがあると何が嬉しいのか。我々は知識を得るために、書籍を読んだり講習会に参加したり様々な場面を通じて、知識を高めたり深めたり広げたりしているが、これだけでプロフェッショナルとしての価値を形成することは難しい。なぜならベストプラクティスに裏打ちされたプロフェッショナリズムを高めるためには、知識だけではうまくいかず、経験やガイドが必要となるからである。 ◆品質の知識体系の活用
ソフトウェアを取り巻く世界を、組織、ビジネス、システム、ソフトウェアという階層で考えると、以下のものがあり、相互に関係している。 SQuBOK:ソフトウェア品質知識体系ガイド→ソフトウェア ○SWEBOKについて 全体 新設KA:プロフェッショナル実践、経済、計算基礎、数学基礎、一般基礎 既存のKAでの拡充・新設 テストKA 拡充:テスト目的(ユーザビリティ・インタラクションテスティング、テスト駆動開発) 品質KA 拡充:安全性(セーフティ):セーフティハザード分析技法など 拡充:品質ツール SWEBOKはソフトウェア工学を広く扱っており、ソフトウェア品質については浅い部分もある。ソフトウェア品質に絞って深堀されたものが必要で、そのためにSQuBOKがある ○SQuBOKについて 1. 最新化:国際規格、IT業界変化への対応 2. 樹形図や品質用語を見直し、一貫性と網羅性を確保 3. (第1版では着手することのできなかった)開発領域の拡充 ※すべての人(V&V開発の前半に携わる人)に品質の意識を広げる また、具体的な追加・改訂は以下の通りである。 ソフトウェア品質の基本概念 ソフトウェア品質マネージメント ソフトウェア品質技術 記述内容に注目すると、知識の【定義】以外に【目的】【方法】【効果】【参考文献】【関連トピック】を併記している。ハンドブックのイメージで活用できる。 ◆知識体系の活用 ◆SQuBOKにみる開発技術と品質 活用事例:JAVAスクリプトのアプリケーションに内在するバグ検出 ○工程に個別な品質技術(前半) 要求分析の技法 設計の技法 アーキテクチャ方法論(品質駆動設計・評価ほか)、DSM、フレームワーク 詳細設計の技法:テスト駆動開発、デザインパターン、設計原則 (*)Openthology(コタツモデル):ステークホルダが(コタツに入って)膝を突き合わし一緒に仕様を定義していく開発スタイルのこと 活用事例:リダイレクトシステム開発 品質シナリオとは品質に特化した分岐のない物語のことである。ある刺激源から刺激が成果物に到着したら、成果物から応答が出て、その応答を何らかの方法で測定する。この時、成果物がどういう環境(状態)なのかを記述する。例えば「(環境)通常稼働時に、(刺激)リダイレクト情報に変更があった場合、(応答)運用を止めずに反映できる」「(環境)通常稼働時に(刺激)高負荷をかけた場合(応答)HTTPリクエストを秒間1000トランザクション処理できる」などである。これを活用すれば、品質要求を明確にできる。 ゴール思考分析は、実現すべき機能のゴールと品質のゴールを据え、そのためには何が必要で、そのためには何が必要というように、単純に必要なものを上げていく。これを活用すれば、定義したモジュールがゴール対してムダ・モレなく貢献できていることを確認できる。 アーキテクチャ設計時やコンポーネントの詳細設計時に、品質を組み込む方法として品質駆動設計がある。品質駆動設計では、品質要求に対して、成果物の中の形を設計する時に、実績のある、実現手法、アーキテクチャパターンを活用する。これらを活用するに当たって配慮すべきことはトレードオフである。ある品質に注力すると他の品質に影響が出る。例えばセキュリティを重視するとパフォーマンスは落ちる。また、これらの過程を残しておくことに価値がある。将来の機能追加や修正の時に影響範囲を特定する資料として活用できる。 ○工程に個別な品質技術(後半) コーディング規約、リファクタリング、防御的プログラミング・契約による設計、 運用の技法 保守の技法 活用事例:開発と運用に見える次の"ABCD" ○専門的品質特性の品質技術 ユーザビリティの技法 セーフティ(安全性)の技法 セキュリティの技法 活用事例:セキュリティパターン ◆まとめと期待 ◆質疑応答(コメント含む) Q1:個人的に技術者の倫理に触れる機会があり、世の中には、エレベータの話、自動車の話などがあるが、ソフトウェアは見えてこない。今後これらがSWEBOKに含まれる可能性はあるのか教えてほしい。 A1:海外ではBOKを据えた上で同業者コミュニティをソサエティとして扱っている。昔のギルドみたいなイメージでそれがBOKに反映されている。情報処理学会などでも倫理の話は出ている。今後のソフトウェア品質認定試験に入ってくるかもしれない。 Q2:倫理は重要なので、他の人がどのように考えているかを知りたい人もいる。そのような情報があるのか教えてほしい。 A2:SQuBOKには入ってはいない。いずれは考える必要がある。現状のソフトウェア認定試験に倫理規定は入っていないが、いずれは倫理規定を遵守する成約をした上で資格認定することが必要となる。 鷲崎氏から補足: <講義の感想> |