ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

コピペの研究について聞いてきた

2016-12-15 17:50:47 | Weblog
学術的に言うとコードクローン、普通に言うとコピペの分析ツールCCFinderとかについて
今日、12月15日
コードクローン分析技術の最新動向セミナー
にいって聞いてきたので、その内容をメモメモ




■大阪大学ソフトウェア工学講座における
 コードクローン研究の歩み 大阪大学 井上先生

・さいしょにやったのは、かみやさん
 その辺から盛んになる:コードクローンの解析、ソフトウェアの履歴分析
 最近は、いろんな研究→スタートは15年前

・きっかけは?
 NTTの関連会社:レガシーシステム クローン台帳で管理→ぐちゃぐちゃ
 いいツールがないかね?

 調べてみたら・・・コードの同じところを探す研究はあった(小さなスケール)
 ツールはなかった

 かみやさんが、やってくれた。くすもと先生がアプリケーション

・技術的には・・
 コアの部分:同じところを探すのは、よくある問題(本も出ている)
  String Trees and しーけんす
 →Suffix tree algorithmを使う
   →DNAシーケンスのマッチング
 数週間で、プロトタイプが動く。結果が面白い
 Unixの間のコードクローン

・CCFinder
 GUIを作ったり、言語拡張
 TSE Submission
  Highly Cited Papers in SE 24位、22位

・コードクローン分析セミナー
 9回 2002年~2007年

・いろんな方向に
 スケーラビリティ:CCFinderは100万行→分散処理
 ソフトウェアの不正使用:ソフトウェアレベルで
 システム間の類似度:系統樹
 リファクタリング、コードクローンの間の関係
 コーディングパターンの検出(あまり切れ味のいい結果ではない)
 インターネット空間で探す→サーチエンジンを借りて
 安全性をたしかめる
 software heritage Project
 ライセンスの問題:同じソースコードで違うライセンス
 コードクローンをリファクタリングしたら、どうなるか(サイズ)

・いま、ワールドワイド:企業では、マイクロソフトが興味




■コードクローン研究グループの紹介
・大阪大学の研究
  井上先生
  くすもとせんせい
・NAIST:2つ
・島根大学:かみやせんせい
・名古屋大学

■大阪大学 ソフトウェア設計学講座でのコードクローン研究 楠本先生
・コードクローン検出手法 5つくらい
  行単位
  字句単位
  抽象構文木
   にている
   依存グラフ
  メトリクス→大きくても適用できる

・何に使える
  現状把握
  潜在的不具合
  ライブラリ作成支援
  著作権違反
  リファクタリング
  現状把握

・成果
 http://sel.ist.osaka-u.ac.jp/

・実プロジェクトデータへの適用事例

■奈良先端大
・ソフトウェア工学関係 松本先生と飯田先生(飯田先生に所属)
 正規化したものとか、コードレビューとか、ソースコードのスリム化とか

■神谷先生の研究室
・動的振る舞いの等価性によるコードクローン
  書き換えたけど、同じ内容→結構大変
 同じようなAPIをたたく→呼び出し環境全部→データ爆発
 絶賛開発中

■レガシーマイグレーション・モダナイゼーションとコードクローン検出技術
・情報システムの変遷
 定型処理    レガシーシステム
 非定型処理
 多システム連携 オープンシステム(独自システム→オープンソース利用)
         Web
 クラウド
  →三菱総研 システムモダナイゼーションはなぜ必要か?

・システム更新の理由
  運用保守コスト
  ベンダーロックイン(保守費用高い)
  開発言語のトレンド→技術者コスト

・レガシーマイグレーションとモダナイゼーション
  レガシーマイグレーション:基盤だけ新しい、アプリをなるべく触らない
  モダナイゼーション:作り直し(基盤もアプリも)

・クローン分析の活用
 マイグレーション:基盤部分を作り直す→削減のチャンス
   テスト工数、レビュー工数の削減
   (学術的には)修正リスク、ライブラリ化
 モダナイゼーション:現状把握に利用

