《高品質程式設計指南——C/C++語言》第1章 高品質軟體開發之道

來源:互聯網
上載者:User

第1章 高品質軟體開發之道

      本書的第1章之高品質軟體開發之道,作者用大量的篇幅介紹了“軟體品質”的基本概念,解釋了軟體品質的十大屬性。這十大品質屬性又分為功能性和非功能性兩類,功能性包括正確性,健壯性和可靠性;非功能性包括效能,易用性,清晰性,安全性,可擴充性,相容性和可移植性。 

1.1 軟體品質的基本概念  

     在這一節裡,作者提出了“零缺陷”理念。

    “沒有錯誤的程式世間難求”。我們也經常說,“零缺陷”只是一種理想狀態。然而,人在做一件事情時,由於存在很多不確定因素,一般不可能100%地達到目標。從嚴要求只有好處沒有壞處,因此有了“零缺陷”理念。如果沒有“零缺陷”的品質理念,也許缺陷就會成堆。這就是所謂的“取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,則無所得矣。”

1.2  細說軟體品質屬性 

       正確性,健壯性和可靠性

       這是我們開發人員在開發產品時的基本要求!正確性的重要是不言而喻的,錯誤的東西不但毫無價值,反而會造成損失。健壯性和可靠性是軟體產品可用的保障,時不時崩潰或極不友好的軟體使用者肯定會不願意使用。

       效能

       效能通常是指軟體的“時間-空間”效率,而不僅是指軟體的運行速度。

       特別是我目前從事的行業,因為經常要進行海量資料的處理,效能更是一個普遍關注的問題。解決效能問題,關鍵任務是找出效能瓶頸,不要在無關痛癢的地方瞎忙乎。就我而言,遇到最多的其實還是是時間效率多餘空間效率。因此,通常採用“空間換時間的做法”比較普遍。(可能是由於硬體的成本降低,大記憶體相對比較容易獲得)。

     易用性

     易用性最重要體現在需求人員(或產品設計師)對軟體產品的設計。

      清晰性(可讀性、可維護性)

      Martin Flower的《重構》一書中講過“任何一個傻瓜都能寫出電腦可以理解的代碼。唯有寫出人類容易理解的代碼,才是優秀的程式員。”足以可見可讀性的重要性!只有可讀的代碼才可維護。

      安全性,可擴充性,相容性和可移植性,就從目前我所從事的行業來看,相容性和可擴充性相對更加重要些。與同行業相同強勢軟體的相容,版本之間的相容,等等。

     經驗表明,如果“高品質”是“修補”出來的,毫無疑問會導致低生產率和高成本。如果能研製出某些好方法,將高品質與高生產率內建於開發過程之中,那麼就能自然的降低開發成本,這是軟體流程改善的目標。

1.3  人們關注的不僅僅是品質

       軟體企業力求做到“魚,熊掌,美酒三者兼得”。

       高品質既是軟體開發人員的技術追求,又是職業道德的要求。

       品質與生產率之間存在相輔相成的關係。但不論如何,高生產率必須以品質合格為前提。

       在過程混亂的企業裡,一批人馬累死累活地做完產品後,馬上又因品質問題被弄得焦頭爛額。

1.4 高品質軟體開發的基本方法

       作者從建立軟體過程規範,複用,分而治之,最佳化與折中,技術評審,測試,品質保證和改錯等8個方面論述了軟體開發的基本流程。

      無規矩不成方圓,軟體開發過程是一項長期複雜的活動,需要建立一套適合實際情況的規範和流程,並形成制度,從制度上對這一過程以保證。 

     “正常化”是區別“正規軍”和“遊擊隊”的根本標誌。

     “請不要再發明相同的車輪子了。”是對複用的渴望。複用有利於提高品質,提高生產率,並減低成本。

      最佳化工作不是可有可無的事情,而是必須要做的事情。

      過程品質與產品品質存在某種因果關係,通常“好的過程”產生“好的產品”,而“差的過程”產生“差的產品”。當然,單獨的“品質保證”其實並不能保證品質。技術評審與測試才關注產品品質,技術評審和測試能彌補品質保證的不足,三者是相輔相成的品質管理方法。

1.5 關於軟體開發的一些常識和思考

         在這一節裡作者從他自己的角度回答了一下問題:

     1,有最好的程式設計語言嗎?

     2,編程是一門藝術嗎?

     3,編程時應該多提示嗎?

     4,換更快的電腦還是換更快的演算法?

     5,錯誤是否應該分等級?

          並對一些錯誤的觀念給出了自己的觀點。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.