軟件工程之項目策劃計劃與質(zhì)量管理概述_第1頁
軟件工程之項目策劃計劃與質(zhì)量管理概述_第2頁
軟件工程之項目策劃計劃與質(zhì)量管理概述_第3頁
軟件工程之項目策劃計劃與質(zhì)量管理概述_第4頁
軟件工程之項目策劃計劃與質(zhì)量管理概述_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第三章 項目打算與質(zhì)量治理在可行性分析之后,項目打算與質(zhì)量治理將貫穿需求分析、系統(tǒng)設計、程序設計、測試、維護等軟件工程環(huán)節(jié)。項目打算是要提供一份合理的進程表,讓所有開發(fā)人員任務明確、步調(diào)一致,最終共同準時地完成項目。項目打算是要付諸實施的,不象用嘴巴喊政治口號,能夠專門夸張。軟件的項目打算重在“準確”而非“快速”。提高質(zhì)量是軟件工程的要緊目標。但由于軟件開發(fā)是一種智力創(chuàng)作活動,專門難象傳統(tǒng)工業(yè)那樣通過執(zhí)行嚴格的操作規(guī)范來保證軟件產(chǎn)品的質(zhì)量。世上最小心翼翼、最老實巴腳的程序員未必就能開發(fā)出高質(zhì)量的軟件來。程序員必須了解軟件質(zhì)量的方方面面(稱為質(zhì)量因素),如正確性、性能、易用性、靈活性、可復用性、

2、可理解性等等,才能在進行系統(tǒng)設計、程序設計時將高質(zhì)量內(nèi)建其中。軟件的高質(zhì)量并不是“治理”出來的,實質(zhì)上是設計出來的,質(zhì)量的治理只是一種預防和認證的手段而已。3.1 項 目 計 劃做項目打算,如同給一個待出生的嬰兒寫傳記那樣困難。假如同意項目結束后再寫打算,那就輕松多了,同時能夠100% 地準確。歷史教訓讓我們明白一個道理:假如一萬年以后才會有一條陽光大道通向共產(chǎn)主義,那么現(xiàn)在就不要忙著砸鍋煉鋼趕英超美,免得在跑步奔向共產(chǎn)主義時把自己累死餓死。在做軟件的項目打算時,應屏棄一切浮夸作風。只有“知已知彼”才能做出合理的項目打算。那個地點“知彼”是指要了解項目的規(guī)模、難度與時刻限制?!爸选笔侵敢私?/p>

3、有多少可用資源,如可調(diào)用的程序員有幾個?他們的水平如何?軟硬件設施如何?3.1.1 知己知彼首先要了解項目的規(guī)模、難度與時刻限制,才能夠確定應該投入多少人力、物力去做那個項目。在可行性分析時期就要考慮那個問題。但不幸的是,人們在陷入項目不能自撥之前總難以準確地可能項目的規(guī)模與難度。那個地點經(jīng)驗起到了最重要的作用。項目的時刻限制有兩類。第一類,項目應該完成的日期寫在合同中,假如延期了,則開發(fā)方要作出相應的賠償。第二類是開發(fā)自己的軟件產(chǎn)品,盡管只確定了該產(chǎn)品大致的發(fā)行日期并同意有延誤,但假如拖延太久則會失去商機造成損失。項目的資源分為三類:“人”、“可復用的軟構件”和“軟硬件環(huán)境”,如圖3.1所示

4、。()人是最有價值的資源。項目打算的制定者要確定開發(fā)人員的名單,要依照他們的專長進行分工。()可復用的軟構件是次有價值的資源。1.2.1節(jié)論述了復用軟構件可提高軟件的質(zhì)量與生產(chǎn)率。軟構件并非一定要用自己的,能夠向專業(yè)的軟件供應商購買。()軟硬件環(huán)境盡管不是最重要的資源,卻是必需的資源。原則上軟硬件環(huán)境只要符合項目的開發(fā)要求即可。有些項目可能要用到專門的設備,則要事先作好預備,以免用時找不到而擔擱了進程。1. 人 2. 可復用的軟構件 3. 軟 硬 件 環(huán) 境圖3.1 項目的資源3.1.2 進度安排有一位程序員忙著編寫程序,經(jīng)理問他還需要多久才能完成?!案娜站湍軌蛲瓿伞!背绦騿T立即回答?!拔蚁脒@