・CCFinderXの現状
 オープンソース化されているが、専門性が高い
 大学は、保守しても、評価されない
 Python2系にサポート切れる。

■多言語に対応したコードクローン検出ツールの開発
・多言語対応

・CCFinder タイプ2までのコードクローン
  予約語:対象言語によって違う→予約語リスト
 Javaがあれば動く

・処理
  マクロ・コメントの削除
  トークン分割
    空白、改行、記号は1文字ずつ
  N-Gram
    隣り合う文字を1塊に
  コードクローンの探索
    4-Gram

・実行結果

■新ツールのリリースについて
・3月末に初期バージョン
・参加者のみなさんへは告知
・共同研究ライセンス
・大学との共同研究




■レガシーシステム改善のためのコードクローン分析ツールCCFinderXによる
 ソフトウェア構造解析の実践

・背景
 レガシーシステムの成果物の資産化・再利用

・直面した課題
 品質が低いものを組み入れると・・・
 大規模

・レガシー分析手法の概要
 会社で定義
  解析パターン
  コードクローン散布図

 散布図解析パターン
 投資対効果

 散布図解析パターン
  対角線に着目するパターン→コピペ多い
  分断化された対角線→一部修正
  破線・点線→再利用にふさわしくない

 投資対効果
  リファクタリングに多大な投資→効果あるのか?
    削減ステップ数の見積もり
    削減工数の見積もり:ステップ数削減→回帰テストの削減

・分析事例
  共通画面→コードクローン
  レガシー再生の投資対効果見積り

・課題と考察
  大規模なシステムではメトリクスを用いたフィルタリング

■コードクローン分析技術を活用した品質向上の取り組みのご紹介 NEC
・コードクローンはソフトウェアの保守性を低下させる要因
事例1 CCFinderXを用いたコードクローン自動検出
 全社ソフトウェアファクトリー
   センターサービス:自動化→CCFinderは、メトリクスの1つ
   コードクローンの確認→関数化など

事例2;コードクローン変更管理システムを用いた修正モレの検出
  クローンノーティファイヤー
 修正モレを効率的に探す
 バグがあるクローンはっけん→効率的に他のものを見つける
  →クローンノーティファイヤー

 クローンノーティファイヤー
   ステーブル
   モディファイド:変数名の変更
   ムーブド   :大幅な編集
   アッデド   :こぴぺ
   デリーテッド :削除
 クローンセット
   ステーブル
   ちぇんじど :他のクローンも修正可能性
   New
   デリーテッド:修正モレの可能性を生じる

■コードクローン分析による資産規模スリム化の事例紹介
・事業内容
  課題センシングサービス
  プログラム資産棚卸サービス

・コードクローン分析の活用
 言語資産分析
  プログラムの可視化→資産スリム化:プログラム棚卸と共通化(コードクローン技術)

 コードクローン分析
  字句解析・構文分析→共通:コードクローン→部品

・プログラム言語によって違い
  類似性:グルーピング→共通化
 COBOLのような手続き型と
 Javaのようなオブジェクト型では、共通化が違う
   →クラス構造の考慮(共通クラスの作成)

・事例紹介
 COBOLの場合:共通化と棚卸
 共通部品抽出

■COBOLソースの削減に向けたCCFinderXの利用事例
・業務アプリのモダナイゼーションに向けた取り組み
  見える化
  スリム化
  最適化
 今日はスリム化のお話

・実現したいこと
 クローンを見つけて集約したい→CCFinder 集約まで行かない

 パターンを見つけて
  CCFinderはコード片になっていないことも
 集約
  変数名が違う場合→パラメータ化
  領域のかぶり
 テスト

 →自動化ツールを作った

・課題1:集約する範囲が不適切
 COBOLの構文にあわせて集約

