第一次閱讀做業

第一次閱讀做業

=======================================================================================git

一、快速看完整部教材,列出你仍然不懂的5到10個問題,發佈在你的我的博客上。

  (1)如何衡量一個bug是須要解決的問題,仍是能夠容許的存在?應該怎麼肯定這個標準?對於不一樣的項目,怎樣才能稱爲足夠好?編程

是蟲子(Bug),仍是肉芽?不一樣的人有不一樣的答案。軟件行業也有一句著名的笑話:這不是缺陷,這是一個功能(It’s not a bug, it's a feature)!不少人認爲有Bug就是質量不合格,沒有Bug就是質量完美,其實這也未必。移山軟件學院的小芳同窗穿了一條新的牛仔褲,她的同窗在大街上看到不少不一樣品牌的汽車,這些汽車出廠時都經過了行業的質量標準。可是你問路人哪些車的「質量好」,不少人會告訴你有些車的質量大大好於另一些車,那爲何還有人買那些質量「不夠好」的汽車呢?對於某些顧客來講,某一類的汽車知足了他們的需求,他們就會買。若是銷售人員向不合適的目標用戶推銷本身公司的汽車,最後銷量未必理想。服務器

  (2)怎樣的單元測試可以最大地確保程序的正確性?單元測試可能覆蓋全部會出現的狀況嗎?網絡

e.其餘與外部條件相關的問題(例如與設備、網絡、執行環境相關的問題)。咱們在第1章提到飛機被炸開一個洞,你以爲飛機的程序應該考慮「覆蓋」這種狀況嗎?單元測試

  (3)如何避免在軟件開發過程當中的思惟誤區?怎樣少走彎路?學習

分析麻痹:一種極端的狀況是想弄清楚全部細節、全部依賴關係以後再動手,心理上過於悲觀,不想修復問題,出了問題都賴在相關問題上。
......
不分主次,想解決全部依賴問題:另外一種極端是過於積極,想立刻動手修復全部主要和次要的依賴問題,而後就能夠「完美地」達成最初設定的目標,而不是根據現有條件找到一個「足夠好」的方案,
......
過早優化:......一個工程師在寫程序的時候,常常容易在某一個局部問題上陷進去,花大量時間對其進行優化,五十這個模塊對全局的重要性,甚至還不知道這個「全局」是怎麼樣的。
......測試

  (4)結對編程對於水平不一樣的搭檔該如何合理地分配工做?我屬於基本功不是很好的類型,目前也在積極地學習,可是仍是和其餘同窗有差距。我但願能從結對編程中多寫代碼,多學習技巧和知識,而但願搭檔能夠更多地指導指導我。雖說地位平等,但我更多的抱着學習的態度。優化

  (5)創新須要到達什麼樣的高度?怎樣才能對於可創新的領域保持敏感?是否是沒有固定的方法?命令行


二、請問 「軟件」 和 「軟件工程」 這些詞彙是如何出現的 - 什麼時候、何地、何人?

  最先在工程背景下出版的術語「software」是由Richard R. Carhart在Rand Corporatio研究備忘錄中於1953年8月出版的。Paul Niquette聲稱他最初在1953年10月創造了「software」這個詞,儘管他找不到支持他的主張的任何文件。Margaret Heafield Hamilton(1936年8月17日出生)是美國計算機科學家,系統工程師和企業主。她創造了「軟件工程」這個術語。設計


三、【附加題】:你們知道了軟件和軟件工程的起源,請問軟件工程發展的過程當中有什麼你以爲有趣的冷知識和故事?

海蒂·拉瑪(HedyLamarr),曾被稱爲「世界上最美麗的女人」。18歲的時候在電影《神魂顛倒》擔當女主角。她又是一位女發明家,她與別人合做發明的「擴頻通訊技術」,被普遍用於今天的手機、衛星通信和無線互聯網,她於是被後世尊爲「CDMA之母」。直到83歲高齡,當以CDMA爲基礎的通訊技術開始走入大衆生活,美國電子前沿基金會才授予了海蒂·拉瑪早應獲得的榮譽。

四、上網調查一下目前流行的源程序版本管理軟件和項目管理軟件都有哪些, 各有什麼優缺點?

  (圖片來自維基百科

  • Git
    • 優勢:
      • 可用性好,十分方便;
      • 用戶多,項目多,利於交流學習;
      • 有本身的十分強的功能。
    • 缺點: 
      • 資料少;
      • 學習週期相對而言較長;
      • 代碼保密性差。 
  • Mercuria
    • 優勢:
      • 照顧命令行用戶,大多數命令都有雙字母的簡稱,效率更高;
      • 照顧SVN的遷移用戶,命令上大多數都繼承自SVN,使得用戶更加習慣;
      • 基於Python,服務器配置相對於Git更加容易。
    • 缺點:
      • Mercurial的branch管理和Git相比不方便,branch出來就刪不掉。
  • Bitbucket
    • 優勢:
      • 擁有免費私有庫,支持git
    • 缺點:
      • 不容易找到項目;
      • 社區活躍度不是那麼大。
  • Trac
    • 優勢:
      • 有良好的擴充性;
      • 權限體系的設計比較完備;
      • 靈活可定製。
    • 缺點:
      • 不支持多項目;
      • 需求和缺陷沒有分離;
      • 中文化不完整。
  • Bugzilla
    • 優勢: 
      • 定製功能很強;
      • 對語言的支持很強;
      • 免費,響應速度較快 。
    • 缺點:
      • UI設計差。
相關文章
相關標籤/搜索