情報処理学会研究報告 IPSJ SIG Technical Report Vol.2014-ITS-58 No /9/19 加速が不要なタイミングでアイドルストップを行う装置のソフトウェアの改善にともなう, 移植性, 可読性の高いソフトウェア構造の実現 1 福島悠史 1 芝田健男 1 谷

Similar documents
本章では 衝突被害軽減ブレーキ 車線逸脱警報 装置 等の自動車に備えられている運転支援装置の特性 Ⅻ. 運転支援装置を 備えるトラックの 適切な運転方法 と使い方を理解した運転の重要性について整理しています 指導においては 装置を過信し 事故に至るケースがあることを理解させましょう また 運転支援装

STAMP/STPA を用いた 自動運転システムのリスク分析 - 高速道路での合流 - 堀雅年 * 伊藤信行 梶克彦 * 内藤克浩 * 水野忠則 * 中條直也 * * 愛知工業大学 三菱電機エンジニアリング 1

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

国土技術政策総合研究所 研究資料

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

Microsoft PowerPoint - A3② JaSST_MISRA2004ソースコード品質診断.ppt

CANapeを用いたラピッドコントロールプロトタイピングのバイパス手法による制御モデル開発

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタ

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

PowerPoint プレゼンテーション

24-28 FAS14 技術相談.indd

Microsoft Word - Malleable Attentional Resources Theory.doc

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

見出しタイトル

2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない メトリクスを使ってリファクタリング対象を自動抽出する仕組みを

040402.ユニットテスト

資料 5 自動車検査場における OBD 検査に関する実証実験について 平成 30 年 4 月 ( 独 ) 自動車技術総合機構軽自動車検査協会 Copyright National Agency for Automobile and Land Transport Technology 1

名古屋大学.indd

スライド 1

車載ソフトウェアのテスト自動化支援ツール

今週の進捗

[2] [3] [4] [] TTC 2 9 SAS[6] 2 SAS 4 DS 2. SAS 28 ( 2 ) 6 ( ) (PV:Preceding Vehicle) (FV:Fo

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

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

Microsoft PowerPoint - 教材サンプル1&2.ppt

D5-2_S _003.pptx

速度規制の目的と現状 警察庁交通局 1

ストリームデータ処理技術を利用したソリューションの紹介 -大量データのリアルタイム処理-

OBDII (CARB) 取扱説明書 1

車載式故障診断装置 (OBD) に関する制度と運用の現状 資料 4

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

FlexRay

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

6 2. AUTOSAR 2.1 AUTOSAR AUTOSAR ECU OSEK/VDX 3) OSEK/VDX OS AUTOSAR AUTOSAR ECU AUTOSAR 1 AUTOSAR BSW (Basic Software) (Runtime Environment) Applicat


PGRelief C/C++ 強化ポイント説明書

PowerPoint プレゼンテーション

Python によるジオプロセシング スクリプト入門

Microsoft Word - 【第5分科会】ConcolicTestingグループ_付録_修正_ doc

PowerPoint Presentation

CodeRecorderでカバレッジ

IPSJ SIG Technical Report Vol.2015-MUS-106 No.18 Vol.2015-EC-35 No /3/3 1,a) ch [1] 1 Kansai University Graduate School of Inf

Microsoft PowerPoint - sakurada3.pptx

インテル(R) Visual Fortran コンパイラ 10.0

はじめに IPA/SEC では ソフトウェア開発における定量的管理の普及促進の一環として 国内の多様なソフトウェア開発のプロジェクトデータを整理 分析した ソフトウェア開発データ白書 を 2004 年より定期的に発行しています その最新版である ソフトウェア開発データ白書 を 2

Microsoft PowerPoint - 1.プロセス制御の概要.pptx

SuperH RISC engine C/C++ コンパイラ Ver.7 不具合内容 - 過去のお知らせ SuperH RISC engine C/C++ コンパイラ Ver.7 台における不具合内容を以下に示します のチェックツールをルネサスエレクトロニクス株式会社のホームページ

