亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 組件對(duì)象開發(fā)web應(yīng)用的實(shí)例分析 (2000年11月21日).txt

?? 自己對(duì)DELPHI學(xué)習(xí)的一點(diǎn)體會(huì)
?? TXT
字號(hào):
組件對(duì)象開發(fā)Web應(yīng)用的實(shí)例分析 (2000年11月21日) 

本站更新  分類:   作者:夏長(zhǎng)虹 童亮 陳文博   推薦:   閱讀次數(shù):537  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
一. 應(yīng)用實(shí)例的分析與開發(fā) 

---- 我們以學(xué)籍管理系統(tǒng)為背景,基于Windows DNA的思想,開發(fā)了一套應(yīng)用系統(tǒng)。在該系統(tǒng)中,有關(guān)教務(wù)
學(xué)籍的事務(wù)邏輯都是由定制COM組件來(lái)處理的,動(dòng)態(tài)Web頁(yè)面通過(guò)ASP腳本調(diào)用這些組件。系統(tǒng)在開發(fā)速度和軟
件質(zhì)量等方面都優(yōu)于不用COM組件而僅用ASP腳本的方案。為說(shuō)明問(wèn)題,我們通過(guò)一個(gè)定制組件和ASP腳本的主
要代碼簡(jiǎn)單介紹局部功能的實(shí)現(xiàn)過(guò)程。 

---- 在displayscore.asp頁(yè)面中接受、辨別用戶的查詢請(qǐng)求,做出不同的查詢處理。當(dāng)客戶的身份為教師
或教務(wù)時(shí),可以查詢所有學(xué)生的成績(jī);當(dāng)客戶的身份為學(xué)生時(shí),只能查詢?cè)撋救说某煽?jī)。 


---- 定制COM組件Score.dll進(jìn)行查詢處理。首先設(shè)計(jì)該組件的接口,為組件設(shè)置四個(gè)屬性: Subj(課
程)、Term(課程所屬學(xué)期)、Class(查詢的班級(jí))和Stu_No(查詢學(xué)生的學(xué)號(hào));定義兩個(gè)方法:
RequeryScores和RequeryAllScores,分別對(duì)教師、教務(wù)部門和學(xué)生的請(qǐng)求做出相應(yīng)的處理,并將查詢結(jié)果
集返回給用戶。 

---- 以下是實(shí)現(xiàn)該組件Score.dll的部分關(guān)鍵代碼。從中我們可以看到組件的接口是如何實(shí)現(xiàn)的: 

Option Explicit
Private m_StuNo As Variant
Private m_Subj As String
Private m_Term As String
Private m_Class As String
' 設(shè)置屬性為可寫入的
Public Property Let StuNo(ByVal vNewValue As Variant)
m_StuNo = vNewValue
End Property
Public Property Let Subj(ByVal vNewValue As Variant)
m_Subj = vNewValue
End Property
...... 
' 學(xué)生查詢成績(jī)請(qǐng)求處理
Public Function RequeryScores() As Object
Dim objContext As MTxAS.ObjectContext
Set objContext = GetObjectContext()
' 建立事務(wù)性組件
Dim ObjConn As ADODB.Connection
' 利用ADO訪問(wèn)數(shù)據(jù)庫(kù)
Dim ObjRecordset As ADODB.Recordset
Set ObjConn = New ADODB.Connection
ObjConn.Open "xia", "sa", ""
Set ObjRecordset = New ADODB.Recordset
Dim query As String
' 根據(jù)查詢要求(查詢所有課程、查詢特定學(xué)期的所有課程、
查詢指定課程、查詢特定學(xué)期的某一課程)進(jìn)行不同的查詢操作
If (m_Subj = "all" And m_Term <> "all") Then
query="select Client_Name,Client.Client_No,Courses.subject,
stu_score.score,stu_score.term,sub_type"
query = query & " from client,stu_score,courses"
query=query&"where client.client_no=stu_score.client_no
and stu_score.subject=courses.subject
and courses.term=stu_score.term
and courses.term='" & m_Term & "'
and Client.Client_no='" & m_StuNo & "'"
End If
......
ObjRecordset.Open query, ObjConn
' 進(jìn)行數(shù)據(jù)庫(kù)查詢
ObjContext.SetComplte
' 若事務(wù)成功完成,則提交該事務(wù)
RequeryScoresExit:
Set RequeryScores = ObjRecordset
' 返回查詢結(jié)果集
Exit Function
RequeryScoresErr:
Set RequeryScores=Nothing
' 事務(wù)失敗處理
End Function
' 教師、教務(wù)查詢成績(jī)請(qǐng)求處理
Public Function RequeryAllScores() As Object
......
End Function
---- 在ASP頁(yè)面displayscore.asp中引用組件,ASP代碼如下(其中加粗的部分便是對(duì)該組件的調(diào)用): 


