• 沒有找到結果。

線上學生課務資訊系統-以逢甲大學資訊工程學系為例

N/A
N/A
Protected

Academic year: 2021

Share "線上學生課務資訊系統-以逢甲大學資訊工程學系為例"

Copied!
206
0
0

加載中.... (立即查看全文)

全文

(1)

逢 甲 大 學

資訊工程學系專題報告

線上學生課務資訊系統

-以逢甲大學資訊工程學系為例-

學 生: 吳在弘(四丙)

沈家玉(四丙)

指導教授: 謝信芳 老師

中華民國九十一年十二月

(2)

摘要

資訊時代來臨,電腦已經普及到每個家庭之內,成為居家必備的 生活用具。網際網路的興起,更是帶動資訊化生活的一大推手。如今, 各式各樣的事情皆可透過網路完成,利用資訊化系統來節省傳統作業 的時間已是現代人的一大共識。 線上學生課務資訊系統,屬於資訊化校園的一部份,用以建立學 生與學校間良好的遘通管道,讓學生們可即時掌握校園中的最新資 訊,妥善安排規劃自己的行程。 系統以微軟.NET 架構和物件導向技術為基礎,利用學生個人的課 表,結合學校校務、社團和班級事務,製作個人的校園專屬行事曆系 統和資訊連絡網。並且配合手機、PDA 等行動通訊裝置,建立即時校 園資訊連絡網,讓資訊溶入你我生活,在身邊無時無刻地伴隨。 本系統包含以下的功能: 1.最 新 消 息:掌握最新的學校校務、社團和班級事務 2.線 上 傳 訊:可在網上即時連絡,即時溝通 3.待 辦 事 項:隨時提醒待辦的事項,不遺忘該做的重要事情 4.行 事 曆:校園、社團、班級和個人行程安排,妥善規劃時間 5.課 程 查 詢:學校課程資訊查詢,掌握課程資訊 6.預 選 功 課 表:妥善安排預選課程,規劃學習路線 7.個 人 課 表:隨時掌握自己的課表,享受校園生活 8.行動通訊查詢:讓資訊伴隨身邊,隨查隨到

(3)
(4)

目 錄

摘要………I 目錄………..………II 圖目錄………...………..VI 表目錄………..………...……….………VIII 第一章 導論………...………1 1.1 動機………...………...1 1.2 目的………...………...2 第二章 使用者需求分析………...………5 2.1 線上學生課務資訊系統概述……...………...5 2.2 課程查詢子系統………...………...6 2.2.1 逢甲大學資訊工程學系課程大綱…...……….6 2.2.2 原有系統架構………...………...13 2.2.3 問卷調查………...………...15 2.2.4 課程查詢子系統需求分析…………...………...18 第三章 系統分析與設計………..……….………..19 3.1 系統開發流程模式………...……….19 3.1.1 系統開發流程模式介紹………...……….………..19 3.1.2 線上學生課務資訊系統開發流程模式分析………...………...24 3.2 軟體開發工具分析………...……….25 3.2.1 Web 應用程式………...……..25 3.2.2 資料庫管理系統………...………...27 3.2.3 單元測試框架………...………...28 3.3 硬體設備………...……….28 3.4 系統分析設計工具………...….………29 3.5 線上學生課務資訊系統模型………...…………...……..35 3.6 子系統模型………...……….46 3.6.1 最新消息子系統………...………...46

(5)

3.6.2 待辦事項子系統………...………...47 3.6.3 行事曆子系統………...………...49 3.6.4 課程查詢子系統………...…………...…51 3.6.5 線上傳訊子系統………..………53 3.6.6 個人課表子系統………..………54 3.6.7 預選功課表子系統………..………55 3.6.8 行動通訊子系統………...………...58 3.6.9 個人設定子系統………..………59 3.6.10 管理子系統………61 3.6.11 其它………...……….63 3.7 資料庫設計………64 3.7.1 資料需求……….……….67 3.7.2 實體關係模型-ER Model………...……….68 3.7.3 關聯式資料庫綱要………...……….101 3.7.4 內部綱要………110 第四章 系統建置………..……….125 4.1 最新消息子系統………...………....125 4.2 待辦事項子系統………...………127 4.3 行事曆子系統………...………130 4.4 課程查詢子系統………...………136 4.5 線上傳訊子系統………140 4.6 個人課表子系統………..143 4.7 預選功課表子系統……….…...……….144 4.8 行動通訊查詢子系統……….………145 4.9 個人設定子系統………...………..149 4.10 管理子系統………...………....150 4.11 其他………...………...….154 第五章 系統評估………...…………156 5.1 做正確的事……….…156 5.1 需加強的事……….…156

(6)

第六章 心得報告………...158 6.1 在弘的心得……….158 6.2 家玉的心得……….159 參考資料………...………160 附錄一……….………..162 附錄二 課程問卷調查結果………..……….………..163 附錄三 學生資料建檔及整合應用規劃……….………179 附錄四 逢甲大學各系、所、教學組開課一覽表…….………188 附錄五 學生個人選課資料一覽表……….………191

(7)

圖目錄

圖 2-1 線上學生課務資訊系統子系統結構圖…………..……….………5 圖 2-2 逢甲大學課程查詢系統課程架構…………...………..13 圖 2-3 問卷調查之一…..………..……...………..15 圖 2-4 問卷調查之二…..……….………..16 圖 2-5 問卷調查之三…..……….………..17 圖 3-1 瀑布模式之開發程序………...………..20 圖 3-2 原型模式之開發程序………...………..21 圖 3-3 螺旋模式之開發程序………...………..22 圖 3-4 極端軟體製程之開發模式………...………..24 圖 3-5 抽象類別和具象類別………...………..30 圖 3-6 類別關係………...………..31 圖 3-7 順序圖………...………..31 圖3-8 活動圖……….32 圖3-9 標準簡化的 Singleton pattern 類別圖……….34 圖 3-10 概括的線上學生課務資訊系統模型……...………..…………..35 圖3-11 ASP.NET 的系統模型………...……….36 圖3-12 ASP.NET 中三層式架構………...……….38 圖 3-13 線上學生課務資訊系統模型之一…………...………37 圖 3-14 線上學生課務資訊系統模型之二…………...………40 圖 3-15 線上學生課務資訊系統模型之三………..….………41 圖 3-16 線上學生課務資訊系統模型之四………...………41 圖 3-17 線上學生課務資訊系統模型之五………...………42 圖 3-18 線上學生課務資訊系統模型之六………...………43 圖 3-19 線上學生課務資訊系統模型之七…………..…….………43 圖 3-20 線上學生課務資訊系統模型……….……..………45 圖 3-21 最新消息子系統顯示類別圖………..……….46 圖 3-22 待辦事項子系統顯示類別圖………...47

(8)

圖 3-24 行事曆子系統顯示類別圖…….………..49 圖3-25 行事曆子系統編輯/刪除類別圖.……….……50 圖 3-26 課程查詢子系統類別圖之一………...51 圖 3-27 課程查詢子系統類別圖之二………...52 圖 3-28 課程查詢子系統類別圖之三……...………52 圖 3-29 線上傳訊子系統顯示類別圖………...………53 圖 3-30 個人課表子系統………..……….54 圖 3-31 預選功課表子系統類別圖之一………...56 圖 3-32 預選功課表子系統類別圖之二……….….…….56 圖 3-33 課程查詢子系統類別圖之三………...…..……..57 圖 3-34 行動通訊子系統―個人課表類別圖………...……58 圖 3-35 行動通訊子系統―個人課表類別圖………..…….59 圖 3-36 個人設定子系統類別圖……….…..60 圖 3-37 管理子系統類別圖………...………61 圖 3-38 登入類別類別圖………...…....…..63 圖3-39 「線上學生課務資訊系統」的資料庫設計階段………….……66 圖3-40 實體(Entity)………..….…………69 圖3-41 屬性(Attribute)……….……….70 圖3-42 複合屬性(Composite Attribute)………70 圖3-43 多值屬性(Multi-valued Attribute)……….………..…….71 圖3-44 導出屬性(Derived Attribute)……….……….…..71 圖3-45 鍵值屬性(Key Attribute)……….…..71 圖 3-46 關係(Relationship)………..………….…….72 圖3-47 角色名稱(Role Name)………..……72 圖3-48 基數率(Cardinality Ratio)之一……….73 圖3-49 基數率(Cardinality Ratio)之二……….73 圖3-50 基數率(Cardinality Ratio)之三……….73 圖3-51 參與限制(Participation Constraint)……….…….74 圖3-52 弱勢實體(Weak Entity)……….74 圖3-53 辨認關係(Identifying Relationship)……….74

圖3-54 部份鍵值屬性(Partial Key Attribute)………..75

圖3-55 課程資料庫-課程 ER Model 之一………76 圖3-56 課程資料庫-課程 ER Model 之二………77 圖3-57 課程資料庫-課程 ER Model 之三………....78 圖3-58 課程資料庫-課程 ER Model 之四………79 圖 3-59 課程資料庫-課程 ER Model 之五………..80 圖3-60 課程資料庫-課程 ER Model 之六………81 圖3-61 課程資料庫-課程 ER Model-學生實體圖………….…..………82

