カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年...

40
1 カーオーディオ制御ソフト開発 カーオーディオ制御ソフト開発 における改善活動 における改善活動 組み込みシステム開発技術展 2008 パイオニアシステムテクノロジー株式会社 開発センター 3開発室 遠藤 俊平 2008051516~多機種展開をにらんだアーキテクチャ再構築、 ~多機種展開をにらんだアーキテクチャ再構築、 その先進的施策の数々~ その先進的施策の数々~

Upload: others

Post on 27-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

1

カーオーディオ制御ソフト開発カーオーディオ制御ソフト開発における改善活動における改善活動

組み込みシステム開発技術展 2008

パイオニアシステムテクノロジー株式会社開発センター 第3開発室 遠藤 俊平

2008年05月15、16日

~多機種展開をにらんだアーキテクチャ再構築、~多機種展開をにらんだアーキテクチャ再構築、その先進的施策の数々~その先進的施策の数々~

Page 2: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

2

1.1. 改善の背景改善の背景

2.2. 改善活動開始までの経緯改善活動開始までの経緯

3.3. 改善のための施策と結果改善のための施策と結果

4.4. 総括総括

5.5. 今後の展開今後の展開

Page 3: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

3

1.改善の背景1.改善の背景

Page 4: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

4

HDD [サイバーナビ] AVIC-VH099G

AVH-P900DVA

DEH-P630

弊社担当商品紹介

カーナビゲーションシステム

カーオーディオ

Page 5: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

5

• カーオーディオ機器

– 多様なファイルの再生が可能なDVDドライブを搭載し、iPod、地上デジタル放送チューナー、ナビゲーション製品、Bluetooth製品(携帯電話) などとの組み合わせが可能なAVメインユニット

→Audio&Video出力制御マイコンソフト部分が

対象となる

改善対象製品概要

Page 6: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

6

ユーザーニーズに応えるべく多種、多様化が求められる中で製品のライフサイクルも短く、品質も落とせないという課題を

踏まえて短期間での高機能・複数機種開発が必要になっている。

製品の高機能化に比例して幅広い分野での知識も必要になる為、経験者のみが対応できるような仕組みではなく、誰もが開発可能な環境、仕組み作りが必要になっている。

開発する上での難しさ

Page 7: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

7

2.改善活動開始までの経緯2.改善活動開始までの経緯

Page 8: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

8

これまでの経緯

2002年 2006年

アセスメント

2007年 2008年

◎ 見事製品化できた。△ プロダクトラインの構築という

目標は達成できず。

自力での原因分析にも限界を感じ、オージス総研殿のアセスメントを受診。

目標「多機種・高機能・短納期な開発が可能なソフトウェア・体制作り」いわゆる「プロダクトライン」の構築

独学でのオブジェクト指向取り入れ 改善活動

第3者の視点で問題点の分析。

課題をひとつずつ解決して行く。

Page 9: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

9

オージス総研殿によるアセスメント結果• オブジェクト指向を独学で学ぶも、十分な知識と経験を積

まずに導入したため、うまく成果がでていない– 運転免許を取らずに自動車を運転しているようなもの

• オブジェクト指向を使いこなすには、時間をかけて正しい知識と経験を積むことが必要– 教習所に通いながら、運転免許をとるように!

効率効率

時間時間

自動車に乗り換え、徐々に経験を積む

自動車を乗りこなし、従来よりも「早く・楽に」目的地に着ける

自転車を駆使

まず自動車に乗ってみて体で覚える?

×自動車に乗ってはいるが、相変わらず「遅くて大変」

自動車の正しい運転技術を学び、運転に慣れる

Page 10: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

10

•中長期的施策他プロジェクト他プロジェクトへの応用に向けてへの応用に向けて「上流工程重視の開発プロセスへの移行」

「継続的な開発者スキルアップ支援」

■改善施策の実施時期を「短期」と「中長期」に分類

改善施策の実施ロードマップ

•短期的施策問題問題の根本的解決の根本的解決

「アーキテクト育成」「アーキテクチャ再構築」「開発者のスキルアップ」

Page 11: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

11

•中長期的施策他プロジェクト他プロジェクトへの応用に向けてへの応用に向けて「上流工程重視の開発プロセスへの移行」

「継続的な開発者スキルアップ支援」

