1. 程式人生 > >軟件工程作業一

軟件工程作業一

cnblogs 設計 lock 鏈接 sof 一段 提高 出發點 src

Task1:註冊個人博客賬號

  • 目的:提交每次作業
  • 博客園地址:http://www.cnblogs.com/holmec/

Task2:註冊碼雲賬號

  • 目的:管理你的項目,記錄(源碼、文檔,歷次版本變更,bug發現與修復)等信息。
  • 碼雲地址:https://gitee.com/holmec/events

Task3:提出問題

快速通讀教材《構建之法》,並參照提問模板,提出5個問題。
如何提出有價值的問題? 請看這個文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互聯網時代如何提問題。 還有這些要點:

  • 在每個問題後面,請說明哪一章節的什麽內容引起了你的提問,提供一些上下文
  • 列出一些事例或資料,支持你的提問。
  • 說說你提問題的原因,你說因為自己的假設和書中的不同而提問,還是不懂書中的術語,還是對推理過程有疑問,還是書中的描述和你的經驗(直接經驗或間接經驗)矛盾?

問題一:

第3頁中有這樣一段話:

軟件在運行過程中還會出這樣那樣的問題,也許我們要時不時給軟件打一個補丁,或者維護眾多的服務,團隊的新老隊員要一起修復各種各樣的問題。

個人認為軟件後續維護工作的重要性不亞於其他任何工序,那麽在前期設計中是不是應該重視後續維護的難度呢?如果有一個軟件前期投入多,但經營一段時間後發現回報並沒有達到預期,那麽應該繼續投入精力維護還是直接拋棄?

問題二:

第4頁提到:

在相關法律完善之前,軟件行業還有一個行規,即應該有職業道德規範來約束IT人的行為。

這個職業道德規範具體的定義是什麽?例如現在市面上常出現的破解版軟件,發布者可能出發點只是想要給更多人提供使用、學習的機會,但另一方面這種行為又觸犯了版權方的利益,那麽如何定義這種行為是否是不道德的呢?

問題三:

在第87頁中提到的“如何結對編程”的第三點:

3.駕駛員和領航員不斷輪換角色,不要連續工作超過一小時,每工作一小時休息15分鐘。領航員要控制時間。

個人認為結對編程之所以能提高效率及代碼質量,最關鍵的原因在於能夠做到實時復審。通常來說人思維速度是快於手輸入代碼的速度,那麽此時領航員就有時間做額外的思考,也就是復審。以此推斷出結對編程的核心是領航員。駕駛員和領航員必定要存在水平差異(如果兩個人都是具備領航員水平的話,那擔任駕駛員的那位是不是有點大材小用了?),那麽如果駕駛員和領航員不斷輪換角色,當相對低水平的人擔任領航員時是不是就沒有體現結對編程的好處了?
如果有兩個都具備領航員水平的人,那麽獨立編程是不是優於結對編程?

問題四:

第13章中介紹了許多軟件測試的方法,那麽在軟件開發的過程中要全部使用這些測試方法嗎?這樣需要投入大量的人力物力,如果測試得到的回報與投入不成正比,那是不是浪費了資源?如果只抽樣測試,又擔心存在未知的bug。如何去權衡呢?

問題五:

第260頁提到:

大家平時都說要向某某大師或某某產品學習,把最重要的功能做好交給用戶,把那些無關緊要的功能藏起來,做減法……但是程序員們還是會想著把高級功能“秀”出來。我們都用過各種電視/DVD播放器的遙控器,功能很強,按鈕很多吧?你有沒有註意到老人家使用遙控器時的困難?

這段話中提到的遙控器的例子,實際上,使用電視等家電、數碼產品的對象更大比重是青年、中年人,老人相對來說較少,那麽其實遙控器的設計過程中老人使用的困難並不是需要考慮的?推導至軟件開發過程中,在考慮用戶體驗、用戶需求時,是不是優先考慮比重更大的對象,如果小群體的需求或體驗與大群體有矛盾的話,那是不是就可以不考慮小群體的需求或體驗了?如何平衡兩者呢?

【附加題】:請將問題提交至豆瓣:https://book.douban.com/subject/27069503/, 並在博客中給出鏈接
在豆瓣頁面的最下方 “讀書筆記” 那裏發言, 《構建之法》的作者會親自答復問題
豆瓣鏈接:https://book.douban.com/review/9644314/

Task4:Git基本操作練習

完成以下Git基本操作

  1. 將https://gitee.com/happyfaye/SoftwareEngineering倉庫fork到自己的賬號下
    技術分享圖片

技術分享圖片

  1. 將遠程倉庫clone至本地倉庫
    配置↓
    技術分享圖片

技術分享圖片

  1. 在本地倉庫添加學號姓名.txt(例如:201621123000happy.txt),並提交至遠程倉庫
    技術分享圖片

技術分享圖片

  1. 在本地修改該文本內容並再次提交
    技術分享圖片

技術分享圖片

  1. 給出提交歷史信息截圖
    技術分享圖片

軟件工程作業一