天天看點

個人閱讀作業2

1.沒有銀彈

   在電子産品飛速發展的當代,《沒有銀彈》文章提出在軟體工程領域進十年之内,沒有辦法使軟體生産率有數量級的提高。雖然在電子硬體方面,計算機飛速發展,但在軟體方面存在固有的困難。在許多産業的發展過程中,會有新技術的産生,帶來生産效率的質變,但在軟體開發行業,許多影響開發效率的負面因素都被克服,如機器語言落後,機器品質限制等。如今阻礙軟體開發的最大原因就是軟體本身的複雜性。對于先進技術對軟體開發的影響,文章也有分析,但文章指出,程式設計軟體和程式設計思想的進展,無法改變設計本身的複雜性。對于人工智能和自動程式設計,文章指出其不具有普适性,至少目前為止,其應用并不會對軟體開發的複雜性本身産生影響。

  《沒有銀彈》中的核心思想便是軟體開發效率在短期(10年)内是不會有質變的,對此我表示贊同,因為曾經影響軟體開發的次要因素已不存在,軟體開發的複雜性日益歸結于軟體本身,正如任何其他領域的生産,起初的發展往往是迅速的,新的生産工具引入,或者是新的技術引入,會使産品的生産效率大幅提高,但當這些次要因素都已被解決,最終就要考慮産品本身的複雜性。軟體的獨特性在于它歸結了人類的思想,具有特殊的複雜性,于人的思維相關聯,若要使提高軟體開發效率有質變,首先要克服的便是軟體複雜性本身,即人的智能本身,這在短期顯然是很難提升的。

2.大泥球

    大泥球的定義是指一堆混雜的代碼不斷的拼接,複用,使得整個程式顯得混亂不堪,難以閱讀調試,毫無規範性可言。首先,這和我所了解到的軟體工程規範就不相符,現在軟體工程要求軟體結構化,代碼易讀。造成如此混亂的原因就是為了友善軟體的即時可用性,進而不顧細節上的修繕,不斷的累積導緻最終的代碼混雜,使代碼的生命周期極短。個人覺得解決這個問題的最好方法就是遵循軟體工程開發的流程,雖不用嚴格遵守,但要使代碼具有可用性,可拓展性。

   我們的項目是”學霸網站“,為解決大泥球問題,我們首先要分析上一屆的代碼架構,對每一個子產品進行了解,删除多餘的代碼,補充所需要的結構,按照項目規法逐漸建構項目.

3.靈活開發

  

1. 通過盡早的、持續的傳遞有價值的軟體來使客戶滿意。我們做的是網站,不可能等待100%完美之後再釋出,而是在不斷的疊代中添加特性。

2. 即使到了開發的後期,也歡迎改變需求。實際上任何時候更改需求,我們都能夠做出響應。

3. 在團隊内部,最具有效果并且富有效率的傳遞資訊的方法,就是面對面的交談。在成員對某個子產品有疑問時,直接找負責那個子產品的成員,後者會進行詳細講解。