■改善施策の実施時期を「短期」と「中長期」に分類

改善施策の実施ロードマップ

•短期的施策問題問題の根本的解決の根本的解決

「アーキテクト育成」「アーキテクチャ再構築」「開発者のスキルアップ」

Page 12: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

12

3.改善のための施策と結果3.改善のための施策と結果

3-1 アーキテクト育成施策と結果

3-2 アーキテクチャ再構築施策と結果

3-3開発者のスキルアップ施策と結果

Page 13: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

13

3.改善のための施策と結果3.改善のための施策と結果

3-1 アーキテクト育成施策と結果

3-2 アーキテクチャ再構築施策と結果

3-3開発者のスキルアップ施策と結果

Page 14: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

14

• 目標

– 自立行動型の「技術リーダー」の育成

• 施策内容

– アーキテクチャ構築を経験することで必要な技術スキルを向上させる

コンサルタント

アーキテクトチーム (2008年4月現在)

プロジェクトリーダー アーキテクト候補 作業メンバー

OJT教育

新アーキテクチャ

構築

アーキテクト育成施策と結果アーキテクト育成施策と結果

目標と施策内容

製品開発とは別のプロジェクトとして活動する

Page 15: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

15

アーキテクト育成施策と結果アーキテクト育成施策と結果

1

2

3

4

T1(プラットフォーム)

T2(ソフトウェア開発技術基礎)

T3(開発ツール)

T4(問題の理解・整理)

D1(要求整理)

D2(分析)

D3(実現)

D4(構築)

D5(検証)

D6(フレームワーク)

M1(開発プロセス)

M2(プロジェクト管理)

2006年度2007年11月2008年3月

アーキテクチャ構築に要するスキルの向上が顕著に現れている

結果

• アーキテクチャ構築に必要なスキルが向上した

Page 16: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

16

3.改善のための施策と結果3.改善のための施策と結果

3-1 アーキテクト育成施策と結果

3-2 アーキテクチャ再構築施策と結果

3-3開発者のスキルアップ施策と結果

Page 17: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

17

• 目標– 「再利用性」「保守性」が高い構造を構築する

特に、「UIの変更」「接続機器の増減」が容易な構造とする

アーキテクチャ再構築の目標

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

骨組み検証のために、一部実現

システム全体

骨組み

Page 18: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

18

• 施策– オージス総研殿指導の下、以下の施策を実践しながら

既存のモデルに対してアーキテクチャの再構築を実施

① RUPベースの開発プロセス導入

② オブジェクト指向の導入

③ ドメイン分割の実施

④ モデルベース開発の実施

⑤ コード生成ツールの使用

⑥ アーキテクチャメカニズムの構築

⑦ テスト工程の改善

アーキテクチャ再構築の施策内容

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

Page 19: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

19

• 特徴

① ユースケース駆動• どの工程においても、「要求の実現」を念頭に作業を進めること

で、ユーザーと開発者間のズレを回避する

② アーキテクチャ中心• 目先の成果だけでなく、将来に備えた骨組み作りを常に意識す

③ 反復型• リスクを抑制する

• 結果

– アーキテクチャ中心の開発思想が身についた

• 今までの考え方から最も改善された点!

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策①:RUPベースの開発プロセス導入

Page 20: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

20

• 物事の本質を捉えるための「考え方」として活用

Before After

一時的に解決できても、同様の課題に将来も頭を悩ませる可能性が高い

事象

本質

事象

本質

本質も含めて問題解決することで、将来の課題発生確率を抑えられる

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策②:オブジェクト指向の導入

Page 21: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

21

Before After

通信処理

接続機器A

従来はコードクローンで対応→ 保守性を低下させてしまう

接続機器B 接続機器C

必要に応じて差分のみ別途定義

通信処理

接続機器A固有通信処理

接続機器B固有通信処理

接続機器C固有通信処理

共通部分は一箇所に定義

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策②:結果

• 共通部分と差分を整理することが出来た

通信処理

通信処理

通信処理

通信処理

通信処理

通信処理

通信処理

通信処理

Page 22: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

22

• 大きなシステムを独立した

「関心事」の単位にきれいに分割Before After

関心事A

関心事B機能B

機能A

従来も同様の試みはしているものの、独立性を保持しきれなかった