(9)

圖 3-62 課程資料庫-課程 ER Model-教師實體圖……….……82 圖 3-63 課程資料庫-課程 ER Model-科目實體圖……….83 圖3-64 課程資料庫-課程 ER Model-班級實體圖………...84 圖 3-65 課程資料庫-課程 ER Model-班別實體圖………..84 圖 3-66 課程資料庫-課程 ER Model-系所實體圖……….….85 圖3-67 課程資料庫-課程 ER Model-學院實體圖……….………..85 圖 3-68 課程資料庫-課程 ER Model-書籍實體圖………..85 圖 3-69 課程資料庫-課程 ER Model-課程實體圖………..86 圖 3-70 課程資料庫-課程 ER Model-課程別實體圖………..86 圖 3-71 課程資料庫-課程 ER Model-教室實體圖………..86 圖 3-72 課程資料庫-課程 ER Model-教室別實體圖………..87 圖3-73 課程資料庫-課程 ER Model-大樓實體圖………...87 圖 3-74 課程資料庫-預選科目 ER Model 之一………..88 圖 3-75 課程資料庫-預選科目 ER Model 之二………..89 圖 3-76 課程資料庫-預選科目 ER Model-預選科目實體圖…………..90 圖 3-77 線上學生課務資訊系統資料庫 ER Model 之一………91 圖 3-78 線上學生課務資訊系統資料庫 ER Model 之二………92 圖 3-79 線上學生課務資訊系統資料庫 ER Model 之三………93 圖3-80 線上學生課務資訊系統資料庫 ER Model 之四……….94 圖 3-81 線上學生課務資訊系統資料庫 ER Model -即時訊息發佈單位實體圖………..…………..….94 圖 3-82 線上學生課務資訊系統資料庫 ER Model -即時訊息發佈種類實體圖……….95 圖3-83 線上學生課務資訊系統資料庫 ER Model-即時訊息實體圖.…95 圖3-84 線上學生課務資訊系統資料庫 ER Model-使用者實體圖…….96 圖3-85 線上學生課務資訊系統資料庫 ER Model-使用者實體圖之一.96 圖3-86 線上學生課務資訊系統資料庫 ER Model-使用者實體圖之二.97 圖3-87 線上學生課務資訊系統資料庫 ER Model-使用者實體圖之三.98 圖3-88 線上學生課務資訊系統資料庫 ER Model-使用者實體圖之四.99 圖3-89 線上學生課務資訊系統資料庫 ER Model-線上傳訊實體圖….99 圖 3-90 線上學生課務資訊系統資料庫 ER Model -個人行事曆實體圖……….…….…….………100 圖3-91 線上學生課務資訊系統資料庫 ER Model-待辦事項實體圖...100 圖3-92 線上學生課務資訊系統資料庫 ER Model-國定假日實體圖...100 圖 3-93 線上學生課務資訊系統資料庫 ER Model -學校行事曆實體圖………...101 圖 3-94 關聯式資料庫綱要表示法……….102

(10)

圖 3-96 關聯式資料庫綱要表示法……….103 圖3-97 課程資料庫-課程-學生關聯式資料庫綱要………..……103 圖 3-98 課程資料庫-課程-教師關聯式資料庫綱要………103 圖 3-99 課程資料庫-課程-科目關聯式資料庫綱要………104 圖 3-100 課程資料庫-課程-班級關聯式資料庫綱要………..104 圖 3-101 課程資料庫-課程-班別關聯式資料庫綱要………..104 圖 3-102 課程資料庫-課程-系所關聯式資料庫綱要………..105 圖 3-103 課程資料庫-課程-學院關聯式資料庫綱要………..105 圖 3-104 課程資料庫-課程-書籍關聯式資料庫綱要………..105 圖 3-105 課程資料庫-課程-課程關聯式資料庫綱要………..105 圖 3-106 課程資料庫-課程-課程別關聯式資料庫綱要………..105 圖 3-107 課程資料庫-課程-教室關聯式資料庫綱要…………..……105 圖 3-108 課程資料庫-課程-教室別關聯式資料庫綱要………..106 圖 3-109 課程資料庫-課程-大樓關聯式資料庫綱要………..106 圖 3-110 課程資料庫-課程-學生修課科目關聯式資料庫綱要……..106 圖3-111 課程資料庫-課程 -學生期中考監考科目關聯式資料庫綱要……….106 圖3-112 課程資料庫-課程 -學生期末考監考科目關聯式資料庫綱要……….106 圖3-113 課程資料庫-課程 -學生畢業提前考監考科目關聯式資料庫綱要……….106 圖3-114 課程資料庫-課程-學生授課科目關聯式資料庫綱要……….107 圖3-115 課程資料庫-課程-教師授課科目關聯式資料庫綱………….107 圖3-116 課程資料庫-課程 -教師期中考監考科目關聯式資料庫……….…….107 圖3-117 課程資料庫-課程 -教師期末考監考科目關聯式資料庫綱要……….…….107 圖3-118 課程資料庫-課程 -教師畢業提前考監考科目關聯式資料庫綱要……….107 圖3-119 課程資料庫-課程-教師授課科目關聯式資料庫綱要…....….107 圖 3-120 課程資料庫-課程-班級開課科目關聯式資料庫綱要…...….108 圖 3-121 課程資料庫-課程-科目指定教科書關聯式資料庫綱要...….108 圖 3-122 課程資料庫-課程-科目指定參考書關聯式資料庫綱要...….108 圖 3-123 課程資料庫-課程-科目上課教室關聯式資料庫綱要…...….108 圖 3-124 課程資料庫-課程-教師請益時間關聯式資料庫綱要……....108 圖 3-125 課程資料庫-課程-科目每週上課內容關聯式資料庫綱要....108 圖 3-126 課程資料庫-預選科目-預選科目關聯式資料庫綱要………109

(11)

圖 3-127 課程資料庫-預選科目 -學生預選預選科目關聯式資料庫綱要………109 圖 3-128 課程資料庫-預選科目 -教師授課預選科目關聯式資料庫綱要………..……109 圖 3-129 課程資料庫-預選科目 -班級開課預選科目關聯式資料庫綱要………..………109 圖 3-130 課程資料庫-預選科目 -預選科目指定教科書關聯式資料庫綱要………..……110 圖 3-131 課程資料庫-預選科目 -預選科目指定參考書關聯式資料庫綱要……..………110 圖 3-132 課程資料庫-預選科目 -預選科目上課教室關聯式資料庫綱要…………..…………110 圖 3-133 課程資料庫-預選科目 -預選科目每週上課內容關聯式資料庫綱要………110 圖3-134 課程資料庫-課程-學生內部綱要……….111 圖3-135 課程資料庫-課程-教師內部綱要之一……….111 圖3-136 課程資料庫-課程-教師內部綱要之二……….111 圖3-137 課程資料庫-課程-科目內部綱要……….112 圖3-138 課程資料庫-課程-班級內部綱要……….112 圖3-139 課程資料庫-課程-班別內部綱要……….113 圖3-140 課程資料庫-課程-系所內部綱要……….113 圖3-141 課程資料庫-課程-學院內部綱要……….113 圖3-142 課程資料庫-課程-書籍內部綱要……….113 圖3-143 課程資料庫-課程-課程內部綱要……….113 圖3-144 課程資料庫-課程-課程別內部綱要……….114 圖3-145 課程資料庫-課程-教室內部綱要……….114 圖3-146 課程資料庫-課程-教室別內部綱要……….114 圖3-147 課程資料庫-課程-大樓內部綱要……….114 圖3-148 課程資料庫-課程-學生修課科目內部綱要……….115 圖3-149 課程資料庫-課程-學生期中考監考科目內部綱要……….…115 圖3-150 課程資料庫-課程-學生期末考監考科目內部綱要………….115 圖3-151 課程資料庫-課程-學生畢業提前考監考科目內部綱要…….115 圖3-152 課程資料庫-課程-學生授課科目內部綱要……….115 圖3-153 課程資料庫-課程-教師授課科目內部綱要……….116 圖3-154 課程資料庫-課程-教師期中考監考科目內部綱要………….116 圖3-155 課程資料庫-課程-教師期末考監考科目內部綱要………….116 圖3-156 課程資料庫-課程-教師畢業提前考監考科目內部綱要….…116

(12)

