ソフトウェア設計プロセスの改革 - ogis-ri.co.jp · 3101post88要求書(2回目)...
TRANSCRIPT
SEIKO EPSON CORPORATION BS事業部 2006・6・28
オブジェクト指向導入による
生産性の向上
ソフトウェア設計プロセスの改革ソフトウェア設計プロセスの改革
SEIKO EPSON CORPORATION BS事業部 2006・6・28
セイコーエプソン株式会社セイコーエプソン株式会社BS事業部BS事業部 BS事業推進部BS事業推進部TM(ターミナルモジュール)のファームウェア開発TM(ターミナルモジュール)のファームウェア開発(レシートプリンタ、ラベルプリンタの開発)(レシートプリンタ、ラベルプリンタの開発)
業務用小型プリンタのファームウェア開発業務用小型プリンタのファームウェア開発・レシート・レシート・ラベル・ラベル・チェック・チェック
開発対象としての特徴と課題開発対象としての特徴と課題・派生商品開発が多い(顧客要望への対応)・派生商品開発が多い(顧客要望への対応)・ハード環境に合わせ開発を行っている(メカ、ASIC・・・)・ハード環境に合わせ開発を行っている(メカ、ASIC・・・)・人(チーム)、機種に依存した構造・人(チーム)、機種に依存した構造
開発対象製品の紹介開発対象製品の紹介
SEIKO EPSON CORPORATION BS事業部 2006・6・28
目次目次
1.取り組みの目的・生産性の向上
・解決したい課題
・取り組みのポイント
2.プロセス設計導入のポイント
3.技術導入のポイント
4.成果
5.まとめ
SEIKO EPSON CORPORATION BS事業部 2006・6・28
取り組みの目的取り組みの目的増加するソフトウェアへの要求に対応するためには、これまでの人に依存した開発体制/技術では応えられない。生産性の向上と、人に依存しない開発体制への移行が必要。設計プロセスの見える化。部品の再利用を促進。
<Q> 部品の再利用:作らない プロセス見える化:繰り返せるプロセス 計測:プロセス、成果物の評価による改善
<C> 共通部品:作らない:30%削減
(品質向上、効率向上)<D>
プロセス見える化:見積精度向上、納期遵守(計測による実績の把握)
<Q> 部品の再利用:作らない プロセス見える化:繰り返せるプロセス 計測:プロセス、成果物の評価による改善
<C> 共通部品:作らない:30%削減
(品質向上、効率向上)<D>
プロセス見える化:見積精度向上、納期遵守(計測による実績の把握)
SEIKO EPSON CORPORATION BS事業部 2006・6・28
取り組みの目的取り組みの目的
1.生産性の向上・増加する要望に迅速に応える
・手戻りの削減
2.解決したい課題・人に依存した体制
・効率を計れない現状
・外部から見えない設計プロセス
3.取り組みのポイント・技術導入はプロセス設計の導入とセット
SEIKO EPSON CORPORATION BS事業部 2006・6・28
プロセス設計導入のポイントプロセス設計導入のポイント
1.CMMのノウハウ導入・プロセス設計
・計測の実践
・できるところから
2.ベースになる基礎知識・計画的なセミナー
・実践を伴う演習の導入
3.取り組みのポイント・改革の必要性を理解することが必要
4.技術の改革に先行して開始
SEIKO EPSON CORPORATION BS事業部 2006・6・28
今後
従来
プロセス設計プロセス設計 設計設計 実装実装 デバックデバック工程工程
なしなし個人の頭の中個人の頭の中大日程・中日程大日程・中日程
メカ・ハードメカ・ハード仕様書仕様書
概要設計概要設計 詳細設計詳細設計 コーディングコーディング デバッグデバッグ
PFDによるPFDによるプロセス設計プロセス設計
メカ・ハードメカ・ハード仕様書仕様書
要求分析要求分析 要求仕様書要求仕様書 構造設計構造設計 設計設計
ソースソース自動生成自動生成
コーディングコーディング
デバッグデバッグ++
手戻り手戻り
手戻り極小化手戻り極小化
個人の個人のノウハウノウハウ
プロセス設計プロセス設計
SEIKO EPSON CORPORATION BS事業部 2006・6・28
プロセス・フロープロセス・フロー・・ダイヤグラム(PFD)ダイヤグラム(PFD)
プロセス設計プロセス設計
作業をプロセスと成果物の連鎖で表現する作業をプロセスと成果物の連鎖で表現する
SEIKO EPSON CORPORATION BS事業部 2006・6・28
プロセス設計プロセス設計
プロセス定義・成果物定義プロセス定義・成果物定義
プロセスと成果物を明確にするプロセスと成果物を明確にする
SEIKO EPSON CORPORATION BS事業部 2006・6・28
今後
従来
見積もり見積もり 進捗管理進捗管理 結果の評価結果の評価工程工程
個人の経験測個人の経験測から見積から見積
スケジュールスケジュール
詳細実績なし詳細実績なし週単位の報告週単位の報告
詳細データなし詳細データなし工程データなし工程データなし全体工数のみ全体工数のみ
日々の実績日々の実績入力入力
データ収集データ収集
実績集計実績集計による監視による監視
実績集計値実績集計値
生産性指標生産性指標見積データ見積データ
スケジュールスケジュール見直し見直し
対策検討対策検討
成果物視点の成果物視点の工数見積工数見積
スケジュールスケジュール
フィードバック・見積精度向上フィードバック・見積精度向上
設計プロセス見直し設計プロセス見直し
プロセス設計と計測プロセス設計と計測
SEIKO EPSON CORPORATION BS事業部 2006・6・28
基礎知識の習得基礎知識の習得
1.ソフトウェア開発のベース知識・セミナー開催 40回 延べ聴講者600名
・演習を交えたセミナー
要求分析、設計書の書き方、レビューの仕方・・・・要求分析、設計書の書き方、レビューの仕方・・・・
2.取り組みのポイント・覚えたことを試して、コンサルを受ける
知識取得→練習→実践
・言葉の統一
SEIKO EPSON CORPORATION BS事業部 2006・6・28
技術導入のポイント技術導入のポイント
1.構造化ではなくオブジェクト指向を選択・ハードルは高いが長期的に見てメリットあり
・再利用しやすい
・技術者のスキルアップ
2.パッケージレベルまではモデル化・実装はオブジェクト指向にこだわらない
・時間制限のある部分は従来実装
3.取り組みのポイント・良いコーチが必要
4.まず使えるかの判断を先行
SEIKO EPSON CORPORATION BS事業部 2006・6・28
分析モデル分析モデル
UMLUMLを利用して分析モデルを作成を利用して分析モデルを作成
SEIKO EPSON CORPORATION BS事業部 2006・6・28
シーケンス図による検証シーケンス図による検証
シーケンス図でモデルの検証シーケンス図でモデルの検証
SEIKO EPSON CORPORATION BS事業部 2006・6・28
設計モデル設計モデル
分析モデルから設計モデルを作成分析モデルから設計モデルを作成
SEIKO EPSON CORPORATION BS事業部 2006・6・28
成果成果1.パッケージが疎結合になった
・保守のしやすさ・デバックのしやすさ
2.ソースコードの品質・世代間の品質比較・他社との比較
3.工程データと品質の因果関係・計測結果・障害発生の分析・工数配分の分析・分析結果をプロセスへフィードバック
4.ソースコード品質と障害の因果関係
SEIKO EPSON CORPORATION BS事業部 2006・6・28
パッケージパッケージ
1.パッケージ間の依存関係1.パッケージ間の依存関係相互依存をなくし相互依存をなくし
2.インターフェース2.インターフェースパッケージ間インターフェースパッケージ間インターフェースを固定にするを固定にする
SEIKO EPSON CORPORATION BS事業部 2006・6・28
新旧世代比較
0
20
40
60
80
100機能性 標準適合性
保守性 変更性
保守性 安定性
テスト容易性
理解容易性
再利用性 新規OO新規非OO他部門1世代前3世代前2世代前
世代間のソースコード品質比較世代間のソースコード品質比較
ソースコード品質ソースコード品質
SEIKO EPSON CORPORATION BS事業部 2006・6・28
ソースコード品質ソースコード品質総得点比較
0.00 100.00 200.00 300.00 400.00 500.00 600.00
新規
3世代前
2世代前
1世代前
他部門
B社初期
B社洗練
C社初期
標準適合性変更性安定性テスト容易性理解容易性再利用性
エプソン従来設計との差エプソン従来設計との差
他社事例、オブジェクト指向設計事他社事例、オブジェクト指向設計事例が従来の設計から向上した差分例が従来の設計から向上した差分
他社とのソースコード品質比較他社とのソースコード品質比較
SEIKO EPSON CORPORATION BS事業部 2006・6・28
計測結果計測結果
502.5502.532013201第第22回回POSTPOST88要求仕様書88要求仕様書
4372.684372.6899009900その他その他
636350025002部品運用マニュアル部品運用マニュアル
47.7547.753601OO3601OO分析モデル分析モデル
220.1220.13101POST3101POST88要求書(88要求書(22回目)回目)
555.25555.251201OO1201OO分析モデル分析モデル
1259.351259.3510011001従来実装部分構造化設計書従来実装部分構造化設計書
1324.151324.1509010901第第11回回POSTPOST88要求仕様書88要求仕様書
77.1177.1108010801利用可能な技術利用可能な技術
6.56.507010701構造化・構造化・OOOO対象パッケージ対象パッケージ
2462460501OS0501OSラッパ仕様書・ラッパ仕様書・OSOSラッパ実装ラッパ実装
89.589.504020402タスク構成タスク構成
51151104010401パッケージインターフェースパッケージインターフェース
8.58.50301OS0301OS仕様書仕様書
476.75476.7502010201パッケージ図パッケージ図
3453450101POST0101POST88要求書88要求書
685.63685.6300000000プロジェクト計画など(プロジェクト計画など(PFDPFD・スケジュール含む)・スケジュール含む)
合計合計成果物成果物
1.51.536003600OO分析モデルを更新するOO分析モデルを更新する
242406000600OSラッパ評価OSラッパ評価
648.56648.5632003200要求分析(第要求分析(第22回)回)
2405.462405.4699009900その他その他
248.07248.0790009000プロセス管理プロセス管理
86.186.131003100要求情報を整理する・分析作業を計画する要求情報を整理する・分析作業を計画する
672.75672.7512001200OO分析モデル作成OO分析モデル作成
1498.11498.110001000従来実装部分構造化設計作業従来実装部分構造化設計作業
1740.021740.0209000900要求分析(第要求分析(第11回)回)
5.55.508000800FW2003・RTOSブリッジ調査FW2003・RTOSブリッジ調査
22.7522.7507000700実装分割作業・構造化・OO実装分割作業・構造化・OO
314.5314.505000500OSラッパ仕様を作成し設計実装するOSラッパ仕様を作成し設計実装する
1095.51095.504000400アーキテクチャ設計・タスク分割・インターフェース作成アーキテクチャ設計・タスク分割・インターフェース作成
10.510.503000300OSを選定するOSを選定する
532.55532.5502000200アーキテクチャ分析アーキテクチャ分析
344.5344.501000100要求情報を整理する・分析作業を計画する要求情報を整理する・分析作業を計画する
993.41993.4100000000プロジェクト計画検討プロジェクト計画検討
合計合計作業プロセス作業プロセス
成果物別、プロセス別の作業時間計測成果物別、プロセス別の作業時間計測
SEIKO EPSON CORPORATION BS事業部 2006・6・28
工程別実績工程別実績→→プロセス改善プロセス改善
工程別作業時間推移
0
100
200
300
400
500
600
700
800
2005-02
2005-03
2005-04
2005-05
2005-06
2005-07
2005-08
2005-09
2005-10
2005-11
2005-12
その他会議・打合せ検査講習・教育製造設計調査分析
概作業工程別作業時間推移概作業工程別作業時間推移
SEIKO EPSON CORPORATION BS事業部 2006・6・28
実績工数と手戻りぬきの理想工数比較
0.00
1000.00
2000.00
3000.00
4000.00
5000.00
6000.00
2005-03
2005-04
2005-05
2005-06
2005-07
2005-08
2005-09
2005-10
2005-11
2005-12
理想実績障害発生
工程別実績工程別実績→→プロセス改善プロセス改善
作業時間推移と手戻り時間の関連作業時間推移と手戻り時間の関連
SEIKO EPSON CORPORATION BS事業部 2006・6・28
障害分析障害分析
0%
5%
10%
15%
20%
25%
30%
35%
アルゴリズムミス実装設計モデリング要求仕様実現漏れ要求分析その他設計モデリングアーキテクチャ設計評価ミスパッケージインタフェース調整不具合修正タイプミス仕様変更デバッグ評価設計分析モデリング
設計・レビュー設計・レビュー実装・レビュー実装・レビューの各プロセスにの各プロセスに欠陥がある可能欠陥がある可能
性が高い性が高い
このプロセスにこのプロセスにある不具合原因ある不具合原因を改善できれば、を改善できれば、6割の手戻りを6割の手戻りを削減できる。削減できる。
障害原因分析障害原因分析
SEIKO EPSON CORPORATION BS事業部 2006・6・28
1.障害の原因からプロセス見直し
・設計レビューの充実、プロセス見直し
・不具合を半減できれば・・・
2.実績から特定メンバーへの負荷が判明
・エキスパートに負荷が集中
・集中した負荷で次の工程に影響
3.プロセスの課題ではなく人の育成も必要
・レビュアーの育成ここはOJTが良い
工程実績・障害発生工程実績・障害発生→→プロセス改善プロセス改善
SEIKO EPSON CORPORATION BS事業部 2006・6・28
ソースコード品質と障害の因果関係ソースコード品質と障害の因果関係
1.ソースコード品質・パッケージレベルの分析・パッケージ別の障害数・因果関係→現時点では明確な傾向見えない分析を継続してみる価値はありそうだが・・・
2.(案)開発段階でのソース品質分析・実装段階で分析・結果を受けて設計/実装の見直し
3.(案)障害発生の防止に使える・コードレビューの焦点を絞る・評価工程に入る前に対策実施し手戻りの排除
SEIKO EPSON CORPORATION BS事業部 2006・6・28
まとめまとめ
1.現時点の適用状況・派生製品の開発に適用・プラットフォームとして機能拡張
2.当初目標に対する評価・ソースコード、構造の品質向上・プロセス設計のノウハウ取得・計測実績の活用
3.今後に向けて・改善の目標を設定し実績を評価・・・・1Kloc当りの障害数、コード流用率
・計測データにより効果を継続的に確認
SEIKO EPSON CORPORATION BS事業部 2006・6・28
最後に最後に
1.プロセスを設計する・進め方を共有する
・成果物を明確にする
2.計測する・工数と成果物の量を見積もる
・工数を計測する
・品質を計測する
3.分析しフィードバックする・実績を分析しプロセスを改善する
SEIKO EPSON CORPORATION BS事業部 2006・6・28