前言:本站為你精心整理了軟件項(xiàng)目策略管理范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。
人們都有自己的世界觀和方法論,能自然而然地運(yùn)用于生活和工作中。同樣,程序員腦子里的軟件工程觀念會(huì)無(wú)形地支配其怎么去做事情。軟件工程三十年的發(fā)展,已經(jīng)積累了相當(dāng)多的方法,但這些方法不是嚴(yán)密的理論。實(shí)踐人員不應(yīng)該教條地套用方法,更重要的是學(xué)會(huì)“選擇合適的方法”和“產(chǎn)生新方法”。有謀略才會(huì)有好的戰(zhàn)術(shù)。幾千年前,我們的祖先就在打鬧之際寫下了很多心得體會(huì),被現(xiàn)代人很好地運(yùn)用于工業(yè)和商業(yè)。本節(jié)講述軟件開發(fā)中的三種基本策略:“復(fù)用”、“分而治之”、“優(yōu)化——折衷”。
1復(fù)用
復(fù)用就是指“利用現(xiàn)成的東西”,文人稱之為“拿來(lái)主義”。被復(fù)用的對(duì)象可以是有形的物體,也可以是無(wú)形的成果。復(fù)用不是人類懶惰的表現(xiàn)而是智慧的表現(xiàn)。因?yàn)槿祟惪偸窃诶^承了前人的成果,不斷加以利用、改進(jìn)或創(chuàng)新后才會(huì)進(jìn)步。所以當(dāng)我們歡度國(guó)慶時(shí),要搞清楚祖國(guó)遠(yuǎn)不止50歲,我們今天享用到的財(cái)富還有上下五千年人民的貢獻(xiàn)。進(jìn)步只是應(yīng)該的,不進(jìn)步則就可恥了。
復(fù)用的內(nèi)涵包括了提高質(zhì)量與生產(chǎn)率兩者。由經(jīng)驗(yàn)可知,在一個(gè)新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般地可以相信成熟的東西總是比較可靠的(即具有高質(zhì)量),而大量成熟的工作可以通過(guò)復(fù)用來(lái)快速實(shí)現(xiàn)(即具有高生產(chǎn)率)。勤勞并且聰明的人們應(yīng)該把大部分的時(shí)間用在小比例的創(chuàng)新工作上,而把小部分的時(shí)間用在大比例的成熟工作中,這樣才能把工作做得又快又好。
把復(fù)用的思想用于軟件開發(fā),稱為軟件復(fù)用。據(jù)統(tǒng)計(jì),世上已有1000億多行程序,無(wú)數(shù)功能被重寫了成千上萬(wàn)次,真是浪費(fèi)哪。面向?qū)ο螅╫bjectoriented)學(xué)者的口頭禪就是“請(qǐng)不要再發(fā)明相同的車輪子了”。
將具有一定集成度并可以重復(fù)使用的軟件組成單元稱為軟構(gòu)件(softwarecomponent)。軟件復(fù)用可以表述為:構(gòu)造新的軟件系統(tǒng)可以不必每次從零做起,直接使用已有的軟構(gòu)件,即可組裝(或加以合理修改)成新的系統(tǒng)。復(fù)用方法合理化并簡(jiǎn)化了軟件開發(fā)過(guò)程,減少了總的開發(fā)工作量與維護(hù)代價(jià),既降低了軟件的成本又提高了生產(chǎn)率。另一方面,由于軟構(gòu)件是經(jīng)過(guò)反復(fù)使用驗(yàn)證的,自身具有較高的質(zhì)量。因此由軟構(gòu)件組成的新系統(tǒng)也具有較高的質(zhì)量。
軟件復(fù)用不僅要使自己拿來(lái)方便,還要讓別人拿去方便,是“拿來(lái)拿去主義”。面向?qū)ο蠓椒ǎ琺icrosoft公司的com規(guī)范[rogerson1999],都能很好地用于實(shí)現(xiàn)大規(guī)模的軟件復(fù)用。
2分而治之
分而治之是指把一個(gè)復(fù)雜的問(wèn)題分解成若干個(gè)簡(jiǎn)單的問(wèn)題,然后逐個(gè)解決。這種樸素的思想來(lái)源于人們生活與工作的經(jīng)驗(yàn),完全適合于技術(shù)領(lǐng)域。軟件人員在執(zhí)行分而治之的時(shí)候,應(yīng)該著重考慮:復(fù)雜問(wèn)題分解后,每個(gè)問(wèn)題能否用程序?qū)崿F(xiàn)?所有程序最終能否集成為一個(gè)軟件系統(tǒng)并有效解決原始的復(fù)雜問(wèn)題?
圖1.6表示了軟件領(lǐng)域的分而治之策略。諸如軟件的體系結(jié)構(gòu)設(shè)計(jì)、模塊化設(shè)計(jì)都是分而治之的具體表現(xiàn)。軟件的分而治之不可以“硬分硬治”。不像為了吃一個(gè)西瓜或是一只雞,揮刀斬成n塊,再把每塊塞進(jìn)嘴里粉碎攪拌,然后交由胃腸來(lái)消化吸收,象征復(fù)雜問(wèn)題的西瓜或是雞也就此消失了。
3優(yōu)化——折衷
軟件的優(yōu)化是指優(yōu)化軟件的各個(gè)質(zhì)量因素,如提高運(yùn)行速度,提高對(duì)內(nèi)存資源的利用率,使用戶界面更加友好,使三維圖形的真實(shí)感更強(qiáng)等等。想做好優(yōu)化工作,首先要讓開發(fā)人員都有正確的認(rèn)識(shí):優(yōu)化工作不是可有可無(wú)的事情,而是必須要做的事情。當(dāng)優(yōu)化工作成為一種責(zé)任時(shí),程序員才會(huì)不斷改進(jìn)軟件中的算法,數(shù)據(jù)結(jié)構(gòu)和程序組織,從而提高軟件質(zhì)量。
著名的3d游戲軟件quake,能夠在pc機(jī)上實(shí)時(shí)地繪制高度真實(shí)感的復(fù)雜場(chǎng)景。quake的開發(fā)者能把很多成熟的圖形技術(shù)發(fā)揮到極致,例如把bresenham畫線、多邊形裁剪、樹遍歷等算法的速度提高近一個(gè)數(shù)量級(jí)。我第一次看到quake時(shí)不僅感到震動(dòng),而且深受打擊。這個(gè)pc游戲軟件的技術(shù)水平已經(jīng)遠(yuǎn)勝于我所見識(shí)到的國(guó)內(nèi)領(lǐng)先的圖形學(xué)相關(guān)科研成果。這對(duì)我們?nèi)找媸⑿械狞c(diǎn)到完止的研發(fā)工作真是莫大的諷刺。所以當(dāng)我們開發(fā)的軟件表現(xiàn)出很多不可救藥的病癥時(shí),不要怨機(jī)器差。真的是我們自己沒有把工作做好,寫不好字卻嫌筆鈍。
就假設(shè)我們經(jīng)過(guò)思想教育后,精神抖擻,隨時(shí)準(zhǔn)備為優(yōu)化工作干上六天七夜。但愿意做并不意味著就能把事情做好。優(yōu)化工作的復(fù)雜之處是很多目標(biāo)存在千絲萬(wàn)縷的關(guān)系,可謂數(shù)不清理還亂。當(dāng)不能夠使所有的目標(biāo)都得到優(yōu)化時(shí),就需要“折衷”策略。
軟件中的折衷策略是指通過(guò)協(xié)調(diào)各個(gè)質(zhì)量因素,實(shí)現(xiàn)整體質(zhì)量的最優(yōu)。就象黨支部副書記扮演和事佬的角色:“…為了使整個(gè)組織具有最好的戰(zhàn)斗力,我們要重用幾個(gè)人,照顧一些人,在萬(wàn)不得已的情況下委屈一批人”。
軟件折衷的重要原則是不能使某一方損失關(guān)鍵的職能,更不可以象“舍魚而取熊掌”那樣拋棄一方。例如3d動(dòng)畫軟件的瓶頸通常是速度,但如果為了提高速度而在程序中取消光照明計(jì)算,那么場(chǎng)景就會(huì)喪失真實(shí)感,3d動(dòng)畫也就不再有意義了(如果人類全是色盲,計(jì)算機(jī)圖形學(xué)將變得異常簡(jiǎn)單)。
人都有惰性,如果允許濫用折衷的話,那么一當(dāng)碰到困難,人們就會(huì)用拆東墻補(bǔ)西墻的方式去折衷,不再下苦功去做有意義的優(yōu)化。所以我們有必要為折衷制定嚴(yán)正的立場(chǎng):在保證其它因素不差的前提下,使某些因素變得更好。
軟件技術(shù)方案 軟件考察報(bào)告 軟件管理論文 軟件項(xiàng)目總結(jié) 軟件管理 軟件開發(fā)論文 軟件工程 軟件專業(yè)論文 軟件工程專業(yè) 軟件畢業(yè)論文 紀(jì)律教育問(wèn)題 新時(shí)代教育價(jià)值觀