圖3-158 課程資料庫-課程-科目指定教科書內部綱要……….117 圖3-159 課程資料庫-課程-科目指定參考書內部綱要……….117 圖3-160 課程資料庫-課程-科目上課教室內部綱要……….117 圖3-161 課程資料庫-課程-教師請益時間內部綱要……….117 圖3-162 課程資料庫-課程-科目每週上課內容內部綱要……….117 圖3-163 課程資料庫-預選科目-預選科目內部綱要……….118 圖3-164 課程資料庫-預選科目-學生預選預選科目內部綱要……….118 圖3-165 課程資料庫-預選科目-教師授課預選科目內部綱要……….119 圖3-166 課程資料庫-預選科目-班級開課預選科目內部綱要……….119 圖3-167 課程資料庫-預選科目-預選科目指定教科書內部綱要…….119 圖3-168 課程資料庫-預選科目-預選科目指定參考書內部綱要…….119 圖3-169 課程資料庫-預選科目-預選科目上課教室內部綱要……….119 圖 3-170 課程資料庫-預選科目-科目每週上課內容內部綱要………120 圖3-171 線上學生課務資訊系統資料庫-即時訊息內部綱要……..…120 圖3-172 線上學生課務資訊系統資料庫 -即時訊息發佈種類內部綱要……….120 圖3-173 線上學生課務資訊系統資料庫-即時訊息內部綱要………..120 圖3-174 線上學生課務資訊系統資料庫-使用者內部綱要…………..121 圖3-175 線上學生課務資訊系統資料庫-線上傳訊訊息內部綱要…..122 圖3-176 線上學生課務資訊系統資料庫-個人行事曆內部綱要……..122 圖3-177 線上學生課務資訊系統資料庫-待辦事項內部綱要………..122 圖3-178 線上學生課務資訊系統資料庫-國定假日內部綱要………..122 圖3-179 線上學生課務資訊系統資料庫-學校行事曆內部綱要……..123 圖3-180 線上學生課務資訊系統資料庫 -使用者選擇訂閱即時訊息發佈種類內部綱要………123 圖3-181 線上學生課務資訊系統資料庫 -使用者接收即時訊息內部綱要…..…..…….…...…...….…123 圖3-182 線上學生課務資訊系統資料庫 -社團審核欲入社者名單內部綱要….….…..…...…….….123 圖3-183 線上學生課務資訊系統資料庫-社團的社員名單內部綱要..123 圖3-184 線上學生課務資訊系統資料庫 -即時訊息發佈單位系統資料內部綱要………124 圖3-185 線上學生課務資訊系統資料庫-使用者系統資料內部綱要..124 圖3-186 線上學生課務資訊系統資料庫 -線上傳訊好友名單內部綱要………124 圖3-187 線上學生課務資訊系統資料庫 -線上傳訊損友名單內部綱要………...……….124 圖 4-1 最新消息子系統顯示畫面……….………….….125

(13)

圖 4-2 最新消息子系統顯示順序圖………...………126 圖 4-3 待辦事項子系統畫面………...127 圖 4-4 待辦事項子系統顯示順序圖………...128 圖 4-5 待辦事項子系統編輯/刪除順序圖………..129 圖 4-6 行事曆子系統顯示畫面之一………...130 圖 4-7 行事曆子系統顯示畫面之二………...131 圖 4-8 行事曆子系統顯示畫面之三………...131 圖 4-9 行事曆子系統顯示畫面之四……….….….……132 圖 4-10 行事曆子系統顯示順序圖………..………133 圖 4-11 行事曆子系統編輯/刪除畫面………134 圖 4-12 行事曆子系統編輯/刪除順序圖………135 圖 4-13 課程查詢子系統輸入畫面之一………136 圖 4-14 課程查詢子系統輸入畫面之二………137 圖 4-15 課程查詢子系統顯示結果畫面………138 圖 4-16 課程查詢子系統顯示詳細資料畫面之一……….139 圖 4-17 課程查詢子系統順序圖……….140 圖 4-18 線上傳訊子系統顯示好友名單畫面……….…141 圖 4-19 線上傳訊子系統編輯好友/損友名單、設定上線狀態畫面…..142 圖 4-20 個人課表子系統畫面………...…..143 圖 4-21 預選功課表子系統顯示畫面……….144 圖 4-22 行動通訊查詢子系統課表畫面之一……….145 圖 4-23 行動通訊查詢子系統課表畫面之二……….146 圖 4-24 行動通訊查詢子系統課表畫面之三……….147 圖 4-25 行動通訊查詢子系統通訊錄畫面……….148 圖 4-26 個人設定子系統畫面之一……….149 圖 4-27 個人設定子系統畫面之二……….150 圖 4-28 管理子系統畫面之一……….151 圖 4-29 管理子系統畫面之二……….151 圖4-30 新增帳號檔.xml 格式……….152 圖4-31 Config.Xml 檔案格式………..…153 圖 4-32 登入畫面……….154 圖 3-35 登入順序圖……….155

(14)

表目錄

表 2-1 系統軟體學程………...………6 表 2-2 應用軟體學程………...………6 表 2-3 微處理機系統學程…………...………7 表 2-4 超大型積體電路學程………...………7 表 2-5 計算機網路學程………...………8 表 2-6 資訊管理學程………...………8 表 2-7 人工智慧學程……….………9 表 2-8 多媒體學程……….………9 表 2-9 電腦系統學程………...………..10 表 2-10 軟體工程學程………...………11 表2-11 3C 科技學程………...………12 表 2-12 網際網路工程學程…………...………13 表 3-1 硬體設備………...………..28 表 3-2 線上學生課務資訊系統模型各類別所負的責任………...……..45 表 3-3 最新消息子系統事件規格表……….46 表 3-4 最新消息子系統方法規格表……….46 表 3-5 待辦事項子系統顯示事件規格表……….47 表 3-6 待辦事項子系統顯示方法規格表……….47 表3-7 待辦事項子系統編輯/刪除事件規格表………48 表3-8 待辦事項子系統編輯/刪除方法規格表………48 表 3-9 行事曆子系統顯示事件規格表表……….49 表 3-10 行事曆子系統顯示方法規格表……….………..49 表 3-11 行事曆子系統編輯/刪除事件規格表……….…………50 表 3-12 行事曆子系統編輯/刪除方法規格表……….50 表 3-13 課程查詢子系統事件規格表之一………...51 表 3-14 課程查詢子系統方法規格表之一……….………..52 表 3-15 課程查詢子系統事件規格表之二………...52

(15)

表 3-16 課程查詢子系統事件規格表之三………...…52 表 3-17 課程查詢子系統方法規格表之三………...53 表 3-18 線上傳訊子系統顯示事件規格表………...53 表 3-19 線上傳訊子系統顯示方法規格表………...…………54 表 3-20 個人課表子系統事件規格表………..….…54 表 3-21 個人課表子系統方法規格表………...55 表 3-22 預選功課表子系統事件規格表之一………...56 表 3-23 預選功課表子系統方法規格表之一………...56 表 3-24 預選功課表子系統事件規格表之二………...56 表 3-25 預選功課表子系統方法規格表之二………...……57 表 3-26 預選功課表子系統事件規格表之三………...……57 表 3-27 預選功課表子系統方法規格表之三………...……57 表 3-28 行動通訊子系統―個人課表子系統事件規格表………..….…58 表 3-29 行動通訊子系統―個人課表事件規格表………...59 表 3-30 行動通訊子系統―個人課表方法規格表………...………59 表 3-31 個人設定子系統事件規格表………...………60 表 3-32 個人設定子系統方法規格表………...60 表 3-33 管理子系統事件規格表………...61 表 3-34 管理子系統方法規格表………...……62 表 3-35 登入事件規格表………...63 表 3-36 登入方法規格表………...……63

(16)

第一章 導論

1.1 動機

在新世紀的時代,網路己成人類生活的必需品之一,資訊的網路 化己是不可擋的驅勢。雖然歷經 2000 年的網路泡沫化,網際網路的使 用人口仍是只會增加,不會減少。網際網路的興起,帶動了自工業革 命後另一波的資訊革命,自人類有歷史以來,從沒有一項發明能夠像 網際網路一樣如此迅速、廣泛,且深入的衝擊整個原有的產業。企業 之間早以深刻瞭解到速度決定了企業的成敗,也因此許多企業立即地 以行動投入電子商務和企業 e 化。在數位時代,只有能妥善地利用資 訊,才能贏家。 就逢甲大學而言,電子化公文系統以實施許久、許多的學務系統, 也早以改成線上作業。在校園方面,無線網路以全面架設完成。同學 們只要擁有無線網路卡,便可利用筆記型電腦或 PDA 在樹蔭下享受上 網的樂趣。雖然說有如此方便的網路硬體設備,但是在對於同學的服 務方面,仍略感不足,許多重要資訊的傳遞,還是透過傳統文字型態 的 BBS。 目前,學生們最常利用到的學校網路資訊,便是課程查訊系統了。 有感於學校每次在預選、加退選時,課程查詢系統便會沒由來地無法 使用,並且在新課程剛剛公佈的時候,也很難連得上課程查詢系統, 往往試了很多次,還是無法連上去,無法馬上獲得最新資訊。這些狀 況,對學生而言,是非常不便且不愉快地的。 有鑑於此,我們便想重新做個課程查詢系統,改善現有的缺失。

(17)