< %@ LANGUAGE="VBSCRIPT" % > 
< HTML > 
< HEAD > 
< META NAME="GENERATOR" Content="Microsoft 
Visual InterDev 1.0" > 
< META HTTP-EQUIV="Content-Type" 
content="text/html; charset=gb_2312-80" > 
< TITLE >Show To Teacher< /TITLE > 
< /HEAD > 
< BODY background="images/bk.GIF" > 
< % 
dim objResult 
set objResult=Server.CreateObject("Display.Score") 
dim Term,Subject Term=Cstr(Request.Form("Term")) Subject=Cstr(Request.Form("Subject")) 
objResult.term=Request.Form("term") objResult.Subj=RequestForm("Subject") 
objresult.class=Request.Form("Class") 
dim Scores 
set Scores=objResult.RequeryAllScores 
% > 
' 以下代碼為顯示處理的結(jié)果 
< div align="center" >< center > 
...... 
< table border="0" cellpadding="0" cellspacing="1" width="100" >< tr 
> 
< %For i = 0 To Scores.Fields.Count - 1% > 
< td bgcolor="#004080" > 
< strong >< font color="#FFFFFF" > < small >   
< %=scores(i).Name% >< /font > < /strong > < /td > 
< %NEXT 
Do While (Not Scores.EOF)% > 
< /tr >< tr > 
< % For i = 0 To Scores.Fields.Count - 1% > 
< td bgcolor="#ACE8F9" >< p align="center" > 
  < %= Scores(i).Value% >< /td > 
< %Next Scores.MoveNext% >< /tr > 
< %Loop% > 
< %Scores.close 
' 關(guān)閉數(shù)據(jù)庫(kù)連接 
set Scores=Nothing 
set objResult=Nothing % > 
' 釋放對(duì)象 
< /table >< /center >< /div > 
< /BODY > 
< /HTML > 
---- 可以想象,如果僅使用ASP腳本進(jìn)行業(yè)務(wù)處理就會(huì)使ASP頁(yè)面中代碼十分臃腫、晦澀。而使用組件的方案
也較單純的ASP腳本執(zhí)行速度速度快。并且可以將整個(gè)查詢處理作為一個(gè)事務(wù),保證數(shù)據(jù)庫(kù)信息的安全、完
整。將該組件在MTS中注冊(cè),又可避免多用戶訪問(wèn)該主頁(yè)時(shí)可能造成的網(wǎng)絡(luò)擁塞。 實(shí)際應(yīng)用中,學(xué)生和教師
的使用權(quán)限是不同的。在學(xué)生查詢成績(jī)的頁(yè)面中,可重用該組件,只是調(diào)用其不同的接口而已。僅使用ASP腳
本進(jìn)行業(yè)務(wù)處理,則需重新編寫與displayscore.asp類似的、同樣煩瑣的代碼。 在開發(fā)過(guò)程中,不同的開
發(fā)人員可各盡所能,同時(shí)進(jìn)行組件和ASP頁(yè)面的設(shè)計(jì),縮短了軟件開發(fā)周期。 

---- 以下兩圖顯示的是教師(教務(wù))查詢成績(jī)和顯示查詢結(jié)果的頁(yè)面: 

二. 開發(fā)過(guò)程中輔助工具的使用 

---- 傳統(tǒng)的軟件工程進(jìn)行的需求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)等都是人們“純手工”完成的,缺乏嚴(yán)謹(jǐn)性和規(guī)范性。而
在以組件為中心的系統(tǒng)分析和軟件開發(fā)過(guò)程中,應(yīng)力爭(zhēng)使用有效的計(jì)算機(jī)輔助工具,以適應(yīng)快速建模和組件
方法新形勢(shì)的需要,提高分析的質(zhì)量及精度。 

---- 有很多輔助工具可以利用。由于以組件為中心的系統(tǒng)分析過(guò)程仍保留著傳統(tǒng)軟件工程方法的脈絡(luò)痕跡,
北大青鳥的CASE工具對(duì)傳統(tǒng)的軟件工程方法比較有效,我們采用了這一工具。在數(shù)據(jù)庫(kù)建模方面,我們選用
了SYBASE 公司的S-Designer,可將數(shù)據(jù)庫(kù)概念模型自動(dòng)轉(zhuǎn)化為物理模型。 