ドメインの独立性を維持

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策③:ドメイン分割の実施

Page 23: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

23

Before After

関心事A

関心事B機能B

機能A

互いに密に依存しているため、一部のドメインのみを他製品へ流用することは困難

独立性が高いため、一部のドメインのみを他製品へ流用しやすい

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策③:結果

• ドメイン単位の再利用が可能

→ 複数機種開発への大きな一歩となった

Page 24: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

24

仕様書

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

実装

ソースコード

仕様書

モデル化

UMLモデル

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

ソースコード

実装

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策④:モデルベース開発の実施

• 見える化された思考記録(モデル)を中心に開発

非モデルベース開発 モデルベース開発

Page 25: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

25

非モデルベース開発 モデルベース開発

UMLモデルが仕様書とコードのギャップを埋める

不具合の発生や仕様変更に伴う修正が楽

仕様書

UMLモデル

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

ソースコード

仕様書とソースコードのギャップが大きい

不具合の発生や仕様変更に伴う修正が困難

?

仕様書

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

ソースコード

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策④:結果

• UMLモデルが仕様とソースコードのギャップを埋めることで変更容易性が向上した。

Page 26: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

26

コード生成ツール

繰り返し

② 生成方法の微調整① UMLモデル

読み込み

XMIファイル

④ ロジックの実装

③ コード生成

UMLツール

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

int foo(){int x1 = 0;Int x2 = 0;

X2 += x1;・・・}

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策⑤:コード生成ツールの使用

• UMLモデルからコード(C言語)を生成

Page 27: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

27

• モデル→ソースコードへの変換ルールを習得する労力を削減できた

– UMLモデル→C言語の変換ルールは複雑

なので重宝する

• 設計モデルとソースコードの乖離を防止できた

– 変更を加えたいときには、ソースコードではなく必ず設計モデルを先に変更する。

【実績】コード生成率:70%【実績】コード生成率:70%

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策⑤:結果

Page 28: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

28

説明種類

「一定時間経過後にXXする」処理を簡便

にするタイマー

オブジェクト間の非同期メッセージ通信を簡便にする

イベント配信

OSの違いを隠蔽OSラッパー

多重度“多”の関連を実現コンテナ/コレクション

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策⑥:アーキテクチャメカニズムの構築

• ドメインには依存しないものの、様々な場面で利用されるシステムの足回り部分をライブラリ化

Page 29: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

29

ハードウェア/言語

OS

アーキテクチャメカニズム

アプリケーション

抽象度

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策⑥:結果

• アーキテクチャメカニズムを利用することで、アプリケーション作業者は抽象度の高い情報に専念しやすくなる。

Page 30: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

30

• CUnitを使って単体テストの自動化と履歴保管

を実施Before After

手動・目視確認では、1回限りの検証に終わってしまう

履歴保管されたテストケース分は正しく動作することを

自動で確認可能

何か変更した際のデグレードが発生していないことを保障できるため

改善作業の工数が格段に減った。

アーキテクチャ再構築施策と結果アーキテクチャ再構築施策と結果

施策⑦:テスト工程の改善とその結果

テストケース

Page 31: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

31

3.改善のための施策と結果3.改善のための施策と結果

3-1 アーキテクト育成施策と結果

3-2 アーキテクチャ再構築施策と結果

3-3開発者のスキルアップ施策と結果

Page 32: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

32

• 目標

– 開発メンバーのオブジェクト指向基礎知識の習得

• 施策内容

– 実際に製品開発を担当する予定のメンバー同士でオブジェクト指向の基礎知識を学習した

開発者のスキルアップ施策と結果開発者のスキルアップ施策と結果

グループA

グループB

グループC

グループD

発表会

全グループが集まって毎月開催

理解度のばらつきを少なくする

小人数で週1回勉強会を開催

目標と施策内容

Page 33: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

33

スキル診断結果

0

1

2

3

4T1(プラットフォーム)

T2(ソフトウェア開発技術基礎)

T3(開発ツール)

T4(問題の理解・整理)

D1(要求整理)

D2(分析)

D3(実現)

D4(構築)

D5(検証)

D6(フレームワーク)

M1(開発プロセス)

M2(プロジェクト管理)

2007年6月

2008年3月

開発に必要なオブジェクト指向の基礎知識が付いたことで得点があがっている