・課題2:パラメータ化する必要
 COPY句化→テストが比較的に簡単になる

・課題3:クローンセットの重複
 クローンセット間の関係
  入れ子になっているのを対象に
  内側からCOPY句化

・分析事例

・まとめ
 COBOL用機能を作った
 課題
 ・集約するかどうかは人が選ぶ
 ・COPYファイルの命名法
 ・Type3クローンどうするか?
 ・またクローンを作られたら?
 ・集約の効果

Q&A
・どこめざしてるの?
→よいクローンと悪いクローンがある
 クローンを作らない:理想
 見せる必要のないクローンを見せない
  GUIの部品の定義、変数宣言→プライオリティをふる

・車載系の組み込み
 行き過ぎた共通化によるインパクト

・自動修正
 意図が入らないのが問題




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IoTで「トイレ使用状況を見える化計画」

2016-12-15 10:08:33 | Weblog
みずほ次期シス開発とかにも、いりそう・・・

昨日、

IoT&Enterprise Forum 2016 Winter
~IoTビジネスで勝ち抜く-先進事例に学ぶ「勝てる」IoTビジネス~

を聞いてきた。その内容をメモメモ
(表題の件は、真ん中頃のIIJの講演にある)





■基調講演 IoTの標準化、その最前線
 IoT Cloud,Edge Computing,Fog Computing
・IoTの標準化動向
・Fogコンピューティングとは
・OpenFogコンソーシアム活動
・まとめ

1.IoTの標準化動向
・IoTによる将来市場
 センサーが増えてきている
 つなぐネットワークがそろってきた
  →ICT:ビジネストレンドになるだろう
 今、1人あたり100個のセンサー
  →なんかつかえるだろう・・・ヘルスケア、工場
  →いままででもやっていること:新しいビジネス
 非常に広い

 センサー系
 ネットワーク系:有線・ワイヤレス
 制御、機械
 サービス
 →標準化色々

・IoTのプロジェクト
  アメリカ IIC、DMDI
  ドイツ  Industry 4.0
  日本は? IoT推進コンソーシアム
  中国   中国製造2025
 技術の標準もある
  ネットワーク
  デバイス:スマートデバイス
  電機産業制御

・IoT標準化団体の状況
 ビジネス分野による分類
  AIOTI WG3 Release 2.5 
 まとめると
  セキュリティ・プライバシー
  アプリケーション
  IoTアーキテクチャ
 別の分け方
  物理
  ネットワーク
  アプリケーション

・AIOTI
 アライアンス ふぉー インターネット おぶ シングス いのべーしょん
  →ヨーロッパ
 AIOTIでぐぐって、リソース

 日本語では
  IoT/M2Mの技術標準化 業界アライアンス最新動向

・IIC
 普及促進団体(標準化しているわけではない)
   →リファレンスアーキテクチャの提供

・Industrie 4.0
 ドイツ
 機械化、電力活用、自動化
 お金払わないと、あまり情報もらえない

・IVI Industrial Valuechain Initiative
 ものづくり
 スマートマニュファクチャリングユニット

・oneM2M
 通信系の団体が寄り集まってM2Mのアーキテクチャ仕様
 正しいセンサーを正しくつなぐためのデータ定義、セキュリティ
 →つなぎやすくする(セッションとか)

・MEC モバイル エッジ コンピューティング
 ETSI(えっじ)内
 どこで計算するか→Fogに近い

・スマートデバイス、家電 ASA
 近接LAN LoRa

 IoTが広がる中で、技術標準・アライアンス
  通信ネットワーク
  産業用
 業種別
  業種別
  エコシステム
  中核

 相互交流
 業界標準の中にどれをとっていくか
 水平展開部分と垂直展開部分
  セキュリティ、コネクションの考えは様々

2.Fogコンピューティングとは
・どういう風につなぐのかが重要

