Comments
Description
Transcript
ソフトウェアプロセス Webアプリケーション
Webアプリケーションの設計法 ソフトウェアプロセス ソフトウェアの開発過程のこと 編集,コンパイルといった小さな作業もプ ロセス 大規模ソフトウェア開発法 第2版 設計,コーディングといった大きな作業も プロセス プロセスは階層的 プロセス自身は人が行う作業なので目 で見えない ソフトウェアプロセスモデル ソフトウェアプロセスを目で見えるよ うに図や文字で表したもの ウォーターフォール(Waterfall)モデル スパイラルモデル 色々な企業のソフトウェア開発の手順 書 Webアプリケーション ユーザ(ブラウザ)からの要求に応じ てWebページを動的に生成し,ブラウ ザに送り返して表示するアプリケー ション 記述済みのページを表示するだけの静的な Webサイトとは異なる JavaではサーブレットやJSPで記述さ れる ウォーターフォールモデル 要求定義 設計 コーディング いくつかのステップに 分けて段階的に開発する手法 テスト ソフトウェア設計とパターン ソフトウェアの設計で優れたものを再 利用する 再利用可能な設計をパターンと呼ぶ オブジェクト指向プログラミングでは 使用する部品を再利用した 最近のソフトウェア開発方法論の流れ 新たに作ると不良が発生 良いものは再利用する MVCモデル GUI(グラフィカルユーザインタフェー ス)を持つソフトウェアのための標準 的な設計パターン モデル,ビュー,コントロールの3つ の要素に分割してソフトウェアを設計 する MVCの例:ログイン処理の場合 コントロール ユーザからユーザ名とパスワードを受け取る モデル ユーザ名とパスワードが正しいかどうかを確 認する ユーザ登録情報のデータベースはモデルの一部 ビュー 認証結果の画面を生成する モデル アプリケーション固有の処理を行う アプリケーション固有のデータを保持 する Webアプリケーションの場合はサーブ レットやJSPではない通常のクラスと して実装することが多い MVCモデル 要求 コントロール ユーザ (ブラウザ) モデル ビュー 結果の画面 Webアプリケーション コントロール ユーザからの要求を受け取る モデルやビューをどのように使って ユーザの要求を処理するかを決定する モデルやビューに作業の実行を依頼 Webアプリケーションの場合はサーブ レットとして実装することが多い ビュー モデルの処理結果をもとにユーザへ送 る画面を生成する Webアプリケーションの場合はJSPや サーブレットとして実装することが多 い UML UMLのダイアグラムの例 Unified Modeling Language ソフトウェアをオブジェクト指向設計 するための標準的な記法 様々なダイアグラム(図)を作成する ことによりソフトウェアを設計する OMG(Object Management Group)が仕様を策定 アクティビティー図 業務の流れや処理の実行手順などを表 現する アクティビティ アクティビティ コントロールフロー コントロールフロー アクティビティ 処理の順序を示す オブジェクト アクティビティ オブジェクトフロー データの流れを示す オブジェクトフロー オブジェクト レジ係 釣を受け取る 代金を受け取る 釣 アクティビティ図 ステートマシン図 ユースケース図 シーケンス図 アクティビティ図の例 客 レジ係 調理係 注文する 注文を聞く 調理する 袋詰めされた弁当 弁当を袋に入れる 弁当 代金を支払う 代金 代金を受け取る アクティビティー図の書き方 調理係 [預かり金>料金] 釣を支払う ソフトウェアの振る舞いを表す図 アクティビティ 代金を支払う 代金 クラス図 オブジェクトフロー コントロールフローの分岐の例 客 ソフトウェアの構造を表す図 [預かり金==料金] ユーザからのひとつの要求が出され, それが処理され結果を送り返すまでの 流れごとに1枚のアクティビティー図 を書く 役割は,ユーザ(ブラウザ),コント ロール,モデル,ビューの4つで良い ステートマシン図 システムを構成するオブジェクトの状 態の遷移と,それに応じた振る舞いを 表現する 状態 状態名 状態遷移 状態名1 トリガー名 [状態3への遷移条件] 状態名3 ステートマシン図の例 一時停止中 再生ボタン 再生中 電源OFF ペーパプロトタイプの各画面をひとつ の状態とする 画面の移り変わりを状態の遷移とする 巻戻し中 演習でのシステム設計の流れ ステートマシン図の状態遷移と,それ に対応するアクティビティー図は同じ 番号をふること! 2. 遷移B 1. アクティビティ図A ステートマシン図 画面の遷移を 図で表す クラス図 各処理を行う部品を クラスとして明確化する 作図上の注意 早送ボタン放す 巻戻ボタン 巻戻ボタン放す ペーパ プロトタイプ設計 システム全体で1枚の図を作成 早送り中 停止ボタン 分岐の条件は排他的 ステートマシン図の書き方 1. 遷移A 早送ボタン 停止中 状態名2 トリガー名 [状態2への遷移条件] 再生ボタン 一時停止ボタン 電源ON アクティビティー図 各遷移ごとに サーバで行われる処理の概要を記述する ステートマシン図の矢印1本ごとに図を1枚 シーケンス図 各処理のための メソッド呼び出しを 明確にする コーディング Java言語で シーケンス図の処理を 記述する システム設計の例 ログイン画面 1.ユーザ認証成功 トップ画面 2.ユーザ認証失敗 エラー画面 2. アクティビティ図B 状態遷移が2つあるのでアクティビティ図を2 枚記述する 1. ユーザ認証成功 ユーザ コントロール ユーザ名と パスワード を入力 ユーザ認証 の依頼 トップ画面生成 を依頼 トップ画面を 見る ビュー ビュー 2. ユーザ認証失敗 モデル ユーザ認証 正規ユーザ ユーザ コントロール ユーザ名と パスワード を入力 ユーザ認証 の依頼 エラー画面生成 を依頼 トップ画面 生成 トップ画面 エラー画面を 見る ビュー ビュー モデル ユーザ認証 未登録ユーザ エラー画面 生成 エラー画面