過去問セミナーTM

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

エンジニアリング・サービスから見たMBD導入の成功・失敗

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

智美塾 ゆもつよメソッドのアーキテクチャ

スライド 1

ニュースレター「SEI WORLD」2016年6月号

スライド 1

組込みシステムにおける UMLモデルカタログの実践研究

CW6_A1441_15_D06.indd

背景 1 / Reprinted with permission from paper c 2013 SAE International.

Fig. 3 Flow diagram of image processing. Black rectangle in the photo indicates the processing area (128 x 32 pixels).

PowerPoint プレゼンテーション

VDM-SL ISO.VDM++ VDM-SL VDM- RT VDM++ VDM,.VDM, [5]. VDM VDM++.,,, [7]., VDM++.,., [7] VDM++.,,,,,,,.,,, VDM VDMTools OvertureTo


Vol.53 No (July 2012) EV ITS 1,a) , EV 1 EV ITS EV ITS EV EV EV Development and Evaluation of ITS Information Commu

Python によるジオプロセシング スクリプト入門

Handsout3.ppt

CREST ディペンダブル VLSI システムの基盤技術 研究領域会議 ISO26262 ISO26262 Contents ISO26262 ECU ECU Copyright Hitachi Automotive Systems, Ltd. All rights reserved

Microsoft Word - TestReport_PRIMEPOWER250_ doc

Microsoft PowerPoint _ISOBUS-seminar.pptx

4. 簡易自動プロの具体事例 事例紹介ですので 中身の詳細なご理解は不要と思います イメージ 概要のみご確認ください 考え方や進め方は 参考になろうかと思います 4-1 作業手順基本パターンを作成し EXCEL でパラメータと合成し EX へダウンロードします 基本パターン テクノコードプログラム

<4D F736F F F696E74202D DD8D8782ED82B98B5A8F7082F B582BD835C F E707074>

LIN

24 LED A visual programming environment for art work using a LED matrix

PowerPoint Presentation

メイン表示 例 バーグラフ表示 例 平均燃費 1 一般道高速道平均燃費 1/ 移動平均燃費 1 燃料流量 1/ スロットル開度 1 燃費インジケーター 時計 スピード コンパス 2 標高 2 車両電圧 燃料流量インジケーター 瞬間燃費を表示 燃費インジケーター 今回燃費 瞬間燃費を表示 電源OFF毎

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

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

Using VectorCAST/C++ with Test Driven Development

ICT を活用した ITS の概要 1 ITS は内閣府 警察庁 総務省 経済産業省 国土交通省が連携して推進 道路交通情報 VICS (1996 年 ~) FM 多重放送 電波ビーコン 光ビーコンで情報配信 ( 約 5,100 万台 :2016 年 6 月末 ) プローブ情報 携帯電話ネットワーク

<4D F736F F D DB893C78CE38F4390B32D8DC58F4994C52E646F63>

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

この時お使いの端末の.ssh ディレクトリ配下にある known_hosts ファイルから fx.cc.nagoya-u.ac.jp に関する行を削除して再度ログインを行って下さい

NSW キャリア採用募集職種一覧 2018/8/16 現在 求人番号 職種対象業務必要とするスキル 経験 資格等勤務地 1 営業スペシャリスト金融 ( 損保 生保 クレジット ) 業でのソリューション営業 IT 業界での営業経験 金融業界 IT 業界での人脈がある方尚可 渋谷 2 プロジェクトマネー

( おさらい ) 自動運転とは レベルレベル1 レベル2 レベル3 レベル4 定義 加速 操舵 制動のいずれかの操作をシステムが行う 加速 操舵 制動のうち複数の操作を一度にシステムが行う ( 自動運転中であっても 運転責任はドライバーにある ) 加速 操舵 制動をすべてシステムが行い システムが要

RaQuest MindManager

