360 likes | 557 Views
JASMINE シミュレーターの開発. JASMINE シミュレーター WG 山田良透(京大理). メンバー. 構築コアメンバー. 協力メンバー. その他アストロメトリ勉強会メンバー. Simulator の概要と目的. 装置・環境を含めた模擬観測からカタログ生成・利用までの統一的シミュレーション 目的 装置仕様 サイエンスとして何がどこまで 新観測モードの精度評価 部分(非全天)サーベイは世界初 解析手法(数億星)の検討. Simulator 開発のキーワード. オブジェクト指向 ⇒ UML ⇒ ツール CVS ⇒ テスティングフレームワーク
E N D
JASMINEシミュレーターの開発 JASMINEシミュレーターWG山田良透(京大理)
メンバー 構築コアメンバー 協力メンバー
Simulatorの概要と目的 • 装置・環境を含めた模擬観測からカタログ生成・利用までの統一的シミュレーション • 目的 • 装置仕様サイエンスとして何がどこまで • 新観測モードの精度評価部分(非全天)サーベイは世界初 • 解析手法(数億星)の検討
Simulator開発のキーワード • オブジェクト指向⇒ • UML⇒ • ツール • CVS⇒ • テスティングフレームワーク • XML/Webサービス • 次へ
Object指向技術の歴史と現状 • 歴史 • Simula(1967) • Smalltalk(1972-1980, Xerox PARC) • C++(1984) • Java(1995) • ソフトウエア開発手法の一つのパラダイム • 新たなパラダイムも考案されている
Object指向とは • 3つの要素 • 自然な発想によるプログラミング • 仕様に対する柔軟性 • 再利用性の高いソフトウエア • Objectとは • 状態(属性) • 振る舞い(メソッド) • 識別性
Object指向言語の特徴 • 抽象化 • 問題に必要な性質だけを抽出 • カプセル化 • データと操作の組と、適切なアクセス制御 • 継承 • 性質を受け継ぐ • 多相性 • 受け継がれた性質に対して操作を上書き
UMLUnified Modeling Language • モデルを記述するための図式 • 設計に利用 • 9種類の図 • クラス図、オブジェクト図、ユースケース図、状態図、アクティビティー図、シーケンス図、コラボレーション図、コンポーネント図、配置図 • CASEツール • 外注では必須
ユースケース図 • 利用の仕方を表す • 要素 • アクター • ユースケース
クラス図 • クラス(オブジェクトの型)定義 • クラス同士の関係
デザインパターン • プログラム設計で共通の単語を提供 • プログラム要素をクラスより大きな単位で管理 • 再利用性・拡張性の高いプログラムを作るための経験則 • GoFが23のパターンに整理 • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
パターンの例--Composite • 部分全体階層を実現したい • オブジェクト構造 • クラス階層ではどうするか? 戻る
Concurrent Version System • バージョン管理ツール • Rcsの拡張 • サーバークライアント形式 • 枝の管理 • フリーソフトウエアでは常識的 • 企業では独自のものを使っている場合が多い 戻る
Cvsサーバーについて • Ssh2のDSA公開鍵を山田宛送付 • 非公開の内容がアクセスできるので、アクセス可能なユーザーは秘密厳守が義務 • Webdav導入の検討
宇宙モデルの設計 • 全体 • 宇宙全体 • 観測スナップショット • 太陽・地球、月 • 部分 • Single Star • Multiple Star • 太陽系天体 • 銀河系外天体
観測装置の設計 • 全体 • Jasmine • 部分 • 光学系 • 検出器 • 光学系はさらに部分を持つ
解析アルゴリズム • 検討課題 • 複数の方法を検討 • 容易に入れ替え可能 • Strategyパターン • アルゴリズムカプセル化の一般的手法
開発における留意点1 • Coding style • Sun Java Coding Conventions • Gnu Coding Standards(C++) • 単位系 • SI単位系
開発における留意点2 • Buildにはantを使用する • ディレクトリー構造 • src ソースツリー • lib 外部ライブラリを置く(現在未使用) • XML関連ライブラリ、描画、物理用 • build コンパイル作業用(antが生成) • report テストレポート作業用(junitが生成) • dist 配布ファイル保存用(antが生成)
開発における留意点3 • 名前空間 • jslibパッケージはJsで始まるクラス名 • Jasmineの側は特に指定しない • テストの実装(XP) • 他のパッケージの仕様を仮定している場合 • 仕様を定めている場合 • ドキュメントの整備 • 仕様書 • 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 • パッケージごとに責任者を割り当てる
全体設計について • 中間報告時点でのモデル化 • 対象、装置、操作、環境、成果物、利用 • さらに抽象度の高いモデル化の提案 • 上のモデル同士のつながりは予め定まるか? • モデルと入出力・接続の分離 • モデル/コンテナ/コネクタ/データ • シミュレーション • コンテナとコネクタでシミュレーションを実装 • コマンド
モデル • モデル • モデル化の最小単位 • コンテナ • モデルに対する入出力の抽象化 • コネクター • コンテナを接続する部品 • データ • コネクターを流れるデータの抽象化 • シミュレーション • シミュレーションを、コンテナ・コネクタから組みあげる
ライブラリ • 起動・主フレーム • 終了 • 印刷 • 実行モードの選択 • ファイル入出力 • シミュレーションの選択 • GUI部品
今後の進め方 • ライセンスモデルを決める • オープンソース • 保守は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円
今後の課題 • 機能の追加