但是,後來我們認為,只是重新改良製作一個新的課程查詢系統, 對於資訊化校園的推動,幫助跟用處都實在太小了,就決定以課程查 詢系統為主軸,開始思索,是否有其它的功能,可以附加在課程查詢 系統上? 經過一陣子的思考,有一天,我們靈機一動:使用目前逢甲課程 查詢系統,查詢出來的結果,是一張功課表,那麼,我們何不把這張 功課表,改成附有行事曆的功能?目前學校方面對於學生資訊的傳 遞,除了透過傳統班級幹部的轉告,在資訊化方面便是只有在首頁或 是 BBS 上公佈。可是這種做法,卻缺乏了即時性,學生只能被動地去 觀看訊息,而不是主動地獲得,許多資訊因此成了過期的無用垃圾。 所以,我們想透過行事曆功能,讓學校、老師、系學會、班級幹 部、社團活動… … 等等,能夠通知特定學生相關訊息,而學生們也可 以選擇自己想要得知哪些單位所發佈的訊息。如此,同學們不但可獲 得即時的資訊,亦可有效的利用及管理資訊,來安排自己的行程。另 外,透過線上溝通的功能,讓同學之間的聯絡,亦可經由此行事曆系 統來實行。如此,便可建立出一個學校、班級、同學之間的資訊交流 網了。 最後,我們認為,行事曆系統的應用範圍,較課程查詢系統,要 來得大多了。因此,我們決定將重心移往行事曆系統,配合學校的行 事和學生的課程,發送並管理校園中的各種資訊,以含有課程查詢功 能的學生行事曆系統為主軸,並加以整合其他功能,建立學生與學校 間的資訊管道。故此,專題題目就定為『線上學生課務資訊系統』。

1.2 目的

對於『線上學生課務資訊系統』,我們兩人有很深的期待,希望它 最後能達到以下幾點要求,這是我們對它的期望。

(18)

(1)系統方面:

a. 改善效能:學校現行的『課程查詢系統』,乃為四、五年前,以

Sybase 公司出產的 PowerBuilder 中的 Web.PB 開發的,其一端往 後連接 Sybase 資料庫,另一端往前透過 CGI 介面與 Web Server 溝通。如此的系統架構,在每位使用者連上課程查詢首頁時, Web Server 就必須再重新執行一個新的 Process,並且和資料庫 重新建立連線。因此,只要同一時間內,上線人數超過 2、30 人 時,系統便有點負荷不了,就開始產生不穩定現象,諸如:系統 資源耗光、當機、執行緩慢… … 等等。因此,本系統要以分散式 系統架構開發,可將商業邏輯運算部份轉移至其他主機,並採取 ASP、JSP、PHP… … 等動態網頁技術來取代 CGI,以避免消耗系 統過多資源,減輕伺服器的負擔,使數千人同時上線時,系統仍 能正常、順暢得運作。 b. 系統元件化:雖然,我們以「逢甲大學資訊工程學系」做為系統 的範本,但卻不局限只有「逢甲大學資訊工程學系」才能適用本 系統。因此,為了因應各學校不同的資料庫設計和需求,故將系 統元件化,以達到只須更動少數元件,而不須更動整體架構,便 可適應各種資料庫系統和需求的目的。 c. 結合行動通訊系統:將本系統與行動通訊系統相結合,讓使用者 可透過手機、PDA… … 等行動通訊產品,經網路傳輸使用本系 統,使其應用範圍,不是只局限於桌上型電腦上。如此,使用者 便可隨時隨地、即時、迅速且正確得獲得自己所需的最新資訊。

(19)

(2)對於使用者方面: a. 學校方面: (a)其重要資訊可在第一時間通知給學生。 (b)不用一再且重覆地發送訊息。只需一次動作,即可通知全部的 學生。 (c)建立班級交流園地,提高師生之間的互動。 (d)管理並統一學校、老師、系學會、班級幹部、社團活動訊息的 發送。 (e)建立學校與學生之間良好的資訊聯絡系統。 b 學生方面: (a)改善現有設計不良的介面,增加如複數條件查詢或課程上課人 數餘額即時通知等 Friendly 的功能,能讓使用者感到得心應 手,用了就會繼續使用下去。 (b)此系統在同一時刻,若有多個使用者同時使用時,仍能正常順 暢地使用,不會有塞車、Delay 等令人不舒服的狀況發生。 (c)要做到行動性和方便性,即整合 PDA 或 WAP 等系統,讓使用 者可在離開電腦時仍可獲得資訊,絕不遺漏任何重要的訊息。 (d)要有主動性,即時更新網站內容,將重要資訊在第一時間內傳 遞給使用者。 (e)仿 BBS 和 ICQ,建構一個班級交流園地,做到線上訊息即時溝 通。 (f)可挑選自己想要的資訊,過濾不感興趣的訊息。 (g)對於重要的訊息採取加密保護,以免訊息外漏。 (h)行事曆結合課表和學校、社團的行事曆,更可有效安排時間。

(20)

第二章 使用者需求分析

2.1 線上學生課務資訊系統概述

依照我們對系統的要求,我們將系統規劃成下列結構:

(21)

2.2 課程查詢子系統

2.2.1 逢甲大學資訊工程學系課程大綱

(1)八十八、八十九學年度學程課程科目表: 表 2-1 系統軟體學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 一下 計算機概論(II)* 3 組合語言* 3 二上 資料結構* 3 程式語言* 3 二下 系統程式* 3 作業系統(I)* 3 三上 資料庫系統 3 計算機演算法* 3 三下 編譯器 3 四上 軟體工程 3 四下 合計 33 註:* 表專業必修科目。 表 2-2 應用軟體學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 一下 計算機概論(II)* 3 二上 資料結構* 3 物件導向設計 3 二下 系統程式* 3 作業系統(I)* 3 視窗程式設計 3 三上 資料庫系統 3 計算機演算法* 3 三下 資料庫系統程式規劃 3 四上 軟體工程 3 四下 多媒體系統 3 合計 36 註:* 表專業必修科目。

(22)

表 2-3 微處理機系統學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 一下 計算機概論(II)* 3 組合語言* 3 二上 電子電路學(含實驗)* 4 數位電路導論(含實驗)* 4 二下 系統程式* 3 三上 數位電路設計* 3 計算機結構學* 3 三下 微處理機系統 3 四上 微處理機介面設計 3 四下 合計 32 註:* 表專業必修科目。 表 2-4 超大型積體電路學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 一下 計算機概論(II)* 3 電子電路學(含實驗)* 4 二上 資料結構* 3 二下 數位電路導論(含實驗)* 4 數位電路設計* 3 三上 離散數學* 3 計算機結構學* 3 三下 超大型積體電路設計導 論 3 四上 超大型積體電路設計製 作 2 四下 VLSI 計算機輔助設計導 論 3 合計 34 註:* 表專業必修科目。

(23)

表 2-5 計算機網路學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 計算機操作實務(UNIX) 2 一下 計算機概論(II)* 3 二上 機率論* 3 通信與網路概論* 3 作業系統(I)* 3 離散數學* 3 三上 資料庫系統 3 互聯與高速網路 3 三下 計算機演算法* 3 四上 網路程式規劃 3 四下 資訊理論 3 合計 35 註:* 表專業必修科目。 表 2-6 資訊管理學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 一下 計算機概論(II)* 3 二上 電子資料處理 3 檔案結構及管理 3 二下 系統分析 3 三上 資料庫系統 3 三下 資料庫系統程式規劃 3 統計學 3 作業研究 3 四上 管理資訊系統 3 四下 決策支援系統 3 合計 33 註:* 表專業必修科目。

(24)

表 2-7 人工智慧學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 一下 計算機概論(II)* 3 二上 資料結構* 3 二下 程式語言* 3 三上 計算機圖形學 3 計算機演算法* 3 三下 人工智慧概論 3 人工智慧應用 3 四上 影像處理與辨認 3 四下 專家系統 3 合計 30 註:* 表專業必修科目。 表 2-8 多媒體學程 年 級 科目名稱 學分 一上 計算機概論(I)* 3 一下 計算機概論(II)* 3 二上 資料結構* 3 多媒體系統概論 1 二下 系統分析 3 三上 多媒體節目企劃設計 3 動畫設計與視訊處理 3 多媒體系統專題製作* 1 三下 人機介面 3 多媒體整合製作 3 虛擬實境 3 四上 多媒體系統專題製作* 1 四下 合計 30 註:* 表專業必修科目。

(25)

(2)九十學年度學程課程科目表: 表 2-9 電腦系統學程 年 級 科目名稱 學分 資料結構* 3 組合語言* 3 數位系統設計* 3 計算機應用實務 3 二上 程式語言 3 系統程式* 3 機率論* 3 通訊與網路概論 3 系統分析與設計 3 物件導向設計 3 二下 檔案結構與資料處理 3 作業系統(一)* 3 離散數學* 3 編譯器* 3 專題研究(一)* 1 資料庫系統 3 人機介面 3 三上 微處理機介面設計 3 計算機演算法* 3 計算機結構學* 3 專題研究(二)* 1 網路程式設計 3 軟體工程 3 作業系統(二) 3 三下 數值方法與分析 3 專題研究(三)* 1 資訊與網路安全 3 管理資訊系統 3 影像處理與辨識 3 四上 計算機圖形學 3 電腦系統專題 3 正規語言 3 專家系統 3 四下 人工智慧概論 3 合計 60 註:* 表專業必修科目。

(26)