ICS_Japan アプリケーションノート ISO メッセージ送受信基礎編 Rev File Name: アプリケーションノート _ISO15765_2_ メッセージ送受信 _ 基礎編 _A00.docx Intrepid Control Systems, Inc. アプリ

技術名

Software-Defined Tester(SDT) を用いた高精度遅延測定による SDN/NFV 品質向上 富士通アドバンストテクノロジ株式会社システム技術統括部大久保克彦 0 Copyright 2017 FUJITSU AD

Presentation Title

FTP_RW_ProgramDescription_jp_V100

ZERO704V

Microsoft Word - IEIEJ-G アデンダムa.DOC

MX/RSシリーズご紹介

要旨 : データステップ及び SGPLOT プロシジャにおける POLYGON/TEXT ステートメントを利用した SAS プログラムステップフローチャートを生成する SAS プログラムを紹介する キーワード :SGPLOT, フローチャート, 可視化 2

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

Oracle Business Rules

Microsoft PowerPoint - FormsUpgrade_Tune.ppt

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

自動車制御開発用シミュレータ:CRAMAS

Transcription:

加速が不要なタイミングでアイドルストップを行う装置のソフトウェアの改善にともなう, 移植性, 可読性の高いソフトウェア構造の実現 1 福島悠史 1 芝田健男 1 谷道太雪 2 金子彰一 自車情報, 及び外界認識センサを用いて取得した先行車情報を基に, 先行車への追従走行時に加速が不要なタイミングでアイドルストップを行う装置のソフトウェアの改善を行い, 移植性, 可読性の高いソフトウェア構造を実現した. 走行状況は車速, 加速度, 車間距離, 相対速度等の複数のパラメータの組み合わせで時間とともに刻々と変化するため, 条件文でソフトウェアを構築した場合には, 条件文の複雑化や分岐数の増加等によりソフトウェアの可読性や保守性が損なわれた. そこで, ソフトウェアの可読性, 保守性を向上させ量産化に向けて, 条件文で使用している各種入力情報をグループ化し, 自車停止, 渋滞, 先行車右左折, 先行車停止予測等の走行状況を各状態で定義し, その各状態を用いてのソフトウェアの再構築を図った. 結果, ソフトウェアの可読性や保守性の向上に成功した. Improving Software Portability and Readability with Modification of the Idle Reduction Control. Yuji Fukushima Takeo Shibata Taisetsu Tanimichi Shoichi Kaneko We reconstructed the software of the device that performs an idol reduction if own vehicle need not acceleration during following a precedent vehicle. The driving situation changes by the change of plural parameters such as vehicle velocity, acceleration, relative distance, the relative velocity every moment. At first, we built software by combining with conditional statements. Portability and readability of the software decreased because the software became getting complex of the condition and increasing the number of the divergence. So, we reconstructed the software by grouping input data and by classifying driving situations. As a result of this measure, we succeeded in improving portability and readability of software. 1. はじめに 近年, 外界認識センサを用いた運転支援システムの開発, および市販化が進んでいる [1]. 外界認識センサを使用する ことで, 先行車情報や道路情報, 信号情報などが取得可能 になるため, 制御システムによる運転支援機能の幅が拡大 しつつある. 外界認識センサを用いて燃費向上を図る機能として, 自車情報, 及び外界認識センサを用いて取得した先行車情 報を元に, 先行車への追従走行時に加速が不要なタイミン グを判定し, 自動でアイドルストップを行う装置を開発し た. この装置を搭載した車両の構成を図 1-1 に示す. 車両は 自車に搭載された各種 ECU *1 に加え, 外界認識センサを搭 載している. 外界認識センサからは先行車との相対速度, 車間距離などの外界認識情報を取得することができる. アイドルストップ制御は,ACC *2 などの制御を行う制御 1 日立オートモティブシステムズ株式会社 Hitachi Automotive Systems, Ltd. 2 株式会社日立ソリューションズ Hitachi Solutions, Ltd. * 1 Electronic Control Unit *2 Adaptive Cruise Control ECU 内に実装されており, 制御 ECU は車両に搭載されている各種 ECU と CAN *3 で接続されている. 図 1-1 車両構成この制御に使用しているソフトウェアは, 装置の効果検証に使用する目的で開発速度を重視して開発したため, 条件文の複雑化や分岐数の増加が発生し可読性や保守性が低下している. そこで, ソフトウェアの解析を行い, 問題点を分析し対策を実施した. 本論文では, 外界認識センサを用いた加速が不要なタイミングでアイドリングストップを行う装置のソフトウェアにおける問題点, 対策の手法について述べる. *3 Controller Area Network 1

