軟工-第一次博客做業

項目 內容
這個做業屬於那個課程 班級博客
這個做業的要求在哪裏 做業要求
我在這個課程的目標是 學習軟件工程相關知識,鍛鍊軟件開發能力。
這個做業在哪一個具體方面幫我實現目標 閱讀教材,大致理解軟件工程
做業正文 做業正文

1、閱讀教材並提出問題

1.對第二章中單元測試標準的疑問

做者在書中只以一個簡單類的單元測試爲例,但實際的軟件工程中每每涉及到GUI/數據庫等狀況,每種類型的單元測試具體如何分析?是否每一個項目的每一個part都要作到代碼路徑全覆蓋?html

我查了資料,如下的回答比較有啓發性:java

回答1針對單元測試具體內容作出了一些解答。git

回答2則給出了單元測試的5個級別,以及經常使用場景的級別劃分。程序員

2. 關於第四章結對編程的疑問

​ 在目前的網絡授課環境下,結對編程的溝通成本更高了,會不會致使效率降低?在初學入門與空間隔離的條件下,如何保證結對編程的效率呢?github

3. 關於第六章敏捷編流程的疑問

6.2節中對敏捷流程各部分會碰到的問題作了總結。但彷佛並無給出部分問題的解法。若團隊成員基本都是初見軟件工程,一個最直觀的問題是:在以後的團隊流程中,如何獲得各個流程的量化評價?web

注意到書中連接10提供了Scrum視頻培訓,但限於時間因素,還沒來得及所有觀看。數據庫

(注:閱讀後續章節發現有部分解釋,但仍偏理論,而且也並未給出具體量化)編程

4.關於第9章項目經理的疑問

PM作開發和測試以外的全部事情。後端

書中對PM的職責進行了詳細的描述,並對如何作好PM給出了必定的建議。但實際狀況下,初入門的PM是否真的能完成這麼多的職責?這個職位在課設中是否真的有意義,而不是淪爲一個掛名職位呢?另外,做爲組內程序員,在出現問題甚至矛盾時,如何配合PM完成各項工做?網絡

5.關於第16章迷思之六

迷思之六,技術是創新的關鍵。

書中以銥星計劃爲例,說明科研技術不等於創新。我在查看銥星計劃的相關資料後,發現其失敗是創建在跨國家,組織,技術和多個管理層面的,巨型的,複雜的技術創新管理體系的失敗,一系列複雜的緣由致使了銥星計劃的破產,不能僅僅將其歸咎於創新。做者在後續內容中以用戶體驗一節的茶壺案例說明了相似的觀點。但我認爲科技的發展很大程度標誌着創新,好比目前的手機行業,攝像頭設計均爲挖孔與升降式結構,此時在攝像頭隱藏上取得突破,讓用戶取得更高的屏佔比,就能夠引導行業進一步發展。

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

軟件一詞,由John Tukey在於1958年發表的論文「The Teaching of Concrete Mathematics」中提出。

軟件工程,則由Margaret Hamilton於阿波羅11號軟件開發週期內提出。

地點則均爲美國。

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

分享一則關於菜單的冷知識,世上第一個遊戲彩蛋由Warren Robinett(沃倫·賓耐特)在開發第一個動做冒險遊戲《adventure》時完成。因雅達利公司時任管理者不容許將製做人名字印在遊戲卡帶上,沃倫設計並製做了下圖的隱藏關卡。

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

用戶數目列表
管理軟件名 用戶數 項目數
GitHub 31,000,000 100,000,000
Bitbucket 5,000,000 Unknown
Launchpad 3,965,288 40,881
SourceForge 3,700,000 500,000
GitLab 100,000 546,000
GNU Savannah 93,346 3,848
OSDN 54,826 6,294
優缺點分析:
管理軟件名 優勢 缺點
Microsoft TFS 是對敏捷,msf,cmmi等項目、過程管理、過程改善的支持。任務版上能將需求、項目進度盡收眼底,對於小團隊而言,比甘特圖更有用。 能應用起來的團隊、公司的數量極少,多數真正用起來,也就是源代碼管理這部分,這也僅僅是佔TFS極小部分功能。
GitHub GitHub提供Git存儲庫服務,基於web,容許你使用Git的源代碼管理功能,或者其特性。 若是有不公開的專案的話,須要付費,沒有一個很清楚的圖表能夠看清楚全部專案的milestone due day順序,沒有甘特圖能夠看,只有英文界面
Trac 很是靈活,能夠爲所欲爲控制能夠和SVN集成,權限設置比較完善,且是一個SCM配置管理平臺,意味着它有良好的擴充,權限體系完善 不支持多項目,需求和缺陷沒有分,用 Wiki 來替代 Word 等工具編寫文檔提升了學習成本,中文支持很差,核心功能不多,須要配合插件使用。
Bugzilla 檢索功能強大,後端數據庫支持好,中文化支持完整。 快速搜索結果不許確,只能管理缺陷
Mercurial 有revset,擴展性,append only的存儲結構,易於掌握,對新手友好 只容許兩個分支進行合併。
Apple XCode 編譯速度極快,每次操做都很快速和輕鬆。自動提供撤消、重作和保存功能,無需編寫任何編碼。 更新版本後,某個插件可能會失效。

參考1

參考2

5、調查完目前流行的源程序版本管理軟件和項目管理軟件後,請你選擇其中至少2個軟件來進行動手實踐,對每一個軟件的要求以下:

  1. 下載和安裝軟件。
  2. 使用軟件中的某個功能(例如,建立一個 bug,而後關閉這個bug),並進行屏幕截圖。
  3. 把屏幕截圖的照片放到博客中,要求該照片可以證實 是你在使用這個軟件,好比在旁邊放一下本身的博客首頁。
  4. 簡要談一下你使用該軟件後的見解。

查找後發現上述管理軟件大部分都使用Git,所以下面用了Github和Gitee舉例,

Github

gitee碼雲

此前利用gitee搭建了一個靜態的我的博客(本來倉庫在github上,但訪問速度過慢,所以搬運到了gitee),倉庫以下

相相似的Bitbucket、Gitlab等都是採用Git管理,整體用戶體驗較爲一致。

相關文章
相關標籤/搜索