---- 1. 利用青鳥CASE工具編寫需求分析文檔 

---- 長(zhǎng)久以來(lái),人們已習(xí)慣于“純手工”地進(jìn)行需求分析。開發(fā)人員對(duì)現(xiàn)有系統(tǒng)和用戶要求進(jìn)行調(diào)查后,需
要設(shè)計(jì)系統(tǒng)的數(shù)據(jù)流圖(DFD圖),編寫小說(shuō)明,設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)圖(SC圖)。但這種分析方法是不嚴(yán)謹(jǐn)?shù)模?由于種種原因,可能會(huì)發(fā)生加工、數(shù)據(jù)流、文件的語(yǔ)法定義錯(cuò)誤;數(shù)據(jù)流圖上下各層不一致;數(shù)據(jù)流圖分解
后的數(shù)據(jù)不平衡,或文件等重名及文檔不完備等各種問(wèn)題,影響了我們對(duì)用戶需求的分析和理解,防礙了今
后的工作。尤其是對(duì)組件的分析失當(dāng),后果不堪設(shè)想。 


---- 青鳥CASE工具提供的即是一套支持軟件工程中采用傳統(tǒng)的結(jié)構(gòu)化方法進(jìn)行需求分析、軟件設(shè)計(jì)的工具。
由工具生成的每個(gè)文件即一個(gè)項(xiàng)目,每個(gè)項(xiàng)目均包括數(shù)據(jù)流圖和模塊結(jié)構(gòu)圖兩部分: 

數(shù)據(jù)流圖部分輔助系統(tǒng)分析員完成對(duì)軟件系統(tǒng)的需求分析、建立目標(biāo)系統(tǒng)的需求模型、生成一份正確、完整
的關(guān)于目標(biāo)系統(tǒng)的說(shuō)明文檔;同時(shí),提供對(duì)需求文檔的查詢、列表、分片、影響范圍等分析功能,輔助軟件
設(shè)計(jì)人員對(duì)需求分析的結(jié)果文檔進(jìn)行深入、細(xì)致的分析和理解,以利于軟件設(shè)計(jì)工作。 


模塊結(jié)構(gòu)圖部分輔助程序設(shè)計(jì)人員在需求分析階段完成后對(duì)軟件系統(tǒng)進(jìn)行設(shè)計(jì),支持模塊的逐層細(xì)化,建立
系統(tǒng)的軟件體系結(jié)構(gòu),最后得到一份正確、完整的軟件設(shè)計(jì)文檔。同時(shí),提供對(duì)設(shè)計(jì)文檔進(jìn)行查詢、列表、
分片、影響范圍等分析功能,完成對(duì)設(shè)計(jì)的結(jié)果文檔進(jìn)行深入、細(xì)致的分析理解,以利于軟件開發(fā)及維護(hù)工
作。在SC圖中組件的規(guī)劃方案已見端倪,繼續(xù)細(xì)化將得出每個(gè)組件的概要設(shè)計(jì)方案。 

---- 在教務(wù)系統(tǒng)的實(shí)例中,利用青鳥CASE工具生成的DFD圖和SC圖如下圖所示: 
---- 系統(tǒng)1層DFD圖 系統(tǒng)0層SC圖 

---- 2. 利用S-Designer進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì) 

---- 當(dāng)完成系統(tǒng)的詳細(xì)設(shè)計(jì)后,接下來(lái)便是數(shù)據(jù)庫(kù)設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)在整個(gè)軟件工程中占有舉足輕重的地
位。數(shù)據(jù)庫(kù)設(shè)計(jì)不合理,數(shù)據(jù)得不到合理、有效的存儲(chǔ),數(shù)據(jù)存在潛在的不一致性、不完整性或有大量冗
余,都會(huì)降低系統(tǒng)性能,甚至使系統(tǒng)崩潰。 

---- 手工的數(shù)據(jù)庫(kù)設(shè)計(jì)完全依賴于設(shè)計(jì)者的設(shè)計(jì)水平。設(shè)計(jì)者首先必須根據(jù)實(shí)際需要建立若干個(gè)邏輯上存在
的數(shù)據(jù)庫(kù)表,并使其滿足第三范式;而后根據(jù)它們之間的聯(lián)系建立特定數(shù)據(jù)庫(kù)表將其聯(lián)系起來(lái)。這是一件相
當(dāng)煩瑣的事。數(shù)據(jù)庫(kù)設(shè)計(jì)者既要進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì),又要將邏輯模型轉(zhuǎn)成物理模型,而且設(shè)計(jì)出的數(shù)據(jù)
庫(kù)不一定能滿足第三范式。合理的庫(kù)表結(jié)構(gòu)決定了訪庫(kù)組件接口的設(shè)計(jì)質(zhì)量,所以原先數(shù)據(jù)庫(kù)設(shè)計(jì)方式不適
用于以組件對(duì)象為中心的軟工設(shè)計(jì)。 