5、是不切實際的,實話實講,到底還要多少時刻?”經(jīng)理講?!拔疫€想加進一些新的功能,這需要花兩個星期?!背绦騿T想了一會兒講?!凹词谷绱艘财谕^高了,只要你編完程序時告訴我一聲,我也就滿足了?!苯?jīng)理講。幾年以后,經(jīng)理要退休了。在他去退休午餐會時,發(fā)覺那位程序員正趴在機器旁睡覺:悲傷的家伙整個晚上都在忙于編寫那個程序。James 1999程序員也期望每天早晨能在7:00準時起床,可老是一覺醒來就到中午了。項目落后于進度表乃是家常便飯,不必大驚小怪。以下一些事件經(jīng)常會導致項目被延誤:(1)上級領導主管臆斷,制定了不現(xiàn)實的期限。項目經(jīng)理與程序員們被迫按照不合理的進度表開展工作。(2)客戶的需求發(fā)生了變化,但

6、沒有對進度表作出相應的修改。(3)低估了項目的規(guī)模與難度,導致投入的人力和物力不足。(4)并未預見到存在難以克服的技術障礙。(5)并未預見到開發(fā)人員會發(fā)生問題,如生病,辭職等等。(6)開發(fā)人員之間不能專門好的交流、協(xié)作,導致各時期任務難以如期完成。因此寫進程表不能象小學生寫決心書那樣充滿幻想。以下是一些有益的建議:(1)制定進度表的人最好確實是項目負責人,他最了解項目和開發(fā)人員。進度表要通過開發(fā)小組的討論,在得到大部數(shù)人的支持后才能實施。幸免出現(xiàn)一廂情愿的局面。(2)進度安排并不見得一定要符合邏輯順序。應盡可能地先做技術難度高的事,后做難度低的事。也確實是辛苦在前,輕松在后。小時候我對一位老先

7、生吃飯專門感興趣:他總是先把一大盒的米飯吃光了,然后再幸福地品嘗一小盒菜。父母告訴我這是中國的傳統(tǒng)美德,叫“先苦后甜”。從此我銘記在心,按此道理去學習和工作。可現(xiàn)在在飯店里,人們總是先把菜吃完了,最后才吃點米飯。天哪,生活真是太復雜了,我究竟該“先吃飯” 依舊“先吃菜”?(3)開發(fā)一個大的軟件項目,應該將進度表分為若干個里程碑。一個里程碑之內(nèi)的多個任務能夠同步進行。程序員極容易沉迷于技術,要么樂不思蜀,要么焦頭爛額。里程碑就象心靈的燈塔,使忙碌的人群不混亂,不迷失方向。(4)進度表中必須留有緩沖時刻,并將緩沖時刻用到不確定的情況上。因為人們對立即要做的情況知之甚少,因此要留一些時刻以防不測。M

8、icrosoft公司的一些開發(fā)小組甚至制定了“50% 緩沖規(guī)則”Cusumano 1996。對許多項目經(jīng)理而言,容忍進度表中存在緩沖時刻,不啻為觀念上的一個飛躍。(5)假如發(fā)覺項目應交付的期限特不不合理,就要跟領導或跟客戶據(jù)理力爭,請求放寬期限、調(diào)整進度。當客戶的需求發(fā)生變化時,就要對進度表作出相應的修正。不要覺得修改進度表專門困難專門苦惱,不修改才會產(chǎn)生真確實苦惱。專門多人認為戒煙專門困難,但馬克吐溫曾講:“戒煙專門容易,我一年就戒幾十次。”3.2 零缺陷質(zhì)量治理的觀念“零缺陷”質(zhì)量治理的觀念來源于一些國際上聞名的硬件生產(chǎn)廠商。盡管軟件的開發(fā)與硬件生產(chǎn)有極大的差不,但我們?nèi)阅軌驈摹傲闳毕荨辟|(zhì)

