軟工第一次閱讀做業

軟工第一次閱讀做業

項目 內容
本次做業所屬課程 2019BUAA軟件工程
本次做業要求 第一次閱讀做業
我在本課程的目標 學會團隊合做開發項目,爲之後的工做打下基礎
本次做業的幫助 閱讀《構建之法》,從宏觀上創建起對敏捷開發模式,軟件工程要素的理解。

1、快速看完整部教材,列出你仍然不懂的5到10個問題

  • 第五章 敏捷流程

"只有能自我管理的團隊才能創造優秀的架構、需求和設計"git

根據個人觀察以及實習經驗,較大的公司憑藉資源豐厚,人、財、理念兼備等,在推動敏捷開發的時候較爲容易,可是小的公司每每難以進行傳統理念到敏捷開發的轉型。github

這是否就決定敏捷開發在國內推動的難度?如何調整可讓敏捷開發在國內企業普及開來?數據庫

  • 第八章 需求分析

"在敏捷開發的項目中,團隊通常不過度強調「估計」的價值,由於它就是一個「猜」字。「猜得準」不是團隊的目標。後端

在書中,咱們已經瞭解到驚喜需求的實現能夠很大程度上提升顧客的滿意度,那麼通常在團隊中如何平衡驚喜需求和「估計」的需求?瀏覽器

  • 9.3 項目經理——PM作開發和測試以外的全部事情

「若是必定要說專業能力的話,PM的專業就是理解和表達,你是否理解不一樣人的內心,需求和言外之意?」服務器

項目經理是鏈接需求和開發工做的橋樑,最好的方式應該是可讓雙方都更省力,最好的方式就是項目經理不只僅有做爲客戶的經驗,還應該有完成項目的經驗。以個人我的經從來看,只有真正作過某件事情的人才能理解和表達其中的意思。網絡

因此,在企業中,項目經理是否應該是一個精通兩樣事情的全才,而不僅是理解和表達?架構

  • 第九章 項目經理

項目經理在肯定軟件開放方案的時候遇到團隊成員意見相左的狀況,例如使用的架構和開發工具不盡相同,這時,PM要如何進行決策?分佈式

  • 第十三章 軟件測試

在以前的軟件開發中,許多同窗編寫腳原本進行所謂的「全覆蓋測試」。我看書中甚少說起。全覆蓋的這種方式在軟件工程測試中到底處於什麼樣的地位?ide

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

「軟件」:美國統計學家約翰·圖克(John W. Tukey)在1958年1月9日出版的《混合數學教學》(American Mathematical Monthly)中首次公開使用「軟件」(software)一詞。

「軟件工程」:這個概念是在1968年由NATO(北約)科技委員會在前聯邦德國的會議中提出,當時定義爲「研究和應用如何以系統性的、規範化的、可定量的過程化方法去開發和維護軟件,以及如何把通過時間考驗而證實正確的管理技術和當前可以獲得的最好的技術方法結合起來的學科」。

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

1999年,魯賓和馬特·赫森遜、喬伊·布里特共同建立了一家名爲Danger的科技公司。他們成功地爲T-Mobile研製出一款名爲Sidekick的貼牌手機。和名字中的描述同樣,Sidekick是一款側滑全鍵盤智能手機,它不但能和PDA同樣進行移動辦公,還能經過WiFi進行上網。

開發Sidekick的經歷爲魯賓積累了豐富的研發經驗。然而2004年,Danger公司發生政變,董事會決定引入新CEO來替代魯賓。儘管表示贊成董事會的決定,但當新CEO上任後,失意的魯賓仍是決定離開Danger公司。

離職後的魯賓在開曼羣島隱居了幾個月,這段期間,他一直在編寫軟件,試圖開發一款數碼相機。然而沮喪的是,沒有人支持他。萬般無奈之下,魯賓迴歸原點,決定開發智能手機相關的項目。幾年前註冊的一個網絡域名給他了靈感,他決定將新項目命名爲安卓(Android),目標是將它打造爲徹底開放的移動平臺。

魯賓在新項目上傾其全部,很快就破產了。他打電話給好友史蒂夫·佩爾曼(Steve Perlman),尋求資助。佩爾曼在電話裏問他什麼時候須要資金,飽受資金困擾的魯賓在電話裏吼道,「如今就要!」

佩爾曼聞言後馬上向魯賓匯去了1萬美圓,但杯水車薪,這筆資金很快就被花光。無奈以後,佩爾曼只得繼續匯款,先後共注資10萬美圓,幫助安卓團隊完成了最初的商業計劃。