開発者のスキルアップ施策と結果開発者のスキルアップ施策と結果

結果

• オブジェクト指向の基本的概念に関する知識についてはベースアップを図ることが出来た

Page 34: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

34

4.総括4.総括

Page 35: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

35

目標達成へ向けたステップアップの土台を築くことが出来た。

<目標>

オブジェクト指向による構造改革を行い、

多機種・高機能・短納期に充分に耐え得るソフトウェア・体制を作る

人(アーキテクト)

ソフトウェア資産(アーキテクチャ)

体制(学習・技術共有)

総括

Page 36: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

36

【アーキテクト育成】モデリングするためには、必要な情報を、いかに事前に集めるかがキモとなることが理解できた(コンセプト作り)。アーキテクトとプロジェクトリーダーの役割を分けたほうが効率的に作業が進む。1年だけで「本物のアーキテクト」になったとは言い切れない。

【アーキテクチャ再構築】モデルを残しながら進めたので、後から機能拡張が容易に行えた。UMLのモデルは残せているがメンバーの「手離れ」を考えると、モデルを補完する情報(文章や図表)が必要だと認識できた。

オブジェクト指向で構築することによって処理が冗長になっている。

【開発者のスキルアップ】オブジェクト指向を学んだことにより、多角的な視点で物事を短時間に分析できるようになった。UML記法のそれぞれの本当の意味を学べた。テキストに出てくる字面の

意味合いだけではなく、ディスカッションを通じて本来の意味を理解できた。

振り返り

Page 37: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

37

5.今後の方針5.今後の方針

Page 38: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

38

Phase1立ち上げ

Phase2移行準備

Phase3自立

アーキテクチャ構築(再整理)

アーキテクト育成

ラーニング(下流工程)

技術共有

実装工程の改善

新アーキテクチャの習得

実製品再構築

新アーキテクチャ

アーキテクト見習い

基礎スキルアップを果たした開発チーム

ラーニング(上流工程)

改善された実装工程

1,2個の機能が動作する

オーディオ制御マイコン

新アーキテクチャを習得した開発チーム

アーキテクト

実製品(1モデル)

技術共有基盤

新アーキテクチャを理解する

•アーキテクチャを構築する•自立を促すためのインフラを整備する

オージス支援ありオージス支援なし

作業担当の見直しドメイン・レイヤ別の作業担当割り振り

アーキテクト監督のもと、

新アーキテクチャを基に自分たちだけで実製品(1モデル)を開発する

ドキュメンテーション

開発プロセス改善

その後の展開

複数モデル開発

他製品への展開

PST全体の

スキルアップ

新アーキテクチャに関するドキュメント

アーキテクチャ構築時の開発の流れ

変化対応型製品開発の流れ

ドキュメント

今後の計画

Page 39: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

39

Phase1立ち上げ

Phase2移行準備

Phase3自立

アーキテクチャ構築(再整理)

アーキテクト育成

ラーニング(下流工程)

技術共有

実装工程の改善

新アーキテクチャの習得

実製品再構築

新アーキテクチャ

アーキテクト見習い

基礎スキルアップを果たした開発チーム

ラーニング(上流工程)

改善された実装工程

1,2個の機能が動作する

オーディオ制御マイコン

新アーキテクチャを習得した開発チーム

アーキテクト

実製品(1モデル)

技術共有基盤

新アーキテクチャを理解する

•アーキテクチャを構築する•自立を促すためのインフラを整備する

オージス支援ありオージス支援なし

作業担当の見直しドメイン・レイヤ別の作業担当割り振り

アーキテクト監督のもと、

新アーキテクチャを基に自分たちだけで実製品(1モデル)を開発する

ドキュメンテーション

開発プロセス改善

その後の展開

複数モデル開発

他製品への展開

PST全体の

スキルアップ

新アーキテクチャに関するドキュメント

アーキテクチャ構築時の開発の流れ

変化対応型製品開発の流れ

ドキュメント

今後の計画

これまでの活動これまでの活動

Page 40: カーオーディオ制御ソフト開発 における改善活動...アセスメント 2007年 2008年 見事製品化できた。 プロダクトラインの構築という 目標は達成できず。

40

パイオニア システム テクノロジー株式会社

For you , for me

ご清聴ありがとう御座いました。