1. 程式人生 > >個人作業—week1

個人作業—week1

了解 速度 危機 語言 電子 xcode 處理 構建 人的

### 閱讀《構建之法》提問

1. 做軟件測試必須有哪些的知識儲備?

2. 在開發一款應用之前,怎樣精準地了解到用戶是否真的有這方面的需求?

3. 結對編程的過程中,如果兩者出現分歧,難以達成一致的時候,應該如何解決?

4. 我們經常會覺得閱讀別人的代碼十分困難。那麽我們自己寫代碼的時候,應該註意些什麽,來盡可能的避免別人閱讀自己代碼時的反感呢?

5. 如果我們在代碼實現的過程中發現架構的實現並不是最優的,還可以用更有效率的方式滿足需求。但修改架構將會影響大量之前的代碼實現。此時應該如何取舍?

6. 在軟件的測試階段,我們可能遇到的問題可能比開發過程中遇到的問題還要多,怎麽處理好在測試階段的問題?怎麽運用不同的測試方法進行測試?

###請問 “軟件” 和 “軟件工程” 這些詞匯是如何出現的 - 何時、何地、何人?

- 軟件:第一個寫軟件的人是Ada(Augusta Ada Lovelace),在1860年代她嘗試為 Babbage(Charles Babbage)的機械式計算機寫軟件。盡管他們的努力失敗了,但他們的名字永遠載入了計算機發展的史冊。20世紀50年代,軟件伴隨著第一臺電子計算機的問世誕生了。以寫軟件為職業的人也開始出現,他們多是經過訓練的數學家和電子工程師。1960年代美國大學裏開始出現授予計算機專業的學位,教人們寫軟件。

- 軟件工程:隨著計算機技術的發展和計算機應用的日益普及,軟件系統的規模越來越龐大,高級編程語言層出不窮,應用領域不斷拓寬,開發者和用戶有了明確的分工,社會對軟件的需求量劇增。但軟件開發技術沒有重大突破,軟件產品的質量不高,生產效率低下,從而導致了“軟件危機”的產生。
自1970年起,軟件開發進入了軟件工程階段。由於“軟件危機”的產生,迫使人們不得不研究、改變軟件開發的技術手段和管理方法。從此軟件產生進入了軟件工程時代。此階段的特點是:硬件已向巨型化、微型化、網絡化和智能化四個方向發展,數據庫技術已成熟並廣泛應用,第三代、第四代語言出現;第一代軟件技術:結構化程序設計在數值計算領域取得優異成績;第二代軟件技術:軟件測試技術、方法、原理用於軟件生產過程;第三代軟件技術:處理需求定義技術用於軟件需求分析和描述。

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

- Git:具有分布式的特點,開發者可以提交到本地,每個開發者通過克隆,在本地機器上拷貝一個完整的Git倉庫。適合分布式開發,速度快,靈活。缺點是代碼保密性差,一旦開發者把整個倉庫克隆下來,就可以完全公開所有代碼和版本信息。
- Microsoft TFS:優點:對敏捷,msf,cmmi等項目、過程管理、過程改善的支持。任務版上能將需求、項目進度一覽無余,對於小團隊而言,比甘特圖更有用。缺點:能應用起來的團隊、公司的數量極少,多數真正用起來,也就是源代碼管理這部分,這也僅僅是占TFS極小部分功能。
- Apple XCode:優點:編譯速度極快,每次操作都很快速和輕松。自動提供撤消、重做和保存功能,無需編寫任何編碼。缺點:更新版本後,某個插件可能會失效。

個人作業—week1