Riding the Design Wave II Leveraging Software Architectures to Guide and Verify the Development of Sense/Compute/Control Applications Damien Cassou, Emilie Balland, Charles Consel, and Julia Lawall Proc. ICSE’11 pp. 431— 440, May 2011 doi: 10.1145/1985793.1985852 General terms: Design, Languages, Verification Keywords: Generative programming, architectural conformance 2011/7/5 ICSE2011勉強会 担当者: 市井 誠 1 概要 SCC(Sense/Compute/Control)ソフトウェア 向けのADL(アーキテクチャ記述言語)の開発 既存ADLは,アーキテクチャ記述としての抽象度と, 実装支援可能な具体性を両立できていない ”Interaction contract”の記法を提案 – コンポーネント間のデータフロー/制御フローの制約を記述 既存手法で出来なかった「Aは,Bから来たデータに基づきCへ問い 合わせ,結果をDへ送る」といった記述を可能にする – コード生成による実装支援と,アーキテクチャの検証が可能 既存ADL環境を拡張し,評価 SCCソフトウェア sensors sense environment control actuators 2 2011/7/5 ICSE2011勉強会 Context operators compute control operators SCCの例 Webサーバー監視アプリケーションのADL表記 ログを監視し,不審なアクセスを管理者へメール通知 13 10 12 9 11 3 2 1 8 6 4 5 7 直感的には自明な流れも, 1. アクセスログ追加を通知 2. ログ行から抽出したクライ アントIPを渡す 3. IPに対応するプロファイル を問い合わせ 4. ホスト名問い合わせ 5. 返答 6. LDAP情報問い合わせ 7. 返答 8. 返答 9. プロファイルの送信依頼 10. ログ送信 11. 侵入検知呼出し 12. 侵入通知を依頼 13. 侵入をメール通知 ADL上は,異なる解釈を許してしまう 3 2011/7/5 ICSE2011勉強会 出典: D. Cassou et al, “Leveraging Software Architectures to Guide and Verify the Development of Sense/Compute/Control Applications”, Proc. ICSE’11, pp. 431— 440, May 2011 Interaction Contract Context operatorに関するの3つ組の記述 push元・pull先・pushの有無 Lineからpushされ,常に pushする AccessLogParserからpush され,IP2Profileをpullし, 常にpushする Pullされるのみで,ip2host とhost2profileをpullする コード生成による実装支援 AccessingProfileからpullさ れ,条件次第でpushする 記述されたインタラクションに対し, 抽象メソッドと,その呼出しコードを生成 アーキテクチャの検証 データの到達性検証 時相論理式の検証 – 「AccessLogReaderからlineがpushされたときはいつでも, ProfileLoggerがいつか呼ばれる 出典: D. Cassou et al, “Leveraging Software Architectures to 4 2011/7/5 ICSE2011勉強会 Guide and Verify the Development of Sense/Compute/Control Applications”, Proc. ICSE’11, pp. 431— 440, May 2011 評価 SCC向けADL “DiaSpec” と,そのツール DiaSuiteを拡張 学生実験による既存DiaSuiteの評価(欠点) アーキテクチャの解釈が分かれ,設計者の意図と異な る実装となる 不必要なスケルトンコードが生成され,実装すべき箇 所の判断が必要 検証が限定的 Interaction contractの有無の比較実験 コード量: ADL記述量はやや増えるが,自動生成コード が増え手作業コーディング量は減る コード品質(CodeSonerで計測): 自動生成コードによ りプログラミングがガイドされるため,高品質 5 2011/7/5 ICSE2011勉強会
© Copyright 2024 ExpyDoc