表 2-10 軟體工程學程 年 級 科目名稱 學分 資料結構* 3 程式語言* 3 計算機應用實務 3 二上 組合語言 3 系統程式* 3 通訊與網路概論* 3 系統分析與設計* 3 多媒體系統概論 3 物件導向設計 3 檔案結構與資料處理 3 二下 機率論 3 作業系統(一)* 3 資料庫系統* 3 專題研究(一)* 1 編譯器 3 離散數學 3 人機介面 3 三上 電子商務 3 計算機演算法* 3 軟體工程* 1 專題研究(二)* 3 網路程式設計 3 計算機結構學 3 三下 資料庫系統程式規劃 3 專題研究(三)* 3 資訊與網路安全 3 管理資訊系統 3 資料倉儲與資料挖掘 3 統計學 3 四上 虛擬實境 3 軟體工程專題 3 專家系統 3 四下 人工智慧概論 3 合計 60 註:* 表專業必修科目。

(27)

表 2-11 3C 科技學程 年 級 科目名稱 學分 資料結構* 3 組合語言* 3 數位系統設計* 3 計算機應用實務 3 二上 程式語言 3 通訊與網路概論* 3 機率論* 3 信號與系統* 3 系統程式 3 系統分析與設計 3 物件導向設計 3 二下 多媒體系統概論 3 作業系統(一)* 3 計算機結構學* 3 專題研究(一)* 1 離散數學 3 資料庫系統 3 編譯器 3 互連與高速網路 3 超大型積體電路設計導 論 3 三上 微處理機介面設計 3 計算機演算法* 3 專題研究(二)* 1 網路程式設計 3 超大型積體電路設計製 作 3 密碼學 3 數位信號處理 3 三下 數位通訊系統 3 專題研究(三)* 1 資訊與網路安全 3 電腦輔助數位設計概論 3 嵌入式單晶片系統 3 四上 無線通訊系統 3 3C 科技整合專題 3 多媒體信號處理 3 寬頻網路 3 四下 家電通訊及遙控 3 合計 60 註:* 表專業必修科目。

(28)

表 2-12 網際網路工程學程 年 級 科目名稱 學分 資料結構* 3 組合語言 3 計算機應用實務 3 二上 程式語言 3 系統程式* 3 通訊與網路概論* 3 機率論 3 系統分析與設計 3 物件導向設計 3 二下 多媒體系統概論 3 作業系統(一)* 3 離散數學* 3 互連與高速網路* 3 專題研究(一)* 1 資料庫系統 3 人機介面 3 三上 編譯器 3 計算機演算法* 3 計算機結構學* 3 專題研究(二)* 1 網路程式設計* 3 軟體工程 3 動畫設計與與視訊處理 3 密碼學 3 三下 數位通訊系統 專題研究(三)* 1 資訊與網路安全 3 統計學 3 多媒體整合製作 3 四上 無線通訊系統 3 網路規劃與管理 3 家電通訊及遙控 3 資訊理論 3 寬頻網路 3 四下 網際網路工程專題 3 合計 60 註:* 表專業必修科目。

2.2.2 原有系統架構

圖 2-2 逢甲大學課程查詢系統課程架構 client Web.pb Web Server Application Server Database Server

(29)

系統硬體:

Web Server:

CPU:Pentium III 450MHz 記憶體:512 Mb RAM

系統軟體:

Web Server:Microsoft NT4.0 SP3 + IIS3.0 Database Server:Sybase SQL Server

開發技術:

以 PowerBuilder 6.0 中的 Web.pb 架構開發。 運作方式:

使用者透過瀏覽器將要求送至 Web Server,Web Server 再以

CGI 介面1呼叫 Web.pb2執行,將要求傳至 AP Server 動作,AP

Server 分析要求後將資料從資料庫取出,並將資料轉換為網頁形 式,將結果傳回 Web Server,然後送至使用者的瀏覽器上顯示結 果。 由上得知,課程查詢系統僅做簡單的條件式查詢,AP Server 並無複雜的邏輯運算,其系統的效能皆因 Web.pb 的運作方式而使 得效能低落。當每一個使用者查詢時,CGI 程式便會重新執行一份 Process,使得系統的資源因而減少。一旦同時間查詢的使用者超過 2、30 人時,系統的資源便無法負擔,使得執行緩慢甚至停止整個 系統的運作。 ,詳見附錄一。

(30)

2.2.3 問卷調查

在探討課程查詢子系統需求分析前,我們想對現有課程查詢系統 的使用者〈逢甲大學學生〉進行使用心得調查,以了解現有課程查詢 系統在使用者心中有何優缺點,並以此做為新系統需求的參考。 原本,我們想要以街頭訪談的方式進行調查,因為與受訪者面對 面較易作深入的訪談,但考慮到其所涉及的對象太廣,所花費的時間 成本太大,又無效率,故改以對全校同學發 E-mail 問卷的方式進行 調查,下圖為我們所設計的問卷。 圖 2-3 問卷調查之一

(31)
(32)
(33)

我們總共發了 11574 份問卷,但僅回收了 58 份,這麼少的回收 率是我們所始料未及的,所幸,回收的問卷幾乎都有作詳盡的回答, 我們將其附於附錄二中,並根據回收的問卷,將使用者的期望及對現 有系統的不滿,統計羅列於下: 1. 連線及查詢速度 2. 課程有異動時,能即時得知並更新 3. 系統很? 定 4. 當預選、查成績時,系統仍能正常使用 5. 可看到老師及同學的 E-mail,學生的座號,該班是否仍有名額 可加選 6. 可選擇是否要開放個人資料 7. 與選課系統結合 8. 可查詢自己還哪些畢業條件 9. 希望能直接看到自己的課表 10. 通識及體育課程不易正確查出

2.2.4 課程查詢子系統需求分析

根據問卷調查的結果,以及我們對此系統的期望,我們將課程查 詢子系統的需求條列如下: 1. 系統能夠很穩定,即使在選課的尖峰時刻,能仍夠順暢使用。 2. 可以進行多種複數條件查詢。 3. 和靄可親的使用者介面。

(34)

第三章 系統分析與設計

3.1 系統開發流程模式

3.1.1 系統開發流程模式介紹

由於軟硬體的技術不斷成長,資訊系統的需求量與複雜度亦不斷 地大幅提高,因此如何有效地提高軟體的生產量和品質便是一件非常 重要的課題。軟體開發流程模式是資訊系統開發活動一系列的步驟及 執行程序。當系統開發依循系統化、邏輯化的步驟進行時,有利於標 準、規範與政策之推行和建立,開發的過程將會更有效率,更能確保 品質,也更容易管理。許多專家分別研究出不同的資訊系統開發流程 模式,以便處理各種不同情況的系統開發。以下便介紹各主要開發流 程模式的執行步驟及其適用情形。1 (1)瀑布模式(waterfall model) 瀑布模布開發是一種有系統、符合邏輯的方法。它依軟體生命 週期規劃了一序列的階段,且每一階段的產出都必須經過確認、驗 證。所以每一階段的結束都是一個開發的里程碑。應用瀑布模式開 發時,各階段必須考量完整的需求,每一階段的輸出將做為下一階 段的輸入。是故,前一階段必須完全完成,且有一個完整的結果, 才能移至下一階段。 1 吳仁和,林信惠,系統分析與設計:理論與應用實務,智勝文化,台北,2002。

(35)

瀑布模式一般適用於低風險,需求變動小又可清楚表達的專 案。它強調完整的分析與設計文件,可有效的確保系統品質。但倘 若需求變更,便得要回到分析階段重作完整的系統分析,將文件重 新大幅地修改。並且,當系統能夠正式運作時,己是專案的開發末 期了。若在此時才發現錯誤或是不合乎需求,便會造成大災難。因 此,客戶若經常地變更需求,或是無法在專案開始時便能清楚描述 需求時,瀑布模式便明顯地不適用。 圖 3-1 瀑布模式之開發程序 (2)原型模式(prototyping model) 通常,客戶只會定義出一些系統要? 成的目標,而不會確認詳 細的輸出、輸入或操作需求,或當開發者沒有足夠的經驗來了解使 用者需求,亦可能一時無法找出解決問題的方法或技術等。這種情 況下,原型模式便可能提供最好的方法。 其執行程序與原則為先針對使用者需求較清潔的部份或是設 計師較能掌握的部份,依分析、設計與實施等步驟,快速開發系統 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

(36)

行評估,加以確定需求。雙方透過雛型之操作與回饋,以釐清、修 改及擴充需求,並藉以修改與擴充原型。原型不斷地調整,直到系 統符合雙方約定為止。 然而使用此種模式亦會產生下列的問題: a.因缺乏整體規劃、分析與設計,靠著不斷快速修改原型,難以 顧及品質及長程的可維護性。 b.開發者可能為了使原型能夠快速工作而對實行部份做出讓步, 結果可能使用了不合適的架構或演算法,只因為它是便於使用 且熟悉的。 圖 3-2 原型模式之開發程序 (3)螺旋模式摘要(spiral model) 螺旋模式是一種將原型的性質和瀑布模型的控制結合在一起 的進化模型。在螺旋模式中,軟體是以一系列的增量版來進行開 發,各週期之進行均強調規劃及風險評估,並逐漸地建立出完整的 系統。 建立/校正模型 ? 取客戶意見 客戶測試模型

(37)

