2018年もiPXをよろしくお願いします
こんにちは、iPXの須山です。
新年あけましておめでとうございます
2018年になりましたね。本年もiPXをよろしくお願いします。
なお、2018年のiPXは 1月8日より平常通り営業いたします。
皆さんはどのような 新年を迎えたのでしょうか?
(ちなみに私は 実家に帰省し、地元で新年を迎えました。)
Automotive World
昨年2017年 iPXとしましては、本社事務所の移転等があった年でした。2018年もiPXでは いろいろな事が予定されていますが
弊社として 年明けまず大きなイベントとしましては、
東京ビッグサイトにて 今月17日より行われるAutomotive Worldへの
出展がございます。
社内では、鋭意出展準備中です。
18日には 東-Fセミナー会場にて、セミナーも開催予定です。
(内容は ADASシステム開発におけるDeepLearning活用事例を
弊社の開発事例を交えて紹介予定です)
是非いらしてください。
2018年もiPXをよろしくお願いします。
Graphvizで依存関係
初めに
お久しぶりです。砂子です。もう年末ですね。前回はFF7のメモリ解析でしたか。光陰矢の如しとは言いますが、本当に時間がたつのが早く感じる今日この頃です。
弊社では機械学習やDeepLearning、FPGA、CUDAなどに関連した業務も増えてきましたが、わたくしは栃木でWEBのフロントエンド開発などをしております。Web開発は初ということもあり、HTML、CSSなど勉強することも多い毎日です。
業務で遭遇する依存関係
さて、業務を遂行していると時節依存関係に出くわすことがあります。
- 関数の呼び出しを説明する
- 要求仕様で記述されている機能群の関係を把握したい
- etc
大半の方が業務で使用できるツールといえばMicrosoftのOfficeシリーズになりますが、それを使って依存関係を記述、描画するにはかなり骨がおれます。非常に単純なものであればExcelやPowerPointなどを使用すればよいのですが、ドキュメントの中に所々ある依存関係の記述を拾い集めて管理するのは大変な作業となります。
今回業務で遭遇したのが、200ページ位のPowerPointドキュメントに記述された要求仕様でした。機能ごとに整理されており、各機能が依存する機能はわかるのですが俯瞰して依存関係が記述されていません。それほど依存関係が複雑というわけではないはずが、いくつかの箇所に”機能Aは機能Bを呼び出す”などと記述されている状態です。
プログラミングの依存関係の例
プログラマーであれば依存関係ということばより、Makeやコールグラフが思い浮かべるかもしれません。
makeは有名なUnixツールで複数のソースコードを成果物にまとめ上げるためのツールです。makeを詳しく知らなくともUnixライクなシステム(Linux, cygwinなど)で下記のようなコマンドを実行したかたもいるかもしれません。
./configure
make
make install
コールグラフはIDEやドキュメント自動生成などでみることがある関数の呼び出し関係を記述したグラフです。私はDoxygenを利用してソースコードからドキュメントを作ったとこがありますが、その時関数の関係が描画されていました。
Graphvizについて
Graphvizは上記のDoxygenがコールグラフを生成する際に使用するツールです。これはdot言語で記述されたグラフ構造を描画するツールになります。 ここでグラフ構造とはノード(節点)とエッジ(辺)を構成要素とし、ノードとエッジの関係を記述した構造です。ノードn1とn2があり、エッジとしてn1とn2を結ぶe1があるとすると下図のようになります。
graph G {
n1 -- n2;
}
エッジにn1からn2への方向を持たせると下図になります。
digraph G {
n1 -> n2;
}
依存関係描画
さて、依存関係は”機能Aが機能Bに依存している”というように記述されます。これを下記のように描画します。
digraph G {
FuncA -> FuncB;
}
ドキュメントに出てくるページをコメントで書いて、次のように書けば依存関係のグラフ構造が描画できます。
digraph G {
// P.10
FuncA -> FuncB
// P.13
FuncA -> FuncC
// P.20
FuncB -> FuncC
// P.50
FuncD -> FuncC
// ... until P.200
}
ドキュメントの各ページで記述されている依存関係を描画できました。納品や客先での説明資料としては物足りないかもしれませんが、見積もりの資料としてはある程度の意味をもつと思います。
終わりに
実際の業務では専門領域以外の複雑性に直面することが多々あります。マッチングするツール等があればよいですが、高級であったりライセンスの関係で利用できないこともしばしばです。また、個人的に業務の複雑性をその都度解消できてもチーム内で共有できなくてはせっかくの効率化も失われてしまいます。Officeなどの汎用的なツールで完結できればそれが一番なのですがね。 もっと大枠で業務の改善などを提案、定着できるように配慮して開発を進める必要を感じます。 では次回の記事で。次は英語で書いてみようかな。
年末近くを迎えて
寒くなってまいりました。
皆さまいかがお過ごしでしょうか。
iPXのかのまたです。
年末が近くなり、年末ジャンボの発売日も近くなってまいりました。
「今年こそは人生を購入するのだ!」と息をまく、そんな皆様のために、このような写真を用意しました。
栃木県那須烏山市「大金駅」です。
駅前に小さくても「大金神社」があります。
お参りをば
駅前にある売店
駅前の道路
六角形「県道233号線」
総延長14km程度です。
大金駅の時刻表です
JR烏山線「ACCUM」
キハ40はちょうど来なかったです。
那須烏山市の案内板
さて、皆様の運が上向いたことでしょう。
自宅からちょっとばかり遠いですが、よいドライブコースでした。
栃木は寒いですがよいところです。
Modelica Users Conference 2017に参加してきました
EPLU(Engineering Process Leading Unit)の加藤です。
10月27日(金)に、Modelica Users Conference 2017に参加してきました。
http://www.modelon.com/jp/modelica-users-conference-2017-japan/
主催はModelon社ですが、ユーザーカンファレンスという名前の通り、ユーザー事例の発表を中心としたイベントです。
Modelon社のプレゼンテーションに続き、海外や国内のユーザの事例発表が行われました。
当日はModelicaユーザやFMIに関心のある方々が、140名あまり参加していました。