高質(zhì)量軟件開發(fā)之道_第1頁
高質(zhì)量軟件開發(fā)之道_第2頁
高質(zhì)量軟件開發(fā)之道_第3頁
高質(zhì)量軟件開發(fā)之道_第4頁
高質(zhì)量軟件開發(fā)之道_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、高質(zhì)量軟件開發(fā)之道高質(zhì)量軟件開發(fā)之道 內(nèi)建高質(zhì)量而非修補質(zhì)量的理念與方法內(nèi)建高質(zhì)量而非修補質(zhì)量的理念與方法 林林 銳銳 博士博士rui.linalcatel-http:/Page 2目錄目錄1. IT企業(yè)面臨的軟件工程難題與對策企業(yè)面臨的軟件工程難題與對策 2. 軟件過程改進:理念與解決方案軟件過程改進:理念與解決方案3. 細(xì)說軟件質(zhì)量細(xì)說軟件質(zhì)量4. 高質(zhì)量軟件開發(fā)的理念:內(nèi)建質(zhì)量而非修補質(zhì)量高質(zhì)量軟件開發(fā)的理念:內(nèi)建質(zhì)量而非修補質(zhì)量5. 現(xiàn)場交流現(xiàn)場交流Page 31. IT企業(yè)長期面臨的軟件工程難題企業(yè)長期面臨的軟件工程難題1.1 企業(yè)的目的企業(yè)的目的 u根本目的:合法地賺錢,獲取盡可能

2、多的利潤。u第一推論:為了使利潤最大化,產(chǎn)品開發(fā)應(yīng)當(dāng)“做得好、做得快并且少花錢” u 軟件工程學(xué)科的目的:提高軟件產(chǎn)品質(zhì)量、提高生產(chǎn)率并且降低開發(fā)成本 u質(zhì)量、生產(chǎn)率、成本之間的復(fù)雜關(guān)系u成本重要還是Time to Market 重要?1.2 企業(yè)長期面臨的企業(yè)長期面臨的軟件工程難題軟件工程難題u產(chǎn)品質(zhì)量低下、進度延誤、費用超支(軟件工程學(xué)科發(fā)展30年尚未徹底解決) u經(jīng)典軟件工程:研究需求分析、系統(tǒng)設(shè)計、編程、測試、維護等領(lǐng)域的方法、技術(shù)和工具u問題之源:人們逐漸意識到,由于企業(yè)管理軟件過程的能力比較弱,常常導(dǎo)致項目處于混亂狀態(tài)。過程混亂使得新技術(shù)、新工具的優(yōu)勢難以體現(xiàn)。經(jīng)典的軟件工程不是不

3、好,而是不夠用。 u用于提高軟件過程能力的實踐通稱為軟件過程改進。 Page 42. 軟件過程改進:理念與解決方案軟件過程改進:理念與解決方案 2.1 軟件過程改進理念軟件過程改進理念u提高軟件過程能力可以比喻為“練內(nèi)功”,“練內(nèi)功”沒有捷徑可走,唯有走“規(guī)范化”之路,即“制定適合于本企業(yè)的軟件過程規(guī)范,并按照此規(guī)范執(zhí)行”。 u“規(guī)范化”不會抑止人們的創(chuàng)造力,相反地,它使得團隊可以大規(guī)模地復(fù)用前人積累的智慧和財富。這種方法非常適合于現(xiàn)代的工業(yè)化生產(chǎn)。 (麥當(dāng)勞與中餐館對比)u業(yè)界實踐已經(jīng)證明,走“規(guī)范化”之路是“成本最低、見效最快、能持續(xù)發(fā)展”的軟件過程改進方法,猶如人類的“養(yǎng)生之道”。任何I

