下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
、如何開發(fā)一個成功的軟件產(chǎn)品? 要成功的開發(fā)一個軟件產(chǎn)品,需要滿足如下兩個條件1、完美的開發(fā)團(tuán)隊2、開發(fā)過程合理控制2.1完美的開發(fā)團(tuán)隊 軟件產(chǎn)品不需要原料,軟件團(tuán)隊是軟件產(chǎn)品生產(chǎn)的最重要資源了。如何成就一個完美的開發(fā)團(tuán)隊,意見如下:1、具有軟件開發(fā)必備角色,包括需求、系統(tǒng)分析、技術(shù)攻關(guān)、代碼編寫、軟件測試等。2、具有自己文檔、代碼標(biāo)準(zhǔn)標(biāo)準(zhǔn),以便于維護(hù)集成。3、具有自己資源庫。4、具有和諧的團(tuán)隊關(guān)系、正確的溝通方式5、具有英明的工程經(jīng)理2.1.1具有軟件開發(fā)必備角色 一個軟件開發(fā)團(tuán)隊,必須具備軟件工程中應(yīng)有的角色,包括需求分析、系統(tǒng)分析、技術(shù)攻關(guān)、代碼編寫、軟件測試等,這里不再贅述。2.1.2具有自己文檔、代碼標(biāo)準(zhǔn)標(biāo)準(zhǔn)軟件開發(fā)周期的各個階段都應(yīng)該有相應(yīng)的文檔,軟件工程等相關(guān)學(xué)科都有很大篇幅講文檔的重要性。軟件開發(fā)團(tuán)隊對文檔處理各有千秋,主要可分為如下三種情況:1、
開發(fā)團(tuán)隊不重視文檔,往往事后根據(jù)需要再追加文檔,這類開發(fā)團(tuán)隊一般規(guī)模較小,屬于作坊式的2、
開發(fā)團(tuán)隊迎合軟件工程中文檔教條,不聯(lián)系自己實際情況寫文檔,文檔格式形式化,這種開發(fā)團(tuán)隊一般是吃大鍋飯的,文檔在這種團(tuán)隊被作為形象展示的工具3、
開發(fā)團(tuán)隊把文檔作為產(chǎn)品的一局部,基于軟件工程理論寫文檔,利用文檔對工程進(jìn)行控制跟蹤,真正的發(fā)揮了文檔的功用。但是一個優(yōu)秀的開發(fā)團(tuán)隊除了按上面第三種方式處理文檔外,還應(yīng)該具有自己的文檔、代碼標(biāo)準(zhǔn)標(biāo)準(zhǔn),所有成員都要遵循這個標(biāo)準(zhǔn)編寫文檔或代碼,而不是各自按自己的習(xí)慣處理文檔或者代碼。我們知道程序編寫人員都不愿意解讀別人的代碼,其實主要原因不是代碼復(fù)雜度問題,而是他們寫代碼的標(biāo)準(zhǔn)不一致,注釋不標(biāo)準(zhǔn)或者不明確。所以團(tuán)隊如果有了自己的代碼標(biāo)準(zhǔn),所有成員都遵循這個標(biāo)準(zhǔn),那么在程序?qū)印⒁平灰约熬S護(hù)等方面效率會很高。2.1.3具有自己的資源庫 資源庫是自己通俗的說法,它應(yīng)該包括文檔、技術(shù)文獻(xiàn)、問題分析及解決方案、源代碼和控件等。這些資源應(yīng)該用以一種方式管理〔比方以數(shù)據(jù)庫的方式存儲〕,以資源平臺的方式向團(tuán)隊所有成員開放,便于檢索查詢重用。 一個技術(shù)團(tuán)隊,資源庫是非常重要的,它是團(tuán)隊所有成員在實踐中經(jīng)驗的積累、技術(shù)的總結(jié),是團(tuán)隊成員技術(shù)共享的紐帶。 軟件產(chǎn)品的本錢根本上只有人力資源,資源庫的存在很大程度上節(jié)省了人力資源,假設(shè)我們把一個新的開發(fā)工程的功能細(xì)化后,很多功能模塊都可以從資源庫中直接調(diào)出來使用、當(dāng)我們遇到一個很久以前花費(fèi)很大精力解決的技術(shù)性問題,我們可以直接從資源庫中檢索出該問題及解決方案,當(dāng)程序員A需要寫一個鏈表類時,可以通過資源庫參考程序員B曾經(jīng)編寫的鏈表類…….這將是多么愉快的事情。2.1.4具有和諧的團(tuán)隊關(guān)系、正確的溝通方式技術(shù)人員是軟件公司的支柱,技術(shù)人員之間關(guān)系的和諧就顯的非常重要。另外由于軟件產(chǎn)品的特性就是復(fù)雜度高,軟件產(chǎn)品生產(chǎn)過程就是一批技術(shù)人員溝通、執(zhí)行的過程。所以和諧的團(tuán)隊關(guān)系及正確的溝通方式都非常重要。關(guān)于如何做好這一點,有如下看法:和諧的關(guān)系上,隊員之間要作到理解、尊重、寬容,這不但是關(guān)系開展的前提,也是關(guān)系健康向上開展的根底。有了和諧的關(guān)系,溝通就顯得順利多了,個人認(rèn)為溝通主要做到如下三點:1、要有所準(zhǔn)備:溝通就是因為有問題需要討論,那么就有問題的提出方和解決問題的一方,這就需要問題的提出方根據(jù)實際情況〔問題復(fù)雜性、重要性、參與討論的角色和專業(yè)方向〕做出充分的準(zhǔn)備,比方如何描述問題才能讓參與討論的不同角色的人在相對短時間內(nèi)對問題有深刻的理解并給出好的建議。那么對于技術(shù)性非常強(qiáng)的討論或者講座、就需要參與討論的成員事先至少對該技術(shù)性的話題有一個宏觀的認(rèn)識,比方技術(shù)講座,如果技術(shù)性很強(qiáng),最好就是聽講座的成員先對講座的內(nèi)容有一個了解,然后才能更好的在聽講過程中受益并發(fā)揮。畢竟不是小學(xué)生上課,我們的技術(shù)講座也不該是照本宣科,應(yīng)該事先了解、然后在聽與討論中掌握知識。2、要學(xué)會聆聽,這不僅是對別人的尊重,也確實能使自己受益〔只要對方不是虛無縹緲、話不中的、夸夸其談的長篇大論〕,不要別人剛剛開口,咱就來個,你不知道、你不懂,這是不對的,三人行、必有我?guī)?。相互的聆聽是理解問題的根底,是討論問題得出正確方案的前提。3、要換位思考,工作中我們要學(xué)會換位思考、不要主觀的臆斷。特別是團(tuán)隊協(xié)作的時候,要站到我們伙伴的角度去看問題、思考問題,理解你的伙伴、尊重你的伙伴,才能得到正確的討論結(jié)果或解決方案。2.1.5具有英明的工程經(jīng)理不討論工程經(jīng)理職業(yè)、心理、知識、經(jīng)驗等條款化的素質(zhì)。也不討論決策、溝通等工程經(jīng)理應(yīng)該必備的能力,只從自己角度,談下自己的幾點看法。1、
要有一定的權(quán)利,從實出發(fā)對待問題。很多軟件公司會出現(xiàn)工程經(jīng)理責(zé)任高、權(quán)利小的現(xiàn)象。也很多工程經(jīng)理由于某些緣故,在方案決策處理方面不能從實對待問題,這種現(xiàn)象往往出現(xiàn)在工程經(jīng)理的上級領(lǐng)導(dǎo)對工程過多干預(yù)的情況下。2、
中肯,謙虛,尊重隊員。能認(rèn)真聽取所有成員的技術(shù)觀點、意見。這點很重要,俗話說“三個臭皮匠,頂個諸葛亮〞,技術(shù)的追求是無止境的,工程經(jīng)理不可能掌握全部技術(shù)的新動向。3、
有親和力和一定的人格魅力,能站到所有團(tuán)隊成員的角度思考問題?;饧夹g(shù)合作或者日常生活上不和諧的情緒。工程經(jīng)理畢竟不是技術(shù)骨干,只是懂得決策、懂得技術(shù)是不行的。2.2開發(fā)過程合理控制軟件產(chǎn)品工程化之后,軟件開發(fā)周期就被劃分為很多階段,如制訂方案、需求分析和定義、軟件設(shè)計、程序編寫、軟件測試、運(yùn)行和維護(hù)等,還提出了很多軟件開發(fā)模型作為這些階段行為參考。關(guān)于這方面的資料非常多,這里不理論教條化的對這些內(nèi)容討論,只是結(jié)合工作經(jīng)驗,從軟件定義、軟件開發(fā)和軟件維護(hù)三個角度簡短的談些自己的看法。2.2.1軟件定義 這個階段主要就是通過需求分析來確定最終做出怎么樣的一個軟件產(chǎn)品,是至關(guān)重要的。工程組應(yīng)該做到:1、全員參與,不僅僅是工程經(jīng)理和需求分析人員,包括編碼、測試人員等都要參與進(jìn)來。比方需求分析人員由于技術(shù)專業(yè)不理想,根據(jù)用戶需求設(shè)計的軟件定義沒有考慮到某個技術(shù)障礙,導(dǎo)致編碼人員在開發(fā)過程中不可逾越,臨時調(diào)整方案不但極大降低質(zhì)量、還嚴(yán)重的影響了工程進(jìn)度。2、給該階段預(yù)留更多的時間,不厭其煩的與客戶溝通。隔行如隔山,用戶與開發(fā)人員之間的交流很難。有時候用戶很難明確的提出他的需求,這時候就需要工程分析人員理解并牽引。有時候用某些需求用戶也提不出,直道編碼甚至維護(hù)階段才提出來,分析人員應(yīng)該做出足夠的思考,以便軟件定義時候預(yù)留相應(yīng)的接口。2.2.2軟件開發(fā)這個階段主要完成概要設(shè)計、詳細(xì)設(shè)計、編碼及測試。最重要的莫過于概要設(shè)計時合理的劃分功能模塊了。劃分模塊原那么如下:1、
高內(nèi)聚、低耦合。這樣模塊的獨(dú)立性很強(qiáng),在代碼開發(fā)階段給每個模塊編寫者很大的空間,使編寫目的非常明確,可以獨(dú)立開發(fā),互不影響進(jìn)度。2、
模塊接口明確。這樣開發(fā)者在開發(fā)過程中預(yù)留接口就可以了,不用頻繁的整合或移植代碼進(jìn)行接口聯(lián)調(diào)。另外就是工程經(jīng)理要了解自己的設(shè)計人員各自的技術(shù)特長,分配相應(yīng)的模塊給程序設(shè)計人員,會很大程度上縮短開發(fā)周期。2.2.3軟件維護(hù) 軟件維護(hù)是一項長期而繁瑣的任務(wù),長時間的跨度可能會牽扯到文檔、代碼更新,人員更換等。所以有關(guān)軟件的文檔一定要寫好、保存好。另外前面提到的開發(fā)團(tuán)隊要有自己的文檔代碼標(biāo)準(zhǔn)標(biāo)準(zhǔn)等,也是做好軟件維護(hù)的前提條件。在當(dāng)我們學(xué)會了一門語言的時候〔也就是說,記住了該語言的語法,詞法,還有一些常用的函數(shù)〕,就意味著已經(jīng)掌握了編寫程序的根本工具。無論用的是社么語言,都差不多。只是工具之間有長有短。比方說,delphi,VB之類做windows環(huán)境的應(yīng)用程序很方便;用JAVA開發(fā)基于網(wǎng)絡(luò)的程序很輕松。假設(shè)我們用C〔C++〕寫一個記事本軟件,估計要寫數(shù)百行代碼才能完成,而且不能保證沒有大錯誤,而用delphi,,或VC等可視化工具來做,就只要鼠標(biāo)點點控件,幾下就完成了,可謂方便。這就是說工具各有特點,各個方面都有各個方面的最適合的工具。不過工具只是工具,光靠工具是寫不出好的程序的。就好比我要寫一篇文章出來,首先確定用社么語言來寫〔漢,英,俄還是其他?很顯然,如果我是寫給中國人看,自然用中文,寫給美國人看,當(dāng)然用英文?!衬敲创_定了語言之后呢?我就能寫文章了嗎?文章結(jié)構(gòu)如何設(shè)計?寫文章的方法技巧和本卷須知是什么?這些我都不知道,自然寫不出好文章??梢?,要寫一篇好文章,會語言是遠(yuǎn)遠(yuǎn)不夠的。同樣,要寫出好的程序〔程序運(yùn)行結(jié)果正確,時間,空間效率高,健壯性好,可讀性強(qiáng)等等〕,光會一門語言也是遠(yuǎn)遠(yuǎn)不夠的。而編程的具體方法的學(xué)習(xí)才是我們的重點。
計算機(jī)教育普遍都是先從教授一門語言開始〔一般是C語言〕,然后,就開始安排對數(shù)據(jù)結(jié)構(gòu)和算法的學(xué)習(xí)。數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計分析是整個編程方法的根底,重中之重。以前流行過一句話:數(shù)據(jù)結(jié)構(gòu)+算法=程序。這是不無道理的。計算機(jī)是用來處理和存儲數(shù)據(jù)的。數(shù)據(jù)在計算機(jī)中的表示和存儲不是無組織的,是有規(guī)律,有結(jié)構(gòu)的。因此,當(dāng)我們對這些按照一定規(guī)律組織的數(shù)據(jù)進(jìn)行操作的時候,理論上存在一種或幾種與某結(jié)構(gòu)相比配的最優(yōu)〔或近式最優(yōu)〕算法,以次來確保操作數(shù)據(jù)的時空效率。打個比方,現(xiàn)有一排數(shù)據(jù):a,b,c,d,e,如果經(jīng)常要對其進(jìn)行查找操作,順序排列存儲該數(shù)列能降低操作的時間。同樣如果經(jīng)常要對其進(jìn)行插入或刪除操作,采用鏈接存儲那么能降低該操作的時間復(fù)雜度。由此可見,合理的數(shù)據(jù)結(jié)構(gòu),高效的算法對程序質(zhì)量有著多么重要的影響!又比方,我們要編寫程序能對中國所有公民的身份證號進(jìn)行排序。這是極其龐大的一組數(shù)據(jù),如此多數(shù)據(jù)采取什么結(jié)構(gòu)來表示和存儲,以及應(yīng)用什么算法來對其排序,使該程序在排序時盡量的快,占用的空間盡量的少。這都是學(xué)問,編程的學(xué)問!所以,可以講,程序員對數(shù)據(jù)結(jié)構(gòu)和算法的領(lǐng)悟程度直接決定了他的編程水平的上下。那么如何提高自己的水平呢?我們可以學(xué)習(xí)研究像C〔C++〕函數(shù)庫〔API〕里的函數(shù),或JFC〔JAVA類庫〕中的函數(shù)實現(xiàn),這些函數(shù)實現(xiàn)都是非常有經(jīng)驗的程序員編寫的,有著很好的運(yùn)行效率。再者,就是數(shù)學(xué)的重要,我認(rèn)為數(shù)學(xué)對程序的重要性表達(dá)在對算法的支持上。比方說微積分思想,為計算機(jī)數(shù)值計算提供了理論指導(dǎo);而數(shù)據(jù)結(jié)構(gòu)和算法來源與離散數(shù)學(xué),線性代數(shù)和概率統(tǒng)計中的思想和方法。另外,像計算機(jī)密碼學(xué),計算機(jī)圖形學(xué),計算機(jī)多媒體都離不開數(shù)學(xué)。好的算法需要數(shù)學(xué)工具來理論驗證,也需要數(shù)學(xué)來改進(jìn),來完善!
那么,面向?qū)ο笥职缪菔裁唇巧兀空f到底,我覺得面向?qū)ο笏枷氲淖谥季褪谴a重用。面向?qū)ο罄锏娜蟾拍睿悍庋b,繼承,多態(tài)都是為了代碼重用。重用質(zhì)量高的代碼,不但可以節(jié)省人力,而且極大提高了本身原程序的質(zhì)量。比方,我要編寫一多功能計算器,我依據(jù)自己喜好設(shè)計了界面,在具體功能實現(xiàn)上我繼承了別人已經(jīng)寫好的正確功能類,不但省去了自己寫的麻煩,而且也保證了該計算器的邏輯正確性,一舉兩得。在編程時運(yùn)用面向?qū)ο笏枷?,類的設(shè)計是最為關(guān)鍵得第一步,包括對類結(jié)構(gòu)的設(shè)計和內(nèi)部功能實現(xiàn)。其次就是對類進(jìn)行準(zhǔn)確合理的繼承和多態(tài)化。顯然,不正確的進(jìn)行繼承和多態(tài)會給整個軟件帶來巨大的錯誤隱患。面向?qū)ο笏枷朐趯懶〕绦驎r或許表達(dá)不出優(yōu)越,但在中大型軟件開發(fā)時,它的用處便會極大表達(dá)出來。面向?qū)ο蠓椒ㄔ诮鉀Q軟件危機(jī)里起到了舉足輕重的作用。但在這里,我還是要強(qiáng)調(diào)一點,面向?qū)ο笏枷胧菢O好的思想,極好的編程方法。但是如果沒有質(zhì)量好的代碼可以值得被重用,面向?qū)ο蠓椒ň蜎]有用武之地!可見,擁有良好數(shù)據(jù)結(jié)構(gòu)和算法的功能代碼塊是保證整個程序質(zhì)量的奠基石。
軟件〔尤其是中大型軟件〕質(zhì)量好壞還有一個很重要的因素:軟件體系結(jié)構(gòu)。打個比方,我要建房子。軟件體系結(jié)構(gòu)就好比房子的結(jié)構(gòu),采用哪種樣式〔歐式?中式?〕決定了房子的結(jié)構(gòu),軟件體系結(jié)構(gòu)的規(guī)劃設(shè)計也就決定了軟件本身的結(jié)構(gòu)〔軟件的環(huán)境,功能模塊的安排,位置,互相聯(lián)系關(guān)系等等〕。那么,房子的結(jié)構(gòu)設(shè)計好了,就要解決建筑材料的問題。在這里,牢固的磚頭和橫梁是房子牢固的根本保證。同樣,擁有良好數(shù)據(jù)結(jié)構(gòu)和算法的功能函數(shù)或函數(shù)塊也是整個軟件質(zhì)量的根本保證!有了質(zhì)量過硬的磚頭和橫梁,只要結(jié)構(gòu)合理,房子的壽命是完全可以保證的。一樣道理,我們手頭有了大批信的過的功能函數(shù)或函數(shù)塊,在編程的時候嚴(yán)格按照軟件工程標(biāo)準(zhǔn),合理運(yùn)用面向?qū)ο蠓椒?,按照科學(xué)的體系結(jié)構(gòu)要求,就能在經(jīng)濟(jì)的條
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房租賃合同模板
- 2024工程顧問合同范本
- 地下車位租賃合同糾紛處理辦法
- 建筑工地施工升降機(jī)租賃合同
- 2024簡單的保姆用工合同協(xié)議書范本
- 制作合同范本(半成品)范本
- 跨國教育機(jī)構(gòu)合作辦學(xué)范本
- 2024公司收購合同范本
- 2024年貿(mào)易合同標(biāo)準(zhǔn)范本
- 委托管理合同范例大全
- 2024天貓男裝行業(yè)秋冬趨勢白皮書
- 《正確對待外來文化》名師課件
- 2024年綿陽科技城新區(qū)事業(yè)單位考核公開招聘高層次人才10人(高頻重點復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 中醫(yī)食療藥膳學(xué)智慧樹知到答案2024年四川護(hù)理職業(yè)學(xué)院
- 建筑項目安全風(fēng)險分級管控清單建筑風(fēng)險分級管控清單(范例)
- 馬背上的民族蒙古族少數(shù)民族蒙古族介紹課件
- 工程圖學(xué)(天津大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年天津大學(xué)
- 農(nóng)村戶改廁施工協(xié)議書
- 當(dāng)代社會政策分析 課件 第十一章 殘疾人社會政策
- 家政公司未來發(fā)展計劃方案
- ISO28000:2022供應(yīng)鏈安全管理體系
評論
0/150
提交評論