軟件設計與開發范文

時間:2023-05-04 13:09:13

導語:如何才能寫好一篇軟件設計與開發,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

軟件設計與開發

篇1

關鍵詞:管理信息、綜合測評、VB

中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)45-0262-02

一、引言

隨著素質教育的不斷深入,學生綜合素質評價也成為了人才評價的一個標準,很多學校每年都要對學生進行綜合測評,綜合測評的計算量很大,而且由每個學生自己填表,再交給班委進行審核計算,打印,簽字,存檔,整個過程很繁瑣,往往花了很大的力氣還會出現一些問題,如統計失誤、人為計算失誤等。另外作為獎助學金評定的依據――學生綜合測評分是否能夠及時、準確、公平的算出來關系十分重大,所以急需一個計算簡便,容易操作的軟件來代替人為的手工計算,提高計算效率、準確度,使整個過程公開公平。該軟件操作簡單、不用維護,大大提高了學校的工作效率,減輕了班委、老師們的工作負擔。

二、需求分析

綜合測評軟件開發的目的是自動計算、快速審核、統計測評數據,減少人工干預,降低計算失誤,提高工作效率,將輔導員、班主任、班委從繁重的綜合測評及日常管理中解放出來,使學校的綜合測評工作系統化、規范化、自動化。通過調查,要求軟件需要有以下功能:(1) 要求有良好的人機界面,操作簡單。(2) 由于該軟件的使用對象學生和班級管理人員。(3) 數據計算自動完成,盡量減少人工干預。

三、可行性分析

由于本軟件的對象單一,都是在校學生,且每個數據內容具有較強的關聯性,涉及的計算過程不是很復雜。因此,比較適合于采用excel表格管理。熟悉VB編程。在技術難度方面,由于有指導老師的指導和相關參考文獻,特別是網上資料,特別是參考其他程序的功能,因此完全可以實現。

四、 軟件實現

(1) 統一命名功能主要代碼

d = Dir(App.Path & "\*.xls")

Dim EXLAPP As Excel.Application

Dim xlBook As Excel.Workbook

Dim EXLSHEET As Excel.Worksheet

Set EXLAPP = CreateObject("excel.application")

EXLAPP.Visible = False

Dim FileNa As String

