軟件工程網絡15我的閱讀做業2-提出問題

提出問題

快速通讀教材《構建之法》,並參照提問模板,提出5個問題。

如何提出有價值的問題? 請看這個文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互聯網時代如何提問題。 還有這些要點:

  • 在每一個問題後面,請說明哪一章節的什麼內容引發了你的提問,提供一些上下文
  • 列出一些事例或資料,支持你的提問。
  • 說說你提問題的緣由,你說由於本身的假設和書中的不一樣而提問,仍是不懂書中的術語,仍是對推理過程有疑問,仍是書中的描述和你的經驗(直接經驗或間接經驗)矛盾?

一個模板能夠是這樣:

我看了這一段文字 (引用文字),有這個問題(提出問題)。 我查了資料,有這些說法(引用說法),根據個人實踐,我獲得這些經驗(描述本身的經驗)。 可是我仍是不太懂,個人困惑是(說明困惑)。html

或者這樣:java

我反對做者的觀點(提出做者的觀點,本身的觀點,以及理由)。程序員

大學生應該能寫出本身的思考, 而不是摘抄書本內容。算法

提示:編程經驗很少的同窗,建議看16章 「創新」, 提出本身的問題。數據庫

問題一:

d. 進一步說,「覆蓋率」有下面幾個層次:編程

  • 1.函數的覆蓋,這個模塊的每個函數都覆蓋了麼?
  • 2.語句的覆蓋,這個模塊的每個語句都覆蓋了麼?
  • 3.分支的覆蓋,這個模塊的每個條件分支都覆蓋了麼?
  • 4.條件的覆蓋,這個模塊的每個布爾表達式的TURE|FALSE都覆蓋了麼?

在讀2.1.2 好的單元測試的標準時,在P27中讀到了上文,做者說代碼覆蓋率須要考慮到每一個模塊是否覆蓋到了每一個函數,是否覆蓋到了每一個語句,是否覆蓋到了每一個條件分支,是否覆蓋到了每一個布爾表達式的TURE|FALSE。可是在實際的軟件工程中,在進行單元測試時,咱們真的要保證有100%的代碼覆蓋率嗎?是否只要保證了單元測試覆蓋了全部的代碼路徑以後,像是語句覆蓋之類的就能夠不用所有代碼覆蓋了呢?就像若是出現了《100%代碼覆蓋率的悲劇》中提到的狀況那樣,某段代碼功能看起來很簡單,沒有條件,沒有循環,沒有轉換,沒有任何複雜的東西,只是一段簡單的老膠水代碼。那麼這時候咱們也須要對它們進行代碼覆蓋,進行測試嗎?這類的代碼咱們是否也要對它們保證徹底覆蓋呢?編程語言

問題二:

在結對編程中,由於有隨時的複審和交流,程序各方面的質量取決於一對程序員中各方面水平較高的那一位。函數

在讀4.5.2 爲何要結對編程時,在P85頁讀到了上文的內容,做者說兩人結對編程時,程序的質量將取決於水平較高的一位,也就是說在編程過程當中是由水平較高的程序員做爲主導。可是這樣的話,在進行編程的過程當中,是否會出現水平較高的程序員長時間的掌控着鍵盤,而水平較低的程序員是否也會以爲由水平高的寫代碼可以更好地完成項目或者課設,而後本身基本上沒有作什麼核心任務這種狀況呢?那麼到項目結束時,就會出現不會的人仍是不會,會的人更加會了的狀況。像這樣的狀況在咱們的課設中也是能夠看到的。若是咱們想要避免出現這樣的狀況,那麼在編程初期咱們應該怎麼樣分配工做纔可以保證即有質有量地完成編程任務,不會出現代碼來不及寫的狀況,又可以讓兩我的都可以都參與到主要代碼的編程中?怎麼樣的工做量纔可以讓結對編程的兩我的都可以有所收穫呢?單元測試

問題三:

獲得了需求以後,軟件團隊就要考慮實現這些需求。一個公司可能有多種軟件產品和服務,它們各有不一樣的戰略意義。一個軟件或服務也由不少功能組成,它們有機地結合起來,才能解決用戶的問題,產生效益。測試

在讀8.5 功能的定位和優先級時,在P171頁讀到了上文的內容,做者說開發一款軟件須要在需求分析時將所收集到的用戶的需求按照不一樣的着重點來開發不一樣的功能。可是咱們要如何來肯定每項功能的優先級呢,如何肯定那種功能是這款軟件的殺手功能呢?是根據市場上其餘軟件的使用狀況來決定,仍是根據對目標人羣的調查來決定?並且根據書上P174—P175中的三幅圖來看,咱們是否是不只僅要將殺手功能決定好定位,並作好它,還須要在這基礎上添加一些市面上同款軟件沒有的功能呢?就像咱們在去餐廳就餐時,若是有一家餐廳衛生又好吃,還不時有些小活動,咱們通常都愛去那吃,那麼在開發軟件上也應該要作到這樣的吧,這樣纔可以產生效益。

問題四:

好的用戶體驗固然是全部人都想要的,若是它和產品的質量有衝突,怎麼辦?犧牲質量去追求用戶體驗麼,用戶能接受嗎?

在讀12.1.6 用戶體驗和質量時,在P269頁讀到了上文的內容。確實,在開發軟件時或者是更新軟件時,不免會遇到上述的狀況。若是用戶的需求,用戶的體驗和咱們的優化的功能或者軟件起衝突了,那麼咱們是該顧着用戶的需求呢,仍是繼續推出優化軟件?做者在這段話後面引用了一個案例來講明瞭做者本身的答案,可是彷佛太片面了,並非全部的狀況均可以是顧用戶的需求,舍功能的優化的。而且當二者利弊都差很少時,咱們該怎麼選擇呢?是否能有個準則來讓咱們衡量呢?

問題五:

能夠看出,在算法和數據庫領域,創新的想法一開始每每不被接受,而那些創建在前人基礎上的「線性擴展」則每每有着更好的命運。

在讀16.1.2 迷思之二:你們都喜歡創新時,在P349-P350頁讀到了上文的內容,結合前文的內容,不難看出做者認爲更新升級每每比起創新更容易讓人們接受。確實,就像是若是你還不容易學會了某種經常使用的編程語言,例如C語言,java等,結果一段時間後,開始使用某種新的編程語言進行編程了,又只能從頭學起了,這樣的話,確實只是更新會比創新更讓人接受。可是,若是僅僅只是更新換代,不進行技術的創新的話,那麼科技的發展就只能停留不前了。咱們如今的社會不也是一步步從原來的創新中創建起來的嗎?若是咱們否認了創新,那麼咱們是否是也否認了如今呢?那麼咱們該如何打破人們對於創新的偏見呢?

【附加題】:請將問題提交至豆瓣:https://book.douban.com/subject/27069503/, 並在博客中給出連接

在豆瓣頁面的最下方 「讀書筆記」 那裏發言, 《構建之法》的做者會親自答覆問題

https://book.douban.com/annotation/54352057/

相關文章
相關標籤/搜索