・Fogコンピューティングとは
 第一のイニシアティブ:OT/ITの統合
 第二のイニシアティブ:OT/IT/5Gの統合
 第三のイニシアティブ:マシンと人のコラボレーション

・IoTとエッジコンピューティング
 クラウドコンピューティング:クラウドに挙げて計算する
    ↓データが大きいと、伝送の問題
 エッジコンピューティング :現場に近い場所でやる。結果だけ渡す
    ↓もうちょっときちんと考える
 Fogコンピューティング
   いろんなパターンが出てくる
   ネットワークトポロジーの考え方
     大きなネットワークの中に、小さなネットワークがある
     Fog自身にセキュリティ、マネジメントがある:クラウドのサブセット

・IoTシステムリファレンスアーキテクチャ

・想定される役割
  フォグ間、フォグとデバイス・・・:きちんと決めていく

3.OpenFogコンソーシアム
 Fog:自律で動く
 産業界、技術界
 参加メンバー53社、15カ国 
 ARM,Intel、シスコなど+日立、さくらインターネット・・・
 
・OpenFogの8つの柱
 マッピングして、整理、使ってもらえるように
  →リファレンスアーキテクチャ

・OpenFogリファレンスアーキテクチャ

・OpenFogのノードセキュリティ
  セキュリティ要件→来年の2月頭に
  ユースケースサンプル

・JRC

・今後の活動
 ワークショップ 2月下旬
 イベント 4月11日
 11月に World Fog こんぐれす

Fogコンピューティングまとめ
・Webサイトもあるよ





■IoT変革のフェーズとインテルの取り組み・事例のご紹介
・みなさまに、こう思っていただきたい
 半導体:さまざまな領域で活用
 開発者のコミュニティに対するインテルの投資も加速

・インテルの成長サイクル
 バーチャサイクル
  メモリ、FPGAを使った解析の高速化
  インテリジェンス:
    マシンラーニング、
    ディープラーニング、
    コグニティブ、
    でぷすセンサー
   →ユーザーエクスペリエンスの改善

・インテルIoTの注力産業分野
  ヘルスケア:判断、ウェアラブル
  流通:オムニチャネル、サプライチェーン
  スマートな交通:車車間、自動運転、ソフトウェア定義のコクピット
  スマートな製造:スピード向上、予知保全、遠隔監視
  スマートビルディング:エネルギー、環境、セキュリティ・監視

・3つのフェーズ
  つなげる
  スマート
  自律的

・つなげる:未接続を接続
 ものがデータ活用できるかたち
 デバイス:ネットワークに接続→バックエンド

・スマート:スマートで繋がるモノ
 処理するためにデータを動かす

・自律的:ソフトウェア定義の自律的な世界
 処理をデータ側に動かす

・課題
 技術的観点
  セキュリティと信頼
  相互運用性
  OT/ITの統合
  高度な解析
 ビジネス観点
  ソリューションのスケール
  コスト/ROI
  セキュリティとプライバシー
  断片化されたソリューション

・インテルのIoTアプローチ:モノからクラウドまで
  モノ→ネットワーク→クラウド
 アプローチ
  産業別ソリューションの創出
  水平型のプラットフォームと製品の上で構築
  強固なエコシステムの構築

・Intel IoT Platform
 セキュア、スケーラブル、相互運用
 製品ポートフォリオ
  半導体:コンピュートにFPGA
  すべてのポートフォリオ
  OS:VxWorks 安全に、仮想化
  解析をオープンソースへ→LUSTRE 並列

・IoTの事例
 店舗ソリューション:リーバイス
  RFIDタグ 在庫管理
  動画
 →トラステッド アナリティクス プラットフォーム

 SAP コネクテッドワーカー
 →エッジ側でインテリジェンス

 GE:スマートライティング

 ワーカーセーフティ:消防士さん

 スマートビルディング:人、エネルギー消費のビジュアル化

 BMW:自動運転

 富士通:スマートファクトリー