螺旋模式每一週期的執行三步驟: a. 找出系統的目標、可行之實施方案與限制 依週期而有不同的詳細程度,當週期反覆進行時,描述會愈 來愈詳細。 b. 依目標與限制評估方案 此步驟主要是找出各方案之不確定處並設法解決。 c. 由剩下之相關風險決定下一步驟 當通過風險評估後,依照剩下的相關風險決定下一步驟應朝 何種方向發展。 圖 3-3 螺旋模式之開發程序 如同其他模式一樣,螺旋模式並不是萬能的。它可能會難以說 服客戶這種進化的方法是可以控制的。它需要考慮風險評估的專門 意見,若是有一種主要的風險並未被發現且納入管理,便可能使得 專案失敗。1 1 Roger S. Pressman, Ph.D.著,金子葳,洪秀朋 譯,軟體工程─實務專家作法 第

(38)

(4)極端軟體製程(extreme programming,以下簡稱 XP) XP 是針對中小型軟體開發團隊在面臨模糊或快速改變的需求 時,所導入的一種精簡方法。它是一種軟體開發的規約,要導入 XP,就必須做到某些特定的事。例如不用考慮是否要寫測試程式 ─如果不寫,便就不是在用 XP 開發。以分析、測試、編碼、設計 為流程,不停地修正來應付專案的改變 1。以下分別說明 XP 的十 二個核心要素。 通盤規劃:按照業務的輕重緩急和風險,快速訂出專案的範圍。 頻繁改版:快速將一個簡單的系統上線,並在極短時間內換上新版。 系統? 喻:用一個簡單的比喻指導所有開發動作的進行。 簡單設計:任何時候,系統都應該儘可能的設計得簡單。 測試先行:先撰寫單元測試程式,確保每個單元程式皆是正確的。 程式重整:重整程式碼,簡單化系統架構,或增加系統的彈性。 搭檔編程:所有要上線的程式,都是由兩兩一組的工程師一同完成。 程式共享:任何人都能隨時去動系統的任何一部份。 持續整合:每當有新的功能完成時便要與系統整合一次。 四十工時:每週工作只能四十小時上下。 客戶駐點:團隊中應納入一位會使用最終產品的客戶。 編程標準:程式師寫的所有程式碼,都遵循訂定的原則。 XP 的各項原則都是有互補作用的,一旦有某一項沒有確實做 好,就有可能帶來危機。例如,若測試程式沒有寫完整,系統便不 可能靠著通過測試來? 到頻繁改版的穩定性。且 XP 強調的是程 式,而非文件,若程式重整的不夠,使得設計不夠簡單,便有可能 會造成日後維護的困擾。 1 Kent Beck 著,李潛瑞 譯,極致軟體製程,培生,台北,2002

(39)

圖 3-4 極端軟體製程之開發模式

3.1.2 線上學生課務資訊系統開發流程模式分析

就上節所述的四種流程模式,我們對我們的課務資訊系統來加以 分析,根據上述的介紹,因為系統大部份的組成皆為新創意,並沒有 現行舊有的人工環境可供參考,而且我們無法在專案初期就能明確地 確定需求,有極大的可能在開發時期會不斷地更動系統的需求。所以 瀑布模式顯然地並不太適合我們使用。 就原型模式而言,其本身強調於使用者對原型的回饋,但是在我 們的團隊裡,使用者的角色亦是身兼開發者的我們。在角色重疊的情 形下,我們實在很難對原型做出很好的回饋,到最後,極有可能變成 只顧著系統能否運作而不考慮其功能。 基於以上的原因,所以我們採取螺旋式的系統開發方法,並加入 部份 XP 的開發觀念來開發系統。先訂定現階段目標,並加以分析設 計,以反覆的週期建構出系統,使得角色的扮演不至於過於混亂,不 斷地一點一點地修正系統,並以 XP 的測試整合確保完成系統的穩定 度。 我們使用的 XP 觀念有:測試先行、持續整合、程式重整、簡單 發行規劃 反覆 驗收測試 系統隱喻 發行計畫 最後版本 客戶確認 使用者故事 失誤解決 測試情節 新使用者故事 專案速度 臭蟲 下一反覆 不明確的 評估 明確的 評估 失誤解決 架構 小量發行

(40)

3.2 軟體開發工具分析

3.2.1 Web 應用程式

Web 應用程式,是以網頁為基礎的程式架構。類似傳統的 Client-Server 架構,透過網際網路,不限制任何作業系統平台,客戶 只要使用符合標準瀏覽器便能操作系統,無需下載安裝任何客戶程 式。就算是更新系統,亦只要更新 Web Server 這端即可,客戶無需 做任何更新動作,便能享受新的服務。 現行的 Web 應用程式開發技術,最主要的有 ASP、JSP、PHP 以及 ASP.NET。

(1)ASP,全名為 Active Server Pages,是 Microsoft 公司所開發出來 的 Server 端網頁技術,採用腳本語言 VBScript 和 Jscript 作為開 發語言,可開發動態、互動且高性動的 Web 應用程式。

(2)JSP,Java Server Page,是 Sun 公司推出的新一代網站開發語言, 使 Java 在網頁方面的應用,除了可使用 Java Applet 之外的另一 個新技術。JSP 可以在 Serverlet 和 JavaBean 的支援下,完成功 能強大的 Web 應用程式。

(3)PHP,是一種跨平台的伺服器端的嵌入式腳本語言。它大量地借 用 C,Java 和 Perl 語言的語法, 並耦合 PHP 自己的特性,使 WEB 開發者能夠快速地寫出動態產生頁面。PHP 是自由軟體聯盟所發 展的,因此 PHP 是完全免費的,而且可以不受限制地獲得原始 碼,甚至可以從中加進你自己需要的特色。

(4)ASP.NET,是 Microsoft 公司推出的新一代的網頁應用技術。屬 於 Microsoft 公司.NET 願景之一的重要技術。利用強大的.NET Framework 平台和 Web Services 建構出網際網路的分散式架構,

(41)

並且可使用符合.NET 規範的任何程式語言,如 Basic、C++、 Cobol、Jscript 等做為開發的語言。 就上述的四種 Web 應用程式技術,我們分別以我們的線上學生 資訊系統所要求的速度、元件化、行動通訊這三個目的來對其做討論 及選擇。 (1) 快 速: 由於我們要改善原有課程查詢系統速度上的缺點,所以執行 速度是我們的第一考量。就架構而言,ASP 與 PHP 皆是利用 Script 語言做為開發語言,因為直譯式程式執行的先天限制,所以在速 度上無法跟經過編譯的 JSP 和 ASP.NET 相比,所以就速度方面 而言,JSP 和 ASP.NET 是比較符合我們的需求。 (2) 元 件 化: 除了 PHP 外,另外三種技術皆有分層式的元件設計,可以 將商業性的邏輯運算分開獨立包裝成一個元件。就技術方面來 講,JSP 和 ASP.NET 因為採用物件導向的架構,因此對於撰寫元 件的便利性較高。 (3) 行動通訊: 以這方面而言,ASP.NET 略勝一籌,它特別為行動通訊裝置 設計 Mobile ASP.NET,將網頁標籤包裝成一個個元件,依照前端 瀏覽器的不同,自動判斷產生合乎其特性的標籤。例如客戶使用 WAP 通訊裝置連接,便會回應 WML 標籤;或是客戶以 PDA 連 接,便會回應 HMTL 標籤。使得開發者只需撰寫一次,便可適 應所有不同的裝置。 綜合以上三點的分析討論,我們認為 ASP.NET 是比較適合且方 便達成我們的系統所要求的速度、元件化、行動通訊這三個目的,所

(42)

另外,選擇使用 ASP.NET 還有以下幾個優點: (1)功能完善的核心: .NET Framework 提供了完整的物件導向核心,可使用數種 程式語言開發應用程式,並且有功能強大的執行環境,提供了 跨語言的執行平台、自動資源回收和型別安全檢查等功能。 (2)良好的開發框架:

ASP.NET 的 Web Form 設計,透過事件驅動和資料繫結, 讓開發 Web 應用程式的方式和一般開發普通的 Windows 應用程 式的方式一致,使得開發更易上手。並且透過 Code-Behind 的方 式,讓 HTML 標籤與程式碼可以完全地分開撰寫,免除了二種 程式混在一起分不清楚的惡夢。

(3)擁有良好的整合式開發環境:

Visual Studio.net 為微軟新一代用來開發.NET 平台上程式的 開發工具。自動化和視覺化的設計工具,使得程式設計師能專 心地撰寫程式的邏輯部份,而不需要把精力放在與使用者操作 的 UI 介面上。

3.2.2 資料庫管理系統

因為採用微軟所推行的.NET 技術來開發系統,故對於資料庫 管理系統亦採用同公司所出的 SQL Server 2000。其優點有: 1..NET 架構對於 SQL Server 2000 整合良好,並且有最佳化地處 理。 2.SQL Server 2000 在中小型資料庫上的表現卓越。 基於以上幾點,所以我們決定採用 SQL Server 2000 做為我們 的資料庫管理系統。

(43)

3.2.3 單元測試框架(Case Tool)

