「クラナビ」 アーキテクチャ定義書 enTrance プロジェクト クラナビユーザインターフェース概要 初期画面 くらなび by enTrance project クラナビ ログイン名 パスワード ログイン What’s new ? リセット クラナビユーザインターフェース概要 個人情報変更画面が別 ウィンドウで表示され各 種個人情報を編集する ことができる 履修計画画面 個人情報変更 ログアウト くならび by enTrance project 授業カードの授業名 をクリックすると授業 内容画面が表示される メニュー 品質の高いソフトウェアを 総合的にプロデュースする ことのできる人材になる Javaによるプログラミングの 基礎を学ぶ(プログラミング の基礎体力をつける) ※クラナビエクスプロ ーラに表示される授業 名をクリックしても同じ 履修計画を新規作成する 作成 品質の高いソフトウェアを 分析・設計する方法につい て学ぶ 美しいプログラムを書くため のオブジェクト指向という考 え方を身につける 履修計画を開く 20030129最終案 20030121プロトタイプ 20030120なんとなく プログラミング入門 坂田 洋幸 オブジェクト指向モデリング オブジェクトプログラミング 児玉 公信 大岩 元 クラナビエディタ 履修計画を保存する オブジェクトプログラミングの 応用編として、近年はやりの WEBアプリケーションを開発 する技術を学ぶ WEBアプリケーションの開発 大岩 元 図の編集モード 図解を操作するため のモードを選択する 自分の履修計画を編集 他人の履修計画を閲覧 目標カード コメントカード 矢印 左クリックを使った処理のメ ニュー (各種作成メニュー) コメント関連 ズーム パン マウスの右ボタンでドラッグした ときの振る舞い指定メニュー 保存 (Ctrls) 履修計画に授業を追加する 検索 外国語科目 汎用科目 クラナビエクスプローラ 専門科目 クラスター科目 情報処理科目 データサイエンス科目 授業をクリックすると授業カードが図 に追加される。 履修計画をクリックした場合はその 履修計画がエディタにロードされる。 クラナビユーザインターフェース概要 授業情報画面 科目コード:004 オブジェクト指向モデリング 担当:児玉公信 クラスター科目 単位:2 時限:火曜5限 内容: オブジェクト指向によるドメイン分析手法につ いて学びます。 ・ ・ ・ 個人情報変更画面 個人情報を変更します 名前 ログイン名 パスワード 学年 学籍番号 ログイン名 メールアドレス 所属クラスター 希望する職種 興味を持っていること 自分の中でHotなキーワード 送信 リセット クラナビシステム構成 クライアント (Webブラウザ) ユーザ操作 enTranceサーバ リクエスト リクエスト転送 クラナビエディタ クエリ発行 レスポンス ウェブ サーバ 操作の転送 アプリケーション サーバ データベース サーバ リクエスト クラナビエクスプローラ ユーザ操作 レスポンス依頼 レスポンス データ取得 クラナビコンポーネント構成 ユーザ入力 ユーザ入力 クラナビエディタビュー コンポーネント クラナビエクスプローラ ユーザ入力の転送 モデル操作 インターフェース IF クラナビエディタモデル コンポーネント クライアント HTTP通信 IF HTTP通信(シリアライズ) クラナビエクスプローラ インターフェース IF クラナビコントロールコンポーネント IF 「差し替え可能なソフトウェアパーツ」というのが一 般的な定義ですが、ここでは「ソフトウェアパーツの 意味のまとまり」という認識で良いです。各コンポー ネントは公開インターフェースを持ち、他のモジュー ルはそのインターフェースを介してのみそのコンポー ネントを利用することができます。 クラナビでは、これらのコンポーネントが互いに協 調することによりサービスを実現します。以下にクラ ナビを構成するコンポーネントについてその目的を 列挙します。 ・クラナビエディタビューコンポーネント クラナビエディタの外観およびモデルのデータを 表示するための機能を提供します ・クラナビエディタモデルコンポーネント クラナビエディタの保存データの保持およびそれ に対する編集機能を提供します ・クラナビコントロールコンポーネント サーバに常駐し、クラナビに関わるクライアントの データ要求等のリクエストに対応します ・クラナビデータマネージャコンポーネント サーバに常駐し、クラナビのデータへのアクセス および保存データの永続化を仲介します データベース操作IF クラナビデータマネージャ コンポーネント サーバ クラナビエディタ インターフェース コンポーネントとは 開発時には、これらのコンポーネントの公開イン ターフェースを明確に定義し、開発者間での合意を はかるようにしましょう。 クラナビ開発に際して利用するアーキテクチャ 開発言語 開発 コンポーネント 対象 適用アーキテクチャ サーバサイドモジュール およびアプレット JSDK 1.4.1 アプレット以外の HTML / Java Script クライアントプレゼンテーション Assertionに関するバグが修正されたバージョンです。 クライアントのWebページからAppletのメソッドを起動する 際に、JavaScriptを利用します。 クラナビエディタビュー コンポーネント Jazz 1.2 カードツール作成に適した2DGraphics描画環境(ZUI)を提 供するAPIです。Swing、Appletと併用します。 クラナビコントロール コンポーネント Servlet 2.3 / JSP 1.2 HTTPの仕組みを利用してサービスを提供するためのサー バAPIです。コンテナにデプロイして使用します。 クラナビデータマネージャ コンポーネント Torque 3.0 RDBに対するJavaのマッパーモジュールを生成するエンジ ンです。DBアクセスのためにSQLが不要になります。 log4j 全般 JUnit 3.7 (あるいは Cuctus 1.3) Ant 1.5 各種サーバ 説明 ログ機能を提供するAPIです。 結合テスト(主に公開インターフェース)に利用します。 ビルドのプロセスを自動化します。(必要あれば利用) ウェブサーバ Apache ? Tomcatに対してリクエストを転送、Tomcatからのレスポンス を仲介します。 アプリケーションサーバ Apache Tomcat 4.1 Servlet / JSPによるWebアプリケーションのサービスを提供 するためのコンテナです。 データベースサーバ PostgreSQL 7.? エディタで作成された図解および、授業・教員情報の保持 永続化を行います。 習得必須テクニック概要 イベントの発生源そのものではなく、イベント処理の役割を持ったオブジェクトにイベントの 処理を行わせるモデルです。 イベント 発生源 デリゲーションモデル (Swingのイベントモデル) イベント Fire! イベント ディスパッチャ イベントの発生 登録された全ての ハンドラに対して通知 イベント ハンドラ イベントの処理 ハンドラリストに登録 MVCモデルをWebアプリケーションに応用したモデルです。 MVCモデル 入力 MVCモデル2 更新 入力 コントロール MVCモデル2 モデル 転送 ビュー 出力 契約主導設計 (防衛的プログラミング) 更新 Servlet Java Bean JSP 通知 出力 取得 オブジェクトの操作の振る舞いがどうあるべきかについての「制約」を規定します。 ■ 事前・事後条件(pre, post-condition) オブジェクトの状態と、メソッドの振る舞いの結びつきについて記述します。 →操作の振る舞いは、そのときのオブジェクトの状況によって制約を受けます。 事前条件: ある操作が呼び出されるときに真でなければならない状況の記述 事後条件: ある操作が戻るときに真でなければならない状況の記述 ■ クラス不変表明(static-invariant) クラスのオブジェクトが常に真でなけれなならない状況を記述します。 →そのクラスの全てのオブジェクトが共通の制約を受けます。 プログラムで「制約(事前・事後条件、クラス不変表明)」をチェックするために、 ■ 公開インターフェースについては例外(Exception)を発生します。 ■ 非公開インターフェースについては表明(assertion)を利用します。 クラナビ開発に際しての役割分担 小林 (クラナビエディタ担当大臣) 基本作業 包含作業 クラナビエディタビュー コンポーネント開発 クラナビエディタ UI設計 クラナビコントロール コンポーネント開発 <クラナビエディタIF> 杉浦 (クラナビモデル担当大臣) 秋山 (クラナビデータ担当大臣) クラナビエディタモデル コンポーネント開発 クラナビコントロール コンポーネント開発 <クラナビエクスプローラIF> クラナビエクスプローラ UI設計 クラナビデータマネージャ コンポーネント開発 DB設計 (Torqueによるマッパー生成) 授業情報流し込み (CSVのパーサ作成利用) 担当者が責任を持って開発を完遂する必要のある作業 支援あるいは協調する必要のある作業 開発スケジュール(案) 1月28日現在 1月 1週 実装技術習得 ユースケース インターフェース設計作業 コンポーネント別 分析・設計作業 コンポーネント別 公開インターフェース定義 稼動環境整備 規約調整 (ログ、テスト、ビルド等) 実装 テスト 評価 2月 2週 3週 3月 4週 5週 6週 7週 8週 9週
© Copyright 2024 ExpyDoc