・インテルが何をもたらす
 プラットフォームと技術
 スケール、産業別ソリューション
 標準化





■共創が新たな社会価値を生み出す IIJ
・自己紹介

・本題の前に
 トイレ使用状況を見える化計画
 トイレ待ちの列が発生:朝、昼
 リアルタイムに分からないと
 →トイレにセンサーを付ける(マグネットセンサー)
  I2C→Raspberry Pi→データ収集
  Raspberry Piまで:電子工作
  1秒ごとに
  トイレ情報はFluentdに流す
  BotがAPIをたたく
  →どこがあいているか、Lineで答える

・IIJについて
  IIJ事業沿革
   オンデマンド(IBPS)、MVNO,クラウド、SDN

・MVNO事業
  移動通信:1億5000万
  MVNO:1500万
  IIJ :150万
 これからは、モノが使う携帯電話の市場が伸びる

・IIJ IoTサービス
 2016年11月 新サービス

・IoTの昨今
 IoTに関わるICTレイヤー
  トイレのIoT:センサー マグネットセンサー
  ゲートウェイ :ラズベリーパイ
  ネットワーク
  デバイス管理・データ収集・蓄積
  ミドルウェア・DB
  アプリケーション

 →IoTに関わるICTは高度に複雑化

・共創の事例
  日本精機
   クラウド型遠隔監視「SMASHシステム」
  ブレインズテクノロジー株式会社
   Impulse:オープンソースまとめて
     リアルタイムデータ分析処理
  アットマークテクノ
   デバイスゲートウェイ
     死活管理
     リモートモニタリング
     リモートコンフィグ
     リモートアップデート
   →ルーター管理SACM

・さらなる共創のために
  IoTをよりシンプルに
   デバイスからデータ収集までをIIJ IoTでパッケージ化
  →フルマネージ

・ゲートウェイに接続すれば、全てに繋がる

・IIJ IoTは様々な形で共創できます
 パートナープログラム準備中

・IIJの技術開発の今後
 3つの強み
  クラウド
  セキュリティ
  ネットワーク

 セキュリティ
  IoTデバイスを踏み台にした脅威
   2016年9月 Mirai
  1つの防御;インターネットにさらさない
  常に見張る→セキュリティ事業を強化 SOC(そっく)
  IIJ-SOC見学ツアー 17年3月

 ネットワーク
  無線:Wi-SUN スマートメーター Bルート
  LPWA:LoRaなど
  3G/LTE:
    NBIOT

  フルMVNO
   これまでのMVNOはライトMVNO
   →SIMカードを自分で持つことが出来る
    eSIM:いままでは契約情報が書き込まれていた→どうにでもできる
    リモートから書き込み

・実績を基にした技術力と先進的なチャレンジでIoTをリードしてまいります





■町工場でも効果が出るIoT、カイゼンスピードアップで3.3億円を節約
・この画面:愛知県のラインの状況・麻からの出来た割合・目標値

 手作りIoTで生産効率6割アップ 昭和の機会でも接続可能
・旭鉄工
 売上高158億円 従業員数480名
 エンジン、ボディ、ブレーキ、
 60%はトヨタ、後はアイシン、豊生ブレーキ

・IoTシステム
 2014年 第一世代
 2015年 第二世代
 2016年 第三世代