2. ソフトウェア構造 制御 ECU に実装されているソフトウェアは,ACC や AEB *4 などの制御機能を含む Application 層,Application から出力される制御指令値を調停する Control 層, 車種毎の処理を行う Virtual Car 層,H/W に準じたドライバ処理を行う Platform 層から構成されている. アイドルストップ制御は Application 層に実装されている. 制御 ECU のソフトウェア構成を図 2-1, アイドルストップ制御の処理フローを図 2-2 に示す. 図 2-1 制御 ECU のソフトウェア構成図 1および4は, アイドルストップ以外の他の制御機能でも使用する処理である. そのため, 再構築を検討する対照処理は2 判定用パラメータ計算,3アイドルストップ許可判定の 2 つとした. 3. 問題点 現在のソフトウェア構成は効果検証のために実車でチューニング等を実施しているため, 開発速度を重視した開発を行っており, 保守性, 可読性の確保に重点を置いた開発を行っていなかった. その為, 条件分岐の増加や条件文の複雑化により保守性と可読性が低下している. これらの問題の原因を特定するため, プログラムの複雑度を示す指標である経路複雑度とネストレベルの測定を実施した. 現状のアイドルストップ制御ソフトウェアの経路複雑度の測定結果を図 3-1 に, ネストレベルの測定結果を図 3-2 に示す. なお, 経路複雑度は関数内部に存在する条件分岐の数を示している. 経路複雑度の高い関数は分岐数が多いため, テスト工程において評価する経路数が多くなり, 保守性の低下につながる. また, 分岐数が多いため可読性が低下する. 経路複雑度の指標は McCabe の定義によると 10 以下が望ましいと言われている [2]. ネストレベルは条件分岐のネストの深さを示している. ネストレベルの高い関数は, ネストが深い位置の処理に到達する条件が複雑になり, テストケースの作成が困難となる [3]. ネストレベルの指標はソフトウェアの特性により上下するため, 本ソフトウェアではネストレベル 4 以下が望ましいと定義した. 図 2-2 アイドルストップ制御の処理フロー 図 2-2 に示した1は CAN 等で接続された各種センサからの情報を取得する.2は各種センサから取得した情報をもとに, アイドルストップ許可判定に使用するパラメータを算出する.3は現在の走行状況からアイドルストップの許可条件に該当するか判定する.4ではアイドルストップの許可状態に応じてアイドルストップを行うよう制御指令値を出力する. 図 3-1 再構築前の経路複雑度 *4 Autonomous Emergency Braking 2