Set xlBook = EXLAPP.Workbooks.Open(App.Path & "\" & d)

Set EXLSHEET = xlBook.Sheets(1)

EXLSHEET.Activate

If EXLSHEET.Cells(1, 19) = "ZongHecePingBiao" Then '有效表

FileNa = KillSpace(EXLSHEET.Cells(2, 6))

EXLAPP.DisplayAlerts = False

EXLAPP.ActiveWorkbook.Close SaveChanges:=True

Name App.Path & "\" & d As App.Path & "\" & FileNa & "綜合測評表" & num & ".xls"

End If

(2) 統計收文情況主要代碼

d = Dir(App.Path & "\*.xls")

Call EXLAPP.Workbooks.Add

Set EXLSHEET1 = EXLAPP.ActiveSheet

EXLSHEET1.Cells(1, 1) = "綜合測評表收回情況表"

EXLSHEET1.Cells(2, 1) = "序號"

EXLSHEET1.Cells(2, 2) = "姓名"

EXLSHEET1.Cells(2, 3) = "收回情況"

EXLSHEET1.Cells(2, 4) = "文件數"

Open "C:\evaluation_file\names.txt" For Input As #1

ReDim Preserve StrZ(I) As String

ReDim Preserve beizhu(I)

k = 0

While Not EOF(1)

Line Input #1, str1

k = k + 1

EXLSHEET1.Cells(k + 2, 1) = k

str1 = KillSpace(str1)

EXLSHEET1.Cells(k + 2, 2) = str1

EXLSHEET1.Cells(k + 2, 3) = "未收回"

StrZ(k) = str1

beizhu(k) = 0

Wend

Close #1

(3) 審核功能主要代碼

On Error Resume Next

If (Option1.Value = True) And (Option2.Value = False) And (Option3.Value = False) Then

EXLSHEET.Cells(33, 19) = 1

EXLSHEET.Cells(1, 7) = Trim(Combo1.Text)

EXLSHEET.Cells(32, 4) = Trim(Text2.Text)

EXLSHEET.Cells(2, 3) = Trim(Text3.Text)

EXLAPP.DisplayAlerts = False

EXLAPP.ActiveWorkbook.Close SaveChanges:=True

FileCopy App.Path & "\" & d2, App.Path & "\已通過\" & d2

Kill App.Path & "\" & d2

ElseIf (Option1.Value = False) And (Option2.Value = True) And (Option3.Value = False) Then

EXLSHEET.Cells(33, 19) = 2

EXLSHEET.Cells(1, 7) = Trim(Combo1.Text)

EXLSHEET.Cells(32, 4) = Trim(Text2.Text)

EXLSHEET.Cells(2, 3) = Trim(Text3.Text)

EXLAPP.DisplayAlerts = False

EXLAPP.ActiveWorkbook.Close SaveChanges:=True

FileCopy App.Path & "\" & d2, App.Path & "\未通過\" & d2

Kill App.Path & "\" & d2

ElseIf (Option1.Value = False) And (Option2.Value = False) And (Option3.Value = True) Then

EXLSHEET.Cells(33, 19) = 0

EXLSHEET.Cells(1, 7) = Trim(Combo1.Text)

EXLSHEET.Cells(32, 4) = Trim(Text2.Text)

EXLSHEET.Cells(2, 3) = Trim(Text3.Text)

EXLSHEET.Cells(32, 13) = ""

EXLAPP.DisplayAlerts = False

EXLAPP.ActiveWorkbook.Close SaveChanges:=True

ElseIf (Option1.Value = False) And (Option2.Value = False) And (Option3.Value = False) Then

SetWindowPos Me.hWnd, -2, 0, 0, 0, 0, 3

MsgBox "" & vbCrLf & "您沒有點選意見! " & vbCrLf, vbExclamation, "警告"

SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, 3

Exit Sub

End If

五、 結論

在本軟件系統必然會存在一些缺陷和不足。但其功能全面、易于日后程序更新、界面友好、操作方便、效率高是本軟件系統的特點。在這次設計與開發中的最大收獲并不是掌握這幾門開發工具的應用,而是學會了軟件設計的思維方法,以及與同學們之間相互幫助的精神。

參考文獻:

篇2

【關鍵詞】計算機軟件開發;設計;難點;解決措施

眾所周知,模塊化在過去很長一段時間里稱為軟件設計的主要方式。事實證明,采用這種方式不僅僅能夠很好的規避軟件系統開發中的復雜性,可以在一定程度上簡化程序。通常情況下,在整個軟件的設計過程中需要將程序進行分解,這樣來行程模塊化層次結構,從而提高程序設計的可操作性和可讀性,加強開發效率。但是值得注意的是,在設計過程中由于試用的分解系統以及設計人員的思考方式存在一定的差異性,最終設計出來的軟件自然也會不盡一致。那么,我們需要具體問題進行具體分析,進而找出科學合理的解決辦法。

一、計算機開發設計中的難點問題

但是就目前而言依然存在很多急需解決的難點問題。主要表現在以下幾個方面。

1、需求分析比較欠缺。通常情況下,在設計軟件的過程中需要對設計標的物進行徹底分析,但是我們發現在很多時候會出現分析不清晰、有紕漏,或者是太籠統的現象,這樣一來就會導致軟件在設計過程中出現各種各樣的問題。就這一點而言,設計人員必須保持一顆嚴謹認真的心態,不管是從宏觀還是微觀細節方面都要進行完整而且詳細的分析,確保萬無一失。

2、測試不夠充分。這種情況的發生主要是由于在設計軟件結束之后需要對其進行充分的測試與相對應的檢驗,通過這種方式來最大限度的避免其在運營過程中出現問題,但是事實上我們發現正是因為測試不夠充分,在出現系統崩潰之前無人發現問題的所在。

3、規劃不合理。在軟件設計過程中有很多的程序需要編輯,而這些程序往往都是比較復雜的,有些設計人員在設計過程中并沒有嚴格按照相關規范進行計劃的制定,對于規模比較大的系統工程卻只肯花費一小部分時間去完成,并未真正的研究透徹,這樣一來設計質量當然也就無法保證了。鑒于此,設計人員需要耐心的來安排整個工程包括設計、規劃、測試以及后期的維護等等。

4、新特性的不斷增加。在過去我們會經常發現,在開發軟件完成之后,在運用過程中通常會根據需要增加一些新的內容,這樣就會使得軟件運行程序很容易變得復雜而且混亂,從而影響軟件運行的穩定性。就這一點而言,如果沒有十分特殊的要求,設計人員不要輕易添加新的需求進去,實在是需要添加,五筆要將計劃進行調整之后方可進行接下來的工作。

二、解決計算機軟件開發中難點問題的有效措施

1、根據實際需要切實規劃軟件設計。具體地說,就是要在軟件設計中精心組織好一支優秀的隊伍,并且嚴格按照規范要求制定出一套切之可行的設計計劃,要從中理清設計的重點在哪里,從而最大限度的避免人力物力財力上的浪費。真正意義上來講,設計一個軟件不僅僅要設計好它的內容,還要設計好軟件設計的行程安排,清楚設計的重點之處,以最短的時間做出最有效率的事情,盡可能的減少在一些與軟件本身無關的工作環節上浪費太多的人力物力的財力。

2、要對設計需求加以合理分析。這主要是針對納西在計算機軟件開發過程中對軟件的內容設計存在紕漏,導致在軟件開發過程中出現對原本想要設計的內容較為籠統化以及不可被測試的問題,那么我們應該要求設計人員在設計的前期要結合實際需要綜合考慮軟件的設計內容來制定出一套合理并且完整的設計計劃。

3、提供一個良好的工作環境。首先需要讓設計人員擁有一套正規化的開發工具,與此同時要給他們一個良好的外部工作環境,讓這些設計人員在一個舒適的環境中開始軟件的研發。與此同時還要提供給他們一些硬件上的服務,讓他們的研發軟件切實為設計人員帶來實際收益,通過這種方式來提高他們的工作熱情。

三、結束語

綜上所述,在科學技術蓬勃發展的今天,計算機軟件的設計與開發在整個社會發展過程中起到極其重要的作用,因為它在很大程度上直接決定計算機的工作性能,一個好的計算機軟件能夠很好的幫助計算機用友更好的工作水平,通過上面提出的一些建議希望能夠真正幫助計算機軟件設計者打造出完美的軟件,從而為計算機事業提供更好的服務。

參考文獻

[1]郭玲.淺析計算機軟件開發設計的難點和對策[J].計算機光盤軟件與應用.2014,(04).

[2]任康.計算機軟件開發設計的難點及解決措施[J].信息通信.2014,(09).

[3]賈欽勇.即時通訊系統的研究與實現[D].武漢理工大學:計算機軟件與理論.2010.

篇3

1.Visual Basic

Visual Basic是一種微軟公司開發事件驅動編程語言,是當前世界上使用最多的編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接數據庫。用戶可以使用VB組件快速建立應用程序。自1991年,微軟公司推出了Visual Basic 1.0,該創舉可以說是軟件開發史上的一個具有劃時代意義的事件,自從軟件開發有原來的“不可視”變為“可視”。在隨后的幾年內微軟公司不斷對其更新晚上。2002年,微軟將.NET Framework與Visual Basic結合而成為Visual (),重新打造VB,再一次將VB推向一個新的高度。

2.打字軟件設計思路

一個打字軟件的設計主要是為了滿足用戶打字練習,其必須具備良好的界面與簡易的支持系統。為此本打字軟件系統包括登錄系統與打字練習系統。登錄系統主要是為了為用戶保存每一次的練習準確率及時間;打字練習系統由鍵盤練習、拼音打字練習、五筆打字練習和打字游戲五部分構成。結構如圖1所示。

3.軟件開發

3.1 鍵盤練習模塊

在練習的過程中如果你打入錯誤的鍵位,就會顯示如圖提示,紅色錯號,綠色顯示是正確輸入的鍵位。其關鍵代碼如下:

If Jiantisi antisi Then ‘輸入字符錯誤,而且按鍵也不對。

‘以下是打錯了字符,也按錯了鍵的紅色提示。

3.2 鍵位練習正確率

作為打字練習測試系統,正確率的測試尤為重要,這個基于VB的打字系統的正確率測試更為準確,相比其他的測試軟件,它在正確率和速度之間做了一些改善,比如:原本的一些測試系統中如果你輸入的很快,但是錯誤率很高,但它在測試過程中任然會顯示速度很好,就起不到練習的目的,在我的這個測試系統中,對被測試者的正確率也有一定的要求,如果你打字錯誤了,你仍然不改,就會停在那里,直到你改正了才可以再輸入。

退出代碼:

這個窗口主要是對打字方式的練習,只有掌握好打字的正確鍵位才能夠成為打字高手。輸入練習時屏幕上會顯示要打的字母為綠色,盡力不要看鍵盤,進行盲打,手能夠子如的在鍵盤上尋找鍵位,這就要求學習者對鍵位有個大概的記憶,不同的手指也是負責不同的鍵位。

3.3 拼音與五筆打字練習模塊測試

文件/拼音或五筆打字練習,即可打開相應當前窗口,打開后工具欄成為當前激活窗口的工具欄,在當前工具欄點擊:文件/導入文本,選擇提前已經錄入的TXT文本

正確輸入時文本會是綠色背景,當你輸入錯誤時會成為紅色背景,可以退格更改。其中關鍵代碼如下:

文本框2的改變事件中,將每輸入的一個文字信息同文本1的副本作比較,若不正確則副本的文字變為紅色,后退回去相應的文字變為黑色,可以再次錄入。只有錄入正確則顏色是藍色。當單擊開始比賽按鈕時,文本框2獲得控制焦點且計時開始。比賽根據時間的控制,一旦時間到了,系統強制控制停止使用所有的事件,同時出現相應的測試成績。當然可以提前交卷,只需按結束交卷按鈕(Cmdstop_click)成績即可出現。

參考文獻

[1]劉炳文.Visual Basic程序設計[M].北京:清華大學出版社,2006,8.

[2]李志云,用VB設計中英文打字測試軟件[J].電腦編程技巧與維護,2006(11):12-13.

[3]沈國珍.《VB程序設計》課堂教學的探索與實踐[J].福建電腦,2007,4.

[4]俞建,張燎軍.數據庫訪問技術研究[J].計算機與現代化,2005.

[5]李志云.用VB設計中英文打字測試軟件[J].電腦編程技巧與維護,2006,11.

[6]曾強聰.Visual Basic程序設計與應用開發案例教程[M].北京:清華學出版社,2004.

[7]袁鋒.談《VB程序設計》教學方法改革的五個轉變[J].中國成人教育,2004,1.

[8]徐華麗.基于Visual Basic程序設計語言教學的實踐與探索[J].皖西學院學報,2006,2.

[9]王滿師.應用軟件“中英文打字測試系統”的設計及在VB上實現的有關技術[J].北京交通管理干部學院學報,2002.

[10]李金山,張文麗.基于VB的中文錄入測試系統的設計與實現[J].太原師范學院學報(自然科學版),2007,3.

篇4

關鍵詞:云計算;軟件;C/S架構;B/S架構

1引言

光纖通信、多媒體、大數據等計算機技術的快速改進和普及,為云計算的誕生和應用提供了強大的基礎,利用云計算技術可以實現數據的分片存儲、并發計算、虛擬化硬件資源等功能。目前,云計算技術已經在電子商務、金融證券、電力通信等領域得到了廣泛應用,比如天貓商城利用云計算可以容納數以億計的用戶同時訪問;支付寶利用云計算技術可以實時的統計用戶轉賬消費記錄,保障支付寶金額數據的準確性;證金公司開發的結算系統利用云計算技術可以收集分布于全國各地的證券交易數據,實時的進行交易結算;鐵路售票采用云計算技術可以滿足數以億計的用戶同時訪問系統,實時更新每一列客車的出票情況、余票情況等。云計算環境下軟件系統需要采用一個強大的軟件架構實現數據通信、資源共享,目前常用的架構主要包括C/S架構和B/S架構,其可以將軟件系統劃分為多個邏輯獨立層次,每一個層次都可以使用接口相連,實現業務處理、數據存儲等,并且具有良好的可擴展性、可移植性和可維護性。

2云計算信息系統功能設計

與傳統通信技術相比,云計算可以采用矩陣的連接方式將數以千萬的服務器、終端等計算機設備連接在一起,為用戶提高更強大的數據通信、計算能力。云計算信息系統功能主要包括三個方面,分別是應用軟件部署功能、中間件通信功能、基礎硬件實施按需出租功能。

2.1應用軟件部署功能

應用軟件部署功能可以為用戶提供多種軟件系統部署功能,為應用軟件分配存儲空間、接入接口、云端管理接口,用戶只需要輸入云端賬號和密碼,就可以進入到應用軟件進行操作,并且訪問數據資源。

2.2中間件通信功能

云計算可以將硬件服務資源虛擬化,并且利用中間件實現通信功能,利用接口提供數據上下通信、資源調度、服務器負載均衡、用戶訪問管理、應用服務管理、計費管理和安全管理等功能,便于提高性能服務水平,實現多種應用軟件與軟硬件資源通信。

2.3基礎硬件實施按需出租功能

云計算環境下,其可以為用戶提供按需定制服務,不需要獨占硬件資源,僅需要占據邏輯的服務資源即可完成業務操作,保證足夠多的用戶并發訪問基礎硬件資源,能夠實現邏輯業務處理。

3云計算信息系統架構設計

3.1C/S架構設計

云計算環境下,軟件設計師最常用的架構就是兩層的C/S架構,該架構包括客戶端和服務器端兩個關鍵組成部分。基于云計算的分布式管理系統采用C/S架構進行開發,其需要安裝一個客戶端應用程序,為用戶提供一個邏輯業務請求輸入交互界面,并且客戶端可以通過互聯網與服務器端進行連接,傳輸邏輯業務處理流程。服務器端是系統的核心組成內容,服務器承載了邏輯業務處理、數據業務處理兩個關鍵功能,可以將用戶發送過來的功能處理任務進行有效地解析,進而可以實現數據的插入、修改、刪除和查詢。

3.2B/S架構設計

云計算技術的應用使得軟件系統積累了海量的而數據資源,保存了成千上萬的用戶信息,為了提高分布式軟件的交互性能、處理速度,許多計算機學者提出了一種三層的B/S架構,該架構包括表示層、業務功能處理層和數據功能處理層。

3.2.1表示層

表示層是B/S系統與客戶進行交互的界面,用戶在IE瀏覽器中輸入系統的網絡鏈接地址,就可以登陸到系統進行操作。表示層可以通過Web頁面接收用戶的功能任務請求,并且可以把業務功能處理和數據功能處理結果反饋給用戶,并且反饋模式采用WebFormat模式,更加形象、條理的展示處理結果,便于用戶查看處理結果。

3.2.2業務功能處理層

業務功能處理層是B/S架構的核心。業務功能處理層部署于Web服務器,其作為連接數據庫、用戶的紐帶,承擔著功能任務封裝、數據業務解析、處理結果整合等關鍵功能。目前,業務功能處理層采用JavaBean接口、接口等程序實現上通、下達的功能,并且能夠識別多種數據庫處理語言,比如關系數據庫、對象數據庫等,采用Format格式反饋處理結果給表示層。

3.2.3數據功能處理層

數據功能處理層主要負責接收數據處理任務,其可以根據Web服務器解析出來的數據庫操縱語句,比如SQL語句、關系代數語句等,根據這些語句的操作意義與數據庫管理系統進行交互,數據庫管理系統啟動數據庫操作引擎,可以對數據庫中的數據實現查詢、插入、修改和刪除等,并且把數據操作的結果反饋給Web服務器,由其將處理結果整合在一起反饋給用戶。B/S體系架構可以將云計算信息系統劃分為三層,每一層之間負責處理相關的業務流程,并且能夠通過接口進行通信,具有較強的邏輯獨立性、可移植性、可擴展性。

4結束語

隨著計算機技術的快速發展,云計算、大數據等在分布式管理系統中將會得到更多的應用,設計一個良好的系統架構可以提高軟件執行效率,進而提高用戶訪問、資源調度、負載均衡能力,滿足軟件操作需求。

參考文獻

[1]馬寶軍.基于云計算的電子商務平臺搭建方案與分析[J].信息通信技術,2014(1):55-61.

[2]張標.云計算應用時代開啟及案例分析[J].計算機光盤軟件與應用,2014(8):19-21.

[3]寧艷.基于C/S架構的移動學習系統的設計與實現[J].計算機光盤軟件與應用,2014(2):90-93.

篇5

明確課程開發目的

職業教育中的課程教育不同于本科教育,也不同于基礎教育。課程目標與內容具有明顯的職業導向性、基礎知識實用性、技能知識主導性等特點。在實際工作中,課程開發是指在教學大綱的基礎上對課程目標、內容、教材進行可行性研究。課程開發的目的是讓學生能很快適應社會,能直接將學校所學的知識運用到工作中,體現“學以致用,知行合一”的方針。職業教育中課程開發應該基于學生自身特點,不同階段進行不同的課程設計。

美術軟件課程合理開發的重要方面

1.課程定位具有職業導向性

Photoshop、CorelDRAW兩個軟件課程是我校電腦美術專業學生在校學習的專業核心課程之一。通過對電腦美術軟件課程的學習,讓學生掌握圖片前期處理

和廣告設計的基本知識,以及提高書籍輸出和排版等設計能力,畢業后可以在廣告設計公司、傳媒公司、網頁制作公司、影樓等地方就職,就業市場廣,前景好。授課主要采用項目教學法,使學生完成多種模式的設計工作過程,培養學生具備處理設計各種類型圖片和畫冊書籍版式的能力,為學生以后從事設計工作打下堅實的基礎。

2.課程設計注重校企合作

為了創設符合市場需求的電腦美術軟件設計課堂,讓我校畢業生能適應企業人才的需要,學校特別聘請了動漫電腦繪制設計師來校座談,開闊學生的眼界,提高學生對美術設計軟件的學習興趣。教師還帶領學生去江西婺源采風寫生,與當地婺源企業合作。學生通過寫生、攝影等方式提高了審美能力,在素材的整理中充分運用到photoshop圖片處理軟件,獲得了大量的設計素材和資源。筆者參加了2012年中職學校國家級骨干教師培訓,從中體會到,專業課程設計應該注重校企合作,充分利用企業資源。培訓基地的部分土地,租用給了一個設計公司,在培訓期間,學員用設計軟件設計的圖片就由這一設計公司輸出打印,方便了學員,也方便了學校,更重要的是充分利用了現有的資源,學員也有更多的機會接觸廣告設計公司,對廣告行業加深了了解,這種校企合作方式給了我很大的啟發。在課程設計中的校企合作,不能單單理解成一般的合作模式,參觀、交流、體驗只是校企合作的皮毛,真正的校企合作應該體現在,能讓學生加深對企業的了解。合作過程中,可以將學生實訓和實習時間加長,并且根據學生能力的不同,在實習過程中針對一門技術進行專一的訓練,而不是各種技術都去嘗試,最后實訓的結果是只懂皮毛,并沒有對企業有深入的體會。

3.課程內容循序漸進

在課程內容的安排方面,應該綜合考慮學生的能力和階段性興趣。教學內容應該有效地進行排序,也就是課程內容的序化結構問題。姜大源教授認為,知識只有在被序化的情況下才能被提供,而序化意味著確立知識組織的框架和順序。課程內容的設置應該完全為學生服務,使學生能更容易接受老師教授的知識與技能。職業教育中的基礎知識和技能充分體現工作過程,工作過程就是實際應用,可以在課堂中設置工作場景,將課堂內容充分與實際運用結合起來。在美術設計軟件學習的課程中,軟件種類是多樣的,并且具有互通性。深入研究了解發現,設計軟件種類之間,也有難易不同程度的差別。例如:Photoshop軟件與CorelDRAW兩種美術設計軟件在課程內容安排應該循序漸進。Photoshop是專業的圖片前期處理軟件,也具有一定的排版功能,而CorelDRAW軟件是專業的美術設計排版軟件,這兩種軟件看似是沒有關聯的,好像可以隨意安排先后順序。其實不然,在CorelDRAW排版軟件中設計的一些畫冊書籍中的圖片先要進行圖片的前期處理才能運用到排版中,這樣設計出的作品才有高的輸出質量。所以單純從這兩個軟件來看,應該將Photoshop課程安排在CorelDRAW課程之前。由于一定的地域差異,美術軟件種類的應用也有不同,例如:在中國中西部,廣告公司一般運用CorelDRAW軟件作為排版軟件,而在中國東部或沿海城市,多用Inustrater軟件進行排版,但是對于Photoshop軟件的運用全國都是一樣的,所以我們在課程內容設置上也應該將Photoshop軟件教學內容設置更多,更深入。這樣循序漸進地設計課程內容能讓學生真正“學以致用”。

4.課程評價開放、客觀

課程評價也是課程開發的一個重要環節。課程評價應該與課程目標結合起來,課程目標制定符合教學大綱的三維目標體系,那么,課程評價也應該以三維目標體系為基礎,結合職業教育需求實際,進行綜合評價。對學生目標任務的評價不能只看結果,應該更注重過程,這樣才能使評價更開放、更客觀。美術軟件設計課程中對學生的評價應該從幾方面考慮:

(1)素材搜集是否及時合理

搜集素材是作為設計工作者最基本的能力,素材在設計中是最基礎并且最關鍵的,好的素材不需要過多的后期處理便可以達到高水平的設計要求,劣質的素材處理起來會耗費大量的時間,最后設計的質量也不一定好。教師通過講解、示范和啟發明確學習目標,下發任務書,鼓勵學生通過各種方式選取素材,特別是自己拍攝的照片素材

(2)軟件操作過程是否正確。

這是對操作速度提出一定的要求。在平時軟件設計課堂中,教師演示完操作過程之后,學生完成任務的速度過慢,經常使得完成目標任務變得遙遙無期,最后學生也失去了學習的興趣。廣告企業競爭壓力很大,職業學校學生想要脫穎而出找到自己理想的職位,必須在軟件操作速度上更勝一籌。操作速度包括兩個方面:一方面是對軟件的熟練運用程度,另一方面是美術設計軟件快捷鍵的運用熟練程度,熟練掌握快捷鍵的應用,可以大大的提高操作速度。

(3)設計理念更應順應大眾審美

每個人對設計作品的理解和評價都會不同,有些同學想要自己的作品具有獨特的設計理念。介于以后學生就業的定位來看,更鼓勵學生多欣賞外國和中國的優秀設計作品,先模仿后設計,開闊眼界才是根本。

課程評價運用多種形式,除了教師為學生作品打分以外,還可以組織學生互評,或者校內外作品展示。學校充分利用校內資源,給學生舉辦作品展覽。我校在今年為電腦美術專業開展了一次大型的美術作品師生展,這樣的活動可以增加學生信心,提高學生學習的興趣。教師也可以幫助學生多參與校外的美術設計展,更要注重學生送投設計作品之前的過程。

通過培訓有效提高教師職業能力和執教能力,有效實施課程體系

教師的執教能力與職業能力有很大差異。執教能力是教師將自己的職業知識,運用正確的方法傳授給學生,讓學生更易接受。職業能力是教師本身具備的除了教師以外職業技能的素養和技能操作知識。教師的執教和職業能力的高低會直接影響課程開發和課程實施的質量。

提高教師職業能力與執教能力的方式之一就是教師培訓,這也是現在職業學校教師提高職業能力的主要方式。有調查顯示:現階段的職業教育教師的主要教學任務是教學實踐,實踐缺少理論指導,缺乏問題的研究,缺少行業技能實踐經驗,更多的是知識理論經驗。在美術設計課程教學教師群體中,有些老師教授電腦美術設計課,但是并沒有真正從事過設計工作,甚至沒有進出過設計公司,對設計行業并不了解,這樣的教師是不合格的。在美術軟件設計課程中,學校應該多組織教師進行企業培訓,只有教師親身體會行業文化,才能正確引導學生。

校企合作的方式不僅可以用于學生實訓中,教師培訓也可以充分利用企業資源。通過培養教師職業能力,擴大學校“雙師”型教師隊伍,可以大大提高學校美術軟件設計的專業技術實踐能力。學校與企業合作對教師技能進行培訓,也可以不斷地更新教師專業知識,使教師專業化成長與時俱進,把最新的知識傳授給學生。培訓的目的也是挖掘教師的潛能,教師通過培訓也會提高教學興趣,打破一成不變的學校教學模式,將企業培訓的新模式合理運用到課程開發和實施中來。

培訓可以讓教師站在學生的立場上思考問題。教師不能一味地給學生布置很多的課程目標任務,而是應該精選典型的案例來讓學生操作,一味地布置大量的操作任務,只會讓學生厭惡美術軟件設計。

篇6

關鍵詞:校園網 網絡安全 防范策略

隨著Internet和intranet技術的普及和近年來的迅猛發展,數字化校園的建設得到了蓬勃發展。校園網是學校教學管理信息化和網絡化的基礎。由于校園網具有開放性、互聯性和共享性的特點,因此不可避免地受到病毒、黑客、惡意軟件和其他不軌行為的安全威脅和攻擊。校園網數據丟失、系統被攻擊修改、網絡癱瘓的事情時有發生。因此,基于校園網的軟件開發過程,需要首先解決校園網運行環境的安全問題,無論是軟件開發,還是網絡運行環境的搭建,需要時時刻刻警惕可能出現安全問題的單元和模塊。

為確保基于校園網的教學管理軟件的安全穩定運行,需要對兩個方面進行研究和分析:一、軟件開發過程中出現的安全漏洞。任何軟件都是會有一些漏洞的,即使最大的軟件開發者“微軟”也在不斷更新安全補丁,因此從設計軟件的模塊到數據庫的使用要時刻留意漏洞的出現。二、網絡運行環境的安全漏洞。校園網的安全環境可以用“內外交迫”來形容。校園網外部Internet上的安全問題一直讓網管員頭痛,同時校園網內部有些人員的計算機相關技術水平非常高,甚至超乎管理人員的想象,據統計80%對校園網的攻擊來自于校園網內部。在這種情況下,如何構建校園網安全屏障,保證網絡的安全、穩定、高效地運行,同時又能提供豐富的網絡資源,達到辦公、教學以及學生上網的多種需求是學院必須面對的問題。

1.軟件開發的安全設計分析

軟件開發當前流行的開發結構包括C/S開發(客戶端/服務器)和B/S開發(瀏覽器/服務器)。兩種開發結構的程序運行入口都是從登錄開始,但C/S開發結構中的登錄要比B/S登錄要安全許多,C/S程序需要為客戶機安裝相應的客戶端軟件才能運行,而B/S開發的程序在客戶端僅需要瀏覽器就可以了,任何一臺計算機目前都是安裝瀏覽器的,也就是說任何一個人都可以運行B/S的程序。雖然用戶是需要用戶名和密碼才允許訪問,但黑客可能利用數據庫和程序的“注入”和“旁注”漏洞,繞過用戶名和密碼的輸入而得到程序的授權訪問。還有就是黑客可能利用自制軟件暴力破解用戶名和密碼,循環猜測用戶名和密碼。因此在程序登錄窗口的設計中需要注意如下幾部分:

1.1約束用戶輸入的用戶名和密碼盡量要復雜一些。比如密碼長度、復雜度,這樣可以有效防止黑客暴力破解密碼。

1.2當輸入賬戶和密碼三次錯誤后,鎖定軟件一段時間。這樣可以避免黑客使用工具循環猜測賬戶和密碼,此方法對C/S開發的程序比較有效。若是B/S開發的程序可以設置圖片驗證碼來代替鎖定。

1.3用戶名和密碼內不允許輸入敏感的特殊字符,例如“’、%、(、&、exec”等,這些敏感的字符可能會引起數據庫程序的“注入”漏洞,使黑客越權登錄。一般程序都設置成允許數字和英文字符可輸入,可通過正則表達式來限定更加復雜的格式。

在B/S開發過程中要注意頁面的用戶狀態識別、頁面過期設定的設置,例如當用戶長時間訪問過的某個程序頁面,有可能在BAIDU搜索引擎留下記錄,黑客可通過搜索引擎來訪問某頁信息,通過在頁中設置用戶狀態,可以防止這樣的事情發生。另外頁面過期也是要注意的問題,比如瀏覽器的歷史記錄中的“上一步”問題,當用戶退出系統后,關閉瀏覽器之前,點擊“上一步”有可能進入系統,這需要在編寫程序時,特別注意做到頁面過期時間調整和瀏覽器的緩存清除操作。

用戶程序數據保存的數據庫系統也會有一定的安全隱患,當前大多是數據庫都是網絡數據庫,例如SQL2000、SQL2005、Oracle、MYSQL。這些網絡數據庫可以通過網絡訪問,這就會出現非法用戶通過網絡直接連接數據庫,除了注意要將數據庫的管理賬戶設置復雜一些以外,還要防止一些存儲過程的調用例如SQL2000的xp_cmdshell,設置網絡的訪問權限,讓非法的用戶無法直接訪問到數據庫。

2.校園網網絡安全的設計和分析

雖然在軟件設計中可以解決一些運行的安全隱患,但沒有安全的校園網絡配置,是無法解決所有的安全的問題的。只有程序和網絡兩個方面共同發揮力量才能讓校園網的管理軟件安全、穩定的運行。

校園網的網絡體系結構包括校園網的網絡邊界設備,核心及骨干設備,網絡接入層設備,網絡服務提供設備和這些設備的連接方式以及該結構采用的協議和技術。

校園網至少應采用1000M以太網主干技術,1000M或100M到樓,100M或10M到桌面,部分區域采用無線接入技術(802.11)實現無線接入。校園網絡路由器,高性能的核心路由交換機,各分布層的三層路由交換機,大量的二層可網管接入交換機,以及防火墻,IDS(或IPS),內容過濾系統,流量分析系統,網絡設備管理系統等網絡硬件設備。教學管理軟件服務器端程序應該放在DMZ(隔離區)內,它連接防火墻,且可以連接外網和內網。教學管理軟件所有的重要數據庫和資料則放在內網的重要數據區,嚴格限制訪問,此區域連接DMZ區,為各種教學管理軟件進行數據存取服務。這樣做的優點是DMZ區可以為主機環境提供網絡級的保護,能減少為不信任客戶提供服務而引發的危險,是放置公共信息的最佳位置。即使DMZ區的公共服務例如WEB服務器、EMAIL服務器被黑客攻陷,由于重要的數據庫和資料并不在此區域內,則不會對數據造成損失。

校園網主要面臨的危險包括如下內容:

2.1操作系統的安全問題

目前,被廣泛使用的網絡操作系統主要是UNIX、WINDOWS和Linux等,這些操作系統都存在各種各樣的安全問題,許多新型計算機病毒都是利用操作系統的漏洞進行傳染。如不對操作系統進行及時更新,彌補各種漏洞,計算機即使安裝了防毒軟件也會反復感染。

2.2病毒的破壞

計算機病毒影響計算機系統的正常運行、破壞系統軟件和文件系統、破壞網絡資源、使網絡效率急劇下降、甚至造成計算機和網絡系統的癱瘓,是影響高校校園網絡安全的主要因素。

2.3黑客

黑客入侵的常用手法有:端口監聽、端口掃描、口令入侵、JAVA炸彈等。

2.4內部破壞

在高校中,有人為了報復而銷毀或篡改人事檔案記錄;有人改變程序設置,引起系統混亂;有人越權處理公務,為了個人私利竊取機密數據;一些學生通過非正常的手段獲取習題的答案或在考前獲得考試內容,使正常的教學練習失去意義。這些安全隱患都嚴重地破壞了學校的管理秩序。

2.5設備受損

設備破壞主要是指對網絡硬件設備的破壞。

2.6敏感服務器使用的受限

由于財務等敏感服務器上存有大量重要數據庫和文件,因擔心安全性問題,不得不與校園網絡物理隔離,使得應用軟件不能發揮真正的作用。

2.7技術之外的問題

校園網是一個比較特殊的網絡環境。隨著校園網絡規模的擴大,目前,高校基本實現了教學科研辦公上網,學生上網。由于上網地點的擴大,使得網絡監管更是難上加難。由于高校部分學生對網絡知識很感興趣,而且具有相當高的專業知識水平,有的研究生甚至研究方向就是網絡安全,攻擊校園網就成了他們表現才華,實踐自己所學知識的首選。其次,教工人員和學生的計算機網絡安全意識薄弱、安全知識缺乏。學校的規章制度還不夠完善,還不能夠有效的規范和約束學生、教工的上網行為。

除去設備本身的受損情況其它的安全問題可分為外網的安全和內網的安全兩部分。

外網的攻擊主要包括破壞性攻擊和侵入型的攻擊。破壞性的攻擊多采用DoS及DDoS(分布式DoS)攻擊。在這種類型的攻擊中,攻擊者發送通過一臺傀儡機(肉雞)或大量的傀儡機發送大量的TCP SYN請求到某個服務器。在SYN請求被發送之后,“握手”行為就永遠也不會結束。服務器,由于一直設法維持SYN連接的信息并且等待握手行為的完成,最終耗盡它的資源并停止接收任何進一步的TCP連接請求,因而拒絕了對真正用戶的訪問。攻擊的目的就是讓服務器忙得無法完成正常服務,破壞網絡正常的運行。處理DDoS的攻擊最有效的方法就是架設防火墻,目前防火墻的重要任務就是防止DDoS的攻擊,在外網路由器加入防火墻可以有效屏蔽DDoS的數據包,同時若對外網ICMP和TCP的數據包進行檢測,檢查數據包的大小也可以過濾一部分攻擊效果。侵入型的攻擊多尋找服務器的漏洞和網絡漏洞,侵入服務器獲取有用數據,或將服務器變成傀儡機。要防止侵入攻擊首要的任務就是為服務器打補丁,這樣可以防范系統級的漏洞,其次在防火墻配置訪問策略,限制端口的訪問,例如提供WEB服務的服務器,只需要開80端口即可,服務器本身的135、139等端口應限制訪問。再次就是軟件開發過程中的登錄安全設計,防止出現登錄漏洞,數據庫訪問漏洞,DMZ區的設計多為此處設計考慮。

內網主要受到的安全危險包括病毒、非授權訪問、技術之外的問題等。

病毒和木馬是內網安全的一個非常重要的問題,病毒和木馬瘋狂復制自己,達到在網絡中傳播,占用大量網絡,造成網絡癱瘓,同時影響正常軟件的運行。當前流行的病毒一般是通過網絡下載運行,或移動設備運行傳播。要控制病毒和木馬的泛濫,首先要對計算機進行保護,例如系統還原軟件,殺病毒軟件,可以有效檢測和快速處理病毒。然后為不同的機構設置不同的VLAN,限制VLAN間的訪問,這樣即使某一個機構的病毒泛濫,也不會影響另一個機構的網絡狀況。

非授權訪問,對于校園網內的辦公軟件、財務軟件、學籍管理部分,對于學生是不能隨意訪問的,雖然所有的辦公軟件等都是需要登錄后才可以使用,但軟件難免存在未知的漏洞,最好的解決辦法是從網絡訪問策略中限制訪問,例如在學院內的機房、辦公樓設置好VLAN,且只有VLAN段內限定的IP地址范圍可發送數據包出VLAN。在防火墻和交換機的配置中,限制僅允許指定IP地址段可訪問DMZ區的辦公軟件。

一些非技術的安全問題:1、部分部門的教工管理不嚴格,造成具有惡意人員操作了受限制訪問的內部網資源。例如學生操作了某部門領導的辦公計算機,這可能使部分人員越權訪問資源。2、教工對安全意識的淡薄,例如登錄辦公軟件后沒有安全退出,其他人可以任意訪問。3、BT等點對點下載非教學相關內容,BT等點對點網絡軟件,具有很多優點,包括一些很重要的學習資料的網絡共享,但也有一些是與教學等無關的娛樂資源,例如電影、游戲,這些內容的下載會嚴重影響網絡的穩定運行,也有可能引入病毒和木馬。對于上述這些問題則需要指定相應的政策和法規來進行約束。

該文通過軟件開發過程和網絡環境的配置兩個方面敘述了校園網內教學管理軟件開發運行中的一些問題,說明了軟件的開發與網絡的安全有著必然的聯系,只有軟件以及軟件的運行環境都經過詳細的安全設計和分析,才能確保軟件安全穩定的運行,以發揮教學管理軟件的功能和重要作用。

基金項目名稱:國家教師科研基金“十二五”教育科研重點課題,編號:CTF120510。

參考文獻:

[1]郭萍.淺析高校校園網安全隱患及防范技術[J].湖北三峽職業技術學院學院,2010,(12).

篇7

關鍵詞:Android JDBC DBUtil MVC模式 課堂測試

中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2014)12(a)-0002-01

學生舉手發言在小學生的課堂上是一道亮麗的風景線,但在大學生的課堂上卻仿佛是等待的多,老師一方面深知學生們不會主動發言,另一方面又對他們充滿希望。學生仿佛在成長的階段里逐漸喪失了某一種天性,舉手不再是隨心所欲而是有信心沒勇氣。如今,智能手機在大學生群體中盛行,學生上課玩手機已是普遍,但如果能將學生上課玩手機變成學生上課用手機與老師互動豈不更妙。課堂測試軟件就可改善這一現狀,它主要是指無線互聯網和安卓技術在課堂上的應用,學生可通過手機終端接受教師的試題,并且可將自己的答案傳送給web端的教師,教師通過該軟件可以更好地掌握學生課堂學習情況,提高學生的聽課效率。

1 軟件設計

1.1 Android平臺

Android是基于Linux平臺的開源手機操作系統。該平臺由操作系統、中間件、用戶界面和應用軟件組成,是首個為移動終端打造的真正開放和完整的移動軟件。Android最大特點在于它具有非常好的開發和調試環境,而且支持各種可擴展的用戶體驗。開發課堂測試軟件是離不開智能手機平臺的,而Android智能手機平臺系統,以其開源、開放和優異便捷的開發架構,成為首選。

1.2 軟件架構

課堂測試軟件主要由三部分組成:PCweb端、服務器和手機Android端,需要實現的功能是:web端通過服務器發送題目給Android端,Android端通過服務器提交答案給web,web端可以將學生答案與正確答案進行比較分析。

1.3 服務器搭建

JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問。DBUtil是Apache的一個開源項目,是JDBC的輕量級的封裝。使用它最方便的地方在于,原來使用JDBC從數據庫中查詢得到的結果集需要將每一行數據封裝到實體對象中,然后將實體對象加入到集合中,而使用DBUtil可以直接通過sql語句得到集合對象或者實體對象。

Android手機端的服務器和Web服務器需要連接同一個服務器,都需要調用DBUtil類的業務方法。將啟動手機端服務器的代碼寫到Web容器的ServletContextListener監聽器中,這樣當Web容器啟動時就會指定啟動手機端服務器的代碼。手機端的服務器啟動后,會創建一個ServerSocket監聽指定的端口,同時還會啟動一個線程ServerThread負責監聽用戶的連接,每當有客戶端進行連接時,創建并啟動一個ServerAgent進程對象專門負責與該客戶端進行通信。

1.4 PC web端和手機Android端的實現

Web端和Android端的實現主要采用MVC模式的技術,MVC全名是Model View Controller,即模型-視圖-控制器,允許使用各種不同樣式的視圖來訪問同一個服務器端的代碼。視圖層是提供給用戶的操作界面,是程序的外殼;數據層,就是程序需要操作的數據或信息;控制層負責根據用戶從“視圖層”輸入的指令,選取“數據層”中的數據,然后對其進行相應的操作,產生最終結果。它的提出是為了適應越來越復雜的項目開發,JSP+JavaBean+Servlet可以很好實現該模式。

DBUtil訪問后臺數據庫,Servlet響應HttpRequest請求,并返回響應結果,后臺采用MVC+DAO的設計模式及分層結構。服務器端主要包括采用DAO設計模式實現的訪問數據庫接口及其實現類。實現軟件課堂測試的Servlet類包括:loginServlet用于接收用戶登錄的信息完成用戶驗證,把驗證結果返回給前臺,SentTestServlet和ReceiveAnswerServlet分別用于web端發送試題和接收答案,ReceiveTestServlet和SentAnswerServlet分別用于Android端接受試題和提交答案,AmountAnswerServlet用于統計答題人數等。

以試題功能為例,首先從request中讀取試題項,調用PreparedStatement的executeUpdate方法向數據庫的試題表中插入新的記錄,根據executeUpdate的返回值設置writeNewNotice方法的返回值,最終將其設置到request中的屬性。

2 結語

該文介紹了一種基于Android平臺的課堂測試軟件的設計與開發,該軟件完成了包括Android端、web端和服務器端功能框架的整體的設計開發和系統部署。開發過程將web前臺的設計和Android的開發使用同一服務器來綁定,選用便于操作的Dbutils操作數據庫,采取重用性高的MVC模式構建程序,通過眾多特色技術來實現課程測試軟件的功能,不僅達到了要求,同時代碼簡練。此款軟件在經過后期的一些安全問題及細節優化后,即將在小范圍投入使用,相信它可以為師生提供一個更好的交流平臺。

參考文獻

[1] 歐陽零.Android核心技術與實例講解(第2版)[M].北京:電子工業出版社,2013.

篇8

關鍵詞關鍵詞:Gtest;Gmock;單元測試;集成測試;企業軟件

中圖分類號:TP319

文獻標識碼:A 文章編號:16727800(2014)002007604

0引言

一個軟件的生命周期,從用戶需求規格說明開始,經過計劃溝通(需求分析)、策劃(制定計劃、風險評估)、建模(概要和詳細設計)、構建(編碼與測試)和部署(交付、支持和反饋)過程,最終提供一個完整的軟件設計,并提供持續的技術支持[1]。在整個生命周期中,測試(即質量控制QA)扮演著重要角色。軟件測試不僅僅發生在軟件生命周期后半部分,而是貫穿于整個軟件生命周期,包括詳細設計階段,跟進項目設計測試大綱;在編碼實現的同時,編寫測試用例,進行單元測試和模塊測試,繼而進行集成測試、系統測試和壓力測試等。

在軟件系列測試中,單元測試和集成測試最能保證產品質量,也最能發現代碼靜態檢查中的問題,單元測試易被忽視。對大型企業軟件,特別是跨平臺軟件開發,由于軟件分支多,項目龐雜,開發者疲于進行完整單元測試,錯過了糾正錯誤的最佳時機[2]。根據經驗,軟件測試越早發現錯誤,糾正該錯誤的代價越小。

在工程實踐領域,企業級軟件產品通常實行敏捷開發,要求盡可能縮短迭代過程,不斷集成,持續交付,對質量控制提出了更嚴格的要求。在持續集成過程中,軟件代碼不斷變更,測試用例設計也經常改變,而企業級軟件產品本身規模龐大、組件模塊多,如果沒有一套擴展性好的單元測試框架,在持續集成過程中極早發現問題,整個敏捷開發迭代過程都會受到影響,從而延遲產品,給開發者帶來很大壓力。

1.1Google C++ Testing Framework簡介

Google C++ Test Framework (以下簡稱GTest)是Google專為C++項目開發的測試框架,該框架基于高獨立性、高重用性、易遷移性、富信息性、高執行效率等原則設計。用戶代碼通過簡單部署,進行批量化宏調用,就能完成所期望的絕大部分測試工作,并得到豐富的測試結果。

1.2GTest的三個級別和兩種斷言

GTest測試分為三個級別:測試、測試用例、測試程序。測試程序通常是一個項目的整體測試框架;測試用例是針對整個模塊檢測,一個測試程序會包括多個測試用例;測試則是對一個模塊內具體方法的檢測,因此一個測試用例包括很多個測試。這三個級別的具體實現方式將在后續給出試例。

斷言是GTest的基礎,它是一種監測被測代碼行為的機制。一個斷言是GTest宏的一次調用,而一次宏調用,就是一個測試。GTest的任何一個斷言,將產生以下三種結果之一:成功、非致命錯誤、致命錯誤。成功和非致命錯誤不影響整個測試程序的進行,而致命錯誤會直接導致測試程序退出。

GTest將斷言分為兩類:EXPECT_*和ASSERT_*。前者在發生錯誤時,給出非致命錯誤,使后續測試繼續進行;后者在發生錯誤時,強制整個測試程序退出。一般情況下,推薦使用EXPECT_*,除非該錯誤出現直接導致后續測試不能再按照所期望的情況執行[3],如出現重大內存溢出,數據驅動文件讀寫錯誤等。

1.3Google C++ Mocking Framework簡介

Mock的編程行為,在任何一種語言實現的任何一個工程中都有其適用范圍和意義。Mock行為使用戶代碼可以模擬所依賴的功能模塊,自行構建偽模塊,獨立進行單元測試[4]。使開發者在缺少外部環境(如數據庫、網絡等)支持、項目設計人員支持或其他開發人員支持的情況下,也能較完整地對本模塊進行測試,減少某一方法的測試對其它模塊的依賴性。

Google C++ Mocking Framework (以下簡稱GMock) 是Google為配合GTest而設計實現的一套Mock機制。Mock存在以下問題:①Mock工作繁雜、機械且易出錯;②手工Mock的準確度因人而異,不易度量,測試結果的參考價值大打折扣;③Mock工作更具體,更涉及業務。因此,在一個Mock上的經驗,不大可能應用到另一個Mock上。

GMock被同時設計成自動化設計工具和測試工具。在接口設計過程中,盡可能使用GMock進行接口功能性和易用性考察;在具體功能實現后,可以獨立對功能模塊進行測試。

1.4GMock的Mock范圍

GMock推薦將所有方法虛化(接口化)[6],因為Mock C++虛方法不論從編碼角度,還是從GMock內部邏輯實現上,都更簡單。這并不代表GMock只有這一種Mock支持。GMock幾乎可以Mock任何C++方法機制,包括虛方法(接口)、實函數和靜態方法。不論從測試代碼實現難度上,還是用例維護難度上,都是目前市場上大部分C++測試和Mock框架所不能比擬的。

2CISCO JabberWerxCPP開發測試框架設計

CISCO JabberWerxCPP(以下簡稱JWCPP)是CISCO眾多產品的底層通信庫,是XMPP系列協議的C++跨平臺實現。項目整體由數十個模塊構成,實現代碼約50余萬行。其結構特點是功能組件化,模塊之間依賴關系復雜。JWCPP的組件化模塊組織方式如圖1所示。

可見,JWCPP的最終產品,將JWXmppMgr、JWLoginMgr和JWConfigInfo三個模塊暴露給上層用戶,它們是API的提供者。iConnect模仿COM組件機制,將整個JWCPP的功能模塊以組件化形式組織起來,對上述三個API模塊而言,是功能的具體實例化者;在iConnect下層,則是每一個具體組件模塊,它們從功能上被分為業務部分和工具部分。

基于JWCPP的產品特點可見:①對于集成測試,只需從上層接口入手,輔以良好的結構設計,執行產品標準初始化流程(iConnect的實例化過程),即可通過簡單的接口調用,完成對功能的集成測試,通過GTest的斷言機制,判斷各功能實際執行結果;②對于單元測試,底層業務部分和工具部分中各個模塊相互調用,關系錯綜復雜,而所有功能模塊,都是從元組件conIUnknown、工廠組件conIClassFactory等組件中多重繼承而來,繼承層次繁多,在每一層繼承中,又有各模塊自己的靜態方法、虛方法和方法覆蓋與重構,這對單元測試的實現提出了挑戰。GMock本身設計的出發點和特性,適用于這種龐大冗雜的項目測試。基于以上分析的開發測試框架如圖2所示。

需要強調的是,本項目中單元測試和集成測試性質不同。集成測試關注功能完整性、各模塊間信息傳遞的正確性和最終整個業務流程的正確性,要求集成測試必須模擬實際產品環境,將整個產品在內存中實例化,即執行標準組件初始化、子組件工廠化生產等過程。而單元測試更多關注代碼級別的正確性,目的是盡可能遍歷所有可能的邏輯分支,這就決定了單元測試不需要實例化整個庫。該不同導致了集成測試的構建具有結構化、目標清晰、重用性良好的特點;而單元測試的構建則較為繁雜,龐大和瑣碎。

3開發測試框架實現

3.1集成測試

3.1.1集成測試實現原理

由圖1可知,將集成測試從產品代碼中獨立出來作為一個單獨項目,繼承產品所暴露的接口類,之后調用整個產品庫的初始化API,在內存中實例化該庫,并將其注冊到操作系統中,即可實現集成測試。

在集成測試框架設計中,主要引入三個環境構建模塊:TAWaitForMgr、TAWaitForTimer和TAEvents。整個集成測試框架,實際是一個調用-等待-處理回調-驗證的過程,由事件機制驅動。TAWaitForMgr是事實上的API調用者,它調用API接口,激活TAWaitForTimer進行等待和輪詢,當檢測到狀態變化時,激活事件機制TAEvents,產生回調事件,并對最終回調結果進行驗證,給出測試結果。在實現上,API的調用和測試結果驗證,都被包含在GTest的斷言機制中。引入TestIClient模塊,作為最終管理所有TA的功能模塊。通過實例化一個TestIClient,可以實現對全局任意模塊的即時調用。

3.1.2集成測試偽代碼

3.2單元測試

3.2.1單元測試實現原理

就本項目而言,各模塊間關系看似錯綜復雜,但采用GMock的Mock機制,實際上消除了模塊間的依賴性,其實現要比集成測試更為簡單。同時,由于單元測試不涉及業務邏輯,避免了集成測試實現過程中的調用—等待—處理回調—驗證過程,也意味著單元測試不需要通過產品實例化過程進行耗時的初始化。本項目采用集成測試管理所有TA測試模塊,引入TestUClient來統一管理TA單元測試模塊。

3.2.2單元測試偽代碼

5結語

本文在對企業級產品項目進行特性分析的基礎上,闡述了采用基于GTest和GMock的測試框架的必要性;提供了集成測試和單元測試框架的設計實現過程;最后給出在實際環境中的運行結果,表明了該設計方案的可實現性、易用性和高效性。后續研究中,將嘗試把該套測試框架與項目的持續集成系統相結合,實現項目開發測試的完全自動化。

參考文獻:

[1]ROGER S PRESSMAN.軟件工程:實踐者的研究方法[M].鄭人杰,譯.北京:機械工業出版社,2011.

[2]RUNESON P.A survey of unit testing practices[J].IEEE Software,2006,23(4).

[3]BOEHM B,V BASILI.Software defect reduction top 10 list[J].IEEE Computer,2007,34(1):135137.

[4]THOMAS D,HUNT A.Mock object[J].IEEE Software,2002,19(3):2224.

篇9

1 平面設計軟件二次開發現狀探討

目前,我國平面設計軟件的二次開發主要由兩種方式。一種是通過 adobe 公司的官方授權,而軟件開發企業進行開發。另一種是軟件平面設計人員或軟件開發人員為了自身使用便捷性等進行的私自開發。受不同開發方式的特點使得兩種方式開發中都存在著諸多的不足。例如:軟件開發企業受市場利潤、開發人員對平面設計專業理解不深等因素影響,軟件開發中存在諸多的不足。而平面設計人員針對平面設計工作需求進行的二次開發雖然具有較高的效果,但是由于不能進行市場運作,好的軟件系統只能在自己或朋友間使用。針對,adobe photoshop 的友好界面以及允許用戶二次開發的特點,現代平面設計人員越來越多的根據自身習慣以及使用需求進行二次開發。而商業企業也通過編程人員對平面設計工作了解的加深、網絡調查問卷等形式為二次開發提供了基礎需求信息。針對這樣的環境,現代平面設計軟件如何進行二次開發是軟件開發企業面臨的首要問題。筆者以自身開發編程經驗以及對平面設計人員的調查走訪等作為基礎,對平面設計軟件的二次開發進行了簡要論述。

2 平面設計軟件二次開發重點與方式

2.1 以平面設計軟件需求為基礎確定開發方向與重點

現代軟件開發企業在進行平面設計軟件二次開發前,應加強對平面設計軟件市場情況、應用需求等內容的調查與分析。以此為基礎確定平面設計軟件二次開發方向與重點。通過對市場情況、使用人群的調查使企業能夠針對市場運營情況、平面設計人員使用需求等確定開發方向與重點。以此使二次開發后的平面設計軟件能夠更具市場競爭力、更加符合平面設計人員的需求,為提高平面設計軟件二次開發市場價值、市場競爭力奠定基礎。

2.2加強平面設計專業應用的深入了解與理解,實現科學的平面設計軟件二次開發

加強平面設計專業應用的深入了解與理解是現代平面設計軟件二次開發的關鍵。只有針對專業應用的、面向應用對象的二次開發才能夠使二次開發后的平面設計軟件符合專業應用需求,提高二次開發軟件的市場競爭力。首先,平面設計軟件二次開發企業應按照開發功能、開發方向等對平面設計工作、專業應用等進行深入的了解。并采用調查問卷、從業人員調查等方式對現代平面設計工作軟件需求進行調研。在此基礎上,分析平面設計軟件允許二次開發的實際情況,開展軟件二次開發。通過這樣的方式能夠使平面設計軟件二次開發企業所開發的產品更加符合市場需求,促進企業產品市場競爭力的提高。

2.3 以 photoshop 為例對平面設計軟件二次開發流程、重點進行分析

Photoshop 作為現代平面設計中最為常用的平面設計軟件,從業人員對其功能需求、適用性等都有著較高的要求。雖然,adobe 公司通過不斷地更新對軟件系統進行了完善,但是,該軟件的二次開發仍具有較高的市場價值。Photoshop 的開放體系結構是該軟件獲得全球平面設計用戶認可與推崇的關鍵。通過允許用戶和開發者采用高級編程語言進行擴充、修改等二次開發滿足用戶的特殊要求。首先,在軟件二次開發過程中必須遵循一定的基本原則,使二次開發過程能夠在基本原則的指導下有序的開展,實現平面設計軟件二次開發的目的。在 photoshop 平面設計軟件的二次開發中,應遵循模塊化設計原則。以模塊化設計原則使原有問題簡單化、是復雜需求以模塊方式逐個完成。通過模塊設計原則使設計過程或測試過程中能夠獨立進行測試與優化,促進二次開發工作效率與工作質量的提高。遵循具有良好用戶界面原則使減少使用過程工作量的關鍵,在photoshop 軟件二次開發過程中應將良好用戶界面的便捷操作、幫助等功能作為開發的重點,避免誤操作等造成的損失。結構合理性是軟件二次開發的重點。根據photoshop 原有結構為基礎,在原有合理的結構基礎上進行相應補充是現代 photoshop平鍵設計軟件二次開發的主要方式。通過模塊化設計將平面設計軟件需求在原有合理結構下進行補充,實現二次開發的最終目的。

以 photoshop 第三方插件二次開發為例,首先應了解調用插件的主程序,以此為宿主進行二次開發。然后根據二次開發濾鏡的功能需求對濾鏡行為的飽和度、亮度、濾波等進行模塊設定與開發。在此基礎上,通過模塊與主程序的兼容性測試、模塊穩定性測試等確定開發質量與效果,實現平面設計軟件二次開發設計的目的。Photoshop 中的 SDK 提供了一些插件實例,這為photoshop 的二次開發提供了很好的基礎。我們在進行插件開發與編寫時,可以通過對實例的簡單變更實現插件的制作。void PluginMain (const short selector,PISelectionParams *selectionParamBlock,long*data,short *result);這是 photoshop 的入口函數原型,如果想通過插件的編寫實現區域的選擇可以通過selectionParamBlock ->documentInfo ->selection->bounds來獲取。根據插件程序編寫的實際需求對實例中的相關函數參數進行改變即可以實現基本的插件編寫。

篇10

關鍵詞 C++語言 跨平臺 軟件開發 設計實現

中圖分類號:TP31 文獻標識碼:A

20世紀70年代,Bell實驗室首先開發了C語言系列,經過十年的演化變遷,80年代C++語言便應運而生。C++語言是C語言的改良進化版本,除了沿用C語言直接運行在機器上,不需要虛擬機作為中介的高效率特點之外,根據軟件開發的需求還融入了虛函數、模板、操作符重載等特,因此C++語言得到了特別廣泛地應用。C++語言幾乎所有的平臺下進行使用,然而在不同平臺之間的應用時卻難以兼容,隨著多元化軟件系統開發的需求日益增加,如何在軟件開發中設計并實現C++語言跨平臺的方案將會是今后工作的重點。

跨平臺是軟件開發中的常用概念,指的是在一個操作平臺Windows設計開發的應用程序在另一個操作平臺Linux下同樣能夠使用運行,二者完全兼容。隨著當前軟件工程的迅猛發展,跨平臺的軟件開發能夠給應用程序本身帶來巨大的市場潛力,與此同時,如果應用軟件針對不同的CPU提供并測試各自的編譯版本,再到各自平臺上而產生不同的軟件版本,這樣的工作量是特別龐大的,因此,跨平臺的開發致力于是應用程序幾乎不做修改就能運用到不同的平臺上。

1跨平臺軟件開發的影響因素

在C++語言跨平臺軟件開發過程中,除了各個平臺間差異性和兼容性之外,C++語言自身的特性以及編譯環境對其都有影響,無形之中加大了跨平臺軟件開發的難度。

(1)不同平臺之間的差異性

軟件開發中的編程語言并不能直接地作用于計算機硬件設備,它們需要調用系統的API接口來實現對計算機的控制操作,然而目前許多操作平臺的API接口都有自己的標準,并且相互之間差異性較大,例如Windows系統和Unix系統之間的API接口的實現方式和實現原理都不一樣,這就在很大程度上阻礙了同一款軟件應用于不同平臺。在實際開發過程中,操作平臺的差異性會貫穿始終,從設計、代碼編寫到最終測試都會涉及。

(2)編譯器的定義不同

編譯器的主要功能是根據特定的語言定義將源代碼轉變成為可執行控制的指令,它顯然和C++語言的跨平臺應用有著十分巨大的關聯,由于語言定義的不同,同一種源代碼在不同的編譯器中最終得到的控制指令也不盡相同,這也就造成了跨平臺軟件開發難以開展實現。例如目前Windows平臺上的Visual Studio C++編譯器和Linux平臺上的GCC編譯器適用于C++程序代碼的編譯,然而由于C++的許多語言特性的實現細節都留給了編譯器開發商,每個開發商對編譯器的定義不同,從而致使C++源代碼不能跨平臺編譯。

(3)編譯系統的不同

編譯系統可以簡單到一個執行編譯器和連接器的命令腳本,也可以復雜到整個命令程序的生成。跨平臺的軟件開發必須要使用一個統一標準的編譯系統,這樣才能達到對程序代碼執行的一致性。例如Windows系統下的Visual Studio和Apple的Interface Builder編譯系統完全束縛了跨平臺編譯系統的開發,這兩者之間的編譯定義、指令執行都有著十分巨大的差別,往往同一個源代碼在各編譯系統中得到的編譯結果也完全不同,這也就導致跨平臺軟件開發無從談起。

2 C++語言跨平臺軟件開發的設計實現

C++語言跨平臺軟件開發的實現還存在著一些因素的阻礙,因此,采取何種方法措施清除這些影響因素是實現跨平臺軟件開發的關鍵。

(1)避免語言的擴展特性

許多語言為了滿足軟件開發的需求,往往會增添新的擴展特性,然而新的特性由于缺乏長期的實踐性和規范性,經常出現沒有被確切測試和精確定義的意外情況,其中常常包含著許多的異常漏洞和非標準內容,另外跨平臺開發對于程序的異常十分敏感,稍有瑕疵就難以排除障礙,因此,在實際的軟件開發過程中應當使用C++的標準特性而避免使用其擴展特性。

(2)建立跨平臺代碼庫

在跨平臺軟件開發過程中,通常會遇到某些特性定義一個平臺上有而另一個平臺上沒有的問題,例如Windows平臺有樹形控件和遞歸互斥體,DOS下沒有線程,Linux下的線程是依據進程來實現,因此這就需要建立跨平臺代碼庫來解決這一問題,通過建立一套完善的跨平臺代碼庫來實現某些特性統一化。

(3)采用腳本文件進行管理

一般來說,軟件開發過程中將會編寫大量的代碼,特別是涉及到跨平臺領域時,這一問題就顯現地格外嚴重,因此為了是代碼編寫更加簡單明了,通常使用腳本文件進行管理。利用腳本文件在程序編譯之前將相關文件從中剝離出來,并分配到合適的位置上,然后再應用程序的運行過程中,再從配置文件中讀取所需要的配置選項,另外在軟件開發過程中要盡量隔離平臺依賴程度較高的文件格式,而是采用腳本文件來進行可控管理。

總而言之,隨著廣大用戶對軟件便利性和實用的渴求,跨平臺軟件開發設計將會成為軟件工程中的一門重要分支,同時也將是今后軟件工程發展的方向趨勢。

參考文獻