9、量治理中得到啟迪?!傲闳毕荨辟|(zhì)量治理至少有兩個核心內(nèi)容:一是高目標,二是可執(zhí)行的規(guī)范。3.2.1 高目標人在做一件情況時,由于存在專門多不確定的因素,一般不可能100% 地達到目標。假設平常人做事能完成目標的80%。假如某個人的目標是100分,那么他最終成績可達80分。假如某個人的目標只是60分,那么他最終成績只有48分。我們在考場上身經(jīng)百戰(zhàn),專門清晰那些只想混及格的學生通常都可不能及格,那些想得高分的學生也常為自己的失誤而捶胸頓足。做一個項目通常需要多個人的協(xié)作。假設項目的總質(zhì)量(最高為1)是十個開發(fā)人員的工作質(zhì)量之積。假如每個人的質(zhì)量目標是0.95,那么十個人的累積質(zhì)量可不能超過0.19。

10、假如每個人的質(zhì)量目標是0.9分,那么十個人的累積質(zhì)量可不能超過0.03。只有每個人都做到1,項目總質(zhì)量才會是1。假如沒有高目標,人的墮落就專門快。假如沒有“零缺陷”的質(zhì)量目標,也許缺陷就會成堆。3.2.2 可執(zhí)行的規(guī)范實現(xiàn)100分顯然比實現(xiàn)80分要付出更多的努力?!傲闳毕荨辟|(zhì)量目標不是為所欲為提出來的,做得到才有意義。實現(xiàn)高目標需要一套可執(zhí)行的規(guī)范來保證。50年代末,全國掀起了“浮夸風”。為了實現(xiàn)畝產(chǎn)數(shù)萬斤推廣各種方法,害得全國鬧饑餓。想不到有數(shù)千年種糧經(jīng)驗的幾億中國農(nóng)民就這么整齊地栽倒了。好規(guī)范必須是本企業(yè)有能力執(zhí)行的。一個一般企業(yè)照搬一流企業(yè)的規(guī)范未必行得通。軟件工程的規(guī)范專門容易從書籍中

11、找到,但有了這些規(guī)范并不表明就能把軟件做好。國內(nèi)專門多軟件公司全然沒有條件去執(zhí)行業(yè)界推舉的軟件工程規(guī)范。社會主義初級時期的“草”與發(fā)達資本主義國家的“苗”的確有不同的培育方式。軟件是如此的靈活,假如沒有規(guī)范來制約,就容易因無序的喜好而導致混沌;但規(guī)范假如太嚴密了,就會扼殺程序員生機勃勃的制造力。制定軟件規(guī)范是進退兩難的事。程序員必須深入了解軟件多方面的質(zhì)量因素,把那些能提高軟件質(zhì)量因素的各種規(guī)范植入腦中,才能在各個實踐環(huán)節(jié)自然而然地把高質(zhì)量設計到軟件中。3.3 軟件的質(zhì)量因素“運行正確”的程序確實是高質(zhì)量的程序嗎?不貪污的官確實是好官嗎?時下老百姓對一些腐敗的地點政府深痛惡絕,對“官”不再有質(zhì)

12、量期望。只要當官的不貪污,哪怕毫無政績,也確實是“好官”。也有一些精明的老百姓打出旗號:寧要貪污犯,不要大笨蛋。相比之下,程序員是夠幸福的了。因為我們能通過努力,由自己來把握軟件的命運。那么就不要輕易放棄提高軟件質(zhì)量的權利了?!斑\行正確”的程序不見得確實是高質(zhì)量的程序。那個程序也許運行速度專門低同時白費內(nèi)存;也許代碼寫得一塌糊涂,除了開發(fā)者本人誰也看不明白也可不能使用。正確性只是反映軟件質(zhì)量的一個因素而已。軟件的質(zhì)量因素專門多,如正確性、精確性、可靠性、容錯性、性能、效率、易用性、可理解性、簡潔性、可復用性、可擴充性、兼容性等等(還能夠列出十幾個)。這些質(zhì)量因素之間“你中有我,我中有他”,特不

13、纏綿。假如程序員每天要面對那么多質(zhì)量因素咬文嚼字,不久就會迂腐得象孔乙已,同時有找不到女朋友的危險。為了便于理解,能夠參照武俠小講中的武學分類,將質(zhì)量因素粗略地分成幾大派。你想那武學源源流長,相互滲透,誰能數(shù)得清有多少江湖派不。但想在道上混,總得明白六大門派:“少林派”、“武當派”、“峨嵋派”、“華山派”、“昆侖派”和“崆峒派”。軟件質(zhì)量因素的分類如圖3.2所示。其中“正確性與精確性”排在首位,地位如同“少林派”與“武當派”;而“性能與效率”,“易用性”,“可理解性與簡潔性”和“可復用性與可擴充性”亦是舉足輕重的質(zhì)量因素,地位仿佛“峨嵋派”,“華山派”,“昆侖派”和“崆峒派”。其它的質(zhì)量因素總