由於我們使用了單元測試來確保系統的正確性,所以我們需要 一自動化的工具,來自動的幫我們完成測試的工作。 就目前而言,約有三套單元測試框架是可用自動化測試.NET 上的應用程式1,而它們都是依照 JUnit 這套用來測試 Java 程式的 框架,做為開發的範本,所以在使用方面上,差異度並不十分地大。 我們選擇採用目前成熟度較高的 NUnit2這套產品。其擁有圖形介 面的自動測試執行工具,可分別驗證各單元是否正確,並回應完整 或是自定的錯誤報告,並且在語法方面使用屬性標示出測試程式碼 的段落,較為簡單明瞭。

3.3 硬體設備

在開發系統的過程中,我們使用了三台 PC,並以區域網路將它們 互相連接起來,以測試分散式架構的效果和是否正常運作。以下是每 台 PC 的主要硬體設備: 表 3-1 硬體設備 中央處理器 AMD K7-500 記憶體 320MB PC1 乙太網路卡 中央處理器 Intel PIII-650 記憶體 192MB PC2 乙太網路卡 中央處理器 AMD K7-500 記憶體 320MB PC3 乙太網路卡 1 請參閱

(44)

3.4 系統分析設計工具

對於我們的系統,我們採用了物件導向的分析方式,以物件之間 的互動,塑造出整個系統的模型。如同建造高樓大廈所需要的藍圖或 是管線配置圖等,除了可以讓工程師按圖施工外,亦可讓人能概略的 了解整棟大樓建立起來時的模型。而軟體系統的模型也是一樣,以物 件的方式建造我們系統的模型,除了可以方便達成元件化的目標之 外,更可借著概念的模型將複雜的系統清楚地表達出來,使思維更加 透徹。在更進階的做法,還可直接利用模型在和物件導向語言之間做 出正向及逆向工程,一方面減輕編碼負擔,一方面還可確保文件和程 式碼之間的一致性,以下分別介紹塑模時所使用的描述語言─UML, 以及採用的塑模技術─Design Patterns

(1)UML ( Unified Modeling Language )

UML 是一種視覺化語言,用來為系統建立模型。它並非是一種軟 體方法論,並不是規定系統應該如何建製的流程,而只是一種定義系 統模型如何表示的方法。 在 UML 中圖型是根據簡化的觀點所表現出系統的投射,而每一種 圖型皆是由元素和代表元素間關係的線所組合而成的。在系統開發時 不同時期,我們對系統的看法會有不同抽象等級,UML 中定義了九種 的圖型,分別在系統開發時不同的時期描述系統,好讓我們根據不同 的角度來看待系統。這九種圖型分別為: a. 類別圖 (Class diagram) b. 物件圖 (Object diagram)

c. 使用案例圖 (Use case diagram) d. 順序圖 (Sequence diagram) e. 合作圖 (Collaboration diagram) f. 狀態圖 (Statechart diagram) g. 活動圖 (Activity diagram) h. 元件圖 (Component diagram) i. 部署圖 (Deployment diagram)

(45)

以下我們分別簡介類別圖、順序圖和活動圖這三種,在我們的系 統中,我們用來建製系統模型的圖型。其餘圖型的詳細描述請參閱 《UML 使用手冊》1及《UML 精華第二版》2 類別圖: 類別圖是物件導向方法中最核心的部份,也是最被廣泛使用來建 立模型的概念。從概念的角度,顯示使用者如何看得這個世界;從規 格的角度,則顯示軟體元件的介面;而從物件類別的角度,則顯示出 軟體元件的實作。類別圖是一種描繪出類別(class)、類別的內部結構和 操作,以及類別和類別之間的靜態關係的圖型。其中類別是用來定義 物件的詳盡描述,包含了欄位(field)、方法(method)等。 圖 3-5 抽象類別和具象類別

圖 3-5 是 UML 表示抽象類別(abstract class)和具象類別的圖形。類 別是以長方形方塊來表示,其中類別的名字位於方塊上方,中間列出 類別的屬性、個體變數,最下面列出類別的方法。屬性和方法的型別 資訊可有可無,方法傳回值型態列於方法的後面。名字若是斜體的, 便代表此一類別或方法為抽象類別或是抽象方法。

1 Grady Booch, James Rumbaugh, Ivar Jacobson 著,張裕益 譯,UML 使用手冊, 博碩,台北,2001 抽象類別 抽象方法 1() 抽象方法 2():型態 具象類別 欄位 1 欄位 2:型態 方法 1 方法 2:型態

(46)

圖 3-6 類別關係 圖 3-6 顯示類別之間的各種關係。UML 用一個空心三角形的實線 箭號表示繼承關係,由子類別連到父類別。直線代表是連繫(association) 關係,表示類別互有關連,而菱形的箭頭是一種特殊的連繫關係,為 組合關係,表示菱形箭頭處的類別擁有另一端的類別的實例。我們亦 可在關係上標示出參與物件數量上的多重性。例如,圖中子類別對類 別 2 便是一對多的關係。 順序圖: 順序圖用來描繪一群物件間的一些行為,說明它們之間訊息流動 的順序。 圖 3-7 順序圖 在圖 3-7 中,時間是由上而下地遞增,垂直虛線代表了物件的生命 線,垂直長方形代表物件取得控制權,正在處理外界送來的訊息要求。 父類別 子類別 類別 2 類別 1 * 1 物件 1 物件 2 訊息 返回 刪除 自身呼叫

(47)

訊息是以在兩個物件生命線之間的水平實線表示,箭頭指向訊息的目 的物件,箭號上附加訊息的名稱,而訊息的回覆則是以虛線箭頭來表 示它。 物件導向程式中最讓人難以理解的地方在於控制的流程,有時很 難可從程式碼中看出物件間方法執行呼叫的順序。有了順序圖之後, 便能幫助我們清楚了解整個執行的先後順序和過程。 活動圖: 活動圖是 UML 裡面用來塑造系統動態角度的五種圖型之一,活動 圖基本上就是流程圖,可以顯示活動與活動之間的控制流程。活動圖 支援條件式和平行行為,利用活動圖可以塑造出系統計算流程中的循 序步驟和同步步驟,或者是一個複雜的順序性演算法。系統中的活動 最後會產生某些動作,使得系統狀態變更或傳回某些值。 圖 3-8 活動圖 動作狀態或 活動狀態 條件式 分歧 同步流程分叉 同步流程結合 狀態轉換 啟動 結束

(48)

實心圓和加框實心圓分別代表控制流程的啟動與結束,圓角矩形 代表系統中活動或動作的狀態。箭號為活動狀態完成,將控制權轉換 到下一個動作或活動上。空心的菱形表示著控制轉換的分歧,以布林 表示式進行條件式的轉換,水平的直線棒,則是代表著同步流程時狀 態的分叉和結合。 活動圖跟傳統的結構化設計中流程圖的功用十分地相像,都是在 說明活動的控制流程,利用活動圖,更可明白表示出系統中的活動順 序以及工作流程。 (2)Design Patterns 在 UML 中,只定義了如何用圖型表達物件導向設計。相反地 patterns 看的是結果─已經設計好的模型範例。 Patterns 是描述做事情的共通方法。對於某些類型的問題,往往會 被設計成相同的架構,而這些架構或是設計,已被證明是有效且能重 複使用解決問題的,這些設計便被搜集起來並且給它一個名字。這種 有名字且能重複套用的設計,便稱之為 pattern。 每一個 pattern 都是前人經驗累積的精華,它描述了一個重複發生 在我們環境中發生的問題,也描述了問題的核心解法。它提供了設計 者一個共通的名字,以幫助團隊溝通,也提供了如何將問題的解決成 為一個高凝聚力、低耦合力的設計。Design patterns 給予我們專注在問 題本身,以及設計物件導向時更高的觀點,讓我們不會過早被太仔細 的細節所牽絆住。利用 design patterns 設計系統,可將複雜的系統變成 單純地解決一個一個的問題,並且擁有高度彈性的架構。 要創造良好的物件導向設計,有幾個策略可使用,如: l 對介面設計 l 使用組合,勝過繼承 l 找出變化,並將它封裝

(49)

這便是 design patterns 的精神。以下舉例簡介何為 Singleton pattern1: 有時候我們必須確保某些類別只能有一個物件實體,譬如說,製 作一個印表機的佇列。該如何才能確保此一類別只能生成一個實體, 但又能方便地存取這個物件?我們可以使用一個全域變數來存放這個 實體,但是缺點是無法確保別人刻意不使用這個變數,自己生成實體 出來。 比較好的做法是讓類別自己管理這個唯一的實體,籍由一個特殊 的方法去生成這實體,並讓它自已保證絕對無法在生出第二個實體出 來。這就是 Singleton pattern。 Singleton pattern 籍由一個特殊的方法,當它被呼叫時,它會檢查 是否已有實體。如果有,則傳回指向這個物件的參考。如果沒有,方 法便會生成它,回傳新物件的參考。並且,為了確保別人無法擅自生 成實體,將此類別的建構式定義為 protected 或是 private。 圖 3-9 標準簡化的 Singleton pattern 類別圖 Singleton -static instance -Data +static GetInstance() +Operation() +GetData() return instance

