摘 要:當(dāng)前傳統(tǒng)的軟件工程課程教學(xué)和實踐中存在一些缺陷,即缺少一些較為完整的軟件開發(fā)流程的模板和案例;老師授課多采用分散舉例的方法,沒有完整的案例,無法讓學(xué)生形成使用軟件工程的方法、原理去進行軟件開發(fā)的全部流程的整體觀念,同時學(xué)生、教師之間沒有良好的交流反饋環(huán)境,致使教學(xué)效果不佳。應(yīng)用本系統(tǒng)將為師生搭建這樣一個交流平臺,同時設(shè)計出相關(guān)的模板、案例和指導(dǎo)說明并建立軟件工程電子資料庫以供查詢,從而在一定程度上彌補這種缺陷,為提高軟件工程課程的教學(xué)質(zhì)量服務(wù)。
關(guān)鍵詞:軟件工程 培訓(xùn)系統(tǒng) 三層結(jié)構(gòu) ASP.NET
中圖分類號:TP311 文獻標識碼:B 文章編號:1673-8454(2007)12-0037-03
一、問題的提出
軟件工程是計算機學(xué)科中一個年輕并且充滿活力的研究領(lǐng)域,是一門綜合性很強的學(xué)科,是各高校的計算機專業(yè)一門重要的必修核心課程。應(yīng)用軟件工程進行軟件開發(fā)的理論、方法、技術(shù)、標準對學(xué)生軟件開發(fā)能力的提高有很大的幫助,同時也是軟件從業(yè)人員必備的知識,在軟件開發(fā)過程中發(fā)揮著必不可少的作用。美國、加拿大等國家一些大學(xué)于上世紀九十年代起相繼設(shè)立了軟件工程系,把軟件工程從計算機學(xué)科中分離出去作為一門獨立的學(xué)科體系。我國隨后在一些大學(xué)也出現(xiàn)了軟件工程專業(yè),在2001年底教育部批準成立首批35所國家示范軟件學(xué)院之后,軟件工程專業(yè)發(fā)展迅速,目前國內(nèi)已有一百多所高校開設(shè)了軟件工程專業(yè),由此可見軟件工程課程的重要性。
隨著技術(shù)的發(fā)展和實踐方式的革新,軟件工程學(xué)科的知識體系也在不斷地更新,作為一門理論與實踐并重的學(xué)科,國外在理論研究和實踐應(yīng)用方面起步早,成果也多,我國以大學(xué)為主對軟件工程學(xué)科也在不斷地探索??傮w而言,多數(shù)大學(xué)主要任務(wù)是培養(yǎng)軟件工程的應(yīng)用人才,理論知識主要靠引進,實踐技能靠自行摸索。在教學(xué)過程中存在一些缺陷和不足,主要表現(xiàn)在以下幾個方面:
(1)教學(xué)環(huán)境方面存在的不足表現(xiàn)在,軟件工程學(xué)科的教學(xué)基本上采用課堂教學(xué)方式,使用的是流動班級教室的方式,教師與學(xué)生之間缺少應(yīng)有的交流和互動。軟件工程學(xué)科的總體思想就是要求合作者之間需要形成很強的合作意識和創(chuàng)新能力。教學(xué)環(huán)境方面存在的不足就使得這些方面的目標難以實現(xiàn)。
(2)教師教學(xué)任務(wù)過重是造成學(xué)生學(xué)習(xí)軟件工程學(xué)科課程存在困難的一個原因。目前,高校教師的教學(xué)任務(wù)一般都是要帶三四個班級的計算機專業(yè)課程,而應(yīng)用軟件工程方法、原理進行軟件開發(fā)是一個持續(xù)性的工作,因而需要教師在課下花費的時間和精力比課上多許多,教師的精力有限,投入到每一門課程的時間就會相對較少,對于學(xué)生的指導(dǎo)和學(xué)習(xí)就有限。
(3)學(xué)生方面:學(xué)生的基本素質(zhì)和能力之間也是存在差異的,不同的學(xué)生的學(xué)習(xí)風(fēng)格也不相同。學(xué)生在課下進行自主學(xué)習(xí)的過程中,難免會遇到許多個人無法解決的難題或困難,不得不花費許多的時間來解決問題,而及時有效地解決學(xué)習(xí)中出現(xiàn)的問題對于學(xué)生學(xué)習(xí)的成長是很必要的。
(4)不同教師進行授課時都會設(shè)計自己的教案、模板、案例及其它相關(guān)教學(xué)輔助資料,但缺乏一個資源共享和有效的溝通和交流渠道,造成教師之間交流困難與重復(fù)性工作。
二、基于網(wǎng)絡(luò)的軟件工程智能培訓(xùn)系統(tǒng)
因此,針對以上目前軟件工程學(xué)科課程教學(xué)過程中存在的不足,如果能夠有一套教學(xué)輔助軟件(軟件工程智能培訓(xùn)系統(tǒng))來幫助學(xué)生,學(xué)生在該系統(tǒng)上能夠查詢有關(guān)軟件工程學(xué)科的相關(guān)資料,包括開發(fā)軟件的模板、與之配套的案例、相關(guān)的指導(dǎo)說明,以及編程資料等。學(xué)生不僅能夠從別人優(yōu)秀的案例、模板、作品中學(xué)習(xí)許多知識、思想;在實踐中遇到的問題和困難,可以在系統(tǒng)中以留言提問的方式與教授軟件工程課程的教師以及學(xué)院其他計算機老師進行交流。還可以在系統(tǒng)中留言,與同學(xué)們之間進行討論和交流。開發(fā)這樣一個有助于學(xué)生知識和能力素質(zhì)都能夠得到提高的教學(xué)輔助軟件系統(tǒng)是相當(dāng)必要的。
三、系統(tǒng)設(shè)計思路
1.組成系統(tǒng)的模塊
為實現(xiàn)“基于網(wǎng)絡(luò)的軟件工程智能培訓(xùn)系統(tǒng)”的開發(fā),使與計算機相關(guān)專業(yè)有關(guān)的師生充分利用本系統(tǒng)進行教學(xué)和學(xué)習(xí),本系統(tǒng)主要研究內(nèi)容分為以下三個部分:
(1)軟件開發(fā)流程模塊
系統(tǒng)將為用戶展現(xiàn)應(yīng)用軟件工程的原理、方法、實施軟件開發(fā)的各個步驟,并為各個步驟提供相應(yīng)的模板、案例和詳細的說明以指導(dǎo)用戶,讓用戶依據(jù)科學(xué)的指導(dǎo)和方法進行軟件工程的實踐和學(xué)習(xí),為網(wǎng)上學(xué)習(xí)者營造一個網(wǎng)上課堂,創(chuàng)設(shè)一定的情境,讓學(xué)生能隨時上網(wǎng)學(xué)習(xí),為學(xué)生創(chuàng)造便利的條件,解決學(xué)生遇到的理論問題。
(2)電子資料庫模塊
本系統(tǒng)將提供一套較完整的軟件工程學(xué)科的電子資料庫,資料將包含運用軟件工程的方法進行軟件開發(fā)的相關(guān)教程、案例、教案以及相關(guān)的編程資料等內(nèi)容。其資料內(nèi)容將結(jié)合本校計算機類專業(yè)學(xué)生的課程由老師進行選取,以配合老師講解的課程。并根據(jù)實際教學(xué)情況和學(xué)生使用本系統(tǒng)的反饋意見(包括對系統(tǒng)、資料內(nèi)容等多方面)對系統(tǒng)本身、系統(tǒng)提供的資料等進行不斷的改進,以期更好地服務(wù)于師生。
(3)基于網(wǎng)絡(luò)的文檔交流模塊
系統(tǒng)將為學(xué)習(xí)者提供學(xué)習(xí)交流系統(tǒng),可供師生進行多對多的交流和答疑,這不僅可以讓學(xué)習(xí)者互幫互學(xué),共享學(xué)習(xí)經(jīng)驗、資源和成果,也可以彌補虛擬實驗相對傳統(tǒng)實驗效果的不足,便于老師答疑解惑。同時將定期對問答進行整理,形成FAQ(常見問題解答)欄目,以利于學(xué)生解決經(jīng)常遇到的問題。
2.實現(xiàn)技術(shù)
系統(tǒng)將采用B/S結(jié)構(gòu),使用ASP.NET 2.0+SQL Server 2000+ADO.NET作為開發(fā)工具和數(shù)據(jù)庫后臺軟件,ASP.NET作為微軟.NET戰(zhàn)略的一部分,自2000年發(fā)布以來,逐漸成為市場上的主流技術(shù)之一,ASP.NET 2.0的發(fā)布更是強化了這一地位。具體來講,采用ASP.NET 2.0來開發(fā)具有以下幾種優(yōu)勢:
(1)大幅提高開發(fā)效率,降低開發(fā)成本:自ASP.NET 1.X版本時代,實現(xiàn)了由控件生成代碼,并可設(shè)置控件屬性及由控件連接數(shù)據(jù)庫等簡化編程的技術(shù)手段,到ASP.NET 2.0時,又新增和改進六十余個控件,利用這些控件使得編寫代碼量進一步降低,進而開發(fā)人員可以將更多的注意力轉(zhuǎn)移到如何實現(xiàn)業(yè)務(wù)邏輯上來,徹底改變過去那種需要編寫很多重復(fù)性代碼的狀況。
(2)簡化管理和維護工作:在ASP.NET 2.0中,實現(xiàn)了圖形化管理工具,提供了兩個內(nèi)置的可視化工具:一個是ASP.NET MMC管理單元,另一個是Web網(wǎng)站管理工具,可以對指定的應(yīng)用程序的配置、自定義錯誤、授權(quán)、身份驗證、應(yīng)用程序狀態(tài)等進行全面設(shè)置,實現(xiàn)簡化管理和維護的功能。
(3)提高性能和可伸縮性:在ASP.NET 1.X中,應(yīng)用程序性能和可伸縮性一直是兩個飽受爭議的話題。ASP.NET 2.0在以上兩個方面進行了重大改進,主要體現(xiàn)在優(yōu)化內(nèi)部處理機制、擴展高速緩存功能以及增加對64位服務(wù)器支持等方面。
(4)較完善的Web 安全性:Web 安全性是各種因素的總和,是一種范圍遠超單個應(yīng)用程序的策略的結(jié)果,這種策略涉及數(shù)據(jù)庫管理、網(wǎng)路配置,以及社會工程和網(wǎng)絡(luò)釣魚(phishing)。而ASP.NET 2.0可以很好地滿足系統(tǒng)的安全要求。
SQL Server作為一種結(jié)構(gòu)化查詢語句的數(shù)據(jù)庫系統(tǒng),是一個綜合的、通用的、功能極強的關(guān)系數(shù)據(jù)庫標準語言,使用方便且功能強大,結(jié)合ADO.NET數(shù)據(jù)連接技術(shù)能夠和ASP.NET無縫集成,作為整個系統(tǒng)的開發(fā)技術(shù),能夠很好地發(fā)揮出各開發(fā)工具的優(yōu)勢。
3.系統(tǒng)結(jié)構(gòu)
本系統(tǒng)將采用典型的三層體系結(jié)構(gòu)開發(fā)模式。其數(shù)據(jù)層、業(yè)務(wù)層和表示層結(jié)構(gòu)如圖1所示。
數(shù)據(jù)層是所有開發(fā)工作的起點, 由一系列的表和存儲過程組成,以處理所有的數(shù)據(jù)訪問;業(yè)務(wù)層是應(yīng)用程序?qū)崿F(xiàn)業(yè)務(wù)規(guī)則和對數(shù)據(jù)層調(diào)用的場所。這一層為表示層提供功能調(diào)用, 同時又調(diào)用數(shù)據(jù)層所提供的存儲過程來訪問數(shù)據(jù)庫;表示層用來實現(xiàn)在客戶瀏覽器中顯示的用戶界面,是用戶能看到系統(tǒng)的唯一部分。一方面, 該層以適當(dāng)?shù)男问斤@示由業(yè)務(wù)層傳送的數(shù)據(jù); 另一方面該層負責(zé)獲得用戶錄入的數(shù)據(jù), 同時完成對錄入數(shù)據(jù)的驗證,并將錄入的數(shù)據(jù)傳送給業(yè)務(wù)層。本系統(tǒng)設(shè)計時,表示層、業(yè)務(wù)層、數(shù)據(jù)層之間的數(shù)據(jù)交換非常簡潔, 用戶操作時,各層之間僅進行一次數(shù)據(jù)交換。
最終本系統(tǒng)的功能模塊劃分如圖2所示。
各模塊功能如下:
(1)用戶管理模塊:用戶管理分為用戶注冊、用戶登錄和用戶賬號管理三個子功能。用戶登錄以后可以修改個人資料信息。用戶賬號管理主要是系統(tǒng)管理員對普通用戶的管理,可以根據(jù)用戶的情況修改或刪除賬戶,若用戶的密碼丟失可以找回密碼。
(2)數(shù)據(jù)更新模塊:這是系統(tǒng)管理員的權(quán)限。系統(tǒng)管理員根據(jù)需要進行數(shù)據(jù)的添加、刪除和修改。
(3)數(shù)據(jù)查詢:是系統(tǒng)的主要功能之一,為方便用戶的快速查詢而設(shè)計。查詢提供兩種方式,一種是關(guān)鍵字查詢,用戶可以輸入所需資料的全部名稱或部分名稱進行查詢,系統(tǒng)將查詢的結(jié)果以列表的形式羅列出來以供用戶選擇;另一種是瀏覽查詢,系統(tǒng)將資料分類,用戶可以根據(jù)所需資料的類別進入系統(tǒng),查看所需資料。當(dāng)用戶找到所需要的資料后,可以進行下載。
(4)資料利用率統(tǒng)計:根據(jù)用戶對資料的下載和反饋情況,來統(tǒng)計該資料的利用率,以期達到更好地服務(wù)于用戶的目的。
(5)信息反饋:用戶在使用系統(tǒng)的過程中,可以對系統(tǒng)進行評價和對系統(tǒng)所提供的資料內(nèi)容進行評價,以便于更好地改進系統(tǒng)及更新系統(tǒng)所提供的資料;同時,用戶還可以對學(xué)習(xí)過程中所遇到的問題進行提問,并由專家提供支持,進行解答。同時針對學(xué)習(xí)過程中出現(xiàn)的問題進行提問,將問題進行歸納整理后,最后將問題和答案按一定體系整理形成一個FAQ庫,發(fā)布到系統(tǒng)當(dāng)中,以期更好地幫助用戶解決難題。
四、系統(tǒng)意義
具體來說,本系統(tǒng)有以下優(yōu)點:
1.有利于提高學(xué)生的綜合軟件開發(fā)能力。建立一套完整的培訓(xùn)系統(tǒng)之后,通過有系統(tǒng)、有步驟地對學(xué)生進行訓(xùn)練能夠讓學(xué)生在短時間內(nèi)掌握規(guī)范的軟件開發(fā)方法和流程,對于提升學(xué)生的綜合能力是大有益處的。
2.促進教師和學(xué)生的交流。能夠部分彌補現(xiàn)今大學(xué)教師和學(xué)生交流過少的缺陷,學(xué)生可以通過這種方式將自己學(xué)習(xí)乃至生活中的問題提出來,由老師進行解答。既可以促進教師改進教學(xué),找到學(xué)生存在的問題,又可以幫助學(xué)生解決問題。
3.形成較為完備的電子資料庫,可以隨時方便教師和學(xué)生的下載。雖然網(wǎng)絡(luò)資料非常多,但往往需要加以甄別找到有價值的資料。而本系統(tǒng)收集的資料庫由老師提供、篩選,具有更好的針對性和指向性,可以和老師所講的課程配合起來,達到事半功倍的效果。
4.通過研究和開發(fā)得到應(yīng)用于學(xué)科教學(xué)的一整套開發(fā)技術(shù),可將本技術(shù)在變動不大的基礎(chǔ)上推廣應(yīng)用到其他學(xué)科,為學(xué)校的信息化教學(xué)服務(wù),進一步體現(xiàn)本系統(tǒng)的實踐價值和實用性。
五、結(jié)束語
本系統(tǒng)是對軟件工程課程教學(xué)的一個有益探索,系統(tǒng)開發(fā)完成后,將提供軟件開發(fā)流程的模板、案例等自行探索的資料;與之配套的輔助教學(xué)資料;網(wǎng)絡(luò)交流平臺等具有實際教學(xué)意義的產(chǎn)品。在實際的教學(xué)過程中,已經(jīng)將相應(yīng)的案例模板和指導(dǎo)說明等資料應(yīng)用于教學(xué)中,效果良好,在經(jīng)過實踐檢驗和不斷改進后相信系統(tǒng)將會產(chǎn)生更好的效果。
參考文獻:
[1]張海藩.軟件工程導(dǎo)論(第四版)[M].北京:清華大學(xué)出版社,2003.12
[2]袁永剛,嚴治國,何宇光.ASP.NET2.0開發(fā)指南[M].北京:人民郵電出版社,2006
[3]Web項目實踐講座[DB/OL].http://www.msuniversity.edu.cn/m_RepositoryIntro/Detail.aspx?id=357
[4]Bill Evjen,Scott Hanselman,F(xiàn)arhan Muhammad,Srinivasa Sivakumar,Devin Rader.Professional ASP.NET 2.0[M].Wiley Publishing,Inc.2006
[5]李偉,羅軍舟,曹玖新.一種基于J2EE架構(gòu)的網(wǎng)絡(luò)教育系統(tǒng)集成框架及應(yīng)用[J].計算機研究與發(fā)展,2006(8)
[6]劉繁華.基于現(xiàn)代信息技術(shù)的協(xié)同教育平臺(網(wǎng)站)的設(shè)計與應(yīng)用研究[J].電化教育研究,2007(1)