14、能夠在圖3.2中找到合適的親緣關系,本節(jié)不再一一細表。正確性與精確性少林派、武當派性能與效率可復用性與可擴充性崆峒派昆侖派峨嵋派華山派可理解性與簡潔性易用性圖3.2 軟件質(zhì)量因素分類和武學分類3.3.1 正確性與精確性正確性與精確性之因此排在質(zhì)量因素的第一位,是因為假如軟件運行不正確或者不精確,就會給用戶造成不便甚至造成損失。機器可不能主動欺騙人,軟件運行不正確或者不精確一般差不多上人造成的。即使一個軟件能100% 地按需求規(guī)格執(zhí)行,然而假如需求分析錯了,那么對客戶而言那個軟件也存在錯誤。即使需求分析完全符合客戶的要求,然而假如軟件沒有100% 地按需求規(guī)格執(zhí)行,那么那個軟件也存在錯誤。開發(fā)一

15、個大的軟件項目,程序員要為“正確”、“精確”四個字竭盡精力。與正確性、精確性相關的質(zhì)量因素是容錯性和可靠性。容錯性首先承認軟件系統(tǒng)存在不正確與不精確的因素,為了防止?jié)撛诘牟徽_與不精確因素引發(fā)災難,系統(tǒng)為此設計了安全措施。在一些高風險的軟件系統(tǒng),如航空航天、武器、金融等系統(tǒng)中,容錯性設計特不重要??煽啃允侵冈谝欢ǖ沫h(huán)境下,在給定的時刻內(nèi),系統(tǒng)不發(fā)生故障的概率??煽啃员緛硎怯布I域的術語。比如某個電子設備,一開始工作專門正常,但由于工作中器件的物理性質(zhì)會發(fā)生變化(如發(fā)熱),慢慢地系統(tǒng)就會失常。因此一個設計完全正確的硬件系統(tǒng),在工作中未必確實是可靠的。軟件在運行時可不能發(fā)生物理性質(zhì)的變化,人們常以

16、為假如軟件的某個功能是正確的,那么它一輩子差不多上正確的。但是我們無法對軟件進行完全地測試,無法根除軟件中潛在的錯誤。平常軟件運行得好好的,講不準哪一天就不正常了,如“2000年”問題。因此把可靠性引入軟件領域是有意義的。我曾買了一本關于軟件可靠性的著作,此書充滿了數(shù)學公式。我發(fā)覺以我目前的學歷實在難以看明白書上講了些什么。請寬恕我的愚昧,我把此書給“供”起來,沒敢用筆畫一處記號。3.3.2 性能與效率用戶都希望軟件的運行速度高些(高性能),同時占用資源少些(高效率)。舊社會地主確實是這么對待長工的:干活要快點,吃得要少點。程序員能夠通過優(yōu)化算法、數(shù)據(jù)結構和代碼組織來提高軟件系統(tǒng)的性能與效率。

17、優(yōu)化的關鍵工作是找出限制性能與效率的“瓶頸”,不要在無關痛癢的地點瞎忙乎。假如你想職稱升得快,光靠增加課時能頂屁用;你就該一年寫它幾十篇文章,爭取破格升教授。3.3.3 易用性易用性是指用戶感受使用軟件的難易程度。用戶可能是操作軟件的最終用戶,也可能是那些要使用源代碼的程序員?,F(xiàn)代人的生活節(jié)奏快,干啥事都想圖個方便。因此把易用性作為重要的質(zhì)量因素無可非議。導致軟件易用性差的全然緣故是開發(fā)人員犯了“錯位”的毛?。核詾橹灰约河闷饋矸奖?,用戶也一定會中意。俗話講“王婆賣瓜,自賣自夸”。當程序員向用戶展示軟件時,常會得意地講:“那個軟件特不行用,我操作給你看,是專門好用吧!”軟件的易用性要讓用戶來