きっかけ:T社の主幹から
 生産管理板:問題点把握の道具(手書きで記入→書くのは容易ではない)
 時間ぴったりにカウンター読み取り
 停止時間記入
 →人には付加価値の高い仕事を
  測定は自動で
  流行のIoTでなんとかできないか
  セミナー・展示会→大掛かりでたかい・昭和の機械NG・ほしいデータ
  買うのはやめた ほしいものを創るのが一番
  試行錯誤の日々→
   Raspberry Piをつかってみたら?
   使いもしないデータはとるな
   クラウドでデータを上げ、汎用端末、無線で
 第一世代完成
  正常のときは信号を出さない、異常のとき送信機 受信機→クラウド→スマホで
  Raspberry Piとスマホで
  稼動・停止時間

 見えるだけでは直らない
  IoT=IT+OT
 ラインストップ会議を毎日開いて徹底的に対策
  止まった原因は、いつ誰が堂対策、再発はないのか
  最初は2時間→停止時間なかなか減らない
   作業者:停止したことが分からない
    →あんどん:たかい(設備状況表示盤)
 あんどんはなぜ高い
   専用表示場所、高所作業、電源・LAN工事
 無線の技術と
  iスマートあんどん
   受信機に表示、送信機になぜとめているかのセレクトスイッチ
 他社せいの10分の1で完成
   汎用ディスプレイ

 サイクルタイムも把握
  1サイクルに1回、パルスを出せて、かうんとすればいいんじゃない

 どうやってパルスをとるの?
  →シーケンサー:高いからX
 秋葉原で適当なセンサーかって来い

 →第二世代(サイクルタイムモニター)完成
  生産状況・個数・

 パルス信号の取り方
  光センサー:シグナルタワーのON/OFF
  リードスイッチ
 →昭和の設備OK

 見えるデータは3種類
  生産状況・個数
  停止時刻時間
  サイクルタイム

 生産状況
  稼動してからの稼働率
 生産個数
  直あたり生産個数・稼働率
  時間当たり生産個数・稼働率

 停止時間 トップ5表示

 全サイクルの実績

 履歴表示
  過去のデータもすぐに確認できる
 →人は計らなくていい:どうやってカイゼンするのか

 いままで
  事前調査:時間かかる→分析はやい
  検討
  カイゼン
  確認;時間かかる→スマホ見れば分かる

 気づきも色々アル
  5:30から稼動開始なのに、なぜ、最初に信号が5:58
  サイクルタイムが3秒遅いけど、なぜ
 →上司の目はごまかせなくなったが、改善しやすくなった

 例:本社工場 バルブガイド切削工程
  15%UP、設備投資削減、スペース低減
 西尾工場 牽引フック切削工程
  69%UP 2ライン増設不要、休日出勤廃止。

・ソフトが複雑になりすぎて、手に負えません
 →専門家 レッドハットに依頼→理由:説明してくれたから
  (それまでIoTという言葉を知らなかった)

 送信機→受信機:
   StickPC+Linux
   クラウドにAI
 生産状況・個数、稼動、停止時間、サイクルタイム
 段換え対応、電池残量、停止要因入力
 あんどん

 休日出勤残業のアルラインを選ぶ

 1時間に何個作ればいい

 停止時間トップ5
 サイクルタイム短縮
   各種タイマー縮小、ロボットの動き直線化 0.1秒の短縮を積み重ねる


 設備投資削減額:1.3億積み増し、3.3億円削減
 
 サイクルタイムモニター:ヤマが低くなった

・効果が出るシステムが出来た理由
 1.ほしいものをつくった
 2.データを欲張らなかった
 3.とりあえず作って試した

・成果も出たので、会社作った

・来年;海外対応
 お金がない:9800円X1台で
 信号をとるのは難しくない

・ビデオ:現場の声:は流せなかったです

・経営者の立場から
 目的様々
  カイゼンのスピード
  IoTの導入が目的ではない
  大きな成果が出た理由:どう使っているか
    1.あくまで、ポジティブ側で使う
      気づきであり、監視ではない→カイゼンに
    2.目標は、あくまで高く。必要なものが目標
      現場に行って、考える
    3.ひとの力を引き出す:モチベーションアップ
  →みてもらえている


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Googleは自動運転車の自社開発をやめたらしい

2016-12-15 01:27:54 | AI・BigData
今後は自動車メーカーとのパートナーシップを重視
http://jp.techcrunch.com/2016/12/13/20161212google-has-reportedly-stopped-developing-its-own-self-driving-car/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする