JASMINEシミュレーターの開発 JASMINEシミュレーターWG 山田良透(京大理) メンバー 構築コアメンバー 山田良透 京都大学理 [email protected] 上田誠司 総研大 [email protected] 桑原 新潟大理 [email protected] 協力メンバー 矢野太平 国立天文台位置天文 [email protected] 辻本拓司 国立天文台位置天文 [email protected] 官谷幸利 国立天文台電波 [email protected] 西亮一 新潟大理 [email protected] 郷田直輝 国立天文台位置天文 [email protected] その他アストロメトリ勉強会メンバー 安田直樹 国立天文台データ解析セ [email protected] 真鍋盛二 国立天文台地球回転 [email protected] 田澤 国立天文台地球回転 [email protected] 小林行泰 国立天文台機器開発セ [email protected] 越田進太郎 国立天文台機器開発セ [email protected] 中島紀 国立天文台光赤外 [email protected] 松原英雄 宇宙化学研 [email protected] 上野宗孝 東京大 [email protected] Simulatorの概要と目的 装置・環境を含めた模擬観測からカタログ 生成・利用までの統一的シミュレーション 目的 装置仕様 サイエンスとして何がどこまで 新観測モードの精度評価 部分(非全天)サーベイは世界初 解析手法(数億星)の検討 Simulator開発のキーワード オブジェクト指向⇒ UML⇒ ツール CVS⇒ テスティングフレームワーク XML/Webサービス 次へ Object指向技術の歴史と現状 歴史 Simula(1967) Smalltalk(1972-1980, Xerox PARC) C++(1984) Java(1995) ソフトウエア開発手法の一つのパラダイム 新たなパラダイムも考案されている Object指向とは 3つの要素 自然な発想によるプログラミング 仕様に対する柔軟性 再利用性の高いソフトウエア Objectとは 状態(属性) 振る舞い(メソッド) 識別性 Object指向言語の特徴 抽象化 問題に必要な性質だけを抽出 カプセル化 データと操作の組と、適切なアクセス制御 継承 性質を受け継ぐ 多相性 受け継がれた性質に対して操作を上書き Object指向言語 Fortran 抽象化 C Fortran90 C++/Java × △ △ ○ common structure type class カプセル 化 継承 × × △ ○ × × × ○ 多相性 × × × ○ アクセス制御 Powerfull Standard libraries 戻る UML Unified Modeling Language モデルを記述するための図式 設計に利用 9種類の図 クラス図、オブジェクト図、ユースケース図、 状態図、アクティビティー図、シーケンス図、 コラボレーション図、コンポーネント図、配置図 CASEツール 外注では必須 ユースケース図 利用の仕方を表す 要素 アクター ユースケース クラス図 クラス(オブジェクト の型)定義 クラス同士の関係 デザインパターン プログラム設計で共通の単語を提供 プログラム要素をクラスより大きな単位で 管理 再利用性・拡張性の高いプログラムを作る ための経験則 GoFが23のパターンに整理 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides パターンの例--Composite 部分全体階層を実現 したい オブジェクト構造 クラス階層ではどうす るか? 戻る Concurrent Version System バージョン管理ツール Rcsの拡張 サーバークライアント形式 枝の管理 フリーソフトウエアでは常識的 企業では独自のものを使っている場合が多い 戻る Cvsサーバーについて サーバー名 cvs.jasmine-galaxy.org レポジトリ名 /Jasmine/cvsroot アクセス方法 ext 認証 ssh Ssh2のDSA公開鍵を山田宛送付 非公開の内容がアクセスできるので、アクセス可 能なユーザーは秘密厳守が義務 Webdav導入の検討 現在のcvsレポジトリー構造 simulator Jasmine Simulator開発用 apply 科研費等の申請書類作成 optics Centroid実験用プログラム paper Jasmine関連論文執筆用 report レポート、中間報告 viewgraph 発表用ビューグラフ 宇宙モデルの設計 全体 宇宙全体 観測スナップショット 太陽・地球、月 部分 Single Star Multiple Star 太陽系天体 銀河系外天体 観測装置の設計 全体 部分 Jasmine 光学系 検出器 光学系はさらに部分 を持つ 解析アルゴリズム 検討課題 複数の方法を検討 容易に入れ替え可能 Strategyパターン アルゴリズムカプセル 化の一般的手法 開発における留意点1 Coding style Sun Java Coding Conventions Gnu Coding Standards(C++) 単位系 SI単位系 開発における留意点2 Buildにはantを使用する ディレクトリー構造 src lib ソースツリー 外部ライブラリを置く(現在未使用) XML関連ライブラリ、描画、物理用 コンパイル作業用(antが生成) report テストレポート作業用(junitが生成) dist 配布ファイル保存用(antが生成) build 開発における留意点3 名前空間 テストの実装(XP) jslibパッケージはJsで始まるクラス名 Jasmineの側は特に指定しない 他のパッケージの仕様を仮定している場合 仕様を定めている場合 ドキュメントの整備 仕様書 Javadoc ChangeLog 開発における留意点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 パッケージごとに責任者を割り当てる 必要な開発環境 開発者 早期利用 Java開発環境 ○ ○ Ant ○ ○ Junit ○ 利用者 (実行環 境) 全体設計について 中間報告時点でのモデル化 対象、装置、操作、環境、成果物、利用 さらに抽象度の高いモデル化の提案 上のモデル同士のつながりは予め定まるか? モデルと入出力・接続の分離 シミュレーション モデル/コンテナ/コネクタ/データ コンテナとコネクタでシミュレーションを実装 コマンド モデル モデル コンテナ コンテナを接続する部品 データ モデルに対する入出力の抽象化 コネクター モデル化の最小単位 コネクターを流れるデータの抽象化 シミュレーション シミュレーションを、コンテナ・コネクタから組みあげる ライブラリ 起動・主フレーム 終了 印刷 実行モードの選択 ファイル入出力 シミュレーションの選択 GUI部品 JsMainと関連クラス 数種類のフレーム Commandパターンの適用 Model/container/connector 今後の進め方 ライセンスモデルを決める オープンソース 保守はcygnus形式 Jasmineグループが保持(有償提供) 暫定的な公開方法 Jarファイルをメンバー限定Webページ ソースはcvsサーバー 議論はMLで 参考文献 「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円 今後の課題 機能の追加
© Copyright 2024 ExpyDoc