...

補足SDEV-SitePracticeSample

by user

on
Category: Documents
5

views

Report

Comments

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文では、
結果が返されない。
Fly UP