18、評價。當用戶確實感到軟件專門好用時,一股溫暖的感受油然而生,因此就用“友好”來評價易用性。3.3.4 可理解性與簡潔性可理解性表達了人們一種質(zhì)樸的愿望:我化鈔票買了它,總得讓我明白它是什么東西。我小時候的一個伙伴在讀中學時,就因無法理解電荷之分正負,覺得專門苦惱,便早早地綴學當工人??衫斫庑砸彩菍τ脩舳缘?。開發(fā)人員只有在自己思路清晰時才可能寫出讓不人能理解的程序。編程時還要注意不可濫用技巧,應該用自然的方式編程。我們的確不明白自己的得意之舉究竟是錦上添花,依舊畫蛇添足。就象蒸出一籠饅頭,在上面插一朵鮮花,本想弄點詩情畫意,卻讓人誤以為那是一堆熱氣騰騰的牛糞。簡潔是一種美,不管是自己依舊用戶都

19、會有同感。在生活中,與簡潔對立的是“羅里羅嗦”。中國小講中最“婆婆媽媽”的男人是唐僧。有一項民意調(diào)查:假如世上只有唐僧、孫悟空、豬八戒和沙僧這四類男人,你要嫁給哪一類?請列出優(yōu)先級。調(diào)查結果表明,現(xiàn)代女性毫不例外地把唐僧擺在老末。一個原始的應用問題可能專門復雜,但高水平的人就能夠把軟件系統(tǒng)設計得專門簡潔。假如軟件系統(tǒng)臃腫不堪,它遲早會出問題。簡潔是人們對工作“精益求精”的結果。廢話大師有句名言:“假如我令你過于輕松地明白了,那你一定是誤解了我講的話?!蔽易罱幸环N驚奇的體會:假如把學術文章寫得專門簡潔,讓人專門容易理解,它往往中不了;只有加上一些玄乎的東西,把本來簡單的弄成復雜的,才會增加投稿

20、的命中率。事實上,我能夠在5分鐘之內(nèi)講清晰三年來讀博所做的工作,全然用不著寫100多頁的博士論文。我是在臨近畢業(yè)時,才發(fā)覺自己完全不適合讀博士學位。今后工作后,我一定要好好編程,重新做人。3.3.5 可復用性與可擴充性復用的一種方式是原封不動地使用現(xiàn)成的軟構件,另一種方式是對現(xiàn)成的軟構件進行必要的擴充后再使用??蓮陀眯院玫某绦蛞话阋簿哂辛己玫目蓴U充性。本書第六章將論述如何設計可復用、可擴充的C+程序。3.4 質(zhì) 量 檢 查檢查是人們不信任自己和不人的一種行為。當某些情況涉及到利益分配時,更需要有檢查活動來保證公平??赡芗词惯M入了共產(chǎn)主義社會,也少不了檢查。質(zhì)量檢查并不是要等到項目結束時才執(zhí)行唯

21、一的一次,應該在每個實踐環(huán)節(jié)都要執(zhí)行。對應于進度表,在每個里程碑到達時執(zhí)行質(zhì)量檢查比較合理。質(zhì)量檢查的內(nèi)容有二:一是作出評審,是合格依舊不合格?能打多少分?二是作出建議,對質(zhì)量什么緣故好什么緣故差進行分析,以便“改差為好”、“好上加好”。以下是人們經(jīng)常采納的軟件質(zhì)量檢查措施Pressman 1999:(1)事先把檢查的要緊內(nèi)容制成一張表,使檢查活動集中在要緊問題上。(2)只評審工作,不評審開發(fā)者。評審的氣氛應該是融洽的。存在的錯誤應該被有禮貌地指出來,任何人的意見都不應被阻止或小看。(3)建立一個議事日程并遵循它。檢查過程不能放任自由,必須排照既定的方向和日程進行。(4)不要化太多的時刻爭論和辯駁。(5)講清晰問題所在,但不要企圖當場解決所有問題。(6)對檢查人員進行適當?shù)呐嘤?。做好檢查工作并不是件容易的事。自古以來“上有政策,下有對策”。 虛假的質(zhì)量檢查還不如不檢查,下面講兩個故事作為解釋。故事一不久前我回到西北那所讀了六年多的大學,驚奇地發(fā)覺校園里房前屋

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論