enTrance-arch

「クラナビ」
アーキテクチャ定義書
enTrance プロジェクト
クラナビユーザインターフェース概要
初期画面
くらなび by enTrance project
クラナビ
ログイン名
パスワード
ログイン
What’s new ?
リセット
クラナビユーザインターフェース概要
個人情報変更画面が別
ウィンドウで表示され各
種個人情報を編集する
ことができる
履修計画画面
個人情報変更 ログアウト
くならび by enTrance project
授業カードの授業名
をクリックすると授業
内容画面が表示される
メニュー
品質の高いソフトウェアを
総合的にプロデュースする
ことのできる人材になる
Javaによるプログラミングの
基礎を学ぶ(プログラミング
の基礎体力をつける)
※クラナビエクスプロ
ーラに表示される授業
名をクリックしても同じ
自分の履修計画を編集
他人の履修計画を閲覧
履修計画を新規作成する
作成
品質の高いソフトウェアを
分析・設計する方法につい
て学ぶ
美しいプログラムを書くため
のオブジェクト指向という考
え方を身につける
プログラミング入門
坂田 洋幸
オブジェクト指向モデリング
オブジェクトプログラミング
児玉 公信
大岩 元
履修計画を開く
20030129最終案
20030121プロトタイプ
20030120なんとなく
履修計画を保存する
オブジェクトプログラミングの
応用編として、近年はやりの
WEBアプリケーションを開発
する技術を学ぶ
保存
(Ctrls)
履修計画に授業を追加する
検索
WEBアプリケーションの開発
大岩 元
図の編集モード
図解を操作するため
のモードを選択する
パン
選択
関係線
コメント作成
クラナビエディタ
UNDO
REDO
クラナビエクスプローラ
外国語科目
汎用科目
専門科目
クラスター科目
情報処理科目
データサイエンス科目
授業をクリックすると授業カードが図
に追加される。
履修計画をクリックした場合はその
履修計画がエディタにロードされる。
クラナビユーザインターフェース概要
授業情報画面
科目コード:004
オブジェクト指向モデリング
担当:児玉公信
クラスター科目
単位:2
時限:火曜5限
内容:
オブジェクト指向によるドメイン分析手法につ
いて学びます。
・
・
・
個人情報変更画面
個人情報を変更します
名前
ログイン名
パスワード
学年
学籍番号
ログイン名
メールアドレス
所属クラスター
希望する職種
興味を持っていること
自分の中でHotなキーワード
送信
リセット
クラナビエクスプローラ:自分の履修計画を編集する
メニュー
メニュー
メニュー
メニュー
自分の履修計画
・新規作成する/開く
・保存する
・授業を追加する
他の学生の履修計画
自分の履修計画
・新規作成する/開く
・保存する
・授業を追加する
他の学生の履修計画
自分の履修計画
・新規作成する/開く
・保存する
・授業を追加する
他の学生の履修計画
自分の履修計画
・新規作成する/開く
・保存する
・授業を追加する
他の学生の履修計画
授業を追加する
授業内容から
オブジェクト指向
検索
授業名五十音から
あかさたなはまらやわ
担当者名五十音から
あかさたなはまらやわ
カテゴリーから
外国語科目、汎用科目(導入)
、汎用科目、専門科目、クラス
ター科目、情報処理科目、デ
ータサイエンス科目、ウェルネ
ス科目、自由科目
授業を追加する
新規作成する/開く
新規作成する/開く
「オブジェクト指向」
新規作成
上書き保存
の検索結果
追加
追加
追加
追加
追加
追加
追加
追加
作成
オブジェクト指向モデリ
オブジェクトプログラミン
プログラミング入門(坂
WEBアプリ研究会(大岩
オブジェクト指向モデリ
オブジェクトプログラミン
プログラミング入門(坂
WEBアプリ研究会(大岩
開く
開く
開く
開く
開く
保存
名前をつけて保存
試作1(2003/3/10)
試作2 (2003/3/10)
試作3 (2003/3/10)
最終版(2003/3/10)
保存
系統から
環境情報系、総合政策系、共
通基盤系、複合系
絞込み検索
検索
あと4つまで保存できます
クラナビエクスプローラ:他人の履修計画を見る
メニュー
メニュー
メニュー
自分の履修計画
他の学生の履修計画
・閲覧する
自分の履修計画
他の学生の履修計画
・閲覧する
自分の履修計画
他の学生の履修計画
・閲覧する
閲覧する
閲覧する
学生名五十音
年度指定(※必須)
2002年度
2000年度
2001年度
全年度
目的カードの内容から
オブジェクト指向
検索
授業名五十音から
あかさたなはまらやわ
学生の名前五十音から
あいうえおかきくけこさしすせ
そたちつてとなにぬねのはひ
ふへほまみむめもやゆよらり
るれろわを
す
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
(2002年度)
杉浦まなぶ(2)
杉浦学(3)
杉浦マナブ(4)
杉浦麻奈部(2)
杉浦愛部(3)
杉浦まな武(2)
杉浦間名部(6)
杉浦魔菜武(4)
杉浦ま名部(6)
杉浦学ぶ(2)
杉浦マ菜武(1)
過ぎうラマ菜ぶ(0)
杉浦まな部(3)
スギウラマナブ(2)
杉浦間名部(6)
杉浦魔菜武(4)
杉浦ま名部(6)
杉浦学ぶ(2)
杉浦マ菜武(1)
閲覧する
「オブジェクト指向」
の検索結果(2002年度)
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
閲覧
杉浦まなぶ(2002/2/29)
杉浦学(2002/2/29)
杉浦マナブ(2002/2/29)
杉浦麻奈部(2002/2/29)
杉浦愛部(2002/2/29)
杉浦まな武(2002/2/29)
杉浦間名部(2002/2/29)
杉浦魔菜武(2002/2/29)
スギウラ学(2002/2/29)
絞込み検索
検索
クラナビシステム構成
クライアント
(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週