---- 在教務(wù)系統(tǒng)的實(shí)例中,S-Designer使數(shù)據(jù)庫(kù)設(shè)計(jì)變得輕松、簡(jiǎn)單起來(lái)。設(shè)計(jì)者只須根據(jù)現(xiàn)實(shí)需要,設(shè)
計(jì)出數(shù)據(jù)庫(kù)的E-R圖,S-Designer會(huì)將邏輯模型轉(zhuǎn)化為物理模型,為數(shù)據(jù)庫(kù)表間的聯(lián)系建立新表,指明表的
主碼、外碼,并自動(dòng)對(duì)數(shù)據(jù)庫(kù)表進(jìn)行一致性、冗余性、完整性檢查,使數(shù)據(jù)庫(kù)表滿足第三范式。 


---- 例:可首先設(shè)計(jì)出數(shù)據(jù)庫(kù)表課程(Courses)和學(xué)生(Client)的邏輯模型: 

---- 接下來(lái),為表Courses和Client間建立聯(lián)系。由S-Designer自動(dòng)生成的物理模型,如下圖所示,它們
為訪庫(kù)組件的接口設(shè)計(jì)提供了準(zhǔn)確的依據(jù)。 

---- 可以相信,隨著軟件工程學(xué)的進(jìn)一步成熟,將出現(xiàn)更多的計(jì)算機(jī)輔助工具,幫助軟件開發(fā)人員構(gòu)建出更
完善的應(yīng)用系統(tǒng)。許多輔助軟件工具可以完成相似的工作,到底選用何種輔助工具取決于這些工具的性能以
及使用者的習(xí)慣。 

