jasmine シミュレーターの開発

36
JASMINE シシシシシシシシシシ JASMINE シシシシシシシ WG シシシシ ( シシシ )

Upload: baakir

Post on 05-Jan-2016

58 views

Category:

Documents


0 download

DESCRIPTION

JASMINE シミュレーターの開発. JASMINE シミュレーター WG 山田良透(京大理). メンバー. 構築コアメンバー. 協力メンバー. その他アストロメトリ勉強会メンバー. Simulator の概要と目的. 装置・環境を含めた模擬観測からカタログ生成・利用までの統一的シミュレーション 目的 装置仕様 サイエンスとして何がどこまで 新観測モードの精度評価 部分(非全天)サーベイは世界初 解析手法(数億星)の検討. Simulator 開発のキーワード. オブジェクト指向 ⇒ UML ⇒ ツール CVS ⇒ テスティングフレームワーク - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: JASMINE シミュレーターの開発

JASMINEシミュレーターの開発

JASMINEシミュレーターWG山田良透 (京大理 )

Page 2: JASMINE シミュレーターの開発

メンバー

山田良透 京都大学理 [email protected]

上田誠司 総研大 [email protected]

桑原 新潟大理 [email protected]

矢野太平 国立天文台位置天文 [email protected]

辻本拓司 国立天文台位置天文 [email protected]

官谷幸利 国立天文台電波 [email protected]

西亮一 新潟大理 [email protected]

郷田直輝 国立天文台位置天文 [email protected]

構築コアメンバー

協力メンバー

Page 3: JASMINE シミュレーターの開発

安田直樹 国立天文台データ解析セ [email protected]

真鍋盛二 国立天文台地球回転 [email protected]

田澤 国立天文台地球回転 [email protected]

小林行泰 国立天文台機器開発セ [email protected]

越田進太郎 国立天文台機器開発セ [email protected]

中島紀 国立天文台光赤外 [email protected]

松原英雄 宇宙化学研 [email protected]

上野宗孝 東京大 [email protected]

その他アストロメトリ勉強会メンバー

Page 4: JASMINE シミュレーターの開発

Simulatorの概要と目的装置・環境を含めた模擬観測からカタログ生成・利用までの統一的シミュレーション

目的装置仕様サイエンスとして何がどこまで

新観測モードの精度評価部分 (非全天 )サーベイは世界初

解析手法 (数億星 )の検討

Page 5: JASMINE シミュレーターの開発

Simulator開発のキーワードオブジェクト指向⇒UML⇒ツール

CVS⇒テスティングフレームワーク XML/Webサービス

次へ

Page 6: JASMINE シミュレーターの開発

Object指向技術の歴史と現状歴史

Simula(1967) Smalltalk(1972-1980, Xerox PARC) C++(1984) Java(1995)

ソフトウエア開発手法の一つのパラダイム新たなパラダイムも考案されている

Page 7: JASMINE シミュレーターの開発

Object指向とは3つの要素

自然な発想によるプログラミング仕様に対する柔軟性再利用性の高いソフトウエア

Objectとは状態 (属性 )振る舞い (メソッド )識別性

Page 8: JASMINE シミュレーターの開発

Object指向言語の特徴抽象化

問題に必要な性質だけを抽出カプセル化

データと操作の組と、適切なアクセス制御継承

性質を受け継ぐ多相性

受け継がれた性質に対して操作を上書き

Page 9: JASMINE シミュレーターの開発

Object指向言語Fortran C Fortran90 C++/Java

抽象化 ×common

△structure

△type

○class

カプセル化

× × △アクセス制御

継承 × × × ○

多相性 × × × ○

Page 10: JASMINE シミュレーターの開発

戻る

Powerfull Standard libraries

Page 11: JASMINE シミュレーターの開発

UMLUnified Modeling Languageモデルを記述するための図式

設計に利用9種類の図

クラス図、オブジェクト図、ユースケース図、状態図、アクティビティー図、シーケンス図、コラボレーション図、コンポーネント図、配置図

CASEツール外注では必須

Page 12: JASMINE シミュレーターの開発

ユースケース図

利用の仕方を表す要素

アクター ユースケース

Page 13: JASMINE シミュレーターの開発

クラス図クラス (オブジェクトの型 )定義

クラス同士の関係

Page 14: JASMINE シミュレーターの開発

デザインパターンプログラム設計で共通の単語を提供プログラム要素をクラスより大きな単位で管理

再利用性・拡張性の高いプログラムを作るための経験則

GoFが 23のパターンに整理 Erich Gamma, Richard Helm,

Ralph Johnson, John Vlissides

Page 15: JASMINE シミュレーターの開発

パターンの例 --Composite部分全体階層を実現したい

オブジェクト構造クラス階層ではどうするか?

戻る

Page 16: JASMINE シミュレーターの開発

Concurrent Version Systemバージョン管理ツールRcsの拡張

サーバークライアント形式枝の管理

