[Et2016] AtScope 3つの活用シーン
- 5. 55
ソフトウェアの資産価値 在庫化している?
資産価値が徐々に低下して『在庫化』していませんか?
組織資産⇒属人資産:最初はドキュメントがあったが、誰も読まなくなり、保守されなくなる
属人資産⇒在庫:最初は設計ができていたのだが、人が変わったり、仕様追加で劣化する
資産名称 特徴
在庫 ソースコードは複雑で説明困難であり、
信頼できる設計ドキュメントは存在していない
状態。保守コストが膨れていく傾向にある
属人資産 ソースコードはシンプルで分かりやすい。
ただし、設計ドキュメントが揃っていない状態。
個人主導の開発であり、引継ぎに苦闘する。
半組織
資産
設計ドキュメントが揃っているが、
ソースコードが複雑な状態。
マネジメント主導の開発である
組織資産 ソースコードがシンプルで、設計ドキュメントが
整備されている状態。
品質・生産性とも予測可能となる。
戦略資産 ソースコードと設計ドキュメントが統合。
戦略的な資産活用ができる。
ソ
ー
ス
コ
ー
ド
在庫 半組織資産
属人資産
組織資産
戦略
資産
設計ドキュメント
5
Copyright BACKSLASH DESIGN Co., Ltd.
引継ぎ
次機種
- 6. 6
在庫から脱却し、ソフトウェア資産へ
資産価値を向上させる
– 最初の一歩を踏み出す勇気が必要
– 日々の開発業務と並行して、着実に向上させていく仕掛けを作る
在庫
半組織
資産
属人
資産 組織資産
戦略
資産
A
B
C
D
名称 特徴
A コード・リファクタリング ソースコードを、管理
可能な単位へ分解す
る
B 再構造化設計 設計図レベルで再構
築を行う
C モジュール・リファクタリン
グ
ソースコードの構造を
図面化して洗練化す
る
D フォワード設計 設計図に沿って、ソー
スコードを修正する
E アーキテクチャ設計 複数視点で図面化し、
文書として統合する
Copyright BACKSLASH DESIGN Co., Ltd.
- 8. 8
設計意図発掘ツールAtScopeとは
静的解析ツール 設計意図発掘
ツールメトリクス系 図面作成系
主な目的 不具合の検出 設計図面の作成 不具合混入の未然防止
主な機能 複雑度などの定量化 関数コールの図面化 全体構造の俯瞰
規約違反の検出 設計書の作成 設計構造の劣化検知
効果 不具合の検出 コードの理解促進 ソフトウェアの資産化
品質状況の把握 納品資料の作成 迅速な機能追加
主な利用者 品質保証、プロセス改善 担当エンジニア アーキテクト/設計担当者
が使うことで設計力向上
解析精度 厳密
(コンパイラレベル)
比較的厳密 ゆるいコードでも解析可能
(人の目に映るレベル)
主な使い方 第三者が計測して、
現場の設計改善を行う
担当者の引継ぎ時や
納品時に仕様書を作成
アーキテクチャを分析し、
重要部分から設計改善
品質確保を「メトリクス系ツール」で行い、エンジニアの設計支援として「図面作成系ツール」を使い、組織資産
を活用した開発で「設計意図発掘ツール」を使う、ことでトータルな効果が得られます。
Copyright BACKSLASH DESIGN Co., Ltd.
- 11. 11
活用シーン② 派生開発での構造設計
ファイル見取図で設計構造を見える化
リファクタリングスコアで改善点を洗い出し
Copyright BACKSLASH DESIGN Co., Ltd.
app
UserPersonUserPersonDiagnosisStepDiagnosisStep
ReceptionistReceptionist
sys
SysNoticeSysNotice
SysCtrlSysCtrl
mid
InspectionProcessInspectionProcess
drv
TimerTimer
SwSw
VolSensorVolSensor
CurrentMeterCurrentMeter
EepRomEepRom
ui
PushButtonPushButton BuzzerSoundBuzzerSound
PanelDisplayPanelDisplay
OperationFlowOperationFlow
NoticePanelNoticePanel
LedLed BuzzerBuzzerLcdLcd
lib
InspectionHistInspectionHist
mon
ProgramConfirmationProgramConfirmation
LcdInspectionLcdInspectionVolInspectionVolInspection
MaintePanelMaintePanel
VolMeterVolMeter
HistInspectionHistInspection
InspectorInspector
1
2
3
1
2
2
3
3
2
2
2
3
2
3
1
2
3
5
4
8
5
2
3
2
4
5
2
1
3
2
4
3
2
2
3
2
3
1
2
2
3
7
3
2
1
3
1
1
2
3
5
2
2
<<スコア>>
総合 : 94点
要素 : 99点
構造 : 89点
<<構造の警告リスト>>
/* ファンアウト数 */
17 : InspectionProcess.c
15 : DiagnosisStep.c
14 : EepRom.c
14 : Lcd.c
12 : Inspector.c
/* 循環依存 */
2 : InspectionProcess 8 : CurrentMeter
3 : InspectionProcess 3 : DiagnosisStep
1 : Receptionist 3 : DiagnosisStep
2 : UserPerson 1 : Receptionist
<<要素の警告リスト>>
/* 関数の長さ */
44 : Lcd lc_init()
MaintePanelMaintePanel
OperationFlowOperationFlow
LedLed
InspectionHistInspectionHist
NoticePanelNoticePanel
InspectionProcessInspectionProcess
ReceptionistReceptionist
UserPersonUserPerson
CurrentMeterCurrentMeter
VolSensorVolSensor
EepRomEepRom
TimerTimer
DiagnosisStepDiagnosisStep
HistInspectionHistInspection
PushButtonPushButton
InspectorInspector
VolInspectionVolInspectionLcdInspectionLcdInspection
ProgramConfirmationProgramConfirmation
PanelDisplayPanelDisplay
VolMeterVolMeter
SysCtrlSysCtrl
SysNoticeSysNotice
SwSw
BuzzerSoundBuzzerSound
BuzzerBuzzerLcdLcd
2
1
2
1
5
3
3
1
4
3
2
3
1
2
3
3
1
5
12
3
2
2
2
3
1
3
2
1
5
3
7
1
2
2
3
1
2
2
2
3
2
3
2
2
2
8
4
2
2
3
3 4
5
2
劣化検知
飛び
越え
逆方向依存
スコア目安 評価 コメント
80点~100点 優 他の人でも変更可能
60点~79点 良 引継ぎ説明が少しで済む
0点~59点 可 引継ぎ期間が必要
マイナス点 不可 熟知していないと修正が大変
要素
改善点
総合点
構造
改善点
変更の影響範囲がわかる
⇒検索回数が大幅に減る
- 14. 14
設計力向上セミナー
Copyright BACKSLASH DESIGN Co., Ltd.
技術経営へ 技術リーダ育成
現場実践トレーニング設計力底上げトレーニング
設計技法の原理原則
レビュー技法
既存コードを資産化する
資産化モデリングオブジェクト指向モデリング
コード中心から設計中心へ
設計図活用 今日から使える
凝集度と結合度
2年目研修:5日間コース
ソフトウェア分析設計
構造化モデリング [静的]
構造化モデリング [動的]
部品化リファクタリング
構造化設計 [派生開発]
コード起点
新人研修:1日コース
設計技法基礎
事業と技術を繋ぐ
目的目標セミナー
アーキテクト育成
アーキテクチャ設計実践
良いアーキテクチャ設計書を作る
ロジカルシンキング
ことづくりものづくり
ソフトウェア技術者のための
ロジカルライティング
アーキテクチャ設計入門
設計技法と
テスト技法
Notes de l'éditeur
- 5
- 【結論】
(Aの矢印)「在庫」をコードリファクタリングして、「属人資産」にして、
(Cの矢印)次に、モジュールリファクタリングすることで、「組織資産」にします。
それを短期間で行うのが「リバース&リファクタリングサービス」です。
【解説】