---- 以組件對(duì)象為中心的動(dòng)態(tài)Web方法和DNA思想并不高深莫測(cè),開發(fā)技術(shù)也愈加規(guī)范化。應(yīng)當(dāng)說(shuō),這套方法
更適合客觀信息結(jié)構(gòu)的現(xiàn)實(shí),也更接近于人們的思維方式,其技術(shù)有如行云流水般自然,很適合在中小型企
業(yè)環(huán)境中推廣和普及。 

 
 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费在线视频观看| 亚洲视频精选在线| 91在线观看地址| 男男视频亚洲欧美| 亚洲欧美视频在线观看| 欧美成人在线直播| 欧美日韩国产在线播放网站| 国产高清不卡二三区| 日韩精品一二三| 亚洲老妇xxxxxx| 亚洲免费看黄网站| 国产三级欧美三级日产三级99 | 亚洲日本乱码在线观看| 日韩欧美中文字幕制服| 欧美私模裸体表演在线观看| 国产精品香蕉一区二区三区| 免费在线看成人av| 午夜av电影一区| 一区二区三区美女| 亚洲男同性恋视频| 国产精品久久久久久久久搜平片 | 中文字幕巨乱亚洲| 成人小视频在线观看| 蜜桃在线一区二区三区| 亚洲已满18点击进入久久| 国产精品美女久久久久久| 欧美成人乱码一区二区三区| 欧美精品色综合| 欧美三级电影网| 在线国产电影不卡| 99久久亚洲一区二区三区青草 | 久久精品国产亚洲aⅴ| 久久国产麻豆精品| 国产喷白浆一区二区三区| 欧美丝袜丝交足nylons| 蜜桃久久久久久| 国产精品免费网站在线观看| 欧美三级日韩三级| 美女一区二区三区在线观看| 国产片一区二区| 欧美日韩你懂得| 成人动漫视频在线| 国产一区 二区 三区一级| 色婷婷久久综合| 亚洲国产一区二区三区青草影视| 《视频一区视频二区| 亚洲免费av在线| 一区二区三区视频在线看| 亚洲福利视频导航| 蜜臀av一区二区| 丁香激情综合国产| 国产成人夜色高潮福利影视| 国产成人综合视频| 91丨九色丨蝌蚪富婆spa| 日本韩国欧美一区| 欧美丰满美乳xxx高潮www| 欧美一区二区黄| 久久久久亚洲综合| 中文字幕视频一区二区三区久| 亚洲精品视频一区| 午夜久久久影院| 国产一区欧美日韩| eeuss国产一区二区三区| 在线观看一区二区精品视频| 欧美一区二区日韩| 国产亚洲视频系列| 亚洲精品欧美激情| 毛片av中文字幕一区二区| 国产精品18久久久久久久网站| 99久久久无码国产精品| 欧美人与z0zoxxxx视频| 久久一区二区视频| 亚洲欧美韩国综合色| 全部av―极品视觉盛宴亚洲| 国产精品伊人色| 欧美在线一二三| 久久亚洲精精品中文字幕早川悠里 | 亚洲第一狼人社区| 黄色日韩网站视频| 97久久人人超碰| 欧美一二三四区在线| 国产精品网站在线| 日韩激情在线观看| 99精品视频一区二区| 91精品国产高清一区二区三区 | 欧美高清一级片在线| 这里只有精品免费| 天使萌一区二区三区免费观看| 免费国产亚洲视频| 色噜噜偷拍精品综合在线| 日韩欧美在线1卡| 成人免费小视频| 日本欧美肥老太交大片| 国产成人精品综合在线观看| 91久久精品一区二区二区| 亚洲色图一区二区| 国内精品久久久久影院一蜜桃| 精品一区二区三区在线播放视频| 懂色av一区二区三区蜜臀| 欧美私模裸体表演在线观看| 欧美国产精品中文字幕| 欧美aaaaa成人免费观看视频| 91热门视频在线观看| 日韩一级大片在线| 亚洲综合999| 国产原创一区二区| 欧美色网站导航| 国产精品久久久久精k8| 另类小说视频一区二区| 欧美视频日韩视频| 最新久久zyz资源站| 国产美女在线精品| 日韩亚洲欧美高清| 亚洲成人激情综合网| 91影院在线观看| 中文字幕中文在线不卡住| 国产精品一区二区三区网站| 日韩欧美国产精品| 免费国产亚洲视频| 欧美精品日韩一区| 亚洲妇女屁股眼交7| 在线观看www91| 国产精品另类一区| 国产精品69久久久久水密桃| 精品国产乱码久久久久久夜甘婷婷 | 亚洲成人av在线电影| 色综合久久六月婷婷中文字幕| 国产精品欧美一区喷水| 国产成人在线观看| 久久精品视频一区二区| 国产一区二区三区四| 精品乱码亚洲一区二区不卡| 老汉av免费一区二区三区| 日韩欧美国产精品| 精品制服美女丁香| 欧美大片免费久久精品三p| 秋霞午夜鲁丝一区二区老狼| 欧美一级高清片| 日本亚洲最大的色成网站www| 成人丝袜18视频在线观看| 中文字幕乱码一区二区免费| 久久亚区不卡日本| 99久久夜色精品国产网站| 亚洲一区二区3| 久久久久9999亚洲精品| 欧美视频一区在线| 国产综合久久久久久鬼色| 亚洲精品水蜜桃| 久久五月婷婷丁香社区| 欧美久久免费观看| 成人午夜在线免费| 国产一区欧美二区| 狠狠色丁香九九婷婷综合五月| 欧美日产国产精品| 日本欧美一区二区在线观看| 欧美一区二区美女| 国产一区二区在线影院| 国产精品网友自拍| 色狠狠一区二区三区香蕉| 日日噜噜夜夜狠狠视频欧美人| 538prom精品视频线放| 久久99精品久久久久久动态图| 久久久午夜精品| 99热在这里有精品免费| 丝袜国产日韩另类美女| 精品福利av导航| 成人av片在线观看| 视频在线观看一区二区三区| 欧美大黄免费观看| 91丨国产丨九色丨pron| 无码av中文一区二区三区桃花岛| 日韩精品一区在线| 97se亚洲国产综合在线| 免费观看久久久4p| 最新欧美精品一区二区三区| 91精品国产综合久久久久久漫画| 国产一区在线不卡| 亚洲精品高清视频在线观看| 日韩欧美中文字幕制服| 99国产欧美久久久精品| 免费视频一区二区| 中文字幕一区二区不卡| 日韩欧美在线123| 91丨porny丨蝌蚪视频| 麻豆国产精品一区二区三区| 亚洲天堂福利av| 日韩精品在线网站| 一本色道久久综合亚洲91| 国产一区欧美一区| 亚洲电影一区二区| 国产精品妹子av| 欧美一区二区黄色| 色综合激情五月| 国产乱码精品一区二区三区忘忧草 | 欧美成人在线直播| 91黄色免费看| 岛国一区二区在线观看| 久久精品久久久精品美女| 一区二区三区色| 中文字幕中文字幕在线一区|