PowerPoint プレゼンテーション

「クラナビ」
アーキテクチャ定義書
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週