獨(dú)家原創(chuàng):計(jì)算機(jī)程序開(kāi)發(fā)研究論文
時(shí)間:2022-06-08 09:08:00
導(dǎo)語(yǔ):獨(dú)家原創(chuàng):計(jì)算機(jī)程序開(kāi)發(fā)研究論文一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢(xún)客服老師,歡迎參考。
摘要:參與過(guò)大型軟件項(xiàng)目的人都會(huì)認(rèn)識(shí)到許多事情都可能出錯(cuò),一但出錯(cuò)就可能給項(xiàng)目帶來(lái)危害、損失或其它不利影響。風(fēng)險(xiǎn)是在項(xiàng)目中發(fā)生的一系列事件或不利結(jié)果的可能性。軟件開(kāi)發(fā)是一項(xiàng)高風(fēng)險(xiǎn)的活動(dòng),在項(xiàng)目開(kāi)發(fā)過(guò)程的任何一個(gè)階段都可能存在風(fēng)險(xiǎn)。采取積極的風(fēng)險(xiǎn)管理方式,可以使項(xiàng)目進(jìn)程更加平穩(wěn),可以獲得很高的跟蹤和控制項(xiàng)目的能力,可以規(guī)避、轉(zhuǎn)移風(fēng)險(xiǎn),或緩解風(fēng)險(xiǎn)帶來(lái)的不利影響。風(fēng)險(xiǎn)管理是對(duì)項(xiàng)目風(fēng)險(xiǎn)進(jìn)行識(shí)別、分析、應(yīng)對(duì)和監(jiān)控的過(guò)程,是項(xiàng)目管理中很重要的管理活動(dòng),有效的實(shí)施軟件風(fēng)險(xiǎn)管理是軟件項(xiàng)目開(kāi)發(fā)工作順利完成的保證。計(jì)算機(jī)程序,是指為了得到某種結(jié)果而可以由計(jì)算機(jī)等具有信息處理能力的裝置執(zhí)行的代碼化指令序列,或者可以被自動(dòng)轉(zhuǎn)換成代碼化指令序列的符號(hào)化指令序列或者符號(hào)化語(yǔ)句序列。同一計(jì)算機(jī)程序的源程序和目標(biāo)程序?yàn)橥蛔髌贰S?jì)算機(jī)程序或者軟件程序(通常簡(jiǎn)稱(chēng)程序)是指一組指示計(jì)算機(jī)每一步動(dòng)作的指令,通常用某種程序設(shè)計(jì)語(yǔ)言編寫(xiě),運(yùn)行于某種目標(biāo)體系結(jié)構(gòu)上。打個(gè)比方,一個(gè)程序就像一個(gè)用漢語(yǔ)(程序設(shè)計(jì)語(yǔ)言)寫(xiě)下的紅燒肉菜譜(程序),用于指導(dǎo)懂漢語(yǔ)的人(體系結(jié)構(gòu))來(lái)做這個(gè)菜。通常,計(jì)算機(jī)程序要經(jīng)過(guò)編譯和鏈接而成為一種人們不易理解而計(jì)算機(jī)理解的格式,然后運(yùn)行。
關(guān)鍵字:計(jì)算機(jī),工程應(yīng)用,程序,開(kāi)發(fā)
計(jì)算機(jī)程序或者軟件程序(通常簡(jiǎn)稱(chēng)程序)是指一組指示計(jì)算機(jī)每一步動(dòng)作的指令,通常用某種程序設(shè)計(jì)語(yǔ)言編寫(xiě),運(yùn)行于某種目標(biāo)體系結(jié)構(gòu)上。打個(gè)比方,一個(gè)程序就像一個(gè)用漢語(yǔ)(程序設(shè)計(jì)語(yǔ)言)寫(xiě)下的紅燒肉菜譜(程序),用于指導(dǎo)懂漢語(yǔ)的人(體系結(jié)構(gòu))來(lái)做這個(gè)菜。通常,計(jì)算機(jī)程序要經(jīng)過(guò)編譯和鏈接而成為一種人們不易理解而計(jì)算機(jī)理解的格式,然后運(yùn)行。未經(jīng)編譯就可運(yùn)行的程序通常稱(chēng)之為腳本程序。
為了一個(gè)程序運(yùn)行,計(jì)算機(jī)加載程序代碼,可能還要加載數(shù)據(jù),從而初始化成一個(gè)開(kāi)始狀態(tài),然后調(diào)用某種啟動(dòng)機(jī)制。在最低層上,這些是由一個(gè)引導(dǎo)序列開(kāi)始的。在大多數(shù)計(jì)算機(jī)中,操作系統(tǒng)例如Windows等,加載并且執(zhí)行很多程序。在這種情況下,一個(gè)計(jì)算機(jī)程序是指一個(gè)單獨(dú)的可執(zhí)行的映射,而不是當(dāng)前在這個(gè)計(jì)算機(jī)上運(yùn)行的全部程序。目前中國(guó)國(guó)內(nèi)的計(jì)算機(jī)語(yǔ)言應(yīng)用認(rèn)證主要有微軟的MCSD、IBM以及SUN的SCJP,常用計(jì)算機(jī)語(yǔ)言主要包括C、C++、Java、Cobal、Fortran、Pascal等等,但除了Java可廣泛應(yīng)用于不同平臺(tái),其他語(yǔ)言都受到操作平臺(tái)類(lèi)型的限制,使編程工作復(fù)雜化,重復(fù)編程工作人員的勞動(dòng),降低了效率。因此Java也就越來(lái)越多地受到重視,被廣大計(jì)算機(jī)工作者接受。特別是其基于internet的操作性,更使其方便地在網(wǎng)絡(luò)上傳播應(yīng)用,加之其執(zhí)行速度比其他開(kāi)發(fā)語(yǔ)言要快,更適應(yīng)現(xiàn)代經(jīng)濟(jì)發(fā)展的需要。我們可以樂(lè)觀地預(yù)計(jì)Java不久將成為世界上最普及的計(jì)算機(jī)程序開(kāi)發(fā)語(yǔ)言。編寫(xiě)一個(gè)程序去生成另外一個(gè)程序的過(guò)程被稱(chēng)之為原編程(Metaprogramming)。它可以被應(yīng)用于讓程序根據(jù)給定數(shù)據(jù)生成代碼。單一一個(gè)程序可能不足以表示給定數(shù)據(jù)的所有方面。讓一個(gè)程序去分析這個(gè)數(shù)據(jù)并生成新的程序去處理數(shù)據(jù)所有的方面可能會(huì)容易一些。Lisp就是一例支持這種編程模式的程序語(yǔ)言。
在神經(jīng)網(wǎng)絡(luò)里儲(chǔ)存的權(quán)重是一種數(shù)據(jù)。正是這些權(quán)重?cái)?shù)據(jù),跟網(wǎng)路的拓?fù)浣Y(jié)構(gòu)一起,定義了網(wǎng)絡(luò)的行為。人們通常很難界定這些數(shù)據(jù)到底表示什么或者它們是否可以由程序來(lái)代替。這個(gè)例子以及跟人工智能相關(guān)的其它一些問(wèn)題進(jìn)一步考驗(yàn)程序和數(shù)據(jù)的區(qū)別。
編寫(xiě)程序是以下步驟的一個(gè)往復(fù)過(guò)程:編寫(xiě)新的源代碼,測(cè)試、分析和提高新編寫(xiě)的代碼以找出語(yǔ)法和語(yǔ)義錯(cuò)誤。從事這種工作的人叫做程序設(shè)計(jì)員。由于計(jì)算機(jī)的飛速發(fā)展,編程的要求和種類(lèi)也日趨多樣,由此產(chǎn)生了不同種類(lèi)的程序設(shè)計(jì)員,每一種都有更細(xì)致的分工和任務(wù)。軟件工程師和系統(tǒng)分析員就是兩個(gè)例子。現(xiàn)在,編程的長(zhǎng)時(shí)間過(guò)程被稱(chēng)之為“軟件開(kāi)發(fā)”或者軟件工程。后者也由于這一學(xué)科的日益成熟而逐漸流行。
因此,如今程序設(shè)計(jì)員可以指某一領(lǐng)域的編程專(zhuān)家,也可以泛指軟件公司里編寫(xiě)一個(gè)復(fù)雜軟件系統(tǒng)里某一塊的一般程序員。一組為某一軟件公司工作的程序員有時(shí)會(huì)被指定一個(gè)程序組長(zhǎng)或者項(xiàng)目經(jīng)理,用以監(jiān)督項(xiàng)目進(jìn)度和完成日期。大型軟件通常經(jīng)歷由系統(tǒng)設(shè)計(jì)師的掌握的一個(gè)長(zhǎng)時(shí)間的設(shè)計(jì)階段,然后才交付給開(kāi)發(fā)人員。牛仔式的編程(未經(jīng)詳細(xì)設(shè)計(jì))是不為人所齒的。
兩種當(dāng)今常見(jiàn)的程序開(kāi)發(fā)方式之一是項(xiàng)目組開(kāi)發(fā)方式。使用這種方式項(xiàng)目組里每一個(gè)成員都能對(duì)項(xiàng)目的進(jìn)行發(fā)表意見(jiàn),而由其中的某一個(gè)人協(xié)調(diào)不同意見(jiàn)。這樣的項(xiàng)目組通常有10個(gè)左右的成員,這樣做是為了便于管理。第二種開(kāi)發(fā)方式是結(jié)對(duì)開(kāi)發(fā)。在生活中,你通常只知道「喔!原來(lái)這網(wǎng)站是用Java寫(xiě)的」、「喔!原來(lái)這是手機(jī)的JavaGame」。若自技術(shù)層次拆解,JavaTechnology可簡(jiǎn)單區(qū)分為Java程序語(yǔ)言(language)與Java平臺(tái)(platform)。
Java程序語(yǔ)言所指是撰寫(xiě)程序所需的語(yǔ)法與詞匯,像學(xué)習(xí)中、英文,有一套基本的單字與語(yǔ)法,只要利用單字組出符合語(yǔ)法的句子,這就是Java程序的基礎(chǔ)。
至于Java平臺(tái),如大家熟知的,Java共分三大平臺(tái):J2ME、J2SE和J2EE,分別專(zhuān)精于嵌入式行動(dòng)平臺(tái)、標(biāo)準(zhǔn)平臺(tái)和企業(yè)應(yīng)用平臺(tái),除了共同的類(lèi)別函式庫(kù)(API)之外,每個(gè)平臺(tái)也有其特定的API,供程序設(shè)計(jì)師們開(kāi)發(fā)使用。
隨著開(kāi)發(fā)工具陸續(xù)推出,降低了Java開(kāi)發(fā)技術(shù)門(mén)坎,要寫(xiě)出正確無(wú)誤的Java程序不是太難的事情,但論及系統(tǒng)性的Java軟件開(kāi)發(fā),那可就不是一件輕松事。開(kāi)發(fā)大型項(xiàng)目有三項(xiàng)非常重要的因素,將會(huì)影響整個(gè)項(xiàng)目的進(jìn)度與質(zhì)量,分別是人(people)、流程(process)與技術(shù)(technology)。
這三個(gè)要素是環(huán)環(huán)相扣的,任何一項(xiàng)要素的成敗都會(huì)影響另外兩個(gè)要素,與相關(guān)開(kāi)發(fā)人員的素質(zhì),這不是一項(xiàng)簡(jiǎn)單容易的任務(wù),但有好的方法可以完成。真正困難的不是Java程序語(yǔ)言或是API的使用,而是整個(gè)對(duì)象導(dǎo)向程序設(shè)計(jì)的概念。也標(biāo)榜與Java有著類(lèi)似的對(duì)象導(dǎo)向架構(gòu),除執(zhí)行平臺(tái)不同、API的名稱(chēng)不同,本質(zhì)與Java可以算是孿生兄妹,在漸進(jìn)式的開(kāi)發(fā)過(guò)程中,透過(guò)不斷的提煉(refine),可趁早發(fā)現(xiàn)問(wèn)題且找出解決方法,也確保每一工作項(xiàng)目的進(jìn)度。不過(guò),在架構(gòu)(Architecture)方面,RUP確實(shí)著墨較少,而架構(gòu)優(yōu)劣也是足以影響軟件系統(tǒng)成敗的關(guān)鍵因素。
QoS(QualityofService)或是SLR(ServiceLevelRequirement),我想是每個(gè)系統(tǒng)最基本的要求,它包含可用性(Availability)、可管理(Manageability)、可信賴(lài)(Reliability)、可擴(kuò)充(Scalability)和安全性(Security)等條件。
舉例而言,先前某家外商銀行因系統(tǒng)設(shè)計(jì)不良而導(dǎo)致外人可輕易猜出參數(shù)設(shè)定的方式,直接入侵系統(tǒng)竊取消費(fèi)者隱私數(shù)據(jù);也有某家電信業(yè)者為沒(méi)考慮系統(tǒng)的負(fù)載量,而導(dǎo)致在耶誕、跨年等重要節(jié)日時(shí),涌入大量簡(jiǎn)訊的尖峰時(shí)期造成服務(wù)塞車(chē)、系統(tǒng)當(dāng)機(jī)。雖說(shuō)不同的程序技術(shù)皆有其滿足QoS的方法,相較之下,Java對(duì)上述五大項(xiàng)功能的支持應(yīng)該算是最為豐富。如在J2EE的設(shè)計(jì)模式(DesignPattern)中,幾乎都是為解決此幾項(xiàng)問(wèn)題而設(shè)計(jì),之后再配合程序語(yǔ)言本身的強(qiáng)固性,開(kāi)發(fā)而成的企業(yè)級(jí)應(yīng)用系統(tǒng),我想應(yīng)可滿足客戶(hù)對(duì)于QoS的嚴(yán)格要求。先看研發(fā)人員這部分。我想,要滿足技術(shù)與流程兩項(xiàng)因素,關(guān)鍵都是人。如何選擇對(duì)且合適的技術(shù),要有專(zhuān)業(yè)人才;如何有效管理流程?如何規(guī)劃滿足AMRSS五項(xiàng)需求的系統(tǒng)架構(gòu)?這都是需要有經(jīng)驗(yàn)的管理人才及架構(gòu)師(architect)。當(dāng)然,能不能寫(xiě)出漂亮且可完善運(yùn)作的程序代碼,也是需要有一定水平的研發(fā)人員。軟件開(kāi)發(fā)工具有很多種,現(xiàn)在常見(jiàn)的軟件一般用DelphiVBVC++C++BuilderPB等開(kāi)發(fā)的,你其它有一個(gè)概念不要混淆,一般開(kāi)發(fā)工具叫開(kāi)發(fā)集成環(huán)境,而這些開(kāi)發(fā)集成環(huán)境是基于某種語(yǔ)言,一種語(yǔ)言可能有多種開(kāi)發(fā)集成環(huán)境,如C++就是VC++與C++Builder等,一個(gè)軟件項(xiàng)目研發(fā)的設(shè)計(jì)流程是怎樣的呢?以通常標(biāo)準(zhǔn)的設(shè)計(jì)方法為例。第一個(gè)步驟是市場(chǎng)調(diào)研,技術(shù)和市場(chǎng)要結(jié)合才能體現(xiàn)最大價(jià)值。第二個(gè)步驟是需求分析,這個(gè)階段需要出三樣?xùn)|西,用戶(hù)視圖,數(shù)據(jù)詞典和用戶(hù)操作手冊(cè)。用戶(hù)視圖是該軟件用戶(hù)(包括終端用戶(hù)和管理用戶(hù))所能看到的頁(yè)面樣式,這里面包含了很多操作方面的流程和條件。數(shù)據(jù)詞典是指明數(shù)據(jù)邏輯關(guān)系并加以整理的東東,完成了數(shù)據(jù)詞典,數(shù)據(jù)庫(kù)的設(shè)計(jì)就完成了一半多。第三個(gè)步驟是概要設(shè)計(jì),將系統(tǒng)功能模塊初步劃分,并給出合理的研發(fā)流程和資源要求。作為快速原型設(shè)計(jì)方法,完成概要設(shè)計(jì)就可以進(jìn)入編碼階段了,通常采用這種方法是因?yàn)樯婕暗难邪l(fā)任務(wù)屬于新領(lǐng)域,技術(shù)主管人員一上來(lái)無(wú)法給出明確的詳細(xì)設(shè)計(jì)說(shuō)明書(shū),但是并不是說(shuō)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)不重要,事實(shí)上快速原型法在完成原型代碼后,根據(jù)評(píng)測(cè)結(jié)果和經(jīng)驗(yàn)教訓(xùn)的總結(jié),還要重新進(jìn)行詳細(xì)設(shè)計(jì)的步驟。第四個(gè)步驟是詳細(xì)設(shè)計(jì),這是考驗(yàn)技術(shù)專(zhuān)家設(shè)計(jì)思維的重要關(guān)卡,詳細(xì)設(shè)計(jì)說(shuō)明書(shū)應(yīng)當(dāng)把具體的模塊以最'干凈'的方式(黑箱結(jié)構(gòu))提供給編碼者,使得系統(tǒng)整體模塊化達(dá)到最大;一份好的詳細(xì)設(shè)計(jì)說(shuō)明書(shū),可以使編碼的復(fù)雜性減低到最低,實(shí)際上,嚴(yán)格的講詳細(xì)設(shè)計(jì)說(shuō)明書(shū)應(yīng)當(dāng)把每個(gè)函數(shù)的每個(gè)參數(shù)的定義都精精細(xì)細(xì)的提供出來(lái),從需求分析到概要設(shè)計(jì)到完成詳細(xì)設(shè)計(jì)說(shuō)明書(shū),一個(gè)軟件項(xiàng)目就應(yīng)當(dāng)說(shuō)完成了一半了。換言之,一個(gè)大型軟件系統(tǒng)在完成了一半的時(shí)候,其實(shí)還沒(méi)有開(kāi)始一行代碼工作。第五個(gè)步驟是編碼,在規(guī)范化的研發(fā)流程中,編碼工作在整個(gè)項(xiàng)目流程里最多不會(huì)超過(guò)1/2,通常在1/3的時(shí)間,所謂磨刀不誤砍柴功,設(shè)計(jì)過(guò)程完成的好,編碼效率就會(huì)極大提高,編碼時(shí)不同模塊之間的進(jìn)度協(xié)調(diào)和協(xié)作是最需要小心的,也許一個(gè)小模塊的問(wèn)題就可能影響了整體進(jìn)度,讓很多程序員因此被迫停下工作等待,這種問(wèn)題在很多研發(fā)過(guò)程中都出現(xiàn)過(guò)。編碼時(shí)的相互溝通和應(yīng)急的解決手段都是相當(dāng)重要的,對(duì)于程序員而言,bug永遠(yuǎn)存在,你必須永遠(yuǎn)面對(duì)這個(gè)問(wèn)題,大名鼎鼎的微軟,可曾有連續(xù)三個(gè)月不發(fā)補(bǔ)丁的時(shí)候嗎?從來(lái)沒(méi)有!第六個(gè)步驟是測(cè)試測(cè)試有很多種:按照測(cè)試執(zhí)行方,可以分為內(nèi)部測(cè)試和外部測(cè)試,按照測(cè)試范圍,可以分為模塊測(cè)試和整體聯(lián)調(diào)。按照測(cè)試條件,可以分為正常操作情況測(cè)試和異常情況測(cè)試。
按照測(cè)試的輸入范圍,可以分為全覆蓋測(cè)試和抽樣測(cè)試。總之,測(cè)試同樣是項(xiàng)目研發(fā)中一個(gè)相當(dāng)重要的步驟,對(duì)于一個(gè)大型軟件,3個(gè)月到1年的外部測(cè)試都是正常的,因?yàn)橛肋h(yuǎn)都會(huì)又不可預(yù)料的問(wèn)題存在。完成測(cè)試后,完成驗(yàn)收并完成最后的一些幫助文檔,整體項(xiàng)目才算告一段落,當(dāng)然日后少不了升級(jí),修補(bǔ)等等工作,只要不是想通過(guò)一錘子買(mǎi)賣(mài)騙錢(qián),就要不停的跟蹤軟件的運(yùn)營(yíng)狀況并持續(xù)修補(bǔ)升級(jí),知道這個(gè)軟件被徹底淘汰為止。