時間:2022-04-06 04:59:10
序論:在您撰寫計算機軟件論文時,參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導您走向新的創(chuàng)作高度。
軟件運行出現(xiàn)性能方面的故障也是不可靠性問題之一。軟件產(chǎn)生運行故障特指客戶在使用軟件時,忽然出現(xiàn)故障問題,致使軟件產(chǎn)生了不科學的反饋。例如軟件忽然跳出或者造成系統(tǒng)死機。當前市場上幾乎所有的軟件都不可避免地存在運行問題。拿微軟最著名的WORD軟件來講,用戶在應用軟件過程中,會發(fā)生軟件沒有任何征兆地跳出的情況。假使客戶事前沒有保存文檔,就會導致之前編輯的內(nèi)容統(tǒng)統(tǒng)作廢。這時,軟件的BUG就會給客戶使用軟件造成非常大的麻煩。此外,一些軟件存在著安全漏洞,伴隨著科學技術(shù)的不斷發(fā)展,計算機網(wǎng)絡(luò)化成為未來發(fā)展的走向,用戶通常會在網(wǎng)絡(luò)環(huán)境中應用計算機軟件。但是用戶發(fā)現(xiàn)部分軟件的性能沒有問題,安全方面卻存在著巨大的紕漏,一旦使用這些存在安全漏洞的軟件就會加大本地計算機的安全風險。我國名企生產(chǎn)的QQ軟件,就是由于出現(xiàn)安全漏洞才使用戶密碼經(jīng)常被人盜走,給用戶帶來非常大的麻煩。
2軟件不可靠的解決對策
2.1做好軟件的評估審核
在實施軟件技術(shù)發(fā)展研究的過程中,需要隨時做好軟件的審核評估工作,以減少錯誤現(xiàn)象的發(fā)生概率。為保障軟件技術(shù)發(fā)展各個環(huán)節(jié)的標準一致,我們需要把軟件開發(fā)設(shè)計依據(jù)程序化實施,規(guī)避出現(xiàn)開發(fā)環(huán)節(jié)的跳躍性問題。能夠在軟件開發(fā)過程當中要及時進行對軟件的審核評估,這樣可以隨時察覺開發(fā)過程中出現(xiàn)的問題。有關(guān)的審核人員需要由管理、設(shè)計及保障人員共同組成,也包括不同崗位、各個領(lǐng)域的專家,以確保審核的專業(yè)水準。軟件的評估審核主要課題是考察設(shè)計人員交付的軟件文檔是否與之前文檔的準則與要求相統(tǒng)一,而且需要在考核后通過書面報告的形式得出相關(guān)的處理方案和評估結(jié)論,而質(zhì)量保障工作人員則能夠根據(jù)審核的意見與結(jié)論進行具體的操作。通過這一系列環(huán)節(jié)的任務(wù)能夠有效降低軟件開發(fā)的不可靠風險,以提升安全可靠性。另外,我們必須建立系統(tǒng)的質(zhì)量監(jiān)控體系,完善管理機制,不應該一味地實施軟件開發(fā)人員的編碼、獨立設(shè)計與單獨測試,規(guī)避增加技術(shù)管理缺陷的發(fā)生概率。
2.2功能設(shè)計合理化
對計算機軟件進行合理化功能設(shè)計是非常有必要的。應當知曉軟件設(shè)計出來是要讓客戶使用的,因此,我們必須意識到客戶是使用的主要群體,而且軟件的功能設(shè)計必須符合客戶的普遍需要,這樣該軟件的開發(fā)才有意義。假使客戶要求的功能沒有,用戶則會以為軟件設(shè)計技術(shù)存在著重大的失誤。所以,軟件在開發(fā)之前,程序員不能總是以滿足自己的喜好來實施設(shè)計,必須要按照客戶的需求合理取舍,實現(xiàn)軟件設(shè)計與用戶需求的平衡。另一方面,使用適當?shù)恼Z言設(shè)計軟件程序過程中,如若選擇的語言設(shè)計相對比較合適,就會取得事半功倍的效果,假如使用的語言設(shè)計不合適,那么該語言就很有可能不符合軟件的需求。譬如你要設(shè)計一款管理學校圖書館的應用軟件,就必須依據(jù)圖書館數(shù)據(jù)量的大小挑選最能符合軟件功能需求的數(shù)據(jù)庫軟件,再選擇兼容性比較強的接口軟件。
3結(jié)語
嵌入式實時軟件和生活的聯(lián)系十分緊密,在日常生活中,許多通信設(shè)備和電器系統(tǒng)都是有嵌入式系統(tǒng)組成的,例如數(shù)碼相機、手機、數(shù)字電視等都是嵌入式系統(tǒng)。由嵌入式系統(tǒng)組成的計算機,無論是鍵盤、硬盤,還是鼠標、耳機,都比普通計算機的功能良好。嵌入式實時軟件是一個運作平臺不能獨立進行軟件開發(fā),需要依靠其他硬件和軟件,嵌入式實時軟件具有良好的實時控制能力,在計算機軟件設(shè)計中有十分廣闊的應用前景。嵌入式實時軟件在計算機軟件設(shè)計中,能設(shè)計的系統(tǒng)有動態(tài)分配、緩存機制、預測指令等,嵌入式實時軟件能有效的提高軟件設(shè)計產(chǎn)品的質(zhì)量和軟件的可靠性。在計算機軟件設(shè)計中,嵌入式實時軟件最重要的部分是嵌入式微處理器,嵌入式實時軟件可以用于軟件和硬件同步設(shè)計,嵌入式實時軟件在計算機軟件設(shè)計中能支持多任務(wù)的實時,能在短時間內(nèi)中斷多任務(wù),具有良好的保護功能,能進行軟件檢測和修復。嵌入式實時軟件在計算機軟件設(shè)計中有極其重要的作用。
2嵌入式實時軟件在計算機軟件設(shè)計中的應用方法
2.1劃分各程序的職責
為保證軟件系統(tǒng)的實時,在進行嵌入式實時關(guān)鍵設(shè)計時,要劃分各程序的職責,避免軟件和硬件出現(xiàn)脫離現(xiàn)象,在計算機軟件設(shè)計過程中,要根據(jù)不同的程序的功能在軟件中安排特定的位置,在系統(tǒng)中使用優(yōu)先有序的分配模式,從而減少系統(tǒng)對任務(wù)的反應時間。
2.2嵌入式實時軟件的控制
在進行計算機軟件設(shè)計時,嵌入式軟件的要求會更高,在軟件運行過程中,如果出現(xiàn)時間偏差,就可能對整個軟件造成嚴重的影響,因此,在進行嵌入式實時軟件設(shè)計時,要嚴格的控制時間,創(chuàng)建一個良好的嵌入式實時軟件運行環(huán)境,確保計算機軟件安全、穩(wěn)定的運行。3.3嵌入式實時軟件開發(fā)的作用在進行嵌入式實時軟件設(shè)計過程中,需要和系統(tǒng)的軟件和硬件緊密的結(jié)合起來,將實時處理技術(shù)融入軟件開發(fā)中,利用實時機制進行事件處理,可以實現(xiàn)CORBA及相關(guān)模型,還可以在遠程調(diào)控中增加多種服務(wù)。在計算機軟件面向組件的設(shè)計過程中,嵌入式實時軟件能有效的增強軟件的獨立性和重用性,
3軟件設(shè)計實例
在本次計算機嵌入式實時軟件設(shè)計中,選擇能提高嵌入式實時系統(tǒng)的響應時間,可以同步控制的AT91RM9200微處理器。軟件設(shè)計使用到的系統(tǒng)有C++語言、數(shù)字信號處理器、微機保護系統(tǒng)、IO設(shè)備等。本次計算機軟件設(shè)計是在軟件和硬件的系統(tǒng)同時進行設(shè)計開發(fā)的。在進行計算機嵌入式實時軟件設(shè)計過程中,要先分析的系統(tǒng)的需求,然后進行計算機軟件設(shè)計、軟件測試固化、代碼生成等步驟。在進行計算機嵌入式實時軟件設(shè)計時,將軟件系統(tǒng)的功能分成多個模塊,將軟件設(shè)計開發(fā)模塊化,從而將系統(tǒng)中不同任務(wù)區(qū)分開來,建立硬件和軟件交互系統(tǒng),從而提高軟件設(shè)計的穩(wěn)定性。本次計算機嵌入式實時軟件的設(shè)計,中斷驅(qū)動方式采用可以提高嵌入式系統(tǒng)實時性的事件驅(qū)動方式,在進行計算機嵌入式系統(tǒng)內(nèi)部功能設(shè)計時,為確保系統(tǒng)內(nèi)部功能的積極響應,將設(shè)計任務(wù)周期化。在軟件設(shè)計過程中,為實現(xiàn)軟件內(nèi)部資源共享,將控制任務(wù)轉(zhuǎn)換成圖形結(jié)構(gòu),從而簡化設(shè)計流程。在設(shè)計計算機嵌入式實時軟件結(jié)構(gòu)時,要控制好軟件和硬件結(jié)構(gòu)的脫離現(xiàn)象,降低硬件對普通計算機軟件設(shè)計的影響。軟件設(shè)計過程中將每個任務(wù)設(shè)計在軟件系統(tǒng)中制定的位置中,從而提高系統(tǒng)對任務(wù)的響應時間。最后使用C++語言進行嵌入式實時軟件編程。
4嵌入式實時軟件的應用前景
【論文摘要】計算機軟件產(chǎn)業(yè)作為一個新興產(chǎn)業(yè),在互聯(lián)網(wǎng)經(jīng)濟時代具有巨大的經(jīng)濟增長潛力。在知識經(jīng)濟的今天,社會已經(jīng)全面進入信息時代,信息與技術(shù)產(chǎn)業(yè)的發(fā)展在計算機軟件上表現(xiàn)的尤為突出。計算機軟件作為人類創(chuàng)造性的智慧成果,其產(chǎn)權(quán)保護問題已經(jīng)成為了當代知識產(chǎn)權(quán)保護的重要內(nèi)容之一。文章主要通過典型案例深入探究造成計算機軟件侵權(quán)的多種原因,并針對性地提出預防及保護措施。
一、引言
你的電腦是否曾經(jīng)提醒過你:您是盜版軟件的受害者。但是對此提醒好像大部分的人都不以為然,甚至有的人覺得不僅不是受害者還是受益者。仔細計算一下你的電腦里的操作軟件,有多少是盜版,盜版WindowsXP、盜版殺毒軟件、盜版MicrosoftOffice……因為你享受了廉價的盜版軟件帶來的便利??墒悄阌袥]有想過自己侵犯了軟件企業(yè)的權(quán)益。
2005年9月,西寧某公司未經(jīng)北京北大方正電子有限公司許可,在其營業(yè)場所內(nèi)的一臺兼容機上安裝了盜版的方正軟件系統(tǒng)。西寧某廠在其營業(yè)場所的激光照排機主控制電腦上安裝了方正軟件系統(tǒng),據(jù)調(diào)查,該軟件信息窗口處有使用膠版作業(yè)的記錄。2006年2月21日,北京北大方正電子有限公司以西寧某公司、西寧某廠的上述行為嚴重侵犯該公司的著作權(quán)為由,向西寧市中級人民法院提訟,請求西寧某公司和某廠停止侵權(quán)、賠禮道歉并賠償經(jīng)濟損失。
QQ的軟件著作權(quán)是由騰訊控股有限公司所有,然而教師陳壽福對QQ做出的多項改動得到了許多用戶的喜愛。這些改動包括攔截正版QQ的廣告,但他卻為了自己牟利而在珊瑚蟲版上捆綁了其他網(wǎng)絡(luò)公司的一些廣告和垃圾信息。騰迅最早在2002年就曾指控陳壽福侵犯其軟件著作權(quán),并警告后者停止傳播珊瑚蟲QQ。而陳壽福也有所行動。他設(shè)計出一種非侵入性的軟件補丁讓自己的程序成為獨立的軟件,并能夠在同一臺電腦上與騰迅QQ并列運行。但到了2003年,他又開始對外提供珊瑚蟲QQ。到了2006年,面對珊瑚蟲QQ受歡迎程度呈有增無減的趨勢,騰迅以侵犯其軟件著作權(quán)為由將陳壽福告上法庭,并索賠人民幣50萬元(折合6.8萬美元)。這場官司以騰迅勝訴告終,法院判陳壽福賠償騰迅10萬元,而后者也服從判決繳納了賠款。而2007年8月初,騰迅向其總部所在的深圳警方報案,8月16日陳壽福被拘留。騰迅所稱,陳壽福侵犯了騰迅的著作權(quán)并以此非法牟利。目前,此案還未有定論。
二、計算機軟件侵權(quán)的原因分析
1、軟件登記不被重視
按照我國頒布實施的《計算機軟件保護條例》的規(guī)定,軟件著作權(quán)登記采取自愿原則,登記與否不影響其開發(fā)完成的軟件著作權(quán)產(chǎn)生和軟件著作權(quán)的商業(yè)運作。由于登記并不影響實際權(quán)利的享有,故很多企業(yè)認為軟件是否進行登記并不重要。然而,登記最大的作用就是對權(quán)利的公示性。而且由于軟件著作權(quán)程序不同于傳統(tǒng)的著作權(quán),其存在方式是以虛擬數(shù)據(jù)存儲于計算機中,易丟失,因此,企業(yè)應加強對軟件著作權(quán)的登記工作,可以減輕在侵權(quán)訴訟中的權(quán)屬舉證責任,也可以減少不必要的管理需要,降低企業(yè)的運營成本。
一方面,軟件登記機關(guān)在軟件著作權(quán)登記的具體工作中,按照我國保護軟件知識產(chǎn)權(quán)的法律、法規(guī),并參照有關(guān)軟件技術(shù)標準,針對在軟件登記申請中的法律關(guān)系和技術(shù)狀態(tài)出現(xiàn)的“顯而易見”的問題進行必要的審查,努力做到將軟件著作權(quán)糾紛隱患消除在萌芽狀態(tài),以減少軟件著作權(quán)糾紛;另一方面,企業(yè)在遭遇軟件著作權(quán)侵權(quán)的情況下,作為軟件著作權(quán)的權(quán)利人,有舉證證明權(quán)利所有的義務(wù)。在軟件著作權(quán)沒有登記的情況下,企業(yè)需要將軟件獨立研發(fā)的原始資料全部以及研發(fā)的最初時間等呈現(xiàn)出來才能證明自己系正當權(quán)利人。而有時由于時間問題或企業(yè)對資料保管上存在缺漏,導致軟件開發(fā)的原始資料丟失,此時要主張自己是軟件著作權(quán)人,就比較困難,從而導致侵權(quán)訴訟的敗訴。而在已經(jīng)進行了軟件著作權(quán)登記的情況下,由于登記的公示性,登記記載的著作權(quán)人無需對權(quán)利所屬再行舉證,舉證責任轉(zhuǎn)由對方提供相反的證據(jù),從而降低了訴訟風險。
2、合同約定不夠明確
軟件著作權(quán)使用許可合同是指軟件著作權(quán)人在軟件著作權(quán)保護期內(nèi)授權(quán)他人在合同規(guī)定的條件、范圍和時間內(nèi)使用其軟件,并通過這種授權(quán)而獲得報酬的合同。許可使用方式主要包括:獨占許可、獨家許可、普通許可。企業(yè)在簽訂軟件著作權(quán)使用許可合同中易忽略對使用方式、使用的權(quán)利范圍進行明確約定。如企業(yè)原本意圖簽訂獨占許可合同,而未對使用方式進行明確約定,使得軟件著作權(quán)人又將該軟件許可他人使用,導致企業(yè)支付了軟件使用費后所生產(chǎn)的產(chǎn)品不具有市場獨立性,失去競爭優(yōu)勢。另外對于約定使用的權(quán)利范圍不明確,由于現(xiàn)行法律規(guī)定,在軟件著作權(quán)使用許可中,對于合同中未作約定的權(quán)利,被許可方不得使用,故在軟件著作權(quán)許可使用合同中,應對被許可的權(quán)利進行列明,否則很容易在使用過程中造成權(quán)利受限或構(gòu)成侵權(quán)。
3、實質(zhì)性權(quán)利保護遭遇忽略
《計算機軟件保護條例》第十條規(guī)定:本條例對軟件著作權(quán)的保護不延及開發(fā)軟件所用的思想、處理過程、操作方法或數(shù)學概念等。因此,軟件著作權(quán)的保護并不能制止以不同方式表達同一構(gòu)思的實質(zhì)侵權(quán)。對于以不同方式表達同一構(gòu)思的實質(zhì)侵權(quán)如何保護,目前企業(yè)界尚不明了。特別是在目前利用反向工程獲取軟件結(jié)構(gòu)一般不認定為侵犯軟件著作權(quán)的情況下,為防止此類侵權(quán),企業(yè)應將用于特定產(chǎn)品的軟件與企業(yè)硬件產(chǎn)品相結(jié)合,申請專利保護,軟件一旦與產(chǎn)品硬件結(jié)合,在產(chǎn)品申請專利的情況下,對于軟件也就可以通過專利進行保護。如此,對軟件就可以達到強保護的目的。
4、保密措施不夠嚴密軟件反向工程是指將他人的目標代碼程序利用反匯編、反編譯軟件使其還原為匯編代碼的過程。雖然目前對于反向工程獲取軟件源代碼的手段是否合法、合理問題理論界尚存在爭論。但在我國司法實踐中已經(jīng)明確對于通過反向工程手段獲得軟件源代碼的行為本身是不構(gòu)成侵權(quán)的。但同時規(guī)定:“當事人以不正當手段知悉了他人的商業(yè)秘密后,又以反向工程為由主張獲取行為合法的,不予支持?!边@里實際指的是對軟件作為商業(yè)秘密保護的闡述。但很多時候,企業(yè)軟件通常作為產(chǎn)品推向市場,市場的公開化導致獲取產(chǎn)品途徑正當化,此時,要防止他人通過反向工程獲取軟件源代碼的主要手段就只能通過技術(shù)加密行為來進行。我市目前軟件企業(yè)產(chǎn)品推向公開化市場的并不多,主要是為特定企業(yè)定制軟件,另外很多企業(yè)為自身生產(chǎn)的需要,也有自行開發(fā)的軟件。對此,企業(yè)一要加強內(nèi)部軟件的保密度,盡量減少非正當途徑獲取軟件的幾率,同時也不能完全依賴于對軟件的商業(yè)秘密保護。對于軟件本身,更應當加強技術(shù)加密手段,即使在他人通過不正當途徑獲取軟件時,增加其反向工程的難度,減少知識產(chǎn)權(quán)糾紛,降低企業(yè)軟件開發(fā)投資風險。
5、法律保護亟待完善
目前對計算機軟件保護模式主要包括專利保護、版權(quán)(著作權(quán))、商業(yè)秘密保護、不正當競爭保護和商標保護。而在我國,主要通過《著作權(quán)法》實施對計算機軟件的著作權(quán)保護,同時我國出臺了專門的《計算機軟件保護條例》,以專門立法的形式加強對計算機軟件的保護。對于計算機軟件的專利保護、商標保護,在我國的計算機軟件保護體系中很少涉及。其中專利保護僅指我國專利局1993年的《專利審查指南》中的規(guī)定:涉及計算機程序本身或者數(shù)學方法本身的發(fā)明專利申請不能授予專利。同時又指出,如果一件含有計算機程序的發(fā)明專利申請的主題能夠產(chǎn)生技術(shù)效果,構(gòu)成一個完整的技術(shù)方案,就不能僅僅因為該專利申請含有計算機程序而不授予專利權(quán)。而商標保護是指軟件產(chǎn)品商品化后通過注冊商標防止盜版軟件的發(fā)行、出售等。
三、計算機軟件保護的對策
根據(jù)多宗計算機軟件侵權(quán)案件的判例,再結(jié)合我國目前保護計算機軟件各種法律的欠缺和不完善,在保護計算機軟件方面應從以下方面注意。
1、重視軟件登記,加強識別能力
軟件使用包括企業(yè)自行研發(fā)的軟件使用,也包括企業(yè)通過購買或被許可使用他人軟件。對于企業(yè)自行研發(fā)的軟件使用,需要注意的是,由于軟件著作權(quán)的非唯一性,其他軟件開發(fā)者通過獨立研發(fā)可以研發(fā)出與權(quán)利人一致或基本相似的軟件,兩者之間的著作權(quán)并不沖突,可以同時并存。此時,企業(yè)要做好著作權(quán)備案登記工作或保存好原始開發(fā)資料,防止在使用過程中被他人指認侵權(quán),做好軟件登記工作,減少侵權(quán)訴訟風險。
對于企業(yè)購買他人軟件使用過程中,主要是做好防盜版工作,如上所述,企業(yè)應通過正當途徑購買軟件,并保存好購買軟件的正規(guī)發(fā)票。同時加強企業(yè)采購人員對正版和盜版軟件的識別能力,降低企業(yè)經(jīng)營風險。另外企業(yè)在簽訂軟件許可使用合同中,應明確許可方式,簽訂保密條款,并明確被許可的權(quán)利范圍、使用地域范圍和使用期限,對于利用被許可軟件再行開發(fā)出新成果的歸屬雙方也可事先進行約定。
2、重視自我保護,加強軟件加密
就企業(yè)軟件管理而言,第一,加強對軟件產(chǎn)品的保密工作,減少不必要人員的接觸。第二,對于核心技術(shù)人員,因?qū)τ谲浖幕驹怼?gòu)思等并不受軟件著作權(quán)的保護,因此,員工的流失必然存在對軟件著作權(quán)實質(zhì)侵權(quán)的威脅。因此,企業(yè)應盡量保證技術(shù)核心人員的穩(wěn)定性。對其工作期間所開發(fā)的軟件(包括自由開發(fā)軟件)應明確約定歸企業(yè)所有,并設(shè)立相應的獎勵制度。
對于軟件本身,第一,提高軟件加密程度,增加反向工程獲取軟件源代碼的難度;第二,對于能夠與企業(yè)硬件產(chǎn)品結(jié)合的軟件,盡量與產(chǎn)品一起申請專利保護。第三,對推向市場的軟件產(chǎn)品申請注冊商標,通過實施品牌戰(zhàn)略加強對軟件產(chǎn)品的保護。
3、重視法律維權(quán),加強侵權(quán)舉證
當企業(yè)不可避免地遭遇到計算機軟件侵權(quán)糾紛時,如何適當?shù)剡M行舉證,成為訴訟勝敗的關(guān)鍵點。企業(yè)遭遇侵權(quán)時,首先應當提供作為權(quán)利人的證據(jù),軟件著作權(quán)進行登記的重要性也就在這里體現(xiàn)了。由于登記的公示性,只要沒有相反的證據(jù),軟件著作權(quán)的登記人就是理所當然的著作權(quán)人。對于沒有登記的軟件著作權(quán),權(quán)利人可以提供軟件源程序、軟件首次開發(fā)完成的時間等證據(jù)證明自己是著作權(quán)人。其次,需要舉證的就是侵權(quán)事實的存在。對于這一塊舉證,企業(yè)通常存在難度。因為一般侵權(quán)發(fā)生地都不在企業(yè)控制范圍內(nèi),企業(yè)也沒有相應的適當途徑能夠進入侵權(quán)地。對于盜版軟件銷售中侵權(quán)行為的取證,可采用三種方式。
公證取證方式,由權(quán)利人與公證機關(guān)工作人員一起作為購買者購買盜版軟件,并就所購軟件進行封存以及對整個購買過程進行公證。這樣的公證,在民事侵權(quán)訴訟中,如果沒有相反的證據(jù),一般都能夠得到確認。對于軟件著作權(quán)侵權(quán)行為的公證取證中,應注意的是,由于計算機軟件不同于其他著作權(quán),通過一般的拍照、復制等公證保全方式有時并不能達到證據(jù)所應有的證明力,因此,在計算機侵權(quán)取證中,應盡量聘請專家或?qū)I(yè)鑒定機構(gòu)參與取證,增加證據(jù)的證明力;通過行政執(zhí)法手段對侵權(quán)行為進行認定。在公證機關(guān)工作人員無法進入的侵權(quán)地,無法通過公證取證的方式進行證據(jù)收集,此時可通過版權(quán)局對侵權(quán)地進行查處,對于行政執(zhí)法機構(gòu)已經(jīng)認定的侵權(quán)行為,在沒有相反的證據(jù)情況下,法院都予以直接認定;申請法院進行證據(jù)保全,但申請證據(jù)保全一般應提供侵權(quán)存在的初步資料,否則法院一般不予采納。
不難看出,打擊軟件侵權(quán)將是一項艱巨和長期的任務(wù)。除了集中打擊行動之外,我們必須建立防控一體化的反侵權(quán)制度體系。
分層技術(shù)在計算機軟件開發(fā)中的應用,大大提高了開發(fā)的速度和質(zhì)量,是現(xiàn)階段我國軟件開發(fā)中最為重要的技術(shù)種類之一。為了能夠更好地發(fā)揮其技術(shù)優(yōu)勢,下面針對其各部分重點內(nèi)容進行分析研究:在計算機軟件開發(fā)中,分層技術(shù)的應用需要嚴格按照一定的措施和規(guī)律和進行,首先必須要將分層技術(shù)的相關(guān)理論以及概念進行掌握和熟悉。分層技術(shù)包括了計算機以及物理學兩個方面的含義,在這兩個方面中,物理含義的內(nèi)含較為復雜。具體來說,在計算機軟件研發(fā)的時候,分層技術(shù)就是將不同過程的解決方案置于不同的概念領(lǐng)域中,然后這整個層面就會形成一個較為封閉的體系,而這個體系中包括的不同層面在級別上都是平等的。針對軟件開發(fā)的構(gòu)架方面,分層技術(shù)的優(yōu)勢得以有效凸顯,在最初的時期,軟件開發(fā)構(gòu)架只是一種單層的構(gòu)架,直到20世紀后期才得以快速發(fā)展,并在一些小型的數(shù)據(jù)庫中得以應用。而單層結(jié)構(gòu)向雙層結(jié)構(gòu)發(fā)展,則是從服務(wù)器與計算機之間的建立聯(lián)系開始的,服務(wù)器與計算機得以聯(lián)系,并快速發(fā)展,從而不斷完善,形成了目前的計算機軟件結(jié)構(gòu)。由于計算機的雙層結(jié)構(gòu)中存在很多難以避免的缺陷,因此在不斷發(fā)展的過程中,其弊端也更加凸顯,在無法滿足人們需求的情況下,分層技術(shù)的出現(xiàn)有效解決了上述問題,并逐漸發(fā)展成為我國計算機軟件開發(fā)技術(shù)的主要發(fā)展趨勢。
2分層技術(shù)在計算機軟件開發(fā)中的應用
分層技術(shù)目前在我國已經(jīng)成為了主流的技術(shù)種類,其在我國計算機軟件開發(fā)中的應用也越發(fā)普及,下面進行具體分析:
2.1雙層技術(shù)的應用
從種類方面來看,分層技術(shù)主要有三層、四層以及多層次之分,但是這些都是在雙層技術(shù)的基礎(chǔ)上發(fā)展起來的。在不斷的發(fā)展過程中,軟件的開發(fā)效率也得以提升。我們首先針對雙層技術(shù)進行研究,這項技術(shù)在我國軟件開發(fā)中的應用,主要就是針對兩個端點進行,也就是客戶端和服務(wù)器??蛻舳藭罁?jù)不同用戶的資料為其提供所需要的使用界面,處理其中所產(chǎn)生的各種邏輯關(guān)系,然后服務(wù)器是用來接受客戶的各項信息,在經(jīng)過數(shù)據(jù)庫進行相關(guān)的計算和總結(jié),最終向客戶端傳達并使用。這項技術(shù)的應用大大提高了計算機的運行效率,但是其必要的條件就是用戶所使用的服務(wù)器,性能方面要有所保障,同時用戶使用不適合太多。一旦這兩個要素沒有保障,就會導致服務(wù)器因為工作負荷過重而出現(xiàn)系統(tǒng)性錯誤、計算機反映慢等問題也會出現(xiàn),這樣一來成本就會不斷增加,問題嚴重的話,還會導致人格數(shù)據(jù)的丟失,所以說在當今的研發(fā)中,這項技術(shù)已經(jīng)逐漸被其他技術(shù)所取代。
2.2三層技術(shù)的應用
上文已經(jīng)提到,三層技術(shù)的研發(fā)是建立在雙層技術(shù)基礎(chǔ)之上的,針對雙層技術(shù)中不完善以及有缺陷的部分進行改進,并相應地增加了應用服務(wù)器,這種服務(wù)器在計算機使用方面發(fā)揮著巨大作用,能夠針對用戶的各種數(shù)據(jù)進行儲存和整理,同時也大大提高了計算機信息訪問的效率,最為關(guān)鍵的一點是實現(xiàn)了人與計算機之間的交互。這種三層技術(shù)實際就是將業(yè)務(wù)處理、界面層次以及數(shù)據(jù)層次相結(jié)合,建立一個有機整體,相互獨立運行,共同為計算機服務(wù)。其中的界面層主要是進行科學的收集用戶使用軟件的需求,收集完成后需要將這些需求發(fā)送到之后進行工作的業(yè)務(wù)處理層,其次由業(yè)務(wù)處理層通過對這些用戶的需求進行分析,做出相關(guān)的申請請求在數(shù)據(jù)層進行數(shù)據(jù)的提取與處理,最后在數(shù)據(jù)層進行相應的處理,對相關(guān)的各種信息進行查詢,針對這一系列的分析之后,將結(jié)構(gòu)反饋給業(yè)務(wù)層,最終是由業(yè)務(wù)層完成工作的處理,再回到最初的界面層。以上所闡述的整個過程就是對系統(tǒng)的建立過程,正是因為這樣的處理,實現(xiàn)了系統(tǒng)工作效率的提升。
2.3四層技術(shù)的應用
在計算機軟件的開發(fā)中,雙層技術(shù)和三層技術(shù)都難以應對計算機使用復雜的環(huán)境,需要將三層次技術(shù)中的界面層、業(yè)務(wù)處理層和數(shù)據(jù)庫層科學地分開,這樣才能夠不斷降低這幾個層次之間的相互影響,因此需要將三層技術(shù)逐漸向四層技術(shù)發(fā)展,其中四層技術(shù)主要包含有業(yè)務(wù)處理層、web層、數(shù)據(jù)庫層以及存儲層。
2.4中間件技術(shù)的應用
分層技術(shù)在計算機軟件開發(fā)中的應用,可以針對不同部門進行優(yōu)化,目的就是充分發(fā)揮其潛能,實現(xiàn)優(yōu)勢互補,提高計算機整體的運行效率。正是因為分層技術(shù)的合理應用,才使得軟件開發(fā)的質(zhì)量大大提升。另外,還有效地降低了各種復雜問題的發(fā)生,簡化了計算機操作,只要利用單項操作就可以獨立完成計算機軟件的開發(fā),進而實現(xiàn)我國計算機軟件開發(fā)的高效性與高質(zhì)性。
3結(jié)語
1計算機軟件教育模式分析與探討
1.1高職高專計算機軟件教育的情況
只要有計算機,任何學院都可以辦計算機軟件專業(yè)。這既說明了計算機軟件教育的普遍,更說明了計算機軟件教育的硬件門檻實在是相當?shù)牡?。很多學院都可以辦計算機軟件專業(yè),很多學院的計算機軟件專業(yè)都差不多。高等教育本科以上的招生連年在擴大,從招生質(zhì)量上說,高職高專招到的學生的素質(zhì)是相對比較差的,而學習計算機知識往往需要比較高的邏輯能力、自學能力與刻苦精神,這讓高職高專的計算機軟件教育難上加難,現(xiàn)在社會上對計算機的應用水平在逐年提高,對計算機專業(yè)的要求也在逐年提高,學生的低素質(zhì)和社會的高要求成了高職高專教育的一個突出問題,對此,幾乎所有的高職院校都沒有辦法完全給予解決,按照原來的解決方法,以教授學生程序知識為主,在教他們知識的同時培養(yǎng)其它素質(zhì)。因為學生的整體素質(zhì)相對低,而且在入學前又沒有學過任何程序知識,在入門時發(fā)生極大的困難,學生往往只能記住程序語言本身的語法,而對于程序語言的共性的知識,特別是與做程序相關(guān)的邏輯能力、自學能力、解決問題的能力與刻苦精神等都沒有得到強化訓練,結(jié)果在學習其它語言時又要重新把這些幾乎是同樣的內(nèi)容學一遍,而且極容易產(chǎn)生以下的結(jié)果,學生學了很多門語言,但每門都不精,而且每門語言都花去了幾乎相同的時間,白白浪費了很多的時間,能不能將這很多門語言都換成一門語言呢?答案是否定的,因為有些專業(yè)知識是結(jié)合語言來學習的,比如說學習數(shù)據(jù)庫,就得安排Access或者vfp來教學;學習底層開發(fā),就得安排C語言甚至匯編語言來學習;學型項目開發(fā),就得安排visualstatio。還不算在學生畢業(yè)后,到了單位再按單位要求使用的語言。學生在語言的學習上花了太多的時間,就沒法保證其在短短的一年多到兩年的時間內(nèi)達到社會的要求。
1.2高職高專計算機軟件師資
一般說來,計算機軟件這門學科需要人有強大的邏輯分析能力和歸納能力,而且因為計算機的基本核心都是國外做的,英文單詞出現(xiàn)得不少,所以也需要有一定的英文水平,-196-因此做計算機軟件這門學科的人一般來說素質(zhì)不錯,而且數(shù)學一般很好,這幾年,高職高專院校都比較注重技能的培養(yǎng),采用多種手段來提高教師的素質(zhì),將教師送去培訓、讀研究生;從社會上招聘一些有實際經(jīng)驗的原軟件公司技術(shù)員;教師自學、幫教等。不少教師努力做科研、做課題、寫論文、評職稱,不少教師已經(jīng)獲得了副教授以上的職稱,因此,從師資上說,高職高專的師資應該是不錯的。
1.3現(xiàn)行高職高專計算機軟件的教育模式
參考做得比較成功的軟件學院的做法,甚至與它們聯(lián)合辦學;在課程設(shè)置上與這些軟件學院同步;普遍采用案例教學法;這種教育模式無疑是先進的,效果也是非常好的,但只針對素質(zhì)較好的學生,以及教學水平相當高的教師。它只說明了軟件知識教育的內(nèi)容和先后問題,并沒有說明如果學生的素質(zhì)達不到要求該怎么辦?事實上,大部分的教育者都沒有說明這個問題,這很正常。就算是素質(zhì)較好的學生,有的對這種模式也未必適應,程序設(shè)計往往剛剛?cè)腴T,就面臨畢業(yè)了。所以高職高專軟件教育的問題在于對學生教不教得懂?教懂的時間是多少?靈活運用程序知識的程度是多少?單單采用以上的教育模式還不足以解決這些問題。
2解決方法
2.1傳統(tǒng)素質(zhì)的培養(yǎng)方法
因為計算機專業(yè)脫胎于數(shù)學專業(yè),計算機軟件需要學生具有較強的邏輯分析能力,數(shù)學好的話一般來說邏輯能力也相對強,所以傳統(tǒng)的素質(zhì)培養(yǎng)方法是先讓學生學好數(shù)學,再來學習程序設(shè)計。這種培養(yǎng)方法似乎無可厚非。但這里有幾個問題,高職高專的學生數(shù)學會很好嗎?能教好他們數(shù)學嗎?要教好他們數(shù)學得用多少時間?結(jié)果可想而知。
2.2教學與程序邏輯之間的關(guān)系
一般來說,數(shù)學思維好的學生邏輯能力一般較強,而且數(shù)學是創(chuàng)建計算機科學的基礎(chǔ),所以一般來說,學習計算機程序開發(fā)在很多人眼里該先學好數(shù)學,再學計算機程序開發(fā);那么數(shù)學和程序開發(fā)一定具有必然的一一對應關(guān)系嗎?未然,因為雖然計算機科學是從數(shù)學演變而來的,在早期的計算機應用中確實以數(shù)學計算為主,但隨著計算機科學的發(fā)展,特別是現(xiàn)在的應用系統(tǒng)開發(fā),如果不是很高端應用的話,用到的數(shù)學知識是有限的,主要用到程序邏輯思維,數(shù)學思維好的學生只要將程序多加研讀,一般來說,獲得程序邏輯思維是不成太大問題的,但如果數(shù)學思維差點的學生。那就難了。對這樣的學生,如果先把他們的數(shù)學教好了再學程序的話,那代價就太大了,也沒這必要,所以設(shè)想如果直接進行程序邏輯能力的訓練讓他們獲得比較強的程序邏輯,那么他們學習后續(xù)課程就容易多了。
2.3程序素養(yǎng)的培養(yǎng)方法
(1)特別重視學生入門語言的教學,不要為了學習語言而學習語言,入門時重點不是學習語言本身,而是程序知識的共性,與做程序相關(guān)的邏輯能力、自學能力、解決問題的能力、刻苦精神等。這些知識和素質(zhì)如能迅速解決,對于后續(xù)內(nèi)容的學習非常有利。對于程序語言的選擇一般以VisualBasic程序設(shè)計語言為佳,因為用這門語言既可學習面向過程的程序知識,又可以學習面向?qū)ο蟮某绦蛑R,而且語法相對簡單,表達清析明了,往后還可以繼續(xù)學習。學完了程序知識的共性與能力訓練之后再擴展其他程序知識(包括各種控件的屬性、事件與方法,甚至學習其他語言如C語言)。(2)改變原來的以知識教育為中心、能力教育為輔的教育模式,改為以能力教育為主、知識學習配合能力教育的教育模式。比如說對于數(shù)據(jù)庫知識的學習,如果我們是用Access來學習的話,那Access本身的知識就不必學得過深,會用其做數(shù)據(jù)庫即可,重點是關(guān)系數(shù)據(jù)庫的各方面的知識。也就是說,在學生掌握程序能力的過程中,他那個階段需要什么知識,我們就給他學什么知識,按知識能力過關(guān)而不是一定按原有課程的模式來學習。(3)在教學方法上采用以知識精煉基礎(chǔ)、程序素養(yǎng)訓練為主的教學方法。程序素養(yǎng)是程序設(shè)計基礎(chǔ)知識、算法的邏輯推導能力、相應的記憶力、歸納能力、與學習能力的綜合體現(xiàn)。教師要進一步地認識、分解程序素養(yǎng),為學生構(gòu)建一個更低的起點,一副更好的梯子,沿著這把梯子在老師的幫助下就能獲得程序素養(yǎng),進入程序開發(fā)的大門。在這里,筆者專門分解了程序知識最基本的要素:變量,以此為突破口對程序基礎(chǔ)知識進行重構(gòu),并以此進行程序邏輯能力與歸納能力的訓練。筆者認為,變量是最基本的數(shù)據(jù)結(jié)構(gòu),對變量的特點、變量的形態(tài)、變量的作用范圍、特別是變量是如何同程序結(jié)構(gòu)結(jié)合實現(xiàn)程序思路,普通的程序設(shè)計教材上并沒有詳細說明,這些知識要依賴學生在記憶程序知識并做大量的程序開發(fā)之后才由他們自己突然醒悟。對于程序設(shè)計基礎(chǔ)知識,根據(jù)構(gòu)建最低平臺的原則,選擇最易學的語言VB作為講解語言,全部知識分為以下方面:第一部分,①數(shù)據(jù)類型②常量、變量、函數(shù)表達式③程序的三種結(jié)構(gòu)順序、分支、循環(huán)④數(shù)組⑤自定義過程與函數(shù)。第二部分,面向?qū)ο蟛糠?。并對里面的?nèi)容作了最大程度的精煉,并且各種能力的訓練也融入其中。按照這種原則構(gòu)建出來的基礎(chǔ)知識,必須能做到讓學生需要記憶的詞最少,內(nèi)容最少,內(nèi)容之間或內(nèi)容本身要與學生原來的知識結(jié)構(gòu)掛勾,就是英語單詞本身,也要給學生一個記憶的方法,根據(jù)學習的建構(gòu)主義,新知識要與頭腦中的舊知識發(fā)生關(guān)聯(lián),新知識才能得到好的理解,單純的背誦很容易讓人遺忘。然后再采用反復與自我講解的方法加深這種記憶,并將其從淺性記憶上升至深度記憶,要做到回憶某種記憶時幾乎是不假思索,脫口而出,這是素養(yǎng)訓練成功的第一步,根據(jù)本人多年的程序教學的經(jīng)驗,如果能為學生構(gòu)建好這種恰當?shù)挠洃泝?nèi)容與方法,學生能記住的幾率大增,而且不容易遺忘,記憶的速度又快,而這些又是編程中最需要的東西。邏輯能力與歸納能力是如何訓練的呢?首先要為學生構(gòu)建一個推導的起始點,這個起始點要極低,極簡單,簡單到常人都會的程度。然后與寓復雜到簡單之中。將這個簡單的邏輯分解成常人都會的邏輯,讓學生的固有的邏輯與程度邏輯搭上橋,讓學生聽到這種例子就懂,而上下例子的邏輯差一點點,通過上一例子的方法再加上教師的指點,學生應該能做出下一例子,這樣就加深了對程序基本分析方法和算法的理解,每做一個例子都應有一個新的體會,經(jīng)過這一連串的體會,學生就能獲得一定的歸納能力與邏輯能力。比如說講循環(huán)體,教師設(shè)置邏輯推導已為1+1,學生會做1+1后,需要講解為什么要用這程序來解決這個問題,然后做1+1+1+1+1,5個1相加,再做1+2+3+4+5。再做1+3+5+7+9,再做2+4+6+8+10。再做1+3+6+10+15等。這些例子是簡單的,簡單才能讓學生對于其中的數(shù)學問題一看就懂,才能不涉及更多的數(shù)學知識,我們需要做的就是盡力去挖掘這些例子所體現(xiàn)的程序能力。一般說來,變量是程序設(shè)計的核心概念,對于變量的分析也就等于分析了整個程序,將變量分為控制變量和累加變量兩大類,控制變量主要負責程序的流向和循環(huán)的次數(shù),而累加變量主要是存數(shù),并在其上進行算術(shù)運算。對1+1賦值給一個變量這樣一個問題,要理解累加變量的作用,也就是sam=sam+1這條語句是怎么編出來的,將它作為1+1+1+1的基礎(chǔ),對于1+1+1+1這個例子要理解為什么要用循環(huán),循環(huán)所用到的控制變量和累加變量,它們的初值是多少,在哪賦初值,變量在哪使用,終值為多少,在哪變化,變化量為多少,等等,在教師講解這些問題之后,要組織學生復述,一定要學生親口用自己的語言說出來才算理解:然后理解上一程序與下一程序之間的不同:用這種教法處理余下的問題,學生往往易于接受,因為這些例子涉及的數(shù)學并不難,其實極簡單,學生可以將注意力全部放在問題的解決上,解決方法已經(jīng)標準化,只要用同一方法分析,必然能得到滿意的結(jié)果,這樣從簡單到復雜的推演過程能大大提高學生的歸納能力、邏輯能力與解決問題的能力。如果對程序設(shè)計的教學環(huán)節(jié)重新組織,在每一環(huán)節(jié)都像循環(huán)的講解那樣分析,相信對學生程序素養(yǎng)的提高幫助是非常大的。(4)在教學中大量使用誘導式教育,在階梯式的問題體系里,學生在解決問題時,教師不能直接給出答案,盡量地用學生熟悉的生活常識來啟發(fā)學生,讓他盡量自己解決問題;當學生解決了這個問題之后,要及時誘導學生進行總結(jié),熟悉解決問題的思路,養(yǎng)成總結(jié)的習慣,加深對知識的理解,然后誘導學生進入下一個問題。(5)在教學中盡量利用多媒體課件,形象生動的多媒體教學會促進學生對于程序知識的記憶。對他們理解問題起到事半功倍的效果。
2.4實踐
筆者特意選擇了幾類人群來試驗,一類是中專生,一類是成人,一類是大專生對他們教授VisualBasic程序設(shè)計語言時用兩種教學方法來試驗,采用基于知識精煉的程序素養(yǎng)訓練為主教出來的學生效果更好,解決問題的能力、學習能力更強。
3總結(jié)
[論文摘要]計算機軟件作為一門學科得到了迅速發(fā)展,相關(guān)技術(shù)和方法層出不窮,研究領(lǐng)域不斷深入和發(fā)展,計算機的應用范圍也得到了很大程度的普及,人們對軟件系統(tǒng)的需求急劇上升,隨之而來的軟件規(guī)模越來越大,開發(fā)費用越來越高,開發(fā)的質(zhì)量和效率不斷降低的問題日益嚴重,如何解決這些日益復雜的矛盾,滿足高質(zhì)量、高效率地開發(fā)各種各樣日趨復雜、大型的軟件系統(tǒng)的需求,消除所謂的“軟件危機”,成為計算機軟件學科所面臨的重要課題。
軟件復用技術(shù)的提出成為消除這種危機的一種解決方案。近年來,特別是20世紀90年代以后,面向?qū)ο蠓椒ê图夹g(shù)成為主流的軟件開發(fā)技術(shù),使得軟件復用被視為解決軟件危機一條現(xiàn)實可行的途徑。與此同時,模型構(gòu)件技術(shù)、分布式系統(tǒng)、領(lǐng)域工程、自動生成技術(shù)又為軟件復用注入了新的活力,本文對面向?qū)ο笙到y(tǒng)分析階段軟件復用模型進行了研究和探討。
一、軟件復用
軟件復用的概念是在1968年NATO軟件工程會議上被第一次引入的,在其后的幾十年中,進行了許多復用技術(shù)的研究和實踐活動,但因技術(shù)和非技術(shù)方面的種種因素,造成復用技術(shù)在整體上對軟件產(chǎn)業(yè)的影響不盡人意。面向?qū)ο蠓椒ê图夹g(shù)的出現(xiàn)及成熟,為軟件復用提供了強有力的技術(shù)支持,尤其是軟件構(gòu)件技術(shù)的發(fā)展為其注入了新的活力,使得軟件復用研究重新成為熱點,被視為解決軟件危機、提高軟件生產(chǎn)效率和質(zhì)量的一個現(xiàn)實可行的途徑,同時也成為了避免軟件開發(fā)中重復勞動的解決方案,并在一定程度上降低了軟件開發(fā)的費用。目前,軟件復用技術(shù)主要從兩個方面來考慮:產(chǎn)品復用、過程復用。
產(chǎn)品復用:所謂產(chǎn)品復用是指復用已有的軟件產(chǎn)品。目前基于構(gòu)件的和面向服務(wù)的軟件開發(fā)模式就是建立在這種軟件復用的基礎(chǔ)上的。這兩種開發(fā)模式主要通過對現(xiàn)有的構(gòu)件和服務(wù)進行合成或集成,從而生成所需要軟件的過程。產(chǎn)品的復用是目前軟件復用技術(shù)研究的焦點,在這個復用的過程中涉及到的關(guān)鍵技術(shù)是構(gòu)件技術(shù)和軟件架構(gòu)技術(shù),在成熟的構(gòu)件和架構(gòu)的技術(shù)上,可以使產(chǎn)品復用達到良好的效果。
二、面向?qū)ο笙到y(tǒng)分析(OOA)階段軟件復用模型
1.OOA階段可重用性的本質(zhì)
編程階段不同類型的編程軟件和類有不同深度的可重用性:高深度、中深度、低深度。
所謂高深度重用是指在不進行任何改變就可以直接使用重用產(chǎn)品的重用,像可視化開發(fā)工具中的所有控件,就屬于這方面的重用;目前,面向服務(wù)的軟件開發(fā)技術(shù)中對服務(wù)的重用,只要程序員獲得服務(wù)者提供的接口,就可以直接使用別人開發(fā)的產(chǎn)品,這種復用也是高深度的復用技術(shù),因此高深度的軟件復用,可重用性最好;所謂中深度的重用,程序員可以根據(jù)自己的開發(fā)經(jīng)驗,開發(fā)出一些比較通用的組件,在具體的使用中,對這些通用的組件只要稍作修改就可以應用于具體的項目中去,這種復用可重用性較好。當然,對于低深度的可重用性就于具體的項目相關(guān),它只能局限于該項目,可重用性最差。由此可見,可重用性與業(yè)務(wù)邏輯的相關(guān)性是成反比例關(guān)系的:越是與業(yè)務(wù)邏輯無關(guān)的重用,重用性越好;反之則越差。
2.OOA階段軟件復用模型研究
OOA階段的軟件復用,在一定程度上可以說是建立在許多優(yōu)秀的系統(tǒng)分析員實踐和經(jīng)驗基礎(chǔ)之上的復用,是一種思想上的復用。在這個階段的軟件復用更具有通用性和重用性,因此,構(gòu)造這個階段的軟件復用模型,可以使復用達到更好地效果。
3.范式抽象
所謂范式就是抽象的解決方案模板,它可在不同具體項目中使用。范式抽象就是在此基礎(chǔ)上提出的對范式的設(shè)計方法。針對不同的問題域,就應該有與之對應的設(shè)計方法,這樣可以使范式的設(shè)計達到很高的重用性。針對OOA階段具體現(xiàn)狀,有三種范式抽象方法:
(1)關(guān)系抽象
在OOA階段,針對具體的項目,會分析出大量的關(guān)系模型。例如在學校排課表系統(tǒng)中,需要定義教師類,它包括教師姓名、性別、職稱等有關(guān)教師的基本信息,同時,為了便于教師很快得出自己的上課表,還需要定義一個與教師對應的教師課表類,這個類顯示了一周中教師的課程安排情況;在網(wǎng)上購物系統(tǒng)中,需要定義一個購物者類,包括了購物者的相關(guān)信息,同時為了得到購物者所購的物品,還需定義一個購物車類,該類描述了購物者與所購買的物品的對應關(guān)系。這兩個系統(tǒng)的具體業(yè)務(wù)是不同的,但教師類與教師課表類、購物者類與購物車類的關(guān)系卻是基本相同的,都是一個實體對另一個實體的擁有關(guān)系,同樣,所進行的操作也基本相同,諸如都涉及到對所擁有實體的查詢操作等。因此可將這種關(guān)系抽象出來,定義為擁有關(guān)系,然后在此關(guān)系的基礎(chǔ)上定義相應的操作。這種關(guān)系就可以以范式的形式保存起來,在不同的項目中都可重用這種范式。同樣,還可抽象出許多其他的關(guān)系范式,如實體——內(nèi)容關(guān)系,上下級關(guān)系等。這些關(guān)系都是不依賴于具體的項目和業(yè)務(wù)的,可重復使用,只是在針對具體的業(yè)務(wù)時,在相關(guān)屬性和方法上稍作修改就可以了。
(2)相似對象抽象
在不同項目的OOA階段,還會分析出大量的相似對象或類,例如用戶、用戶組、角色、權(quán)限等在所有涉及到權(quán)限管理的系統(tǒng)中都會出現(xiàn)這類對象;在一些相同領(lǐng)域的項目中,由于涉及的領(lǐng)域的標準化,有些對象的相似性以及相同的機率會更大。對于這些相似程度如此大的對象來說,由于其在項目開發(fā)中的相對獨立性,把這些對象模型以范式的形式保存起來會使分析的結(jié)果得到更大的重用。
按照上述思想進行的范式抽象稱為相似對象抽象,這種抽象依據(jù)的是分析階段的對象模型,這種對象模型具有獨立的、高度的相似性,抽象出來的范式可稱為對象范式。這種范式與具體項目之間的相似可稱為表面相似性。表面相似越接近,范式的重用性就越大。
(3)領(lǐng)域抽象
所謂領(lǐng)域抽象是用于某一領(lǐng)域的抽象問題的解決方案。在同一個領(lǐng)域的項目開發(fā)過程中往往能夠總結(jié)出更多的相似性,包括關(guān)系相似性和表面相似性,將二者相結(jié)合,可構(gòu)建出與行業(yè)有關(guān)的構(gòu)件。這種構(gòu)件是建立在具體領(lǐng)域上的一種抽象,稱為領(lǐng)域抽象。領(lǐng)域抽象的過程可借助領(lǐng)域工程的知識和方法。其中在OOA階段主要用到了領(lǐng)域分析的方法。所謂領(lǐng)域分析是被稱為領(lǐng)域工程更大的學科中的第一項技術(shù)活動。當業(yè)務(wù)、系統(tǒng)或產(chǎn)品域被定義為長期的業(yè)務(wù)策略,則可以展開持續(xù)的創(chuàng)建強健的可復用庫的工作,其目標是能夠在領(lǐng)域中以非常高的可復用構(gòu)件率來創(chuàng)建軟件。領(lǐng)域分析在領(lǐng)域抽象過程的作用是從OOA得出的對象、關(guān)系、行為模型的抽象出與領(lǐng)域相關(guān)的領(lǐng)域范式,其中包括關(guān)系范式、相似對象范式和處理過程范式等。這些范式與前面提到的范式唯一不同就是有了特定領(lǐng)域的標識,這在同一領(lǐng)域的開發(fā)中將達到高度的重用性。
三、總結(jié)
本文通過對軟件復用技術(shù)的分析,提出了一種面向?qū)ο笙到y(tǒng)分析階段軟件復用的模型,并對此模型中所涉及到范式抽象方法做了探討,并把它們應用于具體的項目中去,從而很好地利用的設(shè)計思想,大大提高了項目的完成速度。另外,對于范式庫的研究也為建立在高層上的軟件復用庫管理提出了新的研究課題:例如對于編碼階段復用構(gòu)件庫的檢索條件也可以擴展為以范式為索引的檢索等。這些都成為下一步的研究課題。
[參考文獻]
[1]RogerS•Pressman著,黃柏素、梅宏譯:《軟件工程實踐者的研究方法》,機械工業(yè)出版社1999年版。
[2]黃靖、趙海光:《軟件復用,軟件合成與軟件集成》,《計算機應用研究》2004年。
[3]王麗娟:《軟件復用技術(shù)及其在軟件開發(fā)中的應用》,《中山大學學報論壇》2004年第24卷第1期。
[論文摘要]計算機軟件作為一門學科得到了迅速發(fā)展,相關(guān)技術(shù)和方法層出不窮,研究領(lǐng)域不斷深入和發(fā)展,計算機的應用范圍也得到了很大程度的普及,人們對軟件系統(tǒng)的需求急劇上升,隨之而來的軟件規(guī)模越來越大,開發(fā)費用越來越高,開發(fā)的質(zhì)量和效率不斷降低的問題日益嚴重,如何解決這些日益復雜的矛盾,滿足高質(zhì)量、高效率地開發(fā)各種各樣日趨復雜、大型的軟件系統(tǒng)的需求,消除所謂的“軟件危機”,成為計算機軟件學科所面臨的重要課題。
軟件復用技術(shù)的提出成為消除這種危機的一種解決方案。近年來,特別是20世紀90年代以后,面向?qū)ο蠓椒ê图夹g(shù)成為主流的軟件開發(fā)技術(shù),使得軟件復用被視為解決軟件危機一條現(xiàn)實可行的途徑。與此同時,模型構(gòu)件技術(shù)、分布式系統(tǒng)、領(lǐng)域工程、自動生成技術(shù)又為軟件復用注入了新的活力,本文對面向?qū)ο笙到y(tǒng)分析階段軟件復用模型進行了研究和探討。
一、軟件復用
軟件復用的概念是在1968年NATO軟件工程會議上被第一次引入的,在其后的幾十年中,進行了許多復用技術(shù)的研究和實踐活動,但因技術(shù)和非技術(shù)方面的種種因素,造成復用技術(shù)在整體上對軟件產(chǎn)業(yè)的影響不盡人意。面向?qū)ο蠓椒ê图夹g(shù)的出現(xiàn)及成熟,為軟件復用提供了強有力的技術(shù)支持,尤其是軟件構(gòu)件技術(shù)的發(fā)展為其注入了新的活力,使得軟件復用研究重新成為熱點,被視為解決軟件危機、提高軟件生產(chǎn)效率和質(zhì)量的一個現(xiàn)實可行的途徑,同時也成為了避免軟件開發(fā)中重復勞動的解決方案,并在一定程度上降低了軟件開發(fā)的費用。目前,軟件復用技術(shù)主要從兩個方面來考慮:產(chǎn)品復用、過程復用。
產(chǎn)品復用:所謂產(chǎn)品復用是指復用已有的軟件產(chǎn)品。目前基于構(gòu)件的和面向服務(wù)的軟件開發(fā)模式就是建立在這種軟件復用的基礎(chǔ)上的。這兩種開發(fā)模式主要通過對現(xiàn)有的構(gòu)件和服務(wù)進行合成或集成,從而生成所需要軟件的過程。產(chǎn)品的復用是目前軟件復用技術(shù)研究的焦點,在這個復用的過程中涉及到的關(guān)鍵技術(shù)是構(gòu)件技術(shù)和軟件架構(gòu)技術(shù),在成熟的構(gòu)件和架構(gòu)的技術(shù)上,可以使產(chǎn)品復用達到良好的效果。
二、面向?qū)ο笙到y(tǒng)分析(OOA)階段軟件復用模型
1.OOA階段可重用性的本質(zhì)
編程階段不同類型的編程軟件和類有不同深度的可重用性:高深度、中深度、低深度。
所謂高深度重用是指在不進行任何改變就可以直接使用重用產(chǎn)品的重用,像可視化開發(fā)工具中的所有控件,就屬于這方面的重用;目前,面向服務(wù)的軟件開發(fā)技術(shù)中對服務(wù)的重用,只要程序員獲得服務(wù)者提供的接口,就可以直接使用別人開發(fā)的產(chǎn)品,這種復用也是高深度的復用技術(shù),因此高深度的軟件復用,可重用性最好;所謂中深度的重用,程序員可以根據(jù)自己的開發(fā)經(jīng)驗,開發(fā)出一些比較通用的組件,在具體的使用中,對這些通用的組件只要稍作修改就可以應用于具體的項目中去,這種復用可重用性較好。當然,對于低深度的可重用性就于具體的項目相關(guān),它只能局限于該項目,可重用性最差。由此可見,可重用性與業(yè)務(wù)邏輯的相關(guān)性是成反比例關(guān)系的:越是與業(yè)務(wù)邏輯無關(guān)的重用,重用性越好;反之則越差。
2.OOA階段軟件復用模型研究
OOA階段的軟件復用,在一定程度上可以說是建立在許多優(yōu)秀的系統(tǒng)分析員實踐和經(jīng)驗基礎(chǔ)之上的復用,是一種思想上的復用。在這個階段的軟件復用更具有通用性和重用性,因此,構(gòu)造這個階段的軟件復用模型,可以使復用達到更好地效果。
3.范式抽象
所謂范式就是抽象的解決方案模板,它可在不同具體項目中使用。范式抽象就是在此基礎(chǔ)上提出的對范式的設(shè)計方法。針對不同的問題域,就應該有與之對應的設(shè)計方法,這樣可以使范式的設(shè)計達到很高的重用性。針對OOA階段具體現(xiàn)狀,有三種范式抽象方法
(1)關(guān)系抽象
在OOA階段,針對具體的項目,會分析出大量的關(guān)系模型。例如在學校排課表系統(tǒng)中,需要定義教師類,它包括教師姓名、性別、職稱等有關(guān)教師的基本信息,同時,為了便于教師很快得出自己的上課表,還需要定義一個與教師對應的教師課表類,這個類顯示了一周中教師的課程安排情況;在網(wǎng)上購物系統(tǒng)中,需要定義一個購物者類,包括了購物者的相關(guān)信息,同時為了得到購物者所購的物品,還需定義一個購物車類,該類描述了購物者與所購買的物品的對應關(guān)系。這兩個系統(tǒng)的具體業(yè)務(wù)是不同的,但教師類與教師課表類、購物者類與購物車類的關(guān)系卻是基本相同的,都是一個實體對另一個實體的擁有關(guān)系,同樣,所進行的操作也基本相同,諸如都涉及到對所擁有實體的查詢操作等。因此可將這種關(guān)系抽象出來,定義為擁有關(guān)系,然后在此關(guān)系的基礎(chǔ)上定義相應的操作。這種關(guān)系就可以以范式的形式保存起來,在不同的項目中都可重用這種范式。同樣,還可抽象出許多其他的關(guān)系范式,如實體——內(nèi)容關(guān)系,上下級關(guān)系等。這些關(guān)系都是不依賴于具體的項目和業(yè)務(wù)的,可重復使用,只是在針對具體的業(yè)務(wù)時,在相關(guān)屬性和方法上稍作修改就可以了。
(2)相似對象抽象
在不同項目的OOA階段,還會分析出大量的相似對象或類,例如用戶、用戶組、角色、權(quán)限等在所有涉及到權(quán)限管理的系統(tǒng)中都會出現(xiàn)這類對象;在一些相同領(lǐng)域的項目中,由于涉及的領(lǐng)域的標準化,有些對象的相似性以及相同的機率會更大。對于這些相似程度如此大的對象來說,由于其在項目開發(fā)中的相對獨立性,把這些對象模型以范式的形式保存起來會使分析的結(jié)果得到更大的重用。
按照上述思想進行的范式抽象稱為相似對象抽象,這種抽象依據(jù)的是分析階段的對象模型,這種對象模型具有獨立的、高度的相似性,抽象出來的范式可稱為對象范式。這種范式與具體項目之間的相似可稱為表面相似性。表面相似越接近,范式的重用性就越大。
(3)領(lǐng)域抽象
所謂領(lǐng)域抽象是用于某一領(lǐng)域的抽象問題的解決方案。在同一個領(lǐng)域的項目開發(fā)過程中往往能夠總結(jié)出更多的相似性,包括關(guān)系相似性和表面相似性,將二者相結(jié)合,可構(gòu)建出與行業(yè)有關(guān)的構(gòu)件。這種構(gòu)件是建立在具體領(lǐng)域上的一種抽象,稱為領(lǐng)域抽象。領(lǐng)域抽象的過程可借助領(lǐng)域工程的知識和方法。其中在OOA階段主要用到了領(lǐng)域分析的方法。所謂領(lǐng)域分析是被稱為領(lǐng)域工程更大的學科中的第一項技術(shù)活動。當業(yè)務(wù)、系統(tǒng)或產(chǎn)品域被定義為長期的業(yè)務(wù)策略,則可以展開持續(xù)的創(chuàng)建強健的可復用庫的工作,其目標是能夠在領(lǐng)域中以非常高的可復用構(gòu)件率來創(chuàng)建軟件。領(lǐng)域分析在領(lǐng)域抽象過程的作用是從OOA得出的對象、關(guān)系、行為模型的抽象出與領(lǐng)域相關(guān)的領(lǐng)域范式,其中包括關(guān)系范式、相似對象范式和處理過程范式等。這些范式與前面提到的范式唯一不同就是有了特定領(lǐng)域的標識,這在同一領(lǐng)域的開發(fā)中將達到高度的重用性。
三、總結(jié)
本文通過對軟件復用技術(shù)的分析,提出了一種面向?qū)ο笙到y(tǒng)分析階段軟件復用的模型,并對此模型中所涉及到范式抽象方法做了探討,并把它們應用于具體的項目中去,從而很好地利用的設(shè)計思想,大大提高了項目的完成速度。另外,對于范式庫的研究也為建立在高層上的軟件復用庫管理提出了新的研究課題:例如對于編碼階段復用構(gòu)件庫的檢索條件也可以擴展為以范式為索引的檢索等。這些都成為下一步的研究課題。
[參考文獻]
[1]RogerS•Pressman著,黃柏素、梅宏譯:《軟件工程實踐者的研究方法》,機械工業(yè)出版社1999年版。
[2]黃靖、趙海光:《軟件復用,軟件合成與軟件集成》,《計算機應用研究》2004年。
[3]王麗娟:《軟件復用技術(shù)及其在軟件開發(fā)中的應用》,《中山大學學報論壇》2004年第24卷第1期。