(50)

以 C#為例,實際的 Singleton 類別會宣告成類似以下的程式碼:

public class Singleton {

public:

static Singleton GetInstance() {

if ( instance == null )

instance = new Singleton(); return instance;

} private:

Singleton();

Static Singleton instance; } 這種設計比單單只是定義成全域或是靜態變數更為優良有彈性, 並且確保了類別實體的唯一。像這種可輕易設計出良好解決特定問題 的架構,便是 design patterns 的威力。

3.5 線上學生課務資訊系統模型

最概括的說,系統可描述成以下的模型。 圖 3-10 概括的線上學生課務資訊系統模型

(51)

使用者使用線上學生課務資訊系統(以下簡稱課務資訊系統)查 詢資料,課務資訊系統向資料庫抓取資料並對其做必要的運算後,將 結果回應給使用者。 現在考慮課務資訊系統中的架構,因採用 ASP.NET 來實作課務資 訊系統,故需依照 ASP.NET 所訂定的架構來建立系統。在 ASP.NET 的架構裡,網頁上的表單控制項皆被包裝成 Web Control 元件,並使用 了事件驅動和資料繫結的開發方式,使得讓前端的 UI 介面和後端的程

式碼可清楚地分開撰寫,即是 Design Patterns 中的 Mediator1模式和

Observer2模式的混合運用。ASP.NET 又透過 Code-Behind 的技術,將

程式碼和展示用的 HTML 標籤分開在不同的檔案,使程式更可讀性, 其中 HTML 標籤是寫在*.aspx 的檔案中,而程式的部份則寫在*.cs 中。 故對所有的子系統,我們可一般化成下列模型。 圖 3-11 ASP.NET 的系統模型 此即為傳統的三層式架構。 1.Gamma,Johnson,Helm,Vlissides 著,葉秉哲 譯,物件導向設計模式,培生,台北, 2001,p313

(52)

?????? ? ? ? ? ? ???? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 3-12 ASP.NET 中三層式架構 因此,我們只需思考在商業邏輯層中的架構設計即可。首先考慮 系統中可能地所有的變化: 1.使 用 者:依使用者的身份不同,所要求的的結果便可 能不同。例如學生在個人課表中,應顯示出 其上課的課表,反之,老師則應顯示其授課 的課表。 2.課務資訊系統資料庫:雖然我們使用 SQL Server 2000 做為課務資 訊系統資料庫,但因各學校所採用的系統不 同,亦不可能強迫學校購買 SQL Server 2000,故在移植到新學校時會因為採用的資 料庫系統的不同而變更相對應的程式碼。 3.課 程 資 料 庫:如同課務資訊系統資料庫,我們不能預計採 用的資料庫系統為何。並且,此一資料庫為 學校既存的,其資料庫的 Table 設計更因學 校的不同,各有其不同的設計,甚至可能所 需的課程資料,是分散在不同的資料庫中。

(53)

首先我們先考慮使用者的問題,因使用者的不同,所需對應的邏 輯層便不同,例如以社團帳號登錄的使用者,其首頁便不應該出現個 人課表的功能,故系統應能依使用者的類別不同,顯示出符合其身份 的功能。 第一種做法是更改展示層,顯示為不同的使用者建立相對應頁 面,在使用者登入時便導向所應該顯示的頁面,此種做法會使得每一 頁的重覆性過高,並且維護不易,若再新增一種使用者,一樣要花費 同樣的工夫建構。 第二種做法是依使用者不同,更改其對應的邏輯,使用程式去更 改頁面成符合使用者身份的顯示。為了不使得對應的邏輯寫死於程式 中,造成日後維護的困難,故我們使用了 Strategy1模式,將依使用者 不同所對應的邏輯給封裝起來。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???????? ? 圖 3-13 線上學生課務資訊系統系統模型之一

(54)

整個架構便成了 Smalltalk 裡的 MVC 設計。View 負責顯示畫面, 為 HTML 標籤,(即*.aspx 檔),而 System.Web.UI.Page 退化成了 MVC 設計中的 Controller,只負責對使用者介面的輸入做出相對應的處理和 將結果回應於 VIEW。其餘的部分則為 Model,負責應用軟體物件。我 們訂定出了 Page 的責任,接下便可繼續思考 Model 中的系統的架構設 計。 抽象類別 Group 定義出在此系統中所需那些運算,再分別依學生 或老師的不同分別實現其實際的動作。Config 類別用來存取 Config.xml 檔,此檔案記錄著系統管理者所做的設定。 此設計的好處在於讓 Controller 可以對所有的使用者皆一視同仁, 做出相同的動作。而使用者之間的所需差別,則由使用者所屬的群組 自行負責,日後若要新增新種類的使用者,只需增加相對應的群組做 出其所需的邏輯即可。 但目前的設計卻會使得資料庫與系統過分耦合,一但資料庫系統 更換,便得重新撰寫 Student 和 Teacher 中對資料庫動作的所有程式碼。

另外在.NET Framework 中,對資料庫的操作模型為 ADO.NET。 它提供了 Data Provider 物件用來連接資料庫、執行資料操作指令、取 回查詢資料等功能。但對於所連接的資料庫不同,其所對應的 Data Provide 物件也不同。若連接的對象為 SQL Server,便應使用 SQL Server.NET Data Provider,若連接 Oracle 資料庫,便應使用.NET Data Provider for Oracle。也因此,對於使用的資料庫的不同,便要重新撰寫 所有有關資料庫連接部分的程式碼。

所以讓我們先考慮課務資訊系統資料庫,依學校的不同,所使用 的資料庫便可能不同。若將資料庫的操作方式寫死在程式中,將來移 植時必然要花費很多心力,並且每一 Group 子類別皆各自連結資料庫, 出錯的機會亦會大大上升,也造成維護上的困擾。

(55)

所以我們使用 Facade1模式把所有對資料庫的動作單純化為

Select、Insert、Delete 和 Update 四個動作,以及使用 Bridge2模式將操

作資料庫和如何連結資料庫的實作部份分開。 ? ? ??????? ? ? ??????? ? ? ??????? ? ????‾??? ? ? ? ?? ?‾??‾ ? ‾???? ? ? ? ? ? ?? ?‾??‾?? ? ? ? ????? ‾?????‾ ? ? ?? ? ? ?? ????? ‾?????‾???‾?? ‾???? 圖 3-14 線上學生課務資訊系統模型之二 如此,一旦要新增接結到不同的資料庫,便只需使用 Adapter3

式,將其所對應的 Data Provider 轉換成符合 ConnectDB 的介面即可。 但是在 Group 中仍然需要指明所需的 ConnectDB 子類別為何,並 無法在程式執行時動態地去挑選要連結的資料庫引擎。我們希望系統 能和使套裝軟體一般的方便,可依系統管理者的設定,自動創造合適 的 ConnectDB 子類別,如此在移植時便能做到最小的改變。所以加上 了退化的 Abstract Factory4模式,讓系統自行判斷,動態生成合適的 ConnectDB 子類別。 1.Gamma,Johnson,Helm,Vlissides 著,葉秉哲 譯,物件導向設計模式,培生,台北, 2001,p211 1.Gamma,Johnson,Helm,Vlissides 著,葉秉哲 譯,物件導向設計模式,培生,台北, 2001,p173 1.Gamma,Johnson,Helm,Vlissides 著,葉秉哲 譯,物件導向設計模式,培生,台北, 2001,p159

(56)

因此,系統便成了下列的模型 圖 3-15 線上學生系統模型之三 CreatConnectDB 會依 Config.xml 的內容,選擇要生成何種的 ConnectDB 子類別。 接下來,我們再繼續考慮關於課程資料庫的變化。為了操作的方 便性和一致性,我們亦利用 Adapter 模式將對課程資料庫的操作包裝成 ConnectDB 的介面。 圖 3-16 線上學生課務資訊系統模型之四

數據

圖 2-1 線上學生課務資訊系統子系統結構圖
圖 3-39「線上學生課務資訊系統」的資料庫設計階段
圖 3-57 課程資料庫-課程 ER Model 之三
圖 3-58 課程資料庫-課程 ER Model 之四
+7

參考文獻

相關文件

本刊“99年第3季(7~9月)就業服務統計資訊"主要資料來源為「行政院勞

 為了更進一步的提升與改善本校資訊管理系 的服務品質,我們以統計量化的方式,建立

Researches of game algorithms from earlier two-player games and perfect information games extend to multi-player games and imperfect information games3. There are many kinds of

朝陽科技大學 資訊與通訊系. 107

探討:香港學生資訊素養 類別二:一般的資訊素養能力 識別和定義對資訊的需求.. VLE Platform – Discussion 討論列表 Discussion

圖1 1 會計財務與價值鏈 圖1.1 會計財務與價值鏈..

• 參考「香港學生資訊素養架構」 參考「香港學生資訊素養 架構」 參考「香港學生資訊素養架構」 *,推行全校參與方 式 推行全校參與方式 的校本資訊素養 課程 ,例如 ,例. 如

 培養具有檔案學基礎知識與文化知識,掌握現代資訊技術的基 本技能,能在檔案館、國家機關和企事業單位的檔案機構、資