但一年以後,安卓團隊依舊入不敷出。開發這樣一款龐大的產品實在太燒錢了!編寫程序、功能測試、想法錯位後推倒重建……每個環節都須要錢。一年以後,尋求資金幫助開始成爲魯賓的主要工做之一。

他們決定在大公司身上碰碰運氣,但最初找到的並不是谷歌,而是三星。2004年的一天,僅有8名成員的安卓團隊所有飛往韓國首爾,在那裏,他們見到了商談收購事宜的三星。

這是雙方第一次接觸,但印象並很差。魯賓在介紹產品時極力推薦安卓系統的設計思想,讚美它的前沿功能,但三星團隊不爲所動。現場的氣氛奇怪極了,沒有提問和掌聲,魯賓收穫的只有沉默。片刻以後,三星的高管說話了:

「你和這支所謂的團隊就打算開發這麼個玩意兒?大家(開發產品的)只有6我的,你嗑藥嗑嗨了嗎?」

「這基本就是他們的迴應。」魯賓回憶說。嘲笑聲中,他帶着沮喪和憤怒離開了三星的會議室。回國後,他們又試着接觸了其餘公司。兩週以後,消息傳來——被三星拒絕的安卓團隊被谷歌收購了。

對於安卓,谷歌的態度與三星截然相反。2002年,魯賓在斯坦福大學給硅谷工程師授課時,谷歌創始人拉里·佩奇和謝爾蓋·布林曾在臺下關注過他的項目。魯賓研發的Sidekick手機讓佩奇印象深入,這促使他萌生了研發谷歌手機和移動系統的想法。

2005年初期,佩奇與四處找錢的羅賓見了一面。在仔細聽完羅賓對安卓的描述後,佩奇打消了向安卓投資的想法——他決定直接收購。三年前在他腦中閃現的想法再次出現,佩奇決定研發谷歌自有移動系統,搶在微軟前面完成移動化佈局。

交易很快就敲定了。最終,谷歌以5000萬美圓收購了安卓。2005年,安卓團隊的8名成員悉數搬到位於山景城的谷歌總部。在那裏,他們開啓了一段新的歷史……

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

Git:

優勢:

  • 適合分佈式開發,強調個體。
  • 公共服務器壓力和數據量都不會太大。
  • 速度快、靈活。
  • 任意兩個開發者之間能夠很容易的解決衝突。
  • 離線工做。

缺點:

  • 學習週期相對而言比較長。
  • 不符合常規思惟。
  • 代碼保密性差,一旦開發者把整個庫克隆下來就能夠徹底公開全部代碼和版本信息。

Microsoft TFS:

優勢:

  • 與Visual Studio無縫結合,方便開發者進行源代碼管理。
  • 支持代碼審閱與討論,支持郵件通知,支持Web訪問與管理,支持工做項以及BUG等管理。
  • 不會上傳.NET開發時生成的垃圾文件,自帶版本合併以及比較工具
  • 支持數據庫版本管理,自帶不少管理工具(測試管理器、反饋客戶端、界面設計工具等等)

缺點:

  • 用ASP實現,用瀏覽器訪問很慢
  • 團隊的郵件細節配置很複雜

Mercurial:

優勢:

  • 命令有雙字母簡稱
  • 命令兼容svn
  • 命令封裝性好
  • 服務器部署相對容易

缺點:

  • 分支管理不靈活
  • 支持社區略差

Github:

使用人數:24m

優勢:

  • pull request和issue功能方便社區協做
  • 我的展現、合做平臺
  • 有大量優秀的開源項目

缺點:

  • wiki 功能太弱
  • 學習曲線陡峭
  • 可能將來某天被牆
  • 企業應用費用過高

Bitbucket:

優勢:

  • 支持私有免費項目
  • 支持git

缺點:

  • 受歡迎度不如Github
  • 網站功能不如Github豐富

Trac:

優勢:

  • 做爲一個SCM配置管理平臺,具備良好的擴充性
  • 權限體系設計完備
  • 很是靈活

缺點:

  • 不支持多項目
  • 需求和缺陷沒有分離
  • wiki 做爲文檔的學習代價比較高

Bugzilla:

優勢:

  • 強大的檢索功能
  • 定製功能強
  • 經過跟蹤和描述處理Bug
  • 強大的後端數據庫支持功能
  • 免費開源

缺點:

  • 界面不友好
  • 本地化不夠好

Apple XCode:

優勢:

  • 能夠自動建立分類圖表。
  • 自動提供撤消、重作和保存功能,無需編寫任何編碼。

缺點:

  • 更新版本後,某個插件可能會失效。
相關文章
相關標籤/搜索