フリーソフトウエアでは常識的企業では独自のものを使っている場合が多い

戻る

Page 17: JASMINE シミュレーターの開発

Cvsサーバーについて

Ssh2の DSA公開鍵を山田宛送付非公開の内容がアクセスできるので、アクセス可能なユーザーは秘密厳守が義務

Webdav導入の検討

サーバー名 cvs.jasmine-galaxy.org

レポジトリ名 /Jasmine/cvsroot

アクセス方法 ext

認証 ssh

Page 18: JASMINE シミュレーターの開発

現在の cvsレポジトリー構造simulator Jasmine Simulator開発用

apply 科研費等の申請書類作成

optics Centroid実験用プログラム

paper Jasmine関連論文執筆用

report レポート、中間報告

viewgraph 発表用ビューグラフ

Page 19: JASMINE シミュレーターの開発

宇宙モデルの設計全体

宇宙全体 観測スナップショット 太陽・地球、月

部分 Single Star Multiple Star 太陽系天体 銀河系外天体

Page 20: JASMINE シミュレーターの開発

観測装置の設計全体

Jasmine

部分 光学系 検出器

光学系はさらに部分を持つ

Page 21: JASMINE シミュレーターの開発

解析アルゴリズム検討課題複数の方法を検討容易に入れ替え可能 Strategyパターン

アルゴリズムカプセル化の一般的手法

Page 22: JASMINE シミュレーターの開発

開発における留意点 1Coding style

Sun Java Coding Conventions Gnu Coding Standards(C++)

単位系 SI単位系

Page 23: JASMINE シミュレーターの開発

開発における留意点 2Buildには antを使用するディレクトリー構造

src ソースツリー lib 外部ライブラリを置く (現在未使用 )

XML関連ライブラリ、描画、物理用 build コンパイル作業用 (antが生成 ) report テストレポート作業用 (junitが生成 )

dist 配布ファイル保存用 (antが生成 )

Page 24: JASMINE シミュレーターの開発

開発における留意点 3名前空間

jslibパッケージは Jsで始まるクラス名 Jasmineの側は特に指定しない

テストの実装 (XP) 他のパッケージの仕様を仮定している場合 仕様を定めている場合

ドキュメントの整備 仕様書 Javadoc ChangeLog

Page 25: JASMINE シミュレーターの開発

開発における留意点 4 Javaバージョン

標準プラットフォーム Debian, Redhat, Windows, Solaris

java 1.4で動作可能なことパッケージ

org/jasemine_galaxy/jslib org/jasemine_galaxy/jasmine org/jasmine_galaxy/astro org/jasmine_galaxy/sample パッケージごとに責任者を割り当てる

Page 26: JASMINE シミュレーターの開発

必要な開発環境

開発者 早期利用 利用者

Java開発環境○ ○

(実行環境 )

Ant ○ ○

Junit ○

Page 27: JASMINE シミュレーターの開発

全体設計について中間報告時点でのモデル化

対象、装置、操作、環境、成果物、利用さらに抽象度の高いモデル化の提案

上のモデル同士のつながりは予め定まるか? モデルと入出力・接続の分離

モデル /コンテナ /コネクタ /データ シミュレーション

コンテナとコネクタでシミュレーションを実装 コマンド

Page 28: JASMINE シミュレーターの開発

モデルモデル

モデル化の最小単位コンテナ

モデルに対する入出力の抽象化コネクター

コンテナを接続する部品データ

コネクターを流れるデータの抽象化シミュレーション

シミュレーションを、コンテナ・コネクタから組みあげる

Page 29: JASMINE シミュレーターの開発

ライブラリ起動・主フレーム終了印刷実行モードの選択ファイル入出力シミュレーションの選択GUI部品

Page 30: JASMINE シミュレーターの開発

JsMainと関連クラス

Page 31: JASMINE シミュレーターの開発

数種類のフレーム

Page 32: JASMINE シミュレーターの開発

Commandパターンの適用

Page 33: JASMINE シミュレーターの開発

Model/container/connector

Page 34: JASMINE シミュレーターの開発

今後の進め方ライセンスモデルを決める

オープンソース保守は cygnus形式 Jasmineグループが保持 (有償提供 )

暫定的な公開方法 Jarファイルをメンバー限定Webページソースは cvsサーバー

議論はMLで

Page 35: JASMINE シミュレーターの開発

参考文献「 just Java2」、 Peter van der Linden

邦訳 ASCII、中田秀基 ISBN4-7561-3598-6、 5800円 オブジェクト指向における再利用のための「デザインパターン」、 Erich Gamma、 Richard Helm、 Ralph Johnson、 John Vlissides

邦訳 SoftBank、本位田真一 /吉田和樹監訳ISBN4-7973-1112-6、 4800円

「 eXtreme Programming テスト技法」 日本 XPユーザーグループ、長瀬嘉秀監修

ISBN4-7981-0128-1、 2400円

Page 36: JASMINE シミュレーターの開発

今後の課題機能の追加