4、T企業(yè)(不論大?。加修k法以其承受得起的代價“走規(guī)范化之路”,從而有效地提高軟件過程能力。 2.2 IT企業(yè)軟件過程改進的需求企業(yè)軟件過程改進的需求u首先制定適合于本企業(yè)的軟件過程規(guī)范。 u對員工們進行培訓(xùn),指導(dǎo)他們依據(jù)規(guī)范來開發(fā)產(chǎn)品。 u購買一些軟件工程和項目管理工具,提高員工們的工作效率 。 2.3 CMMI 3級軟件過程改進解決方案級軟件過程改進解決方案u通用的CMMI 3級軟件過程改進方法與規(guī)范,命名為“精簡并行過程”(SPP)。 u與SPP配套的軟件工程和項目管理培訓(xùn)教材。 u一套基于Web的集成化軟件項目管理工具,主要功能包括項目規(guī)劃、項目監(jiān)控、質(zhì)量管理、配置管理、需求管理、工作

5、流管理等,命名為Future。 CMMI 3級精簡并行過程 SPP 模型模型軟件工程著作軟件工程著作基于Web的集成化軟件項目管理工具Page 83. 細(xì)說軟件質(zhì)量細(xì)說軟件質(zhì)量 3.1 如何描述質(zhì)量如何描述質(zhì)量u用人的健康做類比u如何判斷人是否健康?體檢因素:身高、體重、心跳、血壓、血液、體溫等u運行正確的軟件就是高質(zhì)量的軟件嗎?不貪污的官就是好官嗎?3.2 十大軟件質(zhì)量因素十大軟件質(zhì)量因素u功能性質(zhì)量因素:正確性,健壯性,可靠性u非功能性質(zhì)量因素:性能,易用性,清晰性,安全性,可擴展性,兼容性,可移植性u為什么是“十大” 質(zhì)量因素 u逐一解釋“十大” 質(zhì)量因素(參見高質(zhì)量程序設(shè)計指南C+/C

6、語言)3.3 正確性正確性u正確性是指軟件按照需求正確執(zhí)行任務(wù)的能力。 “正確性”的語義涵蓋了“精確性”。u正確性無疑是第一重要的軟件質(zhì)量屬性。u技術(shù)評審和測試的第一關(guān)都是檢查工作成果的正確性。 u機器不會主動欺騙人,軟件運行出錯通常都是人造成的,所以不要找借口埋怨機器有毛病。 Page 93. 細(xì)說軟件質(zhì)量細(xì)說軟件質(zhì)量 3.4 健壯性健壯性 u健壯性是指在異常情況下,軟件能夠正常運行的能力。 u正確性描述軟件在需求范圍之內(nèi)的行為,而健壯性描述軟件在需求范圍之外的行為。u開發(fā)者往往把異常情況錯當(dāng)成正常情況而不作處理,結(jié)果降低了健壯性。 u用戶才不管正確性與健壯性的區(qū)別,反正軟件出了差錯都是開發(fā)

7、方的錯。所以提高軟件的健壯性也是開發(fā)者的義務(wù)。u健壯性有兩層含義:一是容錯能力,二是恢復(fù)能力。 3.5 可靠性可靠性 u可靠性是指在一定的環(huán)境下,在給定的時間內(nèi),系統(tǒng)不發(fā)生故障的概率。u可靠性本來是硬件領(lǐng)域的術(shù)語。比如某個電子設(shè)備在剛開始工作時挺好的,但由于器件在工作中其物理性質(zhì)會發(fā)生變化(如發(fā)熱),慢慢地系統(tǒng)的功能或性能就會失常。所以一個從設(shè)計到生產(chǎn)完全正確的硬件系統(tǒng),在工作中未必就是可靠的。 u軟件在運行時不會發(fā)生物理性質(zhì)的變化,人們常以為如果軟件的某個功能是正確的,那么它一輩子都是正確的。可是我們無法對軟件進行徹底地測試,無法根除軟件中潛在的錯誤。平時軟件運行得好好的,說不準(zhǔn)哪一天就不正

8、常了,如有千年等一回的“千年蟲”問題,司空見慣的“內(nèi)存泄露”問題、“誤差累積”問題等等。 u時隱時現(xiàn)的錯誤一般都屬于可靠性問題,糾錯的代價很高。Page 103. 細(xì)說軟件質(zhì)量細(xì)說軟件質(zhì)量 3.6 性能性能u性能通常是指軟件的“時間-空間”效率,而不僅是指軟件的運行速度。人們總希望軟件的運行速度高些,并且占用資源少些。 u性能優(yōu)化的關(guān)鍵工作是找出限制性能的“瓶頸” u可以通過優(yōu)化數(shù)據(jù)結(jié)構(gòu)、算法和代碼來提高軟件的性能。 3.7 易用性易用性u易用性是指用戶使用軟件的容易程度。u現(xiàn)代人的生活節(jié)奏快,干啥事都想圖個方便。所以把易用性作為重要的質(zhì)量屬性對待無可非議。 u導(dǎo)致軟件易用性差的根本原因 :理

9、工科大學(xué)教育存在缺陷:沒有開設(shè)人機工程學(xué)、美學(xué)、心理學(xué)這些必修課,大部分開發(fā)人員不知道如何設(shè)計易用的軟件產(chǎn)品。 開發(fā)人員犯了“錯位”的毛病:他以為只要自己用起來方便,用戶也就會滿意。 u軟件的易用性要讓用戶來評價。當(dāng)用戶真的感到軟件很好用時,一股溫暖的感覺油然而生,于是就用“界面友好”、“方便易用”等詞來評價軟件產(chǎn)品。 Page 113. 細(xì)說軟件質(zhì)量細(xì)說軟件質(zhì)量 3.8 清晰性清晰性 u清晰意味者所有的工作成果易讀、易理解,可以提高團隊開發(fā)效率,降低維護代價。 u開發(fā)人員只有在自己思路清晰的時候才可能寫出讓別人易讀、易理解的程序和文檔。 u可理解的東西通常是簡潔的。一個原始問題可能很復(fù)雜,但

10、高水平的人就能夠把軟件系統(tǒng)設(shè)計得很簡潔。如果軟件系統(tǒng)臃腫不堪,它遲早會出問題。所以簡潔是人們對工作“精益求精”的結(jié)果,而不是潦草應(yīng)付的結(jié)果。 u千萬不要把在學(xué)校里“造文章”的手法用于開發(fā)產(chǎn)品! 3.9 安全性安全性 u這里安全性是指信息安全,英文是Security而不是Safety。u安全性是指防止系統(tǒng)被非法入侵的能力,既屬于技術(shù)問題又屬于管理問題。 u“道高一尺,魔高一丈” ,絕對安全的信息系統(tǒng)幾乎不存在。u開發(fā)商和客戶愿意為提高安全性而投入的資金是有限的,他們要考慮值不值得。 u究竟什么樣的安全性是令人滿意的呢? 一般地,如果黑客為非法入侵花費的代價(考慮時間、費用、風(fēng)險等因素)高于得到的

11、好處,那么這樣的系統(tǒng)可以認(rèn)為是安全的。 Page 123. 細(xì)說軟件質(zhì)量細(xì)說軟件質(zhì)量 3.10 可擴展性可擴展性 u可擴展性反映軟件適應(yīng)“變化”的能力。 u在軟件開發(fā)過程中,“變化”是司空見慣的事情,如需求、設(shè)計的變化,算法的改進,程序的變化等等。由于軟件是“軟”的,是否它天生就容易修改以適應(yīng)“變化”?關(guān)鍵要看軟件的規(guī)模和復(fù)雜性。 u現(xiàn)代軟件產(chǎn)品通常采用“增量開發(fā)模式”,不斷推出新版本,獲取增值利潤。可擴展性越來越重要??蓴U展性是系統(tǒng)設(shè)計階段重點考慮的質(zhì)量屬性。 3.11 兼容性兼容性u兼容性是指兩個或兩個以上的軟件相互交換信息的能力。u兼容性的商業(yè)規(guī)則:弱者設(shè)法與強者兼容,否則無容身之地;強者應(yīng)當(dāng)避免被兼容,否則市場將被瓜分。示例: 中國聯(lián)通和中國移動的手機互聯(lián)互通問題 金山軟件公司的WPS與微軟的Word之爭3.12 可移植性可移植性u可移植性是指軟件運行于不同軟硬件環(huán)境的能力u編程語言越低級,其程序越難移植,反之則容易。軟件設(shè)計時應(yīng)該將“設(shè)備相關(guān)程序”與“設(shè)備無關(guān)程序”分開,將“功能模塊”與“用戶界面”分開。Page 134. 高質(zhì)量軟件開發(fā)理念高質(zhì)量軟件開發(fā)理念4.1 質(zhì)量與缺陷質(zhì)量與缺陷u質(zhì)量的死對頭是

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論