図 3-2 再構築前のネストレベル 測定結果から,1 つの関数が経路複雑度 57, ネストレベル 17 と他の関数より高い数値を示していることとなった. この関数は現在の走行状況を判定する関数である. 走行状況の判定関数は, 車速, 加速度, 車間距離, 相対速度等の複数の入力パラメータの組み合わせで, 時間とともに刻々と変化するため, 経路複雑度, ネストレベルが他の関数より高い数値を示していた. また, 本関数は運転者に違和感を与えないようにする為, 実車上でチューニングを行い, 走行状況の追加, 削除, 及び条件変更を頻繁に行っていた. この関数に注目して構造を解析し, 次に示す問題点を抽出した. (1) 判定条件の複雑化走行状況の判定には, 自車の速度, 加速度, 運転者の操作などの自車情報に加え, 外界認識センサから取得した先行車情報などが必要となる. これらの入力パラメータの値を閾値と比較し, その結果を組み合わせることで走行状況を判定している. 走行状況の判定条件の例を図 3-3 に示す. 図 3-3 走行状況判定条件の例上記の例では 6 つの入力パラメータに対する判定が必要であり, これらの判定を組み合わせて走行状況を判定している. このように1つの走行状況を判断するには複数の入力パラメータが必要となるため, 条件文が複雑となり可読性が低下する要因となっている. (2) 分岐数の増大走行状況は低速追従走行, 高速追従走行, 渋滞追従走行, 坂道走行, 自車停止等, 様々な走行状況を定義している. 走行状況を複数定義すればするほど, 走行状況に応じたアイドリングストップ制御を実施する事が出来るため, 運転車に違和感の無いアイドリングストップを実施することができる. その為, 走行状況は複数となり, その分走行状況判定分も複数となっている. 走行状況判定処理のフローを図 3-4 に示す. 3

図 3-4 走行状況判定処理の構造現在の構造では走行状況の数を増やすたび関数の経路複雑度が上昇し, 保守性が低下する. (3) 参照するグローバル変数の増加走行状況判定に使用する入力パラメータは, 各種センサから取得しグローバル変数に設定している. 参照するグローバル変数が増加すると, 変数の更新を行う別の処理にタイミング等で依存した構造となり, 依存関係にある変数が更新前, 更新後と変数間で矛盾が発生する可能性がある. また, ソフトウェアの結合度が高くなり, ソフトウェアは保守性および移植性が低下する原因となる. 表 4-1 入力パラメータの分類 No 分類名 1 自車速度 2 先行車速度 3 自車加速度 4 先行車加速度 5 車間距離 6 相対速度 7 操舵角 1 8 スイッチ操作 9 動作タイマー 2 10 演算パラメータ 3 11 アイドルストップ状態 12 先行車停止予想 13 その他 ( 1) 運転者によるスイッチ操作の判定 ( 2) エンジン始動からの経過時間等の判定 ( 3) 衝突時間等の内部計算したパラメータの判定入力パラメータの分類を用いて, 各入力パラメータに対する判定を局所化し, 判定の結果をビットフィールドとして管理した. 対象のビットが 1 になれば, 判定条件が正であると判断出来る. 局所化した判定処理の例を図 4-1 に, ビットフィールドの定義例を表 4-2 に示す. 4. 対策 前章で抽出した問題を改善するため, 走行状況の判定処理の構造を再実装することにし, 以下に示す対策を実施した. 4.1 対策内容 (1) 入力パラメータのグループ化走行状況の判定に使用する入力パラメータの種類は, 自車および先行車の速度, 加速度, 相対速度など多岐にわたっている. これらの入力パラメータは複数の走行状況の判定に使用しており, 複数の箇所で参照される. 例えば, 走行状況 A にて自車速度から自車が停止していることを判定し, その後走行状況 B にて自車速度が 5km/h 以上であることを判定するという参照である. 複数回の入力パラメータ参照によりコード量が増加し, 判別条件が複雑化している. そこで, 判定に使用する入力パラメータを種類毎に分類し, 閾値の判定を一括で行うことにした. 入力パラメータの分類を表 4-1 に示す. 図 4-1 局所化した判定処理の例 4

ビット 表 4-2 ビットフィールドの定義例 意味 0 自車速度が 0km/h 以下 1 自車速度が 5km/h 以上 2 自車速度が 10km/h 以上 16 自車速度が 100km/h 以上 このように,1 つの入力パラメータに対する複数の閾値 による判定を実施し, その結果を 1 つの変数で管理する. また, グローバル変数である入力パラメータの参照箇所 をまとめることで, 依存関係にある変数に矛盾が発生する という問題を防止でき, 結合度の低い関数を実現すること ができる. この問題は, 例えば走行状況 A と走行状況 B で同一の入 力パラメータ X を参照する場合, 走行状況 A の判定直後に 割込み処理で X の値が更新されると, 本来は走行状況 A が 成立するべきタイミングで走行状況 B が成立する可能性が あるということである. 割込みによる変数の矛盾を図 4-2 に示す. 表 4-3 走行状況の必要条件定義例 走行状況自車速度先行車速度 その他 走行状況 1 0x000E 0x0004 0x0000 走行状況 2 0x0002 0x001A 0x0000 走行状況 n 0x0000 0x0000 0x0010 上記のように, 走行状況の条件判定を共通化し条件をテ ーブルで管理すると, 経路複雑度の低減によりソフトウェ ア構造は改善するが, 一方で条件テーブルの管理において 各条件ビットの意味を調査する必要がある. そのため, 走 行状況の追加や条件の変更が発生すると, 作業工数の増加 や条件の設定ミスによる不具合を作りこむ可能性があり, 保守性に優れていない. そこで, 判定条件テーブルをソースコードではなく, Excel 上で管理することとした.Excel シート上では,1 つ の走行状況に対して表 4-2 で示した入力パラメータ分類毎 の判定条件を選択する. この際, 判定条件をビットでなく 自然言語で定義することで, 可読性の向上を図った. 判定 条件管理表の例を図 4-3 に示す. 図 4-3 判定条件管理表の例 また, 自然言語からソースコードへの変換を簡略化する ため, ソースコードを自動生成する機能を実装した. 自動 生成コードの例を図 4-4 に示す. 図 4-2 割込みによる変数の矛盾 (2) 走行状況判定処理の再構築従来の走行状況判定処理は, 複数の走行状況に対する判定を複数の条件判定文を組み合わせることで実現している. この構造では走行状況の個数に応じて分岐数が増加するため, 走行状況判定の経路複雑度が上昇している. そこで, 走行状況の判定条件を前段階で定義したビットフィールドを使用してテーブル化し, 共通の判定関数で判定するよう機能の再構築を実施した. 走行状況の必要条件定義例を表 4-3 に示す. 5

図 4-6 再構築後のネストレベル 図 4-4 自動生成コードの例 4.2 対策内容の評価ソフトウェア構造の見直しと再構築の結果を評価するため, 再度経路複雑度とネストレベルの測定を実施した. 再構築後の経路複雑度の測定結果を図 4-5, ネストレベルの測定結果を図 4-6 に示す. 測定の結果, 経路複雑度の最大値が 58 から 10 へ, ネストレベルの最大値が 17 から 3 へ低下した. この結果から, ソフトウェア構造の再構築により保守性と可読性の向上に成功したと判断できる. また, 入力パラメータの参照箇所を局所化することで結合度の高い処理を局所化できたため, 移植性を向上させることに成功した. 対策を実施した再構築後の処理フローを図 4-7 に示す. 再構築によりアイドルストップ許可判定が分割され,3 走行状況判定と4 優先度判定が機能として独立した. 図 4-7 再構築後の処理フロー 5. おわりに 図 4-5 再構築後の経路複雑度 本論文では, 外界認識センサを用いたアイドルストップ制御ソフトにおける構造を再構築する手法について示した. 本手法はセンサ情報に対する閾値判定, 及び多数のセンサ情報を組み合わせた状態判定を整理 構造化することで, ソフトウェア構造に起因する保守性の低下および可読性の低下という問題に対する有効な対策である. 6

参考文献 [1] 国土交通省 - 現在実現している運転支援システムの概要 http://www.mlit.go.jp/road/ir/ir-council/autopilot/pdf/9.pdf [2] THOMAS J. McCABE - A Complexity Measure http://www.literateprogramming.com/mccabe.pdf [3] 東陽テクニカ メトリックの概要 http://www.toyo.co.jp/ss/qac/product_summary4.html 7