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