Comments
Description
Transcript
補足SDEV-SitePracticeSample
1 システム開発演習(SDEV社) 課題について 2 システム開発演習課題の方針 各自の設計に従ってSDEV社のパソコン販売システムを開発する。 プログラムは、既存のサンプルプログラムを流用しても良い。 設計を行ってから開発を行うこと。 設計 要件定義 ユースケース図 アクティビティ図 シーケンス図 コラボレーション図 状態遷移図(画面遷移) 画面設計(ユーザビリティ) データベース設計 etc. プログラミング サンプルソース流用 VBScript ASP データベース生成 Html生成 etc. 実装 サーバ環境へ実装 データベース連携 システム実行 etc. 成果物の提出方法 設計内容は、PowerPointファイルに記述し、レポート管理システムで提出する。 開発プログラムは、サーバマシンにFTP送信する。 3 システム開発演習課題の評価 成果物の評価 ソフトウェア開発演習の成果物を納期、動作性、プログラミング内容に関 して評価する。 納期評価: 演習レポートの納期評価と同様に、"納期遵守" プログラム動作性: 完全動作+高性能+高品質(動作性、デザイン性等、非常に優秀) 80%以上動作(完成度は高いが軽微な動作丌良がある場合) 完成度30%~80%動作(動作丌良が有っても可) 完成度30%未満の動作(著しく劣る 或いは 未完成部が多い) 全体の完成度は画面遷移図と見比べて実装できている割合で計算 プログラミング設計内容: システムの内容が鳥瞰できるモデル設計+機能独自性+正しく分かり易い丁寧な設計 正しく分かり易いモデル設計+丁寧な仕上がり 公開プログラムのみの設計+必須項目(画面系、機能系)の記述 プログラムのみ(著しく劣るモデル設計、必要項目未記述) 4 課題項目 例えば、以下の内容で開発を進める。 •ユーザビリティの再検討。 •ユーザビリティ、アクセシビリティの視点からデザインと機能を 刷新する。 •新たな機能の追加、改造。 →ユーザ認証の機能 →パソコンの一覧から色んな条件を入力して絞り込む機能 価格帯、タイプ別、メーカ別、スペック別、装備別・・・ 等々の項目を条件に検索する機能等 •SDEV社の経営課題や新システムの基本定義を再確認し、その内容 に則った設計か? 以下は評価に当たらないので注意する。 ・データを変更しただけのもの。(例えば、メーカに1社加えた。) ・戻るボタンを加えた。 ・背景(色、画像)だけを変更した。 ・マスタのメーカ名変更機能を加えた。(これは、DBメンテナンスに該当。) 等 5 設計資料に関して 設計した資料は、PowerPointにまとめる。 設計の資料は、各自が構築するSDEV社のシステムに関連した設計内容で、 ユースケース、ユースケース記述、アクティビティ図、シーケンス図、コラボレー ション図、ステートチャート図、クラス図等のUMLモデル図を作成。 すべてのUMLモデリングを行う必要は無いが、自らのシステム全体を鳥瞰 できるものを作成する。 また、ポイントとなる要所(追加、改造部分など)を表現している設計書を作 成する。→追加、改造した機能の設計資料として相応しいUML設計を行う。 データベースに関して データベースの表を追加した場合は、データベースの内容に関しても記述。 ER図・クラス図等を作成。 機能の追加により、データベースを改良する場合は、各自のSQL実行HTML ページを用いて操作する。 SQL実行HTMLページでは、表の削除、作成が可能である。 パソコン販売システムで使用する表の作成、データ登録等のSQL情報はWeb に公開しているので合わせて参考にする。 6 サンプルプログラムの説明 7 ファイルと画面の構成 ブラウザ各画面の機能とファイルは以下の通り。 ファイル名 画面 機能 index.htm ホーム ・製品一覧へのリンク表示 DispSal.asp 製品一覧 ・全てのパソコン製品の一覧を表示する。 ・ラジオボタンにより、パソコンを選択する。 DispBuy.asp 購入(購入可能時) ・在庫が有る時は、購入するパソコン情報を出力する。 ・購入者氏名を入力する。 ・「購入する」ボタンからパソコンの購入を行う。 購入(購入丌可時) ・在庫が無いときは、在庫無しの情報を出力する。 ・「戻る」ボタンで製品一覧画面に遷移する。 AddBuy.asp 購入結果 ・購入したパソコンの結果を出力する。 8 演習サンプルの構造(全体) sql 学籍番号 shop sql.htm sql.asp db index.htm DispSal.asp DispBuy.asp AddBuy.asp sdev.mdb SDEV_MST_PRODUCT SDEV_MST_MAKER SDEV_ACCEPT 9 Web販売サンプルの構造 サーバ クライアント HTML ファイル IIS FTPツール index.htm ブラウザ ASP サーバ ① ASP ファイル ② ③ ⑥ ⑤ HTML データ DispSal.asp ↓ DispBuy.asp ↓ AddBuy.asp データ ベース ④ sdev.mdb └各種テーブル 10 サンプルのパソコン販売システム 画面遷移 まずは、画面を操作してパソコン購入までの処理を確認する。 ホーム 製品一覧 ラジオボタンで製品型番 を渡している。 Index.htm 購入可能な場合、 製品型番、購入価格、顧客氏名を渡す。 購入可 購入丌可 購入結果 DispSal.asp DispBuy.asp DispBuy.asp 購入が丌可能な場合、 メッセージ表示。 AddBuy.asp 11 ブラウザの各画面に着目したステートチャート図 12 処理の流れ(1) - DispSal.asp 13 処理の流れ(2) - DispBuy.asp 14 処理の流れ(3) - AddBuy.asp 15 パソコン販売システムで使用する データベースについて 16 データベース一覧 データベースは以下の3つを用意する(基本) 表名 SDEV_MST_MAKER 内容 パソコン製造メーカーのマスター情報 SDEV_MST_PRODUCT 製品のマスター情報 SDEV_ACCEPT 製品の受注情報 データベースは、各自で生成する 生成で使うSQL文: ◆CREATE文 ◆INSERT文 生成確認で使うSQL文: ◆SELECT文 → → 表を生成 データを生成 → データ一覧を表示 上記以外のデータベースは、各自で設計を踏まえて生成する。 17 SDEV_MST_MAKER表 パソコン製造メーカーの情報に関するデータを格納する。 – 列定義 項番 列名 項目名 データ型 サイズ 内容 1 MAKER_ID メーカーID TEXT 10 パソコンメーカーのID番号 2 MAKER_NAME メーカー名 TEXT 50 パソコンメーカー名 – データ パソコン製造メーカーは、以下に示す4社とする。 MAKER_ID MAKER_NAME NED NED SOMY SOMY ZOTEC ZOTEC HIDACHI HIDACHI 18 SDEV_MST_PRODUCT表 パソコンの情報に関するデータを格納する。 – 列定義 項番 列名 項目名 データ型 サイズ 1 PC_KATABAN 製品型番 TEXT 2 KOBAN 子番 INTEGER2 - 並び替えで使用する番号 3 MAKER_ID メーカーID TEXT パソコンメーカーのID番号 4 PC_TYPE パソコン種類 INTEGER2 - パソコンメの種類 (0-デスクトップ,1-ノート) 5 PC_NAME 製品名 TEXT 50 パソコンの製品名 6 STOCK_VALUE 仕入れ値 LONG - パソコンの仕入れ値(単位:円) 7 STOCK_NUM 在庫数 LONG - パソコンの在庫数 8 SAL_VALUE パソコン販売価格 LONG - パソコンの販売価格(単位:円) 9 SPEC スペック 255 パソコンのスペック TEXT 10 内容 10 パソコンの型番 19 SDEV_MST_PRODUCT表 – データ PC_KATABAN KOBAN MAKER_ID PC_TYPE PRODUCT_NAME STOCK_VALUE STOCK_NUM SAL_VALUE SPEC ND-0001 1 NED 0 VALUE START 120,120 100 184,800 Duran1.7GHz, 512MB, 80GB UltraATA100, DVD-ROM ND-0002 2 NED 0 VALUE START 155,870 100 239,800 Tentium4 2.4GHz, 512MB, 120GB UltraATA100, DVD-ROM NN-0001 3 NED 1 Lavie 113,620 100 174,800 Duran1GHz, 256MB, 30GB UltraATA66, CD-R/RW NN-0002 4 NED 1 Lavie 162,370 100 249,800 Tentium M 1.7GHz, 512MB, 60GB UltraATA100, CDR/RW DVD-ROM SD-0001 5 SOMY 0 VAION 110,370 100 169,800 Athlen XP 1500+1.33GHz, 256MB, 80GB, CD-ROM SD-0002 6 SOMY 0 VAION 165,620 100 SN-0001 7 SOMY 1 VAION 113,620 100 SN-0002 8 SOMY 1 VAION 162,370 100 ZD-0001 9 ZOTEC 0 TC STATION 97,370 100 ZD-0002 10 ZOTEC 0 TC STATION 110,370 100 ZN-0001 11 ZOTEC 1 WinFile 123,370 100 ZN-0002 12 ZOTEC 1 WinFile 129,870 100 HD-0001 13 HIDACHI 0 PLORA 142,350 100 HD-0002 14 HIDACHI 0 PLORA 150,150 100 HN-0001 15 HIDACHI 1 PLORA 141,050 100 HN-0002 16 HIDACHI 1 PLORA 157,300 100 254,800 Tentium 4 3GHz, 1024MB, 120GB, DVD-R 174,800 Athlen XP 1400+, 512MB, 60GB UltraATA100, CD-R/RW 249,800 Tentium M 1.8GHz, 512MB, 80GB UltraATA100, CD-R/RM DVD-R 149,800 Tentium4 2.4GHz, 512MB, 80GB, DVD-R/RW 169,800 Tentium4 3GHz, 1024MB, 120GB UltraATA100,DVD-R/RW 189,800 Tentium M 1.6GHz, 256MB, 40GB UltraATA100, CD-RW/DVD-ROM 199,800 Tentium M 2GHz, 512MB, 80GB UltraATA100, CD-RW/DVD-ROM 219,000 Celeran 2.00GHz, 256MB, 40GB, CD-ROM 231,000 Tentium4 2.8GHz, 512MB, 120GB, CD-R/W DVD-ROM 217,000 Celeran 1.0GHz, 256MB, 30GB, CD-ROM 242,000 Tentium 3GHz, 512MB, 80GB, CD-R/W DVD-ROM 20 SDEV_ACCEPT表 パソコンの注文情報(受注情報)に関するデータを格納する。 – 列定義 項番 列名 項目名 データ型 サイズ 内容 1 ACCEPT_ID 受注ID AUTOINCREMENT - 自動的に一意な値が割り振られる 2 PC_KATABAN 型番 TEXT 10 パソコンの型番 3 ACCEPT_DATE 受注日 DATE - 受注した日付 4 ACCEPT_COMMIT_DATE 受注確定日 DATE - 受注を確定した日付 5 ACCEPT_NUM 受注台数 INTEGER2 - パソコンの受注数 6 ACCEPT_VALUE 単価 LONG - パソコン1台あたりの価格(単位:円) 7 CUSTOMER_NAME 顧客名 TEXT 30 パソコンを購入した顧客名 21 プログラムの説明 22 DispSal.asp Response.Write("<TD bgcolor=""#EFEFEF""><input type=""radio"" name=""rbPcKataban"" 37 value=""" & objRS("PC_KATABAN") & """>" & objRS("PC_NAME") & "</A></TD>") ' 【説明】[製品名]をHTML上に出力する 37行目はラジオボタンの出力を行っている。HTML文を生成する際 に、PN_KATABANでデータベースから検索したPCの型番情報を埋 め込む操作を行っている。 <TD bgcolor=“#EFEFEF”><input type=“radio” name=“rbPcKataban” value=“ND-0001”>VALUE START</A></TD>・・・・・ <TD bgcolor=“#EFEFEF”><input type=“radio” name=“rbPcKataban” value=“ND-0002”>VALUE START</A></TD>・・・・・ : : 製品型番「PC_KATABAN」の値 ラジオボタンで選択した場合には、 この値が「DiaspBuy.asp」に送られる。 23 DispBuy.asp(1) 製品型番は主キーである。 主キーとは、唯一他のレコードと区別することができるレコードである。 主キーで検索しているので、検索した結果は1レコードのみ該当する。 strSQLWork = "SELECT PC_KATABAN, MAKER_ID, PC_NAME, PC_TYPE, SAL_VALUE, 12 SPEC, STOCK_NUM FROM SDEV_MST_PRODUCT WHERE PC_KATABAN = '" & formKataban & "'" SDEV_MST_PRODUCT表から、製品型番と一致するデータを検索するSQL。 13 Set objRS = m_objDB.Execute(strSQLWork) SQLの実行。実行結果は、objRSに格納される。 14 lStock = objRS("STOCK_NUM") 在庫数「STOCK_NUM」を変数lStockに格納する。 24 DispBuy.asp(2) 在庫検査を行い、在庫が無いときには、その旨をユーザに通知する処理を入れている 29 If lStock < 1 Then 在庫数「lStock」が1より少ない。即ち、在庫が無いときには30行目の処理を行う。 在庫が無い旨を、HTML上に出力する。 ' 製品の在庫が存在しない場合は、品切れの情報を出力する 30 Response.Write("申し訳ございません。" & objRS("PC_NAME") & "は品切れです。<BR>") 31 Else 在庫がある場合は、購入画面をHTML上に出力する。 25 DispBuy.asp(3) 32行目、33行目は、隠しデータの処理。 「PC_KATABAN」,「SAL_VALUE」は次の購入結果画面で使用する。そのため、この画面で は、<input type="hidden">を使ってデータを格納している。 次の購入結果のページに[パソコン型番],[価格]のデータを渡すための処理 32 Response.Write("<input type=""hidden"" name=""hidKataban"" value=" & objRS("PC_KATABAN") & ">") ' 【説明】[製品型番]のデータ 33 Response.Write("<input type=""hidden"" name=""hidBuyValue"" value=" & objRS("SAL_VALUE") & ">") ' 【説明】[価格]のデータ <input type="hidden" name="hidKataban" value=SN-0002> hidKataban 変数 PC_KATABANの値を代入 <input type="hidden" name="hidBuyValue" value=249800> hidBuyValue 変数 SAL_VALUEの値を代入 hiddenを使うとブラウザ画面には表示されないで、AddBuy.aspに渡される。 26 DispBuy.asp(4) 実行した結果(一部) <FORM name="frmBuy" action="./AddBuy.asp" method="POST" target="_self"> <FONT size="3" color="#000000"> <B>購入画面</B> </FONT> <BR><BR> <input type="hidden" name="hidKataban" value=SN-0002> <input type="hidden" name="hidBuyValue" value=249800> メーカー:SOMY<BR> 製品名:VAION<BR> 販売価格:249800<BR> 種類:Note<BR> 製品型番:SN-0002<BR> スペック:Tentium M 1.8GHz, 512MB,80GB UltraATA100, CD-R/RM DVD-R<BR> <BR> 購入者氏名:<input type="text" name="txtCustomerName" value=""> <BR> <BR> <INPUT type="submit" name="btnBuy" value="購入する"> </FORM> 画面に表示 される 画面に表示 されない 画面に表示 される hidKataban=SN-0002 hidBuyValue=249800 txtCustomerName= _入力情報_ 起動時に値が連絡される AddBuy.asp 27 AddBuy.asp(1) 注文内容をデータベースに登録するSQL文を作成する 14 strSQLWork = "INSERT INTO SDEV_ACCEPT (PC_KATABAN,ACCEPT_DATE,ACCEPT_NUM,ACCEPT_VALUE,CUSTOMER_NAME) " 15 strSQLWork = strSQLWork & "VALUES(" 16 strSQLWork = strSQLWork & "'" & formKataban & "'," ' 製品型番 17 strSQLWork = strSQLWork & "#" & FormatDateTime(Now, 2) & "#," 18 strSQLWork = strSQLWork & "1," ' 購入日 ' 購入数 ※購入数は1台で固定 19 strSQLWork = strSQLWork & formBuyValue & "," ' 購入価格 20 strSQLWork = strSQLWork & "'" & formCustomerName & "')" ' 購入者氏名 [SDEV_ACCEPT]テーブルに、 [PC_KATABAN], [ACCEPT_DATE], [ACCEPT_NUM],[ACCEPT_VALUE],[ CUSTOMER_NAME] を登録するSQL文を順次生成し、strSQLWorkに格納している。 INSERT INTO SDEV_ACCEPT (PC_KATABAN,ACCEPT_DATE,ACCEPT_NUM,ACCEPT_VALUE,CUSTOMER_NAME) VALUES ('製品型番',#現在日付#,1,価格,'購入氏名') [項目名:列名] PC_KATABAN ACCEPT_DATE ACCEPT_NUM ACCEPT_VALUE CUSTOMER_NAME ← ← ← ← ← ← Value:値 formKataban変数の内容 FormatDateTime(Now,2) 固定値として 1 formBuyValue formCustomerName 製品型番 #現在日付関数# 購入数 購入価格 購入者氏名 ACCEPT_COMMIT_DATE列は使用していない。 28 AddBuy.asp(2) 17 strSQLWork = strSQLWork & "#" & FormatDateTime(Now, 2) & "#," ' 購入日 FormatDateTime()は、日付の書式に変換する。 現在のシステム時刻を示す FormatDateTime ( Now, 2) 0:短い形式の日付と長い形式の時刻を使用します 1:長い形式の日付を使用します(2004/12/12) 2:短い形式の日付を使用します(04/12/12) 21 m_objDB.Execute(strSQLWork) INSERT文を実行 SQLを実行する。 SELECT文の時は、SQLの結果を格納していたが、INSERT